Aşağıdaki etkileşimli alıştırmalarda, sinir ağlarının iç işleyişini daha ayrıntılı olarak keşfedeceksiniz. İlk olarak, parametre ve hiperparametre değişikliklerinin ağın tahminlerini nasıl etkilediğini göreceksiniz. Ardından, öğrendiklerinizi kullanarak doğrusal olmayan verilere uyacak şekilde bir sinir ağı eğiteceksiniz.
Alıştırma 1
Aşağıdaki widget, şu yapılandırmayla bir sinir ağı kurar:
-
0.00 , 0.00 ve 0.00 değerlerini içeren 3 nöronlu giriş katmanı. - 4 nöronlu gizli katman
- 1 nöronlu çıkış katmanı
- ReLU aktivasyon fonksiyonu tüm gizli katman düğümlerine ve çıkış düğümüne uygulandı.
Ağ kurulumunu gözden geçirin (not: henüz ▶️ veya >| düğmelerine tıklamayın ) ve ardından widget'ın altındaki görevleri tamamlayın.
Görev 1
Sinir ağı modeline giren üç özellik için değerlerin tümü 0.00 . Başlangıç değerlerinin tümünü görmek için ağdaki her bir düğüme tıklayın. Oynat ( ▶️ ) düğmesine basmadan önce şu soruyu yanıtlayın:
Sizce ne tür bir çıktı değeri elde edilecek: pozitif, negatif veya 0?
Pozitif çıktı değeri
Pozitif bir çıktı değeri seçtiniz. Giriş verileri üzerinde çıkarım yapmak ve doğru olup olmadığınızı görmek için aşağıdaki talimatları izleyin.
Negatif çıktı değeri
Negatif bir çıktı değeri seçtiniz. Giriş verileri üzerinde çıkarım yapmak ve doğru olup olmadığınızı görmek için aşağıdaki talimatları izleyin.
Çıkış değeri 0
Çıkış değeri olarak 0'ı seçtiniz. Giriş verileri üzerinde çıkarım yapmak ve doğru olup olmadığınızı görmek için aşağıdaki talimatları izleyin.
Şimdi ağın üzerindeki Oynat (▶️) düğmesine tıklayın ve tüm gizli katman ve çıktı düğümü değerlerinin doldurulmasını izleyin. Yukarıdaki cevabınız doğru muydu?
Açıklama için buraya tıklayın.
Elde edeceğiniz kesin çıktı değeri, ağırlık ve sapma parametrelerinin rastgele nasıl başlatıldığına bağlı olarak değişecektir. Bununla birlikte, giriş katmanındaki her nöronun değeri 0 olduğundan, gizli katman düğüm değerlerini hesaplamak için kullanılan ağırlıkların tümü sıfırlanacaktır. Örneğin, ilk gizli katman düğüm hesaplaması şu şekilde olacaktır:
y = ReLU(w 11 * 0,00 + w 21 * 0,00 + w 31 * 0,00 + b)
y = ReLU(b)
Dolayısıyla her gizli katman düğümünün değeri, sapmanın (b) ReLU değerine eşit olacaktır; b negatifse 0, b 0 veya pozitifse b'nin kendisi olacaktır.
Çıkış düğümünün değeri daha sonra aşağıdaki gibi hesaplanacaktır:
y = ReLU(w 11 * x 11 + w 21 * x 21 + w 31 * x 31 + w 41 * x 41 + b)
Görev 2
Sinir ağını değiştirmeden önce aşağıdaki soruyu yanıtlayın:
İlk gizli katmandan sonra sinir ağına başka bir gizli katman eklerseniz ve bu yeni katmana 3 düğüm verirseniz, tüm giriş ve ağırlık/önyargı parametrelerini aynı tutarsanız, diğer hangi düğümlerin hesaplamaları etkilenecektir?
Giriş düğümleri hariç, ağdaki tüm düğümler.
Giriş düğümleri hariç, ağdaki tüm düğümleri seçtiniz. Sinir ağını güncellemek ve doğru olup olmadığınızı görmek için aşağıdaki talimatları izleyin.
Sadece ilk gizli katmandaki düğümler
Yalnızca ilk gizli katmandaki düğümleri seçtiniz. Sinir ağını güncellemek ve doğru olup olmadığınızı görmek için aşağıdaki talimatları izleyin.
Sadece çıkış düğümü
Sadece çıkış düğümünü seçtiniz. Sinir ağını güncellemek ve doğru olup olmadığınızı görmek için aşağıdaki talimatları izleyin.
Şimdi sinir ağını aşağıdaki gibi 3 düğümlü yeni bir gizli katman ekleyerek değiştirin:
- Çıktı katmanından önce yeni bir gizli katman eklemek için "1 hidden layer" metninin solundaki " +" düğmesine tıklayın.
- Yeni gizli katmanın üzerindeki + düğmesine iki kez tıklayarak katmana 2 düğüm daha ekleyin.
Yukarıdaki cevabınız doğru muydu?
Açıklama için buraya tıklayın.
Sadece çıkış düğümü değişir. Bu sinir ağının çıkarım işlemi "ileri beslemeli" (hesaplamalar baştan sona doğru ilerler) olduğundan, ağa yeni bir katman eklenmesi yalnızca yeni katmandan sonraki düğümleri etkiler, öncekileri etkilemez.
Görev 3
Ağ grafiğinin ilk gizli katmanındaki ikinci (yukarıdan) düğüme tıklayın. Ağ yapılandırmasında herhangi bir değişiklik yapmadan önce aşağıdaki soruyu yanıtlayın:
İlk giriş düğümünün (x 1 ) altında görüntülenen w 12 ağırlığının değerini değiştirirseniz, bazı giriş değerleri için diğer hangi düğümlerin hesaplamaları etkilenebilir ?
Hiçbiri
Hiçbirini seçmediniz. Sinir ağını güncellemek ve doğru olup olmadığınızı görmek için aşağıdaki talimatları izleyin.
Birinci gizli katmandaki ikinci düğüm, ikinci gizli katmandaki tüm düğümler ve çıkış düğümü.
Birinci gizli katmandaki ikinci düğümü, ikinci gizli katmandaki tüm düğümleri ve çıkış düğümünü seçtiniz. Sinir ağını güncellemek ve doğru olup olmadığınızı görmek için aşağıdaki talimatları izleyin.
Birinci gizli katmandaki, ikinci gizli katmandaki ve çıkış katmanındaki tüm düğümler.
Birinci gizli katmandaki, ikinci gizli katmandaki ve çıkış katmanındaki tüm düğümleri seçtiniz. Sinir ağını güncellemek ve doğru olup olmadığınızı görmek için aşağıdaki talimatları izleyin.
Şimdi, ilk giriş düğümünün ( x1 ) altında görüntülenen w12 ağırlığı için metin alanına tıklayın, değerini 5.00 olarak değiştirin ve Enter tuşuna basın. Grafikteki güncellemeleri gözlemleyin.
Cevabınız doğru muydu? Cevabınızı doğrularken dikkatli olun: bir düğüm değeri değişmiyorsa, bu altta yatan hesaplamanın da değişmediği anlamına mı gelir?
Açıklama için buraya tıklayın.
Birinci gizli katmanda etkilenen tek düğüm ikinci düğümdür (tıkladığınız düğüm). Birinci gizli katmandaki diğer düğümlerin değer hesaplamaları w 12 parametresini içermediğinden etkilenmezler. İkinci gizli katmandaki tüm düğümler etkilenir, çünkü hesaplamaları birinci gizli katmandaki ikinci düğümün değerine bağlıdır. Benzer şekilde, çıktı düğümünün değeri de etkilenir, çünkü hesaplamaları ikinci gizli katmandaki düğümlerin değerlerine bağlıdır.
Ağdaki düğüm değerlerinin hiçbiri ağırlık değerini değiştirdiğinizde değişmediği için cevabın "hiçbiri" olduğunu mu düşündünüz? Bir düğümün temel hesaplamasının, düğümün değerini değiştirmeden değişebileceğini unutmayın (örneğin, ReLU(0) ve ReLU(–5) her ikisi de 0 çıktısı üretir). Ağın nasıl etkilendiği konusunda sadece düğüm değerlerine bakarak varsayımlarda bulunmayın; hesaplamaları da incelediğinizden emin olun.
Alıştırma 2
Kategorik veri modülündeki Özellik çaprazlama alıştırmalarında , doğrusal olmayan verilere uyacak şekilde özellik çaprazlamalarını manuel olarak oluşturdunuz. Şimdi, eğitim sırasında doğrusal olmayan verilere nasıl uyum sağlayacağını otomatik olarak öğrenebilen bir sinir ağı oluşturup oluşturamayacağınızı göreceksiniz.
Göreviniz: Aşağıdaki diyagramda turuncu noktaları mavi noktalardan ayırabilen ve hem eğitim hem de test verilerinde 0,2'den daha düşük bir kayıp elde eden bir sinir ağı yapılandırmak.
Talimatlar:
Aşağıdaki etkileşimli araçta:
- Aşağıdaki yapılandırma ayarlarından bazılarıyla denemeler yaparak sinir ağı hiperparametrelerini değiştirin:
- Ağ diyagramındaki GİZLİ KATMANLAR başlığının solunda yer alan + ve - düğmelerine tıklayarak gizli katmanları ekleyin veya kaldırın.
- Gizli katman sütununun üzerindeki + ve - düğmelerine tıklayarak gizli katmana nöron ekleyin veya çıkarın.
- Diyagramın üzerindeki Öğrenme oranı açılır menüsünden yeni bir değer seçerek öğrenme oranını değiştirin.
- Şemanın üzerindeki Etkinleştirme açılır menüsünden yeni bir değer seçerek etkinleştirme işlevini değiştirin.
- Şemanın üzerindeki Oynat (▶️) düğmesine tıklayarak belirtilen parametreleri kullanarak sinir ağı modelini eğitebilirsiniz.
- Eğitim ilerledikçe modelin verilere uyumunun görselleştirilmesini ve Çıktı bölümündeki Test kaybı ve Eğitim kaybı değerlerini inceleyin.
- Model test ve eğitim verilerinde 0,2'nin altında bir kayıp değeri elde edemezse, sıfırlama düğmesine tıklayın ve 1-3 arasındaki adımları farklı bir yapılandırma ayarı kümesiyle tekrarlayın. İstediğiniz sonuçları elde edene kadar bu işlemi tekrarlayın.
Çözümümüz için buraya tıklayın.
Hem test hem de antrenman kayıplarını 0,2'nin altına düşürmeyi şu şekilde başardık:
- 3 nöron içeren 1 gizli katman ekleniyor.
- 0,01'lik bir öğrenme oranı seçiliyor.
- ReLU aktivasyon fonksiyonunu seçmek.