Temel olarak, sinir ağlarını öğrenmenin temeli olan birçok temel kavramı içeren Lojistik regresyonun içeriğinden bahsetti. Lojistik regresyondan sinir ağına geçelim. Önce "Sığ Sinir Ağına" bir göz atalım.
1. Sinir ağı nedir
Burada açıkladığımız sinir ağı, Lojistik regresyon temelinde bir veya daha fazla gizli katman eklemektir.Aşağıdaki, yalnızca iki katmana sahip en basit sinir ağıdır:
İki katmanlı sinir ağı:
Yukarıdaki resmin üç veya dört katman değil "iki katman" olduğuna dikkat edilmelidir, giriş ve çıkış katman olarak sayılmaz!
Burada önce gösterimi tanımlıyoruz:
Ek olarak, genellikle bir şey karıştırılır:
-Yukarıdaki resimdeki x1, x2, x3, x44 örneği temsil etmemektedir! Bir örneğin dört özelliğidir (4 boyutlu değerler)!
M örneğiniz varsa, yukarıdaki işlemi m kez tekrarlamanız gerektiği anlamına gelir:
Sinir ağlarının "iki yayılımı":
Her ileri ve geri yayılmadan sonra, parametreler bir kez güncellenir ve daha sonra yukarıdaki işlem yeni parametrelerle yeniden döngüye alınır. Bu, sinir ağı eğitiminin tamamıdır.
İkincisi, ileriye doğru yayılma
Örnek başına bir örnek hesaplamak için bir for döngüsü kullanırsanız, açıkça çok yavaştır.İlk birkaç notumu okuyan arkadaşlar, m örnekleri, hesaplama için bir X vektörüne sıkıştırmak için Vectorization kullandığımızı bilmelidir. Benzer şekilde, z, A, Z ve A'yı elde etmek için vektörleştirilir, böylece m'nin örnekleri aynı anda gösterilebilir ve hesaplanabilir.
Bu şekilde, iki katmanlı sinir ağımızın ileri yayılma sürecini ifade etmek için bir formül kullanıyoruz:
Katman 1: Z = W · X + bA = (Z)
Katman 2: Z = W · A + bA = (Z)
Ve X'in aslında A olduğunu biliyoruz, bu yüzden görmek zor değil: her katmanın hesaplamaları aynı:
Katman i: Z = W · A + b Bir = (Z )
(Not: sigmoid işlevidir)
Bu nedenle, sinir ağımızın kaç katmanı olursa olsun, yukarıdaki işlemi tekrarlar.
Kayıp fonksiyonu için, Lojistik regresyonda olduğu gibi, "çapraz entropi" kullanan formül iki sınıflı bir sorundur: L (y ^, y) = - Çok sınıflı problem: L = -y (j) · Y ^ (j)
Bu, her bir numunenin kaybıdır. Genellikle, J ile temsil edilen ve maliyet olarak da adlandırılan tüm numune setinin kaybını hesaplamamız gerekir; burada J, L'nin ortalamasıdır:
J (W, b) = 1 / m · L (y ^ (i), y (i))
Yukarıdaki Z, A, L ve J'yi bulma süreci ileriye doğru yayılımdır.
Üç, geri yayılma
Geri yayılım, W ve b'nin kısmi türevini J'nin formülüne göre bulmayı, yani gradyanı bulmayı basitleştirir. Çünkü parametreleri güncellemek için gradyan iniş yöntemini kullanmamız gerekiyor ve güncelleme bir gradyan gerektiriyor.
Bununla birlikte, kısmi türevleri elde etmek için zincir kuralına göre, 1. katmanın parametrelerinin gradyanının l + 1 katman gradyanı ile elde edilmesi gerektiğini biliyoruz, bu nedenle türetme sürecimiz "ters" dir, bu yüzden "Geri yayılma" denir.
Türev aramaya ilişkin spesifik süreç burada tekrarlanmayacaktır. Eğer ilgileniyorsanız, bunu kendiniz elde edebilirsiniz, ancak bence çoğu insan bu tür şeyleri gördükten sonra onu türetmek istemez. . . (Temelde T_T \ "formülünü yazmakta tembelim)
Dahası, çeşitli derin öğrenme çerçeveleri TensorFlow ve Keras gibi, hepsi sadece ileri yayılma sürecini kendimiz oluşturmamızı gerektirir ve geri yayılma süreci otomatik olarak yapılır, bu yüzden gerçekten endişelenmenize gerek kalmaz.
Geri yayılımdan sonra, parametreleri her katmanın parametrelerinin gradyanına göre güncelleyebiliriz Güncellemeden sonra, daha iyi parametreleri sürekli eğitmek ve öğrenmek için ileri ve geri yayılma işlemini tekrarlayın.
Dördüncü, derin sinir ağı (Derin Sinir Ağı)
Önceki açıklamalar, örnek olarak iki katmanlı çok sığ bir sinir ağını almıştır.
Derin sinir ağlarında gizemli hiçbir şey yoktur, sadece birkaç düzine / yüzlerce gizli katman.
Basit bir şema ile gösterilebilir:
Derin sinir ağı:
Derin sinir ağında, sigmoid işlevi yerine orta katmanda "ReLU" etkinleştirme işlevini kullandığımızı unutmayın.Sigmoid işlevi yalnızca son çıktı katmanında kullanılır.Bunun nedeni, gradyan hesaplanırken ReLU işlevinin daha hızlı olmasıdır. , Gradyanın bir dereceye kadar kaybolmasını da önleyebilir, bu nedenle genellikle derin ağlarda kullanılır. Aktivasyon fonksiyonu sorusuyla ilgili olarak, lütfen bakınız: [DL Fragment 3] Sinir Ağında Aktivasyon Fonksiyonu ve Karşılaştırma
Derin sinir ağıyla ilgili olarak, yapısını, özellikle de her katmandaki çeşitli değişkenlerin boyutlarını detaylı bir şekilde gözlemlememiz gerekiyor Sonuçta modeli oluştururken boyut çok önemlidir.
Ayarladık:
Toplam m örnek var ve sorun bir ikili sınıflandırma problemidir (yani, y 0,1'dir);
Ağın toplam L katmanı vardır ve mevcut katman katman l'dir (l = 1,2, ..., L);
L katmanındaki birim sayısı n'dir; bu durumda aşağıdaki parametrelerin veya değişkenlerin boyutları:
Birisi sorabilir, W ve b boyutlarında neden m yok?
W ve b her numune için aynı olduğundan, tüm numuneler aynı parametre setini kullanır (W, b),
Ve Z ve A farklıdır.Hesaplama parametreleri aynı olmasına rağmen, numuneler farklı ise hesaplama sonuçları farklıdır, dolayısıyla boyutta m vardır.
Derin sinir ağının ileriye doğru yayılması ve geri yayılması, yukarıda yazılan iki katmanlı sinir ağına benzer, ancak birkaç katman daha ve ardından ortadaki aktivasyon işlevi sigmoidden ReLU'ya değiştirilir.