İlk Nöral Ağ
Bu alıştırmada ilk küçük sinir ağımızı eğiteceğiz. Nöral ağlar, uygunsuz özellik haçları kullanmadan doğrusal olmayan modeller hakkında bilgi edinmemizi sağlayacak.
1. Görev: Verilen model, iki giriş özelliğimizi tek bir nöronda birleştiriyor. Bu model doğrusal olmayan bilgiler öğrenir mi? Tahminden emin olmak için kodu çalıştırın.
2. Görev: Gizli katmandaki nöron sayısını 1'den 2'ye çıkarmayı deneyin. Ayrıca, doğrusal bir etkinleştirme yerine ReLU gibi doğrusal olmayan bir etkinleştirmeye geçmeyi de deneyin. Doğrusal olmayan öğeleri öğrenebilen bir model oluşturabilir misiniz? Verileri etkili bir şekilde
modelleyebilir mi?
3. Görev: ReLU gibi doğrusal olmayan bir etkinleştirme kullanarak gizli katmandaki nöron sayısını 3'ten 3'e çıkarmayı deneyin. Verileri etkili bir şekilde modelleyebilir mi? Model kalitesi, çalıştırmadan çalıştırmaya nasıl değişiyor?
4. Görev: Katman başına gizli katman ve nöron ekleyerek veya kaldırarak denemelere devam edin. Öğrenme oranlarını, normalleştirmeyi ve diğer öğrenme ayarlarını da değiştirebilirsiniz. 0,177 veya daha düşük bir test kaybına sahip olabileceğiniz en küçük nöron ve katman sayısı nedir?
Model boyutunu büyüttüğümüzde uyum sağlanıyor mu yoksa ne kadar hızlı örtüşüyor?
Bu modelin iyi bir modele ulaşma sıklığı değişiyor mu? Örneğin, aşağıdaki mimariyi deneyin:
- 3 nöronlu ilk gizli katman.
- 3 nöronlu ikinci gizli katman.
- 2 nöronlu üçüncü gizli katman.
(Yanıtlar egzersizin hemen altında görünür.)
1. Görevin yanıtı için artı simgesini tıklayın.
Etkinleştirme Doğrusal olarak ayarlandığından bu model hiçbir doğrusallık öğrenemez. Kaybın çok yüksek olduğunu ve modelin verilerden uygun olmadığını söylüyoruz.
2. Görevin yanıtı için artı simgesini tıklayın.
Doğrusal olmayan etkinleştirme işlevi, doğrusal olmayan modelleri öğrenebilir. Bununla birlikte, 2 nöronlu tek bir gizli katman bu veri kümesindeki tüm doğrusal olmayanları yansıtamaz ve gürültü olmadan bile yüksek kaybı olur: Yine de verilere uygunsuzdur. Bu egzersizler belirleyici değildir. Dolayısıyla bazı çalıştırmalar etkili bir model öğrenmezken diğer çalıştırmalar oldukça iyi sonuç verir.
En iyi model, beklediğiniz şekle sahip olmayabilir!
3. Görevin yanıtı için artı simgesini tıklayın.
Bu alıştırmada, Playground'un belirsiz olmayan yapısı dikkat çekiyor. Veri kümesini modellemek için 3 nöronlu tek bir gizli katman (gürültü olmadan) yeterlidir ancak tüm çalıştırmalar iyi bir modele dönüşmez.
XOR işlevi, 3 yarım uçak (RELU etkinleştirme) kombinasyonu olarak ifade edilebileceği için 3 nöron yeterlidir. Bu, tek tek nöronların çıkışını gösteren nöron görüntülerine bakarak görebilirsiniz. 3 nöron ve ReLU etkinleştirmesiyle iyi bir modelde neredeyse dikey bir çizgiye sahip olan 1 görüntü, X1 değerinin pozitif (veya negatif; işaret değiştirilebilir), 1'i yatay çizgisi olan 1 resim, X2 işaretinin işareti ve çapraz çizgili 1 resim bulunur.
Bununla birlikte, her çalıştırma iyi bir modele dönüşmeyebilir. Bazı çalıştırmalar, 2 nöronlu bir modelden daha iyi performans gösterir ve bu gibi durumlarda yinelenen nöronları görebilirsiniz.
4. Görevin yanıtı için artı simgesini tıklayın.
3 nöronlu tek bir gizli katman verileri modelleyebilir, ancak yedekleme yoktur. Bu nedenle, birçok çalıştırmada bir nöronu etkili bir şekilde kaybeder ve iyi bir model öğrenmez. 3'ün üzerinde nörona sahip tek bir katmanın yedekliliği daha fazladır ve bu nedenle, iyi bir modele yönelme olasılığı daha yüksektir.
Gördüğümüz gibi, yalnızca 2 nöronlu tek bir gizli katman verileri de modelleyemez. Bunu denerseniz, çıkış katmanındaki tüm öğelerin yalnızca bu iki düğümdeki çizgilerden oluşan şekiller olabileceğini görebilirsiniz. Bu durumda, daha ayrıntılı bir ağ, veri kümesini yalnızca ilk gizli katmandan daha iyi modelleyebilir: İkinci katmandaki bağımsız nöronlar, ilk katmanda nöronları birleştirerek sağ üst çeyrek gibi daha karmaşık şekilleri modelleyebilir. Bu ikinci gizli katmanı eklemek, veri kümesini yalnızca ilk gizli katmandan daha iyi şekilde modelleyebilir. Bununla birlikte, ilk katmanın içine daha fazla düğüm eklemek daha mantıklı olabilir. Böylece, ikinci katmanın şekillerini oluşturduğu kitin bir parçası haline gelir.
Bununla birlikte, ilk gizli katmanda 1 nöronlu bir model ne kadar derin olursa olsun iyi bir modeli öğrenemez. Bunun nedeni, ilk katmanın çıkışının yalnızca bir boyut (genellikle çapraz yönde bir çizgi) boyunca değişmesidir. Bu da veri kümesinin iyi modellenmesi için yeterli değildir. Sonraki katmanlar bunu ne kadar karmaşık hale getirebileceğini telafi edemez. Giriş verilerindeki bilgiler kurtarılamaz.
Bunun gibi basit bir sorun için küçük bir ağa sahip olmak yerine çok sayıda nörondan oluşan çok sayıda katmanımız olsaydı ne olurdu? Gördüğümüz gibi, ilk katman çok sayıda farklı çizgiyi deneyebilir. İkinci katman, bunları çok sayıda farklı şekilde bir araya getirebilir.
Sonraki katmanlarda çok sayıda şekil aşağı doğru uzanır.
Modelin birçok farklı gizli nöron üzerinden çok sayıda farklı şekli değerlendirmesine izin vererek modelin eğitim kümesindeki gürültüye kolayca uydurması için yeterli alan oluşturmuş oldunuz. Böylece, bu karmaşık şekiller, genel kesin referans yerine eğitim verilerinin formlarıyla uyumlu hale gelebilir. Bu örnekte, daha büyük modellerin tam veri noktalarıyla eşleşecek karmaşık sınırları olabilir. Ekstrem durumlarda, büyük bir model tek bir gürültü noktasının etrafında bir ada öğrenebilir ve buna veriler deniyor. Modelin çok daha büyük olmasına izin verdiğinizde, sorunun çözülmesi için yeterli sayıda nöronla çalışırken basit modelden genellikle daha kötü performans gösterdiğini görürsünüz.
Nöral Net Başlatma
Bu alıştırmada tekrar XOR verileri kullanılmıştır ancak Nöral Ağların eğitiminin tekrarlanabilirliğine ve başlatmanın önemine bakılmıştır.
1. Görev: Modeli dört veya beş kez verildiği şekilde çalıştırın. Her denemeden önce yeni bir rastgele başlatma hakkında bilgi edinmek için Ağı sıfırla düğmesine basın.
(Ağı sıfırla düğmesi, Oynat düğmesinin hemen sol tarafındaki dairesel sıfırlama okudur.) Çakışmayı sağlamak için her deneyin en az 500 adım çalıştırmasına izin verin. Her model çıkışı hangi şekilde birleşir?
Bu, dönüşüm dışı optimizasyonda başlatmanın rolü hakkında ne anlama geliyor?
2. Görev: Katman ve birkaç ekstra düğüm ekleyerek modeli biraz daha karmaşık hale getirmeyi deneyin. 1. Görev'deki denemeleri tekrarlayın. Bu işlem, sonuçlarda ek kararlılık sağlar mı?
(Yanıtlar egzersizin hemen altında görünür.)
1. Görevin yanıtı için artı simgesini tıklayın.
Öğrenilen modelin her çalıştırmasında farklı şekiller vardı. Birleştirilmiş test kaybı, en düşükten en yükseğe 2 kata kadar değişti.
2. Görevin yanıtı için artı simgesini tıklayın.
Katman ve fazladan düğümler eklendiğinde daha fazla tekrarlanabilir sonuç elde edildi.
Her çalıştırmada, elde edilen model hemen hemen aynıydı. Ayrıca, birleştirilen test kaybı, çalıştırmalar arasında daha az değişkenlik gösterdi.
Nöral Net Spiral
Bu veri kümesi gürültülü bir spiraldir. Elbette bir doğrusal model burada başarısız olur, ancak manuel olarak tanımlanan özellik
havuzlarının oluşturulması bile zor olabilir.
1. Görev: Yalnızca X1 ve X2 kullanarak en iyi modeli eğitin. Katman ve nöron ekleyebilir veya kaldırabilir, öğrenme hızı, normalleştirme hızı ve toplu boyut gibi öğrenme ayarlarını değiştirebilirsiniz. Elde edebileceğiniz en iyi test kaybı nedir? Model çıkış yüzeyi ne kadar akıcı?
2. Görev: Nöral Ağlarla bile olsa en iyi performansı elde etmek için genellikle bir miktar özellik mühendisliği gerekir. Ek çapraz ürün özelliklerini veya sin(X1) ve sin(X2) gibi diğer dönüşümleri eklemeyi deneyin. Daha iyi bir model olur mu? Model çıkışı daha akıcı mı?
(Yanıtlar egzersizin hemen altında görünür.)
Olası yanıtlar için artı simgesini tıklayın.
Aşağıdaki videoda, test kaybını en aza indiren spiral veriler için bir modeli eğitmek üzere Playground'da hiperparametrelerin nasıl seçileceği açıklanmaktadır.