Özellik Haçları biriminden hatırlayorsanız aşağıdaki sınıflandırma sorunu doğrusal değildir:
Şekil 1. Doğrusal olmayan sınıflandırma sorunu.
"Doğrusal olmayan", formun modeliyle bir etiketi doğru şekilde tahmin edemeyeceğiniz anlamına gelir \(b + w_1x_1 + w_2x_2\) Başka bir deyişle, "karar yüzeyi" bir çizgi değildir. Daha önce, doğrusal olmayan problemlerin modellenmesi için olası bir yaklaşım olarak özellik çaprazlarını inceledik.
Şimdi de aşağıdaki veri kümesini dikkate alın:
Şekil 2. Daha zor bir doğrusal olmayan sınıflandırma sorunu.
Şekil 2'de gösterilen veri kümesi doğrusal bir modelle çözümlenemez.
Nöral ağların doğrusal olmayan problemlere nasıl yardımcı olabileceğini görmek için bir doğrusal modeli grafik olarak temsil ederek başlayalım:
3. Şekil. Grafik olarak doğrusal model.
Her mavi daire bir giriş özelliğini, yeşil daire de girişlerin ağırlıklı toplamını temsil eder.
Doğrusal olmayan sorunlarla başa çıkma becerisini iyileştirmek için bu modeli nasıl değiştirebiliriz?
Gizli Katmanlar
Aşağıdaki grafiğin temsil ettiği modele, aracı değerlerinin "gizli katmanını" ekledik. Gizli katmandaki her sarı düğüm, mavi giriş düğümü değerlerinin ağırlıklı bir toplamıdır. Çıkış, sarı düğümlerin ağırlıklı bir toplamıdır.
4. Şekil. İki katmanlı modelin grafiği.
Bu model doğrusal mı? Evet, çıkışı hala girdilerden oluşan doğrusal bir kombinasyondur.
Aşağıdaki grafiğin temsil ettiği modele, ağırlıklı toplamları içeren ikinci bir gizli katman ekledik.
5. Şekil. Üç katmanlı modelin grafiği.
Bu model hâlâ doğrusal mı? Evet. Çıkışı girdinin işlevi olarak ifade edip sadeleştirdiğinizde girişlerin yalnızca ağırlıklı ağırlıklı bir toplamını elde edersiniz. Bu toplam, Şekil 2'deki doğrusal olmayan sorunu etkili bir şekilde modellemez.
Etkinleştirme İşlevleri
Doğrusal olmayan bir sorunu modellemek için doğrudan doğrusal olmayan bir sorunu tanıtabiliriz. Gizlenen her katman düğümünü doğrusal olmayan bir işlev aracılığıyla borulara bağlayabiliriz.
Aşağıdaki grafikte gösterilen modelde, Gizli Katman 1'deki her bir düğümün değeri, bir sonraki katmanın ağırlıklı toplamlarına geçirilmeden önce doğrusal olmayan bir işlev tarafından dönüştürülür. Bu doğrusal olmayan işleve etkinleştirme işlevi denir.
6. Şekil. Etkinleştirme işlevine sahip üç katmanlı modelin grafiği.
Artık bir etkinleştirme işlevi eklediğimize göre, katman eklemenin de daha büyük bir etkisi var. Doğrusal olmayan değişkenleri doğrusal olmayan öğeler olarak katmanlandırmak, girişler ve tahmin edilen çıkışlar arasındaki çok karmaşık ilişkileri modellememize olanak verir. Özetle, her katman ham girişlerle kıyaslandığında daha karmaşık ve yüksek düzeyde bir işlevi etkin biçimde öğrenir. Bunun işleyiş şekliyle ilgili daha fazla sezgisel bilgi edinmek isterseniz Chris Olah'ın mükemmel blog yayınına bakın.
Sık Kullanılan Etkinleştirme İşlevleri
Aşağıdaki sigmoid etkinleştirme işlevi, ağırlıklı toplamı 0 ile 1 arasında bir değere dönüştürür.
Aşağıda bir olay örgüsü verilmiştir:
Şekil 7. Sigmoid etkinleştirme işlevi.
Aşağıdaki düzeltilmiş doğrusal birim etkinleştirme işlevi (veya kısaca RELU), genellikle sigmoid gibi yumuşak bir işlevden biraz daha iyi sonuç verir ve aynı zamanda hesaplanması çok daha kolaydır.
ReLU'nun üstünlüğü, büyük olasılıkla daha yararlı bir yanıt aralığına sahip olmayla elde edilen deneysel bulgulara dayanır. Sigmoidin yanıt verme hızı her iki tarafta da nispeten hızlı bir şekilde düşer.
8. Şekil. ReLU etkinleştirme işlevi.
Aslında, herhangi bir matematiksel işlev bir etkinleştirme işlevi görevi görebilir. Etkinleştirme işlevimizi ( \(\sigma\) , Relu, Sigmoid vb.) temsil ettiğini varsayalım. Sonuç olarak, ağdaki bir düğümün değeri aşağıdaki formülle verilir:
TensorFlow, birçok etkinleştirme işlevi için kullanıma hazır destek sağlar. Bu etkinleştirme işlevlerini, TensorFlow'un temel nöral ağ işlemleri için sarmalayıcılar listesinde bulabilirsiniz. Bununla birlikte, ReLU ile başlamanızı öneririz.
Özet
Modelimizde artık, "nöral ağ" dediklerinde kullanıcıların genellikle ne anlama geldiğine dair tüm standart bileşenler bulunuyor:
- Katmanlarda düzenlenmiş, nöronlara benzeyen bir dizi düğüm.
- Her nöral ağ katmanı ile altındaki katman arasındaki bağlantıları temsil eden bir ağırlık kümesi. Alttaki katman başka bir nöral ağ katmanı veya başka bir katman olabilir.
- Her bir düğüm için bir ön yargı kümesi.
- 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 edilmesi gereken nokta: Nöral ağların her zaman özellik haçlarından daha iyi olması gerekmez ancak nöral ağlar birçok durumda işe yarayan esnek bir alternatif sunar.