Geri yayılım algoritması c. Geri yayılım yöntemini kullanarak çok katmanlı bir sinir ağını eğitmek için algoritma

Hedefler geri yayılım basittir: her ağırlığı, genel hataya ne kadar katkıda bulunduğuyla orantılı olarak ayarlayın. Her bir ağırlığın hatasını yinelemeli olarak azaltırsak, sonunda iyi tahminler yapan bir ağırlık setine sahip oluruz.

Zincir Kuralını Güncelleme

Uzun bir iç içe geçmiş denklemler dizisi olarak düşünülebilir. İleri yayılım hakkında böyle düşünüyorsanız, geri yayılım sadece bir uygulamadır zincir kuralları(karmaşık fonksiyon türevi) iç içe geçmiş bir denklemdeki herhangi bir değişkene göre kayıpların türevlerini bulmak için. İleri yayılım fonksiyonunu dikkate alarak:

F(x)=A(B(C(x))))

A, B ve C farklı katmanlardadır. Zincir kuralını kullanarak f(x)'in x'e göre türevini kolayca hesaplayabiliriz:

F'(x)=f'(A)⋅A'(B)⋅B'(C)⋅C'(x)

Türev ne olacak? B? göre türevini bulmak için B B(C(x))'in bir sabit olduğunu varsayarak onu yer tutucu bir değişkenle değiştirebilirsiniz. B ve göre türevi aramaya devam edin B standart.

F'(B)=f'(A)⋅A'(B)

Bu basit yöntem, bir fonksiyon içindeki herhangi bir değişkene uzanır ve bize şunu sağlar: etkiyi doğru bir şekilde belirlemek her değişken genel sonuca göre değişir.

Zincirleme kuralının uygulanması

Ağdaki herhangi bir ağırlığa göre kaybın türevini hesaplamak için zincir kuralını kullanalım. Zincirleme kuralı, her ağırlığın genel hatamıza ne kadar katkıda bulunduğunu ve hatayı azaltmak için her ağırlığın hangi yönde güncellenmesi gerektiğini belirlememize yardımcı olacaktır. Tahmin yapmak ve toplam hatayı veya kaybı hesaplamak için ihtiyacınız olan denklemler şunlardır:

Bir nörondan oluşan bir ağ verildiğinde, toplam kayıp sinir ağı şu şekilde hesaplanabilir:

Maliyet=C(R(Z(XW))))

Zincir kuralını kullanarak kaybın W ağırlığına göre türevini kolaylıkla bulabiliriz.

C′(W)=C′(R)⋅R′(Z)⋅Z′(W)=(y^−y)⋅R′(Z)⋅X

Artık kaybın herhangi bir ağırlığa göre türevini hesaplayacak denklemimiz olduğuna göre, sinir ağı örneğine bakalım:

göre zararın türevi nedir? Wo?

C′(WO)=C′(y^)⋅y^′(ZO)⋅Z′O(WO)=(y^−y)⋅R′(ZO)⋅H

Peki ya ne? Bunu bulmak için, bir elemanı olan bir fonksiyona ulaşana kadar zincirleme kuralını yinelemeli olarak uygulayarak fonksiyonumuza geri dönmeye devam ederiz. ne.

C′(Wh)=C′(y^)⋅O′(Zo)⋅Z′o(H)⋅H′(Zh)⋅Z′h(Wh)=(y^−y)⋅R′(Zo )⋅Wo⋅R′(Zh)⋅X

Ve sırf eğlence olsun diye, ağımızın 10 gizli katmanı olsaydı ne olurdu?İlk ağırlık w1 için kaybın türevi nedir?

C(w1)=(dC/dy^)⋅(dy^/dZ11)⋅(dZ11/dH10)⋅(dH10/dZ10)⋅(dZ10/dH9)⋅(dH9/dZ9)⋅(dZ9/dH8)⋅( dH8/dZ8)⋅(dZ8/dH7)⋅(dH7/dZ7)⋅(dZ7/dH6)⋅(dH6/dZ6)⋅(dZ6/dH5)⋅(dH5/dZ5)⋅(dZ5/dH4)⋅(dH4/ dZ4)⋅(dZ4/dH3)⋅(dH3/dZ3)⋅(dZ3/dH2)⋅(dH2/dZ2)⋅(dZ2/dH1)⋅(dH1/dZ1)⋅(dZ1/dW1)

Bir model fark ettiniz mi? Ağımız derinleştikçe türev kayıplarını hesaplamak için gereken hesaplama miktarı da artıyor. Ayrıca not edin türev hesaplamalarımızdaki fazlalık. Her katmanın kayıp türevi, üstündeki katmanlar tarafından önceden hesaplanmış olan öğelere iki yeni öğe ekler. Peki ya çalışmalarımızı kaydetmenin ve bu tekrarlanan hesaplamalardan kaçınmanın bir yolu olsaydı?

Notlandırmayla çalışmayı kaydetme

Notlandırma bilgisayar biliminde basit bir anlamı olan bir terimdir: aynı şeyleri tekrar tekrar sayma. Notlandırmada, aynı işlevin yeniden hesaplanmasını önlemek için önceden hesaplanan sonuçları saklarız. Bu, biri geri yayılım olan özyinelemeli işlevleri hızlandırmak için kullanışlıdır. Aşağıdaki türev denklemlerindeki örüntüye dikkat edin.

Bu katmanların her biri aynı türevleri yeniden hesaplıyor! Her ağırlık için uzun türev denklemleri yazmak yerine, hatayı ağ üzerinden döndürürken işimizi kaydetmek için not almayı kullanabiliriz. Bunu yapmak için, birlikte ifade eden 3 denklemi (aşağıda) tanımlıyoruz. kısa biçim geri yayılım için gerekli tüm hesaplamalar. Matematik aynıdır ancak denklemler, daha önce yaptığımız hesaplamaları takip etmek ve ağda geriye doğru giderken çalışmalarımızı kaydetmek için kullanabileceğimiz güzel bir kısayol sağlar.

İlk önce hesaplıyoruz çıktı katmanı hatası ve sonucu önündeki gizli katmana iletin. Gizli katmanın hatasını hesapladıktan sonra değerini bir önceki gizli katmana geri aktarıyoruz. Ve benzeri. Ağa geri dönersek, her katmana 3. formülü uygulayarak kaybın o katmanın ağırlıklarına göre türevini hesaplıyoruz. Bu türev bize şunu söylüyor: ağırlıklarımızı hangi yöne ayarlamamız gerekiyor genel kayıpları azaltmak için.

Not: terim katman hatası kayıpların türevini ifade eder giriş katman. Şu soruyu yanıtlıyor: Bu katmanın girişi değiştiğinde kayıp fonksiyonunun çıkışı nasıl değişir?

Çıkış Katmanı Hatası

Çıkış katmanının hatasını hesaplamak için, çıkış katmanının girişine göre kaybın türevini bulmak gerekir, Zo. Bu şu soruyu yanıtlıyor: Son katmanın ağırlıkları ağdaki genel hatayı nasıl etkiler? O halde türev:

C′(Zo)=(y^−y)⋅R′(Zo)

Kaydı kolaylaştırmak için uygulayıcılar MO genellikle diziyi değiştirir (y^−y)∗R"(Zo) terim Eo. Yani çıktı katmanı hatasına ilişkin formülümüz şu şekildedir:

Eo=(y^−y)⋅R'(Zo)

Gizli katman hatası

Gizli katmanın hatasını hesaplamak için, gizli katmanın girişine göre kaybın türevini bulmanız gerekir, Zh.

Eh=Eo⋅Wo⋅R'(Zh)

Bu formül geri yayılımın temelidir. Geçerli katmanın hatasını hesaplayıp ağırlıklı hatayı bir önceki katmana geri aktarıyoruz ve ilk gizli katmanımıza ulaşana kadar işleme devam ediyoruz. Yol boyunca, her ağırlığa göre kaybın türevini kullanarak ağırlıkları güncelliyoruz.

Herhangi bir ağırlığa göre kaybın türevi

Kayıpların çıktı katmanının ağırlığına göre türevi için formülümüze dönelim. Wo.

C′(WO)=(y^−y)⋅R′(ZO)⋅H

Çıkış katmanı hatası için ilk kısmı bir denklemle değiştirebileceğimizi biliyoruz. Ah. H gizli katmanın etkinleştirilmesini temsil eder.

C'(Wo)=Eo⋅H

Böylece, ağımızdaki herhangi bir ağırlığa göre kaybın türevini bulmak için, karşılık gelen katmanın hatasını girdisiyle (önceki katmanın çıktısı) çarpmamız yeterlidir.

C′(w)=CurrentLayerError⋅CurrentLayerInput

Not: giriş ağırlıklı girdi Z'yi değil, önceki katmandaki aktivasyonu ifade eder.

Özetlemek gerekirse

Geri yayılımın temelini oluşturan son 3 denklemi burada bulabilirsiniz.

Örneğimizi kullanarak görselleştirilen süreç aşağıdadır sinir ağı daha yüksek:

Geri Yayılım: Örnek Kod

kesinlikle relu_prime(z): eğer z > 0: geri dönmek 1 geri dönmek 0 kesinlikle maliyet(yHat, y): geri dönmek 0,5 * (yHat - y)**2 kesinlikle cost_prime(yHat, y): geri dönmek yHat-y kesinlikle backprop(x, y, Wh, Wo, lr): yHat = feed_forward(x, Wh, Wo) # Katman Hatası Eo = (yHat - y) * relu_prime(Zo) Eh = Eo * Wo * relu_prime(Zh) # Ağırlıklar için maliyet türevi dWo = Eo * H dWh = Eh * x # Ağırlıkları güncelle Wh -= lr * dWh Wo -= lr * dWo

Delta, çıktı katmanının hata değerini kullanarak bir algılayıcıyı eğitirken kullanılan bir kuraldır. Ağın iki veya daha fazla katmanı varsa, ara katmanlar için açık bir hata değeri yoktur ve delta kuralı kullanılamaz.

Geri yayılımın arkasındaki ana fikir, gizli katman nöronları için hata tahmininin nasıl elde edileceğidir. Dikkat ünlüÇıkış katmanındaki nöronların yaptığı hatalar, bilinmiyor Gizli katman nöronlarının hataları. Gizli katman nöronu ile çıkış nöronu arasındaki sinaptik bağlantının değeri ne kadar büyük olursa, daha güçlü hata birincisi ikincinin hatasını etkiler. Sonuç olarak, gizli katmanların elemanlarının hatasının tahmini, sonraki katmanların hatalarının ağırlıklı toplamı olarak elde edilebilir.

Delta kuralının bir genellemesi olan geri yayılım algoritması (BEP), herhangi bir sayıda katmana sahip bir PR ANN'yi eğitmenize olanak tanır. AORO'nun aslında bir çeşitlilik kullandığı söylenebilir. gradyan inişi ağırlıkların minimum hata yönünde yeniden düzenlenmesi.

AOR kullanılırken aktivasyon fonksiyonu olarak sigmoid fonksiyonunun kullanıldığı varsayılır. Bu fonksiyon basit bir türevi olduğundan hesaplama çabasından tasarruf sağlar:

Sigmoid fonksiyonu güçlü sinyalleri 1 ile sınırlandırır ve zayıf sinyalleri güçlendirir.

Geri yayılım algoritmasının anlamı, eğitim sırasında ağa ilk olarak çıkış hatasının hesaplandığı bir görüntünün sunulmasıdır. Bu hata daha sonra ağ boyunca ters yönde yayılır ve nöronlar arası bağlantıların ağırlıklarını değiştirir.

Algoritma, bir algılayıcının eğitimi sırasındakiyle aynı eylem dizisini içerir. İlk olarak, nöronlar arası bağlantıların ağırlıkları elde edilir rastgele değerler, ardından aşağıdaki adımlar gerçekleştirilir:

1) Bir eğitim çifti seçilir ( X , Z*), X girişe sağlanan;

2) Ağ çıkışı hesaplanır Z = F(e);

3) Çıkış hatası hesaplanır e;

4) Ağ ağırlıkları hataları en aza indirecek şekilde ayarlanır;

Adım 1 ve 2, ağ boyunca ileri yayılımdır ve 3 ve 4, geri yayılımdır.

Eğitimden önce mevcut girdi-çıktı çiftlerini eğitim ve test olmak üzere iki kısma ayırmak gerekir.

Test çiftleri, eğitimin kalitesini kontrol etmek için kullanılır - sinir ağı, test çifti tarafından belirtilen girdi için teste yakın bir çıktı üretiyorsa iyi eğitilmiştir.

Eğitim sırasında, sinir ağının eğitim verileri için iyi sonuçlar, ancak test verileri için kötü sonuçlar gösterdiği bir durum mümkündür. Bunun iki nedeni olabilir:

1. Test verileri eğitim verilerinden çok farklıdır; eğitim çiftleri giriş alanının tüm alanlarını kapsamıyordu.


2. “Yeniden eğitim” olgusu ortaya çıktı ( aşırı uyum), sinir ağının davranışının çözülen problemden daha karmaşık olduğu ortaya çıktığında.

Son durum Bir fonksiyona noktalarla yaklaşma problemi Şekil 2'de gösterilmektedir. Şekil 3.3'te beyaz daireler test verilerini, koyu daireler ise eğitim verilerini göstermektedir.

Çok katmanlı sinir ağlarında, sonuncusu dışındaki tüm katmanlardaki nöronların optimal çıktı değerleri kural olarak bilinmemektedir; üç veya daha fazla katmanlı bir algılayıcı artık yalnızca hata değerleri tarafından yönlendirilerek eğitilemez; ağ çıkışlarında

Bu sorunu çözmek için seçeneklerden biri, sinir ağının her katmanı için giriş sinyallerine karşılık gelen çıkış sinyalleri setleri geliştirmektir; bu elbette çok emek yoğun bir işlemdir ve her zaman mümkün değildir. İkinci seçenek ise şu şekildedir: sinapsların ağırlık katsayılarını dinamik olarak ayarlamak için, bu sırada kural olarak en çok seçilirler zayıf bağlar ve bir yönde veya başka bir yönde küçük miktarda değişiklik yapılır ve yalnızca tüm ağın çıkışındaki hatanın azalmasına neden olan değişiklikler kaydedilir. bu yöntem, aksine

görünürdeki basitlik, hantal rutin hesaplamalar gerektirir. Ve son olarak, daha kabul edilebilir olan üçüncü seçenek, hata sinyallerinin sinir ağının çıkışlarından girişlerine, normal çalışmadaki sinyallerin doğrudan yayılmasının tersi yönde yayılmasıdır. algoritmaya geri yayılım prosedürü denir (hata geri yayılım) Aşağıda tartışılan odur

Geri yayılım algoritması, en aza indirmek için kullanılan yinelemeli bir gradyan öğrenme algoritmasıdır. standart sapma Seri bağlantılı çok katmanlı sinir ağlarının gerekli çıkışlarından gelen akım

Yönteme göre en küçük kareler sinir ağının amaç hata fonksiyonu minimize edilecek değerdir

girişlerine bir görüntü beslendiğinde sinir ağının çıkış katmanındaki nöronun gerçek çıkış durumu nerede, bu nöronun gerekli çıkış durumu

Toplama, çıktı katmanının tüm nöronları ve ağ tarafından işlenen tüm görüntüler üzerinde gerçekleştirilir. Gradyan iniş yöntemi kullanılarak yapılan minimizasyon, ağırlık katsayılarının aşağıdaki gibi ayarlanmasını sağlar.

bir katman nöronunu bir katman nöronuna bağlayan sinaptik bağlantının ağırlık katsayısı nerede - öğrenme oranı katsayısı,

Karmaşık fonksiyonların farklılaşması kuralına uygun olarak

nöronun giriş sinyallerinin ağırlıklı toplamı ve aktivasyon fonksiyonunun argümanı nerede Aktivasyon fonksiyonunun türevinin tüm apsis ekseninde belirlenmesi gerektiğinden, birim atlama fonksiyonu ve homojen olmayan diğer aktivasyon fonksiyonları uygun değildir. söz konusu sinir ağları Aşağıdakileri kullanırlar. pürüzsüz işlevler, Nasıl hiperbolik tanjant veya üstel bir klasik sigmoid (bkz. Tablo 1 1) Örneğin, hiperbolik tanjant durumunda

Üçüncü çarpan önceki katmanın nöronunun çıkışına eşittir

(1.11)'deki ilk faktöre gelince, kolaylıkla aşağıdaki gibi genişletilebilir:

Burada toplama, yeni bir değişken getirilerek katmanın nöronları arasında gerçekleştirilir:

bir katmanın değerlerini eski bir katmanın değerlerinden hesaplamak için özyinelemeli bir formül elde ederiz

Çıkış katmanı için:

Şimdi (1.10)’u genişletilmiş biçimde yazabiliriz:

Bazen ağırlık düzeltme işlemine bir miktar atalet kazandırmak ve yüzeyde hareket ederken keskin sıçramaları yumuşatmak için amaç fonksiyonu, (1.17), önceki iterasyondaki ağırlık değişiminin değeriyle desteklenir.

eylemsizlik katsayısı nerede; geçerli yineleme numarası.

Böylece, geri yayılım prosedürünü kullanarak bir sinir ağını eğitmek için kullanılan algoritmanın tamamı aşağıdaki şekilde oluşturulmuştur.

ADIM 1. Olası görüntülerden birini ağ girişlerine uygulayın ve sinir ağının normal çalışma modunda, sinyaller girişlerden çıkışlara yayıldığında ikincisinin değerlerini hesaplayın. Şunu hatırlatalım:

önyargıyı belirleyen sabit çıkış durumuna sahip bir nöron dikkate alındığında katmandaki nöron sayısı nerede; katmandaki nöron girişi

sigmoid nerede,

giriş görüntüsünün vektör bileşeni nerede.

ADIM 4. Sinir ağındaki tüm ağırlıkları ayarlayın:

ADIM 5. Ağ hatası önemliyse 1. adıma gidin. Aksi halde sonlandırın.

1. adımdaki ağlar dönüşümlü olarak rastgele sıra Tüm eğitim görüntüleri, mecazi anlamda ağın bazılarını ezberlerken bazılarını unutmaması için sunulmaktadır.

İfadeden (1.17) çıkış değeri sıfıra yaklaştığında öğrenme verimliliğinin gözle görülür şekilde azaldığı sonucu çıkar. İkili giriş vektörleri ile ağırlıkların ortalama yarısı ayarlanmayacaktır, dolayısıyla bölge olası değerler Lojistik fonksiyonların basit modifikasyonları ile elde edilen sınırlar dahilinde nöron çıktılarının kaydırılması arzu edilir. Örneğin, üstel bir sigmoid şu forma dönüştürülür:

Bir sinir ağının kapasitesi sorusunu, yani girişlerine sunulan ve tanımayı öğrenebileceği görüntülerin sayısını ele alalım. İkiden fazla katmana sahip ağlar için bu soru hala cevapsızdır. İki katmanlı ağlar için deterministik ağ kapasitesi şu şekilde tahmin edilir:

burada ayarlanabilir ağırlıkların sayısı, çıktı katmanındaki nöronların sayısıdır.

Bu ifade bazı kısıtlamalar dikkate alınarak elde edilmiştir. Birincisi, gizli katmandaki girdi ve nöron sayısı eşitsizliği karşılamalıdır. İkinci olarak ise yukarıdaki tahmin, nöronların eşik aktivasyon fonksiyonlarına sahip ağlar ve pürüzsüz aktivasyon fonksiyonlarına sahip ağların kapasitesi için yapılmıştır, örneğin (1.23), genellikle daha büyüktür. Ek olarak deterministik terimi, sonuçta ortaya çıkan kapasite tahmininin, girdiler tarafından temsil edilebilecek tüm girdi modelleri için uygun olduğu anlamına gelir. Gerçekte, girdi modellerinin dağılımı, sinir ağının genelleşmesine ve dolayısıyla gerçek kapasitesinin artmasına olanak tanıyan bir miktar düzenliliğe sahip olma eğilimindedir. Görsellerin dağıtımından bu yana genel durum, önceden bilinmez, gerçek kapasiteden ancak geçici olarak bahsedebiliriz, ancak genellikle deterministik kapasitenin iki katıdır.

Bir sinir ağının kapasitesi sorunu, görüntülerin son sınıflandırmasını gerçekleştiren ağın çıktı katmanının gerekli gücü sorunuyla yakından ilgilidir. Örneğin, bir dizi giriş görüntüsünü iki sınıfa bölmek için bir çıkış nöronu yeterlidir. Bu durumda her mantıksal seviye ayrı bir sınıf belirleyecektir. Eşik aktivasyon fonksiyonuna sahip iki çıkış nöronunda dört sınıf kodlanabilir. Sınıflandırmanın güvenilirliğini arttırmak için, her sınıfa çıktı katmanında bir nöron veya daha da iyisi, her biri bir görüntünün kendi derecesine sahip bir sınıfa ait olup olmadığını belirlemek üzere eğitilmiş birkaç nöron atayarak artıklığın getirilmesi arzu edilir. güven, örneğin: yüksek, orta ve düşük. Bu tür sinir ağları, girdi görüntülerinin bulanık (bulanık veya kesişen) kümeler halinde birleştirilmesine olanak tanır. Bu özellik bu tür ağları birbirine yaklaştırıyor gerçek koşullar Biyolojik sinir ağlarının işleyişi.

Söz konusu sinir ağının birkaç " darboğazlar" İlk olarak, süreçte büyük olumlu ya da negatif değerler ağırlıklar nöronların sigmoidleri üzerindeki çalışma noktasını doygunluk bölgesine kaydırabilir. Lojistik fonksiyonun türevinin küçük değerleri, (1.15) ve (1.16)'ya göre öğrenmenin durmasına yol açacak ve bu da ağı felç edecektir. İkinci olarak, gradyan iniş yöntemini kullanmak amaç fonksiyonunun global minimumunu bulmayı garanti etmez. Bu, öğrenme oranının seçilmesi meselesiyle yakından ilgilidir. Ağırlık artışları ve dolayısıyla ekstremumu bulmak için öğrenme oranı sonsuz küçük olmalıdır, ancak bu durumda öğrenme

kabul edilemeyecek kadar yavaş gerçekleşiyor. Öte yandan ağırlıklarda çok büyük ayarlamalar yapılması öğrenme sürecinde kalıcı istikrarsızlığa yol açabilir. Bu nedenle, öğrenme süreci boyunca giderek azalan öğrenme oranı katsayısı 1] olarak genellikle 1'den küçük bir sayı (örneğin 0,1) seçilir. Ek olarak, yerel minimumlarda ağın kazara isabetlerini hariç tutmak için, bazen ağırlık katsayılarının değerleri stabilize edildikten sonra, gradyan inişini başlatmak için 7 kısa bir süre için önemli ölçüde artırılır. yeni nokta. Bu prosedürün birkaç kez tekrarlanması ağı aynı duruma getirirse, global minimumun bulunduğunu varsayabiliriz.

Yerel minimumları ve ağ felçlerini ortadan kaldırmanın başka bir yöntemi de stokastik sinir ağlarını kullanmaktır.

Yukarıdakilerin geometrik bir yorumunu verelim.

Geri yayılım algoritmasında hata yüzeyinin gradyan vektörü hesaplanır. Bu vektör, mevcut noktadan itibaren yüzey boyunca en kısa inişin yönünü gösterir; bu doğrultuda hareket, hatanın azalmasına yol açar. Azalan adımlar dizisi minimum bir türe veya diğerine yol açacaktır. Buradaki zorluk adımların uzunluğunu seçme meselesidir.

Şu tarihte: büyük boy Adım atıldığında yakınsama daha hızlı olacaktır ancak çözümün üzerinden atlama tehlikesi vardır. karmaşık şekilÖrneğin dik eğimli dar bir vadide ilerlemek, bir taraftan diğer tarafa atlamak gibi hatalı yüzeylerin yanlış yöne gitmesi. Tam tersine ne zaman küçük adım ve doğru yöne gitmek çok fazla yineleme gerektirecektir. Uygulamada adım büyüklüğü eğimin dikliği ile orantılı olarak alınır, böylece algoritma minimuma yakın yavaşlar. Doğru seçimöğrenme hızı şunlara bağlıdır: özel görev ve genellikle deneysel olarak yapılır. Bu sabit aynı zamanda zamana da bağlı olabilir ve algoritma ilerledikçe azalabilir.

Tipik olarak bu algoritma bir momentum (veya atalet) terimini içerecek şekilde değiştirilir. Bu, sabit bir yönde ilerlemeyi destekler; böylece aynı yönde birkaç adım atılmışsa algoritma hızı artırır; bu da bazen yerel bir minimumdan kaçınmanıza ve düz alanlardan daha hızlı geçmenize olanak tanır.

Algoritmanın her adımında tüm eğitim örnekleri sırasıyla ağ girişine beslenir, ağın gerçek çıkış değerleri gerekli değerlerle karşılaştırılır ve hata hesaplanır. Hatanın değeri ve hata yüzeyinin eğimi

ölçekleri ayarlamak için kullanılır, ardından tüm eylemler tekrarlanır. Öğrenme süreci ya belirli sayıda dönem geçtiğinde ya da hata belirli bir küçük düzeye ulaştığında ya da hatanın azalması durduğunda durur.

Bir sinir ağının genelleştirilmesi ve yeniden eğitilmesi sorunlarını daha ayrıntılı olarak ele alalım. Genelleme, bir sinir ağının orijinal eğitim setine ait olmayan veriler üzerinde doğru tahminde bulunabilme yeteneğidir. Aşırı uyum, eğitim algoritmasının çok uzun sürmesi ve ağın görev için veya mevcut veri miktarı için çok karmaşık olması durumunda ortaya çıkan aşırı uyumdur.

Belirli bir bağımlılığa sinir ağıyla değil, polinomlar aracılığıyla yaklaşma örneğini kullanarak genelleme ve yeniden eğitim sorunlarını gösterelim ve olgunun özü kesinlikle aynı olacaktır.

Polinom grafikleri olabilir farklı şekil ve terimlerin derecesi ve sayısı ne kadar yüksek olursa, bu form o kadar karmaşık olabilir. Başlangıç ​​verileri için bir polinom eğrisi (model) seçebilir ve böylece mevcut bağımlılığın bir açıklamasını elde edebilirsiniz. Veriler gürültülü olabilir, dolayısıyla en iyi modelin mevcut tüm noktalardan tam olarak geçtiği varsayılamaz. Düşük dereceli bir polinom mevcut bağımlılığı daha iyi açıklayabilir, ancak verilere yaklaşmak için yeterince esnek bir araç değildir. yüksek sipariş fazla esnek olabilir, ancak verileri tam olarak takip edecek ve gerçek ilişkiyle hiçbir ilgisi olmayan karmaşık bir biçim alacaktır.

Sinir ağları da aynı zorluklarla karşı karşıyadır. Ağlar çok sayıda ağırlıklar modellenmiştir karmaşık işlevler ve bu nedenle aşırı antrenmana eğilimlidirler. Az sayıda ağırlığa sahip ağlar, mevcut bağımlılıkları modellemek için yeterince esnek olmayabilir. Örneğin, gizli katmanları olmayan bir ağ yalnızca sıradan bir doğrusal fonksiyonu modeller.

Nasıl seçilir doğru derece ağ karmaşıklığı? Neredeyse her zaman daha karmaşık bir ağ daha küçük bir hata üretir ancak bu, kaliteli model, ancak ağın yeniden eğitilmesiyle ilgili.

Çözüm, kıyaslama çapraz doğrulamayı kullanmaktır. Bu amaçla, eğitim örneğinin bir kısmı, geri yayılım algoritmasını kullanarak ağı eğitmek için değil, algoritma sırasında sonucun bağımsız kontrolü için kullanılır. İşin başında eğitimde bir ağ hatası oluştu ve

kontrol setleri aynı olacaktır. Ağ eğitildikçe, kontrol setindeki hata gibi eğitim hatası da azalır. Kontrol hatasının azalması durursa veya hatta artmaya başlarsa, bu, ağın verilere çok yakın yaklaşmaya başladığını (aşırı eğitilmiş) ve eğitimin durdurulması gerektiğini gösterir. Böyle bir durumda ağ bu görev için çok güçlü olduğundan gizli öğelerin ve/veya katmanların sayısı azaltılmalıdır. Her iki hata da (eğitim ve çapraz doğrulama) yeterince küçük bir seviyeye ulaşmazsa, o zaman doğal olarak yeniden eğitim gerçekleşmez ve tam tersine ağ, mevcut bağımlılığı modellemek için yeterince güçlü değildir.

Tanımlanan problemler şuna yol açmaktadır: pratik çalışma Sinir ağlarında, çok sayıda farklı ağı denemeniz, bazen her birini birkaç kez eğitmeniz ve sonuçları karşılaştırmanız gerekir. Sonucun kalitesinin ana göstergesi kontrol hatasıdır. Aynı zamanda, sistem genelindeki prensip uyarınca, yaklaşık olarak eşit kontrol hatasına sahip iki ağdan daha basit olanı seçmek mantıklıdır.

Tekrarlanan deneylere duyulan ihtiyaç, kontrol kümesinin model seçiminde anahtar rol oynamaya başlamasına ve öğrenme sürecinin bir parçası haline gelmesine yol açmaktadır. Bu onun rolünü zayıflatır bağımsız kriter modelin kalitesi. Şu tarihte: büyük sayı deneyler var yüksek olasılık sağlayan iyi bir ağ seçin iyi sonuç kontrol setinde. Bununla birlikte, nihai modele uygun güvenilirliği sağlamak için, genellikle (eğitim örneklerinin hacmi buna izin verdiğinde) aşağıdakileri yaparlar: bir test örneği seti ayırın. Nihai model, eğitim ve test örnek kümelerinde elde edilen sonuçların gerçek olduğundan ve öğrenme sürecinin ürünü olmadığından emin olmak için bu kümedeki veriler üzerinde test edilir. Elbette, rolünü iyi oynayabilmesi için test seti yalnızca bir kez kullanılmalıdır: öğrenme sürecini ayarlamak için yeniden kullanılırsa aslında bir kontrol seti haline gelecektir.

Ağ eğitim sürecini hızlandırmak için, geri yayılım algoritmasının kullanımıyla ilgili çok sayıda değişiklik önerilmiştir. çeşitli işlevler hatalar, yön ve adım büyüklüklerini belirleme prosedürleri.

1) Hata fonksiyonları:

Tüm eğitim örnekleri setinde integral hata fonksiyonları;

Tamsayı ve kesirli kuvvetlerin hata fonksiyonları

2) Her yinelemede adım boyutunu belirleme prosedürleri

İkilem;

Eylemsizlik ilişkileri (yukarıya bakın);

3) Adımın yönünü belirleme prosedürleri.

İkinci dereceden türevlerin bir matrisini kullanma (Newton yöntemi);

Yönleri birkaç adımda kullanma (partan yöntemi).

Kesin olarak konuşursak, geri yayılım yöntemi, gradyanı hesaplamanın hesaplama karmaşıklığını azaltan ağ yeniden hesaplama fonksiyonunun özelliklerine dayanan, bir gradyanı hızlı bir şekilde hesaplamaya yönelik bir yöntemdir. Yöntem, eğitilmiş bağlantıların son katmanının ağırlıklarına göre kısmi türevleri hesaplamak için ağ çıkışındaki hatayı kullanır, ardından sondan bir önceki katmanın çıkışındaki hata, son katmanın ağırlıkları ve ağ hatası kullanılarak belirlenir ve süreç tekrarlanır.

Algoritmanın açıklaması

Geri yayılım, nöronları sürekli bir türevle doğrusal olmayan bir yapıya sahip olan çok katmanlı ağlar için geçerlidir, örneğin:

Bu tür doğrusal olmama, türevi hesaplamanın basitliğinden dolayı uygundur:

Ağı eğitmek için P çift sinyal vektörü kullanılır: giriş vektörü I ve ağın çıkışında alınması gereken vektör D. Ağ, basit durum, N katmandan oluşur ve sonraki katmanın her nöronu, w [n] ağırlıklarına sahip bağlantılarla önceki katmanın tüm nöronlarına bağlanır.

Doğrudan yayılımda, her katman için katmanın çıkışındaki toplam sinyal (S [n]) ve nöron çıkışındaki sinyal hesaplanır (ve saklanır). Böylece, n'inci katmanın i'inci nöronunun girişindeki sinyal:

Burada w(i,j), n'inci katmanın bağlantılarının ağırlıklarıdır. Nöron çıkış sinyali, nöronun doğrusal olmama özelliğinin toplam sinyale uygulanmasıyla hesaplanır.

Çıkış katmanı sinyali x[N], O ağının çıkış sinyali olarak kabul edilir.

O ağının çıkış sinyaline ve belirli bir giriş için ağ çıkışında elde edilmesi gereken D sinyaline dayanarak ağ hatası hesaplanır. Tipik olarak eğitim setinin tüm vektörleri üzerindeki sapmanın ortalama karesi kullanılır:

Ağı eğitmek için hata fonksiyonunun ağ ağırlıkları üzerindeki gradyanı kullanılır. Geri yayılım algoritması, hatanın "sinyali geri yayılarak" hata fonksiyonunun gradyanının hesaplanmasını içerir. Daha sonra hatanın bağlantı ağırlıklarına göre kısmi türevi aşağıdaki formül kullanılarak hesaplanır:

Burada d, çıkış katmanı için hata fonksiyonu kullanılarak hesaplanan ağ kalıntısıdır:

Ve gizli katmanlar için - önceki katmanın tutarsızlığına göre:

Hatanın bir fonksiyonu olarak sigmoid doğrusal olmama ve ortalama kare sapma durumu için:

Ağın asıl eğitimi, ağ çıkışlarındaki hatayı en aza indirecek ağırlık değerlerinin bulunmasından oluşur. Bu sorunu çözmek için birçok gradyan tabanlı veya gradyan tabanlı yöntem mevcuttur. En basit durumda ağ, gradyan vektörünün tersi yönde bağlantı ağırlıklarının küçük artışları kullanılarak eğitilir:

Bu öğrenme yöntemine "gradyan iniş optimizasyonu" adı verilir ve sinir ağları söz konusu olduğunda, genellikle geri yayılım yönteminin bir parçası olarak kabul edilir.

Fonksiyon yaklaşımı örneğini kullanarak hatanın geriye yayılım algoritmasının uygulanması

Ödev: Argüman değerlerinin bir tablosu olsun ( X Ben ) ve karşılık gelen fonksiyon değerleri ( f(x Ben )) ( Bu tablo bazı analitik hesaplamalar sırasında ortaya çıkmış olabilir. verilen fonksiyon akımın dirence bağımlılığını belirlemek için bir deney yaparken elektrik ağı arasındaki bağlantıyı tanımlarken güneş aktivitesi ve kardiyoloji merkezine yapılan ziyaretlerin sayısı, çiftçilere verilen sübvansiyon miktarı ile tarımsal üretim hacmi vb. arasında).

Matlab ortamında, tabloyla belirtilen bir fonksiyona (i=1, 20) yaklaşmak için bir sinir ağı oluşturmak ve eğitmek gerekir. Sinir ağı yaklaşım algoritmasını uygulayan ve yaklaşım sonuçlarını grafikler biçiminde görüntüleyen bir program geliştirin.

Yaklaşım, f(x) ile ilgili mevcut bilgiyi kullanarak, f(x)'e bir anlamda yakın olan z(x) yaklaşım fonksiyonunu dikkate alabilmemiz ve bunun üzerinde karşılık gelen işlemleri gerçekleştirmemize ve elde etmemize olanak sağlamasından oluşur. böyle bir değiştirmenin hatasının tahmini.

Yaklaşıklık genellikle, bazen açıkça belirtilmeyen bazı bağımlılıkların veya onu genellikle daha basit veya daha tekdüze bir bağımlılık kullanarak temsil eden bir veri kümesinin açıklaması anlamına gelir. Çoğunlukla veriler, koordinatları veri tablosu tarafından belirlenen bireysel bağlantı noktaları biçimindedir. Yaklaşım sonucu düğüm noktalarından geçmeyebilir. Bunun aksine, enterpolasyonun görevi düğüm noktalarının yakınındaki verileri bulmaktır. Bu amaçla, düğüm noktalarındaki değerleri bu noktaların koordinatlarına denk gelen uygun fonksiyonlar kullanılır.

Görev. Matlab ortamında, tabloyla belirtilen bir işleve yaklaşmak için bir sinir ağı oluşturmak ve eğitmek gereklidir (bkz. Şekil 5).

Şekil 5. Fonksiyon değerleri tablosu Matlab matematik ortamında, komut penceresinde, sinir ağı oluşturma ve eğitme programının kodunu yazıyoruz.

Bunu çözmek için, geri yayılım yöntemini kullanarak eğitim ile “klasik” çok katmanlı bir sinir ağı oluşturan newff (.) işlevini kullanacağız, yani. Sinaps ağırlıkları, hata fonksiyonu dikkate alınarak değişir; çıkış katmanında belirlenen sinir ağının gerçek ve doğru yanıtları arasındaki fark, sinyal akışına doğru ters yönde yayılır. Ağın iki gizli katmanı olacaktır. İlk katmanda 5 nöron vardır, ikincisinde - 1. İlk katmanın aktivasyon fonksiyonu "tansig"dir (sigmoid fonksiyonu, -1 ile 1 arasında değerlere sahip çıktı vektörlerini döndürür), ikincisi - "purelin" ( doğrusal fonksiyon etkinleştirme, çıkış vektörlerini değişmeden döndürür). 100 eğitim dönemi olacak. Eğitim işlevi "trainlm" - ağı eğiten bir işlev (varsayılan olarak kullanılır çünkü en iyi hizmeti sağlar) hızlı öğrenme, ancak çok fazla bellek gerektirir).

Program kodu:

P = sıfırlar (1, 20);

i = 1 için: %20 dizi oluşturma P(i) = i*0,1; %giriş (argüman) sonu T= ; %input (fonksiyon değeri) net = newff ([-1 2.09], ,("tansig" "purelin")); Bir sinir ağı ağının %oluşturulması. trainParam. dönemler = 100; %eğitim dönemi sayısını ayarlayın net=train (net,P,T); %ağ eğitimi y = sim(net,P); %eğitimli ağ anketi rakamı(1);

arsa(P,T,P,y,"o"),grid; Kaynak verinin ve sinir ağı tarafından oluşturulan fonksiyonun grafiğinin çizilmesi.

Sinir ağının sonucu.

Eğitim sonucu (bkz. Şekil 2): ​​grafik, sinir ağının eğitim süresini ve eğitim hatasını gösterir. Bu örnekte, sinir ağı 100 dönemin tamamını geçerek yavaş yavaş öğrenip hataları azaltarak 10 -2,35'e (0,00455531) ulaştı.

Şekil 2. Sinir ağı eğitiminin sonucu

Orijinal verilerin ve sinir ağı tarafından oluşturulan işlevin grafiği (bkz. Şekil 3): daireler orijinal verileri gösterir ve çizgi, sinir ağı tarafından oluşturulan işlevi gösterir. Daha sonra, elde edilen noktaları kullanarak bir regresyon oluşturabilir ve bir yaklaşım denklemi elde edebilirsiniz (bkz. Şekil 8). Kübik regresyonu kullandık çünkü grafiği elde edilen noktalardan en doğru şekilde geçiyor. Ortaya çıkan denklem şuna benzer:

y=0,049x 3 +0,88x 2 -0,006x+2,1.

Böylece, bir sinir ağı kullanarak, yalnızca geçtiği noktaların koordinatlarını bilerek bir işlevi hızlı bir şekilde bulabileceğinizi görüyoruz.

Şekil 3. Orijinal verinin ve sinir ağı tarafından oluşturulan fonksiyonun grafiği


Şekil 4. Yaklaşım fonksiyonunun grafiği

Bir ağı eğitmenin amacı, belirli bir girdi kümesinin uygulanmasının gerekli çıktı kümesine yol açacağı şekilde ağırlıklarını ayarlamaktır. Kısaca belirtmek gerekirse, bu girdi ve çıktı kümelerine vektörler adı verilecektir. Eğitim sırasında, her giriş vektörü için, gerekli çıktıyı belirten, kendisiyle eşleştirilmiş bir hedef vektörün olduğu varsayılır. Birlikte bunlara eğitim çifti denir. Tipik olarak ağ birçok çift üzerinde eğitilir.

Eğitim başlamadan önce, tüm ağırlıklara rastgele seçilen küçük başlangıç ​​değerleri atanmalıdır. Bu, ağın büyük ağırlıklara doymamasını sağlar ve bir dizi başka patolojik durumu önler. Örneğin tüm ağırlıklar aynı verilirse başlangıç ​​değerleri ve gerekli işleyişin eşit olmayan değerler gerektirmesi durumunda ağ öğrenemeyecektir.

Bir geri yayılım ağını eğitmek şunları gerektirir:

aşağıdaki işlemleri gerçekleştirin:

1. Eğitim setinden bir sonraki eğitim çiftini seçin, giriş vektörünü ağ girişine gönderin.

2. Ağ çıkışını hesaplayın.

3. Ağ çıkışı ile gerekli çıktı arasındaki farkı hesaplayın (eğitim çiftinin hedef vektörü)

4. Hatayı en aza indirecek şekilde ağ ağırlıklarını ayarlayın.

5. Tüm setteki hata kabul edilebilir bir seviyeye ulaşana kadar eğitim setindeki her bir vektör için 1'den 4'e kadar olan adımları tekrarlayın.

1. ve 2. adımlarda gerçekleştirilen işlemler, ağ zaten eğitilmiş durumdayken gerçekleştirilen işlemlere benzer; bir giriş vektörü verilir ve elde edilen çıktı hesaplanır. Hesaplamalar katman katman gerçekleştirilir. Şekil 3'te öncelikle j katmanındaki nöronların çıktıları hesaplanır, daha sonra k katmanının girdileri olarak kullanılır, ağın çıkış vektörünü oluşturan k katmanındaki nöronların çıktıları hesaplanır.

Adım 3'te, Şekil 3'te OUT olarak etiketlenen ağ çıkışlarının her biri, hatayı elde etmek için hedef vektörün karşılık gelen bileşeninden çıkarılır. Bu hata, öğrenme algoritması tarafından belirlenen ağırlıklardaki değişikliklerin işareti ve büyüklüğü ile ağ ağırlıklarını ayarlamak için 4. adımda kullanılır (aşağıya bakın).

Bu dört adımın yeterince tekrarlanmasından sonra, gerçek çıktılar ile hedef çıktılar arasındaki fark kabul edilebilir bir değere inmeli ve ağın öğrendiği söylenmelidir. Artık ağ tanıma için kullanılıyor ve ağırlıklar değişmiyor.

Adım 1 ve 2, sinyal ağ üzerinden girişten çıkışa doğru ilerlerken "ileri geçiş" olarak görülebilir. 3. ve 4. adımlar bir "geri geçiş" oluşturur; burada hesaplanan hata sinyali ağ üzerinden geri yayılır ve ağırlıkları ayarlamak için kullanılır. Bu iki geçiş artık daha ayrıntılı olarak anlatılacak ve daha matematiksel bir biçimde ifade edilecektir.

İleriye doğru geçiş. Adım 1 ve 2 şu şekilde ifade edilebilir: vektör formuşu şekilde: giriş vektörü sağlanır X ve çıktı bir vektördür e. Vektör giriş-hedef çifti X Ve T eğitim setinden alınmıştır. Hesaplamalar vektör üzerinde yapılır Xçıktı vektörünü elde etmek için e.

Görüldüğü gibi çok katmanlı ağlarda hesaplama, girişe en yakın katmandan başlayarak katman katman gerçekleştirilir. İlk katmandaki her bir nöronun NET değeri, nöronun girdilerinin ağırlıklı toplamı olarak hesaplanır. Aktivasyon fonksiyonu F daha sonra NET'i "sıkıştırır" ve o katmandaki her nöron için bir OUT değeri üretir. Bir katmanın çıktı kümesi alındığında, bir sonraki katmanın girdi kümesi haline gelir. İşlem, nihai ağ çıktıları kümesi elde edilene kadar katman katman tekrarlanır.

Bu süreç, vektör gösterimi kullanılarak yoğunlaştırılmış bir biçimde ifade edilebilir. Nöronlar arasındaki ağırlıklar bir matris olarak düşünülebilir. K. Örneğin, katman 2'deki nöron 8'in katman 3'teki nöron 5'e olan ağırlığı w 8,5 ile gösterilir. Daha sonra katmanın NET vektörü Nürünlerin toplamı olarak değil, ürün olarak ifade edilebilir X Ve K. Vektör gösteriminde N= XW. F fonksiyonunu bir NET vektörüne bileşen bazında uygulayarak Nçıkış vektörü elde edilir HAKKINDA. Dolayısıyla belirli bir katman için hesaplama süreci aşağıdaki ifadeyle tanımlanır:

O=F( XW) (3)

Bir katmanın çıktı vektörü bir sonraki katmanın girdi vektörüdür.

Ters pas. Çıkış katmanının ağırlıklarının ayarlanması. Çıkış katmanındaki her bir nöron için bir hedef değer belirlendiğinden, ağırlıkların ayarlanması değiştirilmiş bir delta kuralı kullanılarak kolayca gerçekleştirilir. İç katmanlara “gizli katmanlar” denir ve çıktılarının karşılaştırılacak hedef değerleri yoktur. Bu nedenle öğrenme daha da zorlaşır.

Son katmanın eğitimi Şek. 2.4

Şek. Şekil 2.4, nöron p'den bir ağırlığın öğrenme sürecini göstermektedir.

j gizli katmanından k çıkış katmanındaki q nöronuna. Hedef değerden (Hedef) çıkartılan katman k nöronunun çıkışı, hata sinyalini verir. Bu, o katman 6 nöronu için hesaplanan kasılma fonksiyonunun türevi ile çarpılır ve böylece d değeri elde edilir.

Daha sonra d, söz konusu ağırlığın geldiği j nöronunun OUT değeri ile çarpılır. Bu çarpım, öğrenme oranı faktörü h (genellikle 0,01 ile 1,0 arasında) ile çarpılır ve sonuç, ağırlığa eklenir. Gizli katmandaki nörondan çıktı katmanındaki nörona kadar her ağırlık için aynı işlem gerçekleştirilir.

Aşağıdaki denklemler bu hesaplamayı göstermektedir:

Dw pq, k = hd q, k ÇIKIŞ p, j (2,5)

w pq,k (n+1) = w pq, k (n) + Dw pq, k (2,6)

burada w pq, k (n), gizli katmandaki h nöronundan, n adımındaki (düzeltmeden önce) çıktı katmanındaki q nöronuna kadar olan ağırlığın değeridir; k endeksinin, bu ağırlığın bittiği katmanı ifade ettiğine dikkat edin. yani bu kitapta benimsenen ve birleştiği sözleşmeye göre; w pq, k (n+1) - adım n+1'deki ağırlık değeri (düzeltme sonrası), d q, k - çıkış katmanındaki nöron için d değeri k, OUT p, j - p nöronu için OUT değeri gizli katman j.

Gizli Katman Ağırlıklarını Ayarlama. Çıkış katmanından önceki gizli katmandaki tek bir nöronu düşünün. Bu nöron ileri doğru giderken çıkış sinyalini, onları birbirine bağlayan ağırlıklar aracılığıyla çıkış katmanındaki nöronlara iletir. Eğitim sırasında bu ağırlıklar ters sırada çalışarak d değerini çıkış katmanından gizli katmana geri aktarır. Bu ağırlıkların her biri çıkış katmanında bağlı olduğu nöronun d değeri ile çarpılır. Gizli katman nöronu için gereken d değeri, tüm bu çarpımların toplanması ve sıkıştırma fonksiyonunun türeviyle çarpılmasıyla elde edilir:

(Bkz. Şekil 5) d değeri elde edildikten sonra, birinci gizli katmanı besleyen ağırlıklar, endekslerin katmana göre değiştirildiği denklemler (5) ve (6) kullanılarak ayarlanabilir.

İç katmanın eğitimi Şek. 2.5

Belirli bir gizli katmandaki her bir nöron için d'nin hesaplanması ve bu katmana ilişkin tüm ağırlıkların ayarlanması gerekir. Bu işlem, tüm ağırlıklar ayarlanana kadar girişe doğru katman katman tekrarlanır.

Vektör gösterimi kullanılarak hatanın geriye yayılım işlemi çok daha derli toplu bir şekilde yazılabilir. Çıkış katmanının d değer kümesini Dk olarak ve çıktı katmanının ağırlık kümesini Wk dizisi olarak gösterelim. Çıkış katmanının d-vektörü olan Dj'yi elde etmek için aşağıdaki iki işlem yeterlidir:

1. Çıkış katmanı Dk'nin d-vektörünü, gizli katmanı çıkış katmanına bağlayan aktarılmış ağırlık matrisi Wk ile çarpın.

2. Ortaya çıkan çarpımın her bir bileşenini, gizli katmandaki karşılık gelen nöronun sıkıştırma fonksiyonunun türeviyle çarpın.

Sembolik gösterimde:

,

burada $ operatörü vektörlerin bileşen bazında çarpımını belirtir. O j, j katmanının çıkış vektörüdür ve I, tüm bileşenleri 1'e eşit olan bir vektördür.

Ağ felci. Ağ eğitim sürecinde düzeltme sonucunda ağırlık değerleri çok büyük değerlere çıkabilmektedir. Bu, nöronların tamamının veya çoğunun çok hızlı çalışmasına neden olabilir. büyük değerler OUT, sıkıştırma fonksiyonunun türevinin çok küçük olduğu bölgede. Öğrenme sürecinde geri gönderilen hata bu türevle orantılı olduğundan öğrenme süreci pratik olarak donabilir. Teorik açıdan bakıldığında bu sorun yeterince anlaşılmamıştır. Bu genellikle adım boyutunun (n) azaltılmasıyla önlenir, ancak bu, eğitim süresini artırır. Felci önlemek veya felçten kurtulmak için çeşitli buluşsal yöntemler kullanıldı, ancak şimdilik bunlar yalnızca deneysel olarak kabul edilebilir.

Yerel minimum. Geri yayılma, gradyan inişinin bir varyasyonunu kullanır; ağırlıkları sürekli olarak minimuma doğru ayarlayarak hata yüzeyinde aşağı doğru hareket eder. Karmaşık bir ağın hata yüzeyi oldukça sağlamdır ve yüksek boyutlu uzaydaki tepeler, vadiler, kıvrımlar ve vadilerden oluşur. Ağa girebilir yerel minimum(sığ vadi) yakınlarda çok daha derin bir alçak olduğunda. Yerel minimum noktasında tüm yönler yukarıya bakar ve ağ bundan kaçamaz. İstatistiksel öğrenme yöntemleri bu tuzağa düşmekten kaçınmaya yardımcı olabilir, ancak yavaştırlar. Kasha makinesinin istatistiksel yöntemlerini geri yayılım gradyan inişiyle birleştiren ve koruyarak global minimumu bulan bir sisteme yol açan bir yöntem önerilmiştir. yüksek hız geri yayılım. Bu, Bölüm 2'de tartışılmaktadır. 5.

Adım boyutu. Yakınsama kanıtının dikkatli bir incelemesi, ağırlık düzeltmelerinin sonsuz küçük olduğunun varsayıldığını gösterir. Açıkçası, bu pratikte mümkün değildir çünkü sonsuz bir öğrenme eğrisine yol açar. Adım büyüklüğü sonlu olarak alınmalı ve bu konuda yalnızca tecrübeye güvenilmelidir. Adım boyutu çok küçükse yakınsama çok yavaş olur, ancak çok büyükse felç veya sürekli istikrarsızlık meydana gelebilir.

Geçici istikrarsızlık Ağ harfleri tanımayı öğrenirse, A unutulursa B'yi öğrenmenin bir anlamı kalmaz. Öğrenme süreci, ağın daha önce öğrenilenleri atlamadan tüm eğitim seti üzerinde eğitileceği şekilde olmalıdır. Yakınsama kanıtında bu koşul karşılanmaktadır ancak ağırlıklar ayarlanmadan önce ağın eğitim setinin tüm vektörleriyle birlikte sunulması da gerekmektedir. Ağırlıklardaki gerekli değişiklikler setin tamamında hesaplanmalıdır ve bu, ek bellek; Bu tür birkaç eğitim döngüsünden sonra ağırlıklar minimum hataya yakınlaşacaktır. Eğer ağ sürekli değişen bir dış ortamda bulunuyorsa, bu yöntem aynı vektörün ikinci kez tekrarlanmaması durumunda işe yaramayabilir. Bu durumda, öğrenme süreci asla bir noktada birleşmeyebilir, amaçsızca dolaşamaz veya çılgınca salınamaz. Bu anlamda geri yayılım biyolojik sistemlerden farklıdır.



Makaleyi beğendin mi? Arkadaşlarınızla paylaşın!