Önceki alıştırmada, Arkadaş Bitkiler projesinin Ağımızdaki gizli katmanlar doğrusal olmayanları temsil etmek için yeterli değildi. Doğrusal işlemlerde gerçekleştirilen doğrusal işlemler hâlâ doğrusaldır.
Bir nöral ağ nasıl yapılandırılabilir? yani değerler arasında doğrusal olmayan ilişkiler var mı? Doğrusal olmayan matematiksel işlemleri modele dönüştürüyor.
Bu size biraz tanıdık gelebilir. Bunun nedeni, doğrusal olmayan matematiksel işlemleri doğrusal bir modelin çıktısına ele alacağız. Mantıksal Regresyon modülünü kullanarak 0'dan sürekli bir değer oluşturacak şekilde doğrusal bir regresyon modeli 1'e (bir olasılığı temsil eder) gönderir. Bunun için modelin çıktısını sigmoid işlevi hakkında daha fazla bilgi edinin.
Aynı ilkeyi nöral ağımıza uygulayabiliriz. Modelimizi yeniden inceleyelim önce Alıştırma 2'den başladı, ancak bu sefer her düğümün değerini çıkarıyorsak önce sigmoid işlevini uygularız:
>| düğmesini tıklayarak her bir düğümün hesaplamalarını adım adım tamamlamayı deneyin (oynat düğmesinin sağında bulunur). Yapılan matematik işlemlerini gözden geçirmek kullanarak grafiğin altındaki Hesaplamalar panelinde her düğüm değerini hesaplayabilirsiniz. Her düğümün çıkışının artık doğrusal bir şemanın sigmoid dönüşümü düğümlerinin birleşiminden oluşur ve çıkış değerleri hepsi 0 ile 1 arasında sıkışmış durumdadır.
Burada, sigmoid bir etkinleştirme işlevi nöral ağ için bir nöronun çıkış değerinin doğrusal olmayan dönüşümü sonraki ayın hesaplamalarına girdi olarak iletilmeden önce katmanına dahildir.
Artık bir etkinleştirme işlevi eklediğimize göre, katman eklemenin daha fazla etkisi var. Doğrusal olmayanlıkları doğrusal olmayanlar üzerinde yığmak, çok karmaşık ve tahmin edilen çıktılar arasındaki ilişkiyi kontrol eder. Kısacası, her bir katman verimli bir şekilde daha karmaşık ve daha yüksek seviyeli bir işlevi giriş değerleridir. Bunun nasıl çalıştığı konusunda daha fazla sezgi geliştirmek isterseniz Chris Olah'ın mükemmel blog yayınını inceleyin.
Sık kullanılan etkinleştirme fonksiyonları
Aktivasyon fonksiyonları olarak yaygın şekilde kullanılan üç matematiksel fonksiyon şunlardır: sigmoid, tanh ve ReLU.
Sigmoid işlevi (yukarıda açıklanmıştır) girişte aşağıdaki dönüşümü gerçekleştirir $x$, 0 ile 1 arasında bir çıktı değeri oluşturur:
\[F(x)=\frac{1} {1+e^{-x}}\]
Bu fonksiyonun grafiğini aşağıda görebilirsiniz:
![Şekil 4. Sigmoid fonksiyonunun grafiği: s şeklinde bir eğri
x negatife yaklaştıkça x eksenine asimptotik şekilde yaklaşır
sonsuzluk ve 1 ile sonsuza yaklaşır.](https://developers.google.cn/static/machine-learning/crash-course/neural-networks/images/sigmoid.png?authuser=6&hl=tr)
Tanh ("hiperbolik tanjant") işlevi, $x$ girdisini -1 ile 1 arasında bir çıktı değeri üretir:
\[F(x)=tanh(x)\]
Bu fonksiyonun grafiğini aşağıda görebilirsiniz:
![Şekil 5. Tanh fonksiyonunun grafiği: biraz
asimptotik olarak görülen sigmoid fonksiyonuna göre daha dik bir s şekilli eğri
x negatif sonsuza yaklaştıkça 1 ve x yaklaştıkça 1 yaklaşır
sonsuzluk.](https://developers.google.cn/static/machine-learning/crash-course/neural-networks/images/tanh.png?authuser=6&hl=tr)
Düzeltilmiş doğrusal birim etkinleştirme işlevi (veya ReLU, kısa) çıkışını aşağıdaki algoritmayı kullanarak dönüştürür:
- $x$ giriş değeri 0'dan küçükse 0 değerini döndürün.
- $x$ giriş değeri 0'dan büyük veya 0'a eşitse giriş değerini döndürün.
ReLU, max() işlevi kullanılarak matematiksel olarak temsil edilebilir:
Bu fonksiyonun grafiğini aşağıda görebilirsiniz:
![Şekil 6. ReLU fonksiyonunun grafiği: yatay bir çizgi
x ekseninde negatif sonsuzluktan 0'a doğru, yani diyagonal çizgiye dönüşür
0'dan sonsuza doğru eğim 1 (y=x) olacak şekilde yukarıya ve sağa doğru gidin.](https://developers.google.cn/static/machine-learning/crash-course/neural-networks/images/relu.png?authuser=6&hl=tr)
ReLU genellikle aktivasyon fonksiyonu olarak yumuşak bir modele sigmoid veya tanh gibi çalışır, çünkü kayan gradyan problemi sinir ağı eğitimi sırasında. ReLU ile daha kolay daha fazla işlem yapmasını sağlar.
Diğer etkinleştirme işlevleri
Pratikte, herhangi bir matematiksel fonksiyon bir aktivasyon fonksiyonu olarak kullanılabilir. \(\sigma\) değerinin, aktivasyon fonksiyonumuzu temsil ettiğini varsayalım. Ağdaki bir düğümün değeri aşağıdaki şekilde verilir formül:
Keras, birçok kuruluş için kullanıma hazır destek sunar. etkinleştirme işlevleri hakkında daha fazla bilgi edinin. Bununla birlikte, yine de ReLU ile başlamanızı öneririz.
Özet
Aşağıdaki videoda şu ana kadar öğrendiğiniz her şeyin bir özeti sunuluyor. Nöral ağların nasıl oluşturulduğu hakkında:
Şimdi modelimiz, insanların genellikle kullandığı bunun anlamı şudur:
- Katmanlar halinde düzenlenmiş, nöronlara benzeyen bir düğüm kümesi.
- Her bir nöral ağ arasındaki bağlantıları temsil eden bir ağırlık grubu katmanı ve altındaki katmandır. Alttaki katman ya da başka tür bir katman.
- Her düğüm için bir tane olmak üzere bir ağırlıklandırma grubu.
- Bir katmandaki her düğümün çıkışını dönüştüren bir etkinleştirme işlevi. Farklı katmanların farklı etkinleştirme işlevleri olabilir.
Dikkat: Nöral ağların her zaman özellik çakışmalarına neden olur, ancak nöral ağlar bu şekilde çalışan esnek bir alternatif sunar. iyi sonuç verir.