PyTorch - Sinir Ağı Temelleri
Sinir ağının ana prensibi, yapay nöron veya algılayıcı gibi temel unsurların bir koleksiyonunu içerir. Toplam aktivasyon potansiyelinden büyükse bir ikili çıktı üreten x1, x2… .. xn gibi birkaç temel giriş içerir.
Örnek nöronun şematik temsili aşağıda belirtilmiştir -
Üretilen çıktı, aktivasyon potansiyeli veya önyargı ile ağırlıklı toplam olarak kabul edilebilir.
$$ Çıktı = \ sum_jw_jx_j + Bias $$
Tipik sinir ağı mimarisi aşağıda açıklanmıştır -
Giriş ve çıkış arasındaki katmanlara gizli katmanlar adı verilir ve katmanlar arasındaki bağlantıların yoğunluğu ve türü konfigürasyondur. Örneğin, tamamen bağlı bir konfigürasyon, L + 1'inkilere bağlı L katmanının tüm nöronlarına sahiptir. Daha belirgin bir yerelleştirme için, yalnızca yerel bir mahalleyi, örneğin dokuz nöronu bir sonraki katmana bağlayabiliriz. Şekil 1-9, yoğun bağlantılara sahip iki gizli katmanı göstermektedir.
Çeşitli sinir ağları aşağıdaki gibidir -
İleri Beslemeli Sinir Ağları
İleri beslemeli sinir ağları, sinir ağı ailesinin temel birimlerini içerir. Bu tür bir sinir ağındaki verilerin hareketi, mevcut gizli katmanlar aracılığıyla girdi katmanından çıktı katmanına doğrudur. Bir katmanın çıktısı, ağ mimarisindeki her türlü döngü üzerinde kısıtlamalara sahip giriş katmanı olarak hizmet eder.
Tekrarlayan Sinir Ağları
Tekrarlayan Sinir Ağları, veri modelinin bir süre boyunca sonuç olarak değiştiği zamandır. RNN'de, belirtilen sinir ağında girdi parametrelerini kabul etmek ve çıktı parametrelerini görüntülemek için aynı katman uygulanır.
Sinir ağları torch.nn paketi kullanılarak oluşturulabilir.
Basit bir ileri beslemeli ağdır. Girdiyi alır, birkaç katmandan arka arkaya besler ve sonunda çıktıyı verir.
PyTorch'un yardımıyla, bir sinir ağı için tipik eğitim prosedürü için aşağıdaki adımları kullanabiliriz -
- Bazı öğrenilebilir parametreleri (veya ağırlıkları) olan sinir ağını tanımlayın.
- Veri girdilerinin üzerinde yineleyin.
- Ağ üzerinden işlem girişi.
- Kaybı hesaplayın (çıktının doğru olmaktan ne kadar uzak olduğu).
- Gradyanları ağın parametrelerine geri yayın.
- Genellikle aşağıda verilen basit bir güncelleme kullanarak ağın ağırlıklarını güncelleyin
rule: weight = weight -learning_rate * gradient