Sınıflandırma ve tahmin yöntemleri. Nöral ağlar. sinir ağı eğitimi

  • 28.06.2019

Eğitim gerektirir, aksi takdirde doğru sonucun alınması olası değildir. Bir sinir ağını eğitmek için birkaç yöntem vardır.

Bununla birlikte, aralarında en ilginç üç yöntem ayırt edilir, bunlar genetik analizin yanı sıra geriye doğru ve elastik yayılma yöntemleridir. Onlar hakkında daha ayrıntılı konuşalım.

Bu yöntem ana yöntemdir ve başka bir adı vardır - Gradyan iniş algoritmasını kullandığından Geri Yayılım. Yani, gradyan boyunca hareket ederek fonksiyonun yerel minimum ve maksimumu hesaplanır. Bu yöntemi anlamak bir sonrakini kolaylaştıracaktır.

Fonksiyonu, hatanın sinaps ağırlığına bağımlılığını belirleyen bir grafik şeklinde temsil edersek, bu grafikte minimum hata değerine ve maksimuma sahip noktayı bulmak gerekir. Ayrıca, her ağırlığın kendi grafik temsili olmalıdır ve her biri için global minimumu hesaplamak gerekir.

Gradyanın kendisi, eğimin yönünü ve dikliğini belirleyen bir vektör değeridir. Gradyan, istenen noktada fonksiyonun türevi kullanılarak bulunur. Rastgele dağıtılan bir ağırlık değerine sahip belirli bir noktada, gradyan hesaplanır ve alçalma hareketinin yönü belirlenir ve sonraki her noktada, daha fazla inişe izin vermeyen yerel bir minimuma ulaşılana kadar bu böyle devam eder.

Bu sorunla başa çıkmak için, programın bir kısmını aşmanıza ve istenen noktaya ulaşmanıza izin verecek olan istenen tork değerini ayarlamak gerekir. Bu değer yetersiz ise şişkinliği aşmak mümkün olmayacaktır, gereğinden yüksek bir değer ayarlanması durumunda global minimumu aşma şansı vardır.

Hızlanma anına ek olarak, ağın genel öğrenme oranını belirleyen bir kavram da vardır. Bu değer, bir önceki gibi bir hiper parametredir ve deneme yanılma yoluyla seçilir. Optimum seçenek hiçbir zaman önceden bilinemez; bunu ancak birkaç eğitim yaparak ve her seferinde değeri doğru yönde ayarlayarak öğrenebilirsiniz.

Şimdi doğrudan öğretim yöntemine gidebilir ve ne olduğunu tanımlayabilirsiniz. Bilgi alma sürecinde, sinir ağı, bilgi çıktı katmanında görünene ve sonuç olarak yayınlanana kadar, sinapslar aracılığıyla sırayla bir nörondan diğerine aktarır. Buna ileri aktarım denir.

Sonuç alındıktan sonra hata hesaplanır ve buna göre geri gönderme işlemini gerçekleştiririz. Bunun özü, çıkıştan başlayarak giriş katmanına doğru hareket eden sinapsların ağırlığını sırayla değiştirmektir. Bu durumda ağırlık değeri daha iyi bir sonuca doğru değişir.

Bu öğrenme yöntemi için sadece farklılaştırılabilen aktivasyon fonksiyonları uygundur. Geri yayılım, sonuçlardaki farkın hesaplanması ve girdi değerinin bir fonksiyonunun türevi ile çarpılmasıyla hesaplandığından.

Eğitimi başarılı bir şekilde yürütmek için, ortaya çıkan hatayı ağın tüm ağırlığına yaymak gerekir. Hatayı çıktı düzeyinde ve orada hesapladıktan sonra, nöronlar arasında sırayla iletilecek olan deltayı hesaplayabilirsiniz.

Ardından, her giden bağlantı için degradeyi hesaplamanız gerekir. Ardından, gerekli tüm verilere sahip olarak, MOP fonksiyonu sayesinde ağırlıkları güncellemek ve değişimin büyüklüğü olacak değeri hesaplamak gerekir.

Aynı zamanda, öğrenme anını ve hızını da unutmayın.

MPA'nın bir yinelemesi küçük bir hata azaltma yüzdesi sağlar, bu nedenle hata göstergesi 0'a yaklaşana kadar tekrar tekrar tekrarlanmaları gerekir.

Elastik yayılma yöntemi

Ağı eğitmek için bir sonraki yöntem Esnek yayılım veya Rprop'dur. Yukarıda sunulan önceki eğitim yöntemi, eğitim süreci için büyük zaman harcamaları şeklinde bir dezavantaja sahiptir, gerekirse hızlı bir sonuç almak için uygun değildir.

Süreci hızlandırmak için, süreci hızlandırmak için birçok ek algoritma önerilmiştir. Bunlardan biri mevcut yöntem.

Mevcut algoritma, temel olarak dönemlere göre öğrenmeyi kullanır ve ağırlık katsayılarını ayarlamak için yalnızca belirli bir durumun türevlerinin işaretlerini kullanır. Ağırlık katsayısı düzeltmesinin değerinin hesaplandığı belirli bir kural kullanılır.

Hesaplamaların bu aşamasında türevin işaretini değiştirmesi, değişikliğin çok büyük olduğu ve yerel minimumun kaçırıldığı ve bir geri dönüşün yapılması gerektiği anlamına gelir, yani ağırlık ters konuma döndürülmeli ve miktar değişim azaltılmalıdır.

Türevin işareti değişmediyse, ağırlıktaki değişimin değeri, tam tersine, daha büyük yakınsama için artar.

Ağırlık düzeltmesinin ana parametreleri sabitlenirse, global parametrelerin ayarlanmasından kaçınılabilir. Ve bu, mevcut yöntemin bir öncekine göre bir başka avantajı olacaktır. Bu parametreler için önerilen değerler vardır, ancak seçimlerine herhangi bir kısıtlama getirilmemiştir.

Ağırlığın çok büyük veya küçük değerler almasını önlemek için, düzeltme değerinin ayarlanmış sınırları kullanılır. Düzeltme değeri de belli bir kurala göre hesaplanır.

Yani fonksiyonun belirli bir noktadaki türevi artıdan eksiye işaret değiştiriyorsa, bu hatanın arttığı ve ağırlığın düzeltilmesi gerektiği ve azaldığı, aksi takdirde arttığı anlamına gelir.

Bu durumda işlem sırası şu şekildedir: düzeltme değeri başlatılır, kısmi türevler hesaplanır, ağırlık değerlerinin yeni bir düzeltme değeri hesaplanır, algoritmayı durdurma koşulu yoksa ağırlıklar düzeltilir. karşılandığında, süreç türevlerin hesaplanmasına ilerler ve döngüyü tekrarlar. Bu yaklaşım, önceki eğitim seçeneğinin aksine, sinir ağının yakınsamasını birkaç kat daha hızlı gerçekleştirmeyi mümkün kılar.

Genetik Algoritma

Yapay sinir ağları için en ilginç üçüncü öğrenme algoritması Genetik Algoritmadır. Çapraz sonuçlara dayalı doğal bir algoritmanın basitleştirilmiş bir yorumudur. Yani aslında sonuçlar çaprazlanır, en iyileri seçilir ve yeni bir nesil bunlara dayalı olarak oluşturulur.

Sonuç tatmin edici değilse, nesil ideal hale gelene kadar algoritma tekrarlanır. Deneme sayısı veya mutasyon süresi dolmuşsa algoritma istenen sonuca ulaşmadan sona erebilir. Bu algoritma, varsayılan topoloji göz önüne alındığında, bir sinir ağının ağırlığını optimize etme işlemine uygulanabilir.

Bu durumda, ağırlık bir ikili kodda kodlanır ve her sonuç, tam bir ağırlık seti ile belirlenir. Kalite, çıktı hatası hesaplanarak değerlendirilir.

Diğer eğitim varyasyonları

Yukarıdaki yöntemlere ek olarak öğretmenli ve öğretmensiz çeşitleri de bulunmaktadır. Denetimli öğrenme çoğunlukla regresyonlara ve sınıflandırmalara uygulanır.

Bu durumda eğitmen öğretmen, oluşturulan ağ ise öğrenci gibi davranır. Eğitmen sırasıyla giriş verilerini ve gerekli sonucu ayarlar, ağ verilen parametrelerle ne tür bir sonuç için çaba sarf edilmesi gerektiğini anlar.

Öğretmensiz öğrenme biraz farklıdır ve daha az yaygındır. Bu durumda sinir ağı istenilen sonucu alamamaktadır. Bu eğitim, görevi verilen parametrelere göre verileri kümelemek olan ağlar için uygundur. Yani, büyük miktarda girdi verisini analiz ettikten sonra, ağ bunları belirli kriterlere göre kategorilere ayırır.

Takviyeli öğrenme, ağ tarafından üretilen nihai sonucu değerlendirmek mümkün olduğunda kullanılır.

Yani sinir ağının belli bir teşviki ile, elde edilen sonuç istenen sonuca mümkün olduğunca yakın olduğunda, istenen sonuçları verdiği sürece sorunu çözmenin herhangi bir yolunu arama fırsatı vereceğiz. .

Bu, ağın, eğitmenden gelen veriler olmadan hedefe ulaşmanın en iyi yollarını aramasını sağlayacaktır.

Birkaç öğretim yöntemi daha vardır:

  • stokastik yöntem kısaca şu şekilde açıklanabilir, bir güncelleme değeri bulundu, bu da ilgili ağırlığın hemen güncellenmesi gerektiği anlamına gelir;
  • toplu yöntem, belirli bir döngüdeki tüm değerlerin değerlerini toplar ve yalnızca tamamlandıktan sonra, zamandan önemli ölçüde tasarruf sağlayan bir güncelleme gerçekleştirir, ancak doğruluk düşer;
  • mini parti yöntemi, yukarıdaki yöntemlerin avantajlarını birleştirir, ağırlıklar seçilen gruplar arasında serbestçe dağıtılır ve gruptaki tüm ağırlıklar için düzeltme faktörünün toplamı ile değiştirilir.

Herhangi bir eğitim sürecinde, seçimi manuel olarak yapılan hiperparametreleri kullanmanız gerekir, ancak bunlar belirli bir denklemde değişken değildir. Bu, yukarıda bahsedilen öğrenme noktası ve hızıdır.

Ayrıca, bu parametreler gizli katmanların sayısını, bir katmandaki nöronların sayısını, yer değiştirme nöronlarının varlığını veya tersine onların yokluğunu içerir. Hiperparametrelerin varlığı, öncelikle yapay sinir ağının türüne göre belirlenir. Değerlerinin doğru seçimi, ağın yakınsamasını doğrudan etkiler.

Öğrenme sürecinin gecikmesi durumunda, ağın yeniden eğitilmesinin gerekli olacağı bir durum riski vardır. Kural olarak, bu, ağın verilerle aşırı doygun olduğu ve öğrenmeye değil, yalnızca belirli bir dizi girdi parametresinin sonuçlarını hatırlamaya başladığı bir zamanda olur. Ve yeni parametreler uygulandığında sonucu etkileyen sesler ortaya çıkar.

Böyle bir ihtiyaçtan kaçınmak için, kendi aralarında önemli farklılıklar gösteren farklı girdi verileri üzerinde eğitim yapılmalıdır.

Sinir ağları çok umut verici bir gelişme alanıdır. Bir sinir ağı oluşturduktan sonra, ona çok şey öğretebilirsiniz, özellikle bir kişinin bilinçsizce yapmaya alıştığı ve buna göre algoritması kendisi tarafından bilinmeyen.

Sinir ağlarının insan beynine benzer olduğuna inanılıyor, belki de öyle, ancak bunun sadece prototipine belli belirsiz benzeyen bir kopya olduğunu hatırlamakta fayda var.

Yani, bugün konuyu tartışmaya devam edeceğiz nöral ağlar sitemizde ve ilk makalede () söz verdiğim gibi, hakkında konuşacağız eğitim ağları... Bu konu çok önemlidir, çünkü sinir ağlarının temel özelliklerinden biri, yalnızca açıkça tanımlanmış bir algoritmaya göre hareket etmesi değil, aynı zamanda geçmiş deneyimlere dayanarak gelişmesi (öğrenmesi) olmasıdır. Ve bu yazıda bazı öğrenme biçimlerine ve ayrıca küçük bir pratik örneğe bakacağız.

Önce öğrenmenin genel amacının ne olduğunu bulalım. Ve her şey basit - ağ bağlantılarının ağırlıklarını ayarlamak. En tipik yollardan biri rehberli öğrenme... Bunu gerçekleştirmek için, bir dizi girdi verisine ve buna karşılık gelen çıktı verisine sahip olmamız gerekir. Ağırlık katsayılarını bazı küçük değerlere eşitliyoruz. Ardından süreç şu şekilde ilerliyor...

Ağın girişine veri sağlıyoruz, ardından ağ çıkış değerini hesaplıyor. Bu değeri elimizdeki ile karşılaştırıyoruz (eğitim için, çıkış sinyalinin bilindiği hazır bir giriş verisi kümesi kullanıldığını hatırlatırım) ve bu değerler arasındaki farka göre ağırlığı ayarlıyoruz. sinir ağının katsayıları. Ve bu işlem bir daire içinde birçok kez tekrarlanır. Sonuç olarak, ağırlık katsayılarının yeni değerlerine sahip eğitimli bir ağ elde ederiz.

Her bir belirli ağırlık katsayısının değerini tam olarak ve hangi algoritma ile değiştirmenin gerekli olduğu dışında her şey açık görünüyor. Ve açıklayıcı bir örnek olarak ağırlıkları düzeltmek için bugünün makalesinde ele alacağız Dul-Hoff kuralı olarak da adlandırılır delta kuralı.

Delta kuralı (Widrow-Hoff kuralı).

Hatayı tanımlayalım:

Burada - bu, ağın beklenen (gerçek) çıktısıdır ve - bu, çıktı öğesinin gerçek çıktısıdır (aktivitesidir). Çıkış elemanına ek olarak, sinir ağının gizli katmanının tüm elemanları için hatalar belirlenebilir, bundan biraz sonra bahsedeceğiz.

Delta kuralı aşağıdaki gibidir - ağırlık katsayısının değerindeki değişiklik şuna eşit olmalıdır:

Öğretim oranı nerede. Bu sayıyı eğitime başlamadan önce kendimiz belirledik. Elemana gelen sinyal mi? k elemandan J... A - eleman hatası k.

Böylece öğrenme sürecinde örneklemeden sonra ağ giriş örneğini besliyoruz ve sonuç olarak ağırlık katsayılarının yeni değerlerini elde ediyoruz. Tipik olarak eğitim, tanıtılan tüm numuneler için hata değeri belirli bir değerin altına düştüğünde sona erer. Bundan sonra ağ, eğitime dahil olmayan yeni veriler kullanılarak test edilir. Ve bu testin sonuçlarına dayanarak, ağın işini iyi yapıp yapmadığı konusunda sonuçlar çıkarmak zaten mümkün.

Ağırlıkların düzeltilmesi ile her şey açıktır, ağı eğitirken hesaplamaların tam olarak nasıl ve hangi algoritma ile gerçekleşeceğini belirlemek kalır. Geri yayılım algoritmasını öğrenmeye bir göz atalım.

Geri yayılım algoritması.

Bu algoritma ağda iki "akım" tanımlar. Giriş sinyalleri ileri yönde hareket eder, bu da hata değerini elde ettiğimiz bir çıkış sinyali ile sonuçlanır. Hatanın büyüklüğü ters yönde hareket eder, bunun sonucunda ağ bağlantılarının ağırlık katsayıları ayarlanır. Yazının sonunda bu süreçleri net bir şekilde gösteren bir örnek ele alacağız.

Bu yüzden ağırlıkları ayarlamak için daha önce tartıştığımız delta kuralını kullanacağız. Her ağ elemanının aslında elemandan geçtikten sonra (hataların geri yayılımı ile) hatasını hesaplamak için evrensel bir kural tanımlamak yeterlidir.

Belki de matematiksel sonuçlar ve hesaplamalar vermeyeceğim (matematiğe olan sevgime rağmen 🙂), makaleyi aşırı yüklememek için kendimizi sadece nihai sonuçlarla sınırlayacağız:

Bir işlev, bir öğenin etkinliğinin bir işlevidir. Bunun için lojistik işlevi kullanalım:

Önceki formülde değiştirin ve hata değerini alın:

Bu formülde:

Elbette şimdi tüm bunlar hala tam olarak netlik kazanmamış gibi görünüyor ama merak etmeyin, pratik bir örnek düşününce her şey yerli yerine oturacak 😉

Aslında, ona geçelim.

Ağı eğitmeden önce, ağırlıkların başlangıç ​​değerlerini ayarlamak gerekir - bunlar genellikle küçük rastgele değerlerle, örneğin aralıktan (-0.5, 0.5) başlatılır. Ancak örneğimiz için, kolaylık olması için tam sayıları alalım.

Bir sinir ağını düşünelim ve ağdaki ileri ve geri "akışlar" için manuel olarak hesaplamalar yapalım.

Girişte numune göndermeliyiz, öyle olsun. (0.2, 0.5) ... Beklenen ağ çıkışı - 0.4 ... Öğrenme oranı şuna eşit olsun 0.85 ... Tüm hesaplamaları aşamalar halinde yapalım. Bu arada, aktivite fonksiyonu olarak lojistik fonksiyonu kullanacağımızı tamamen unutmuşum:

O halde başlayalım...

Öğelerin birleşik girişini hesaplayalım 2 , 3 ve 4 :

Bu unsurların etkinliği şuna eşittir:

Beşinci elemanın birleşik girişi:

Beşinci elemanın aktivitesi ve aynı zamanda sinir ağının çıktısı:

İleri "akış" ile ilgilendik, şimdi ters "akış"a geçelim. Tüm hesaplamalar, daha önce tartıştığımız formüllere göre yapılacaktır. Öyleyse, çıktı öğesinin hatasını hesaplayalım:

Daha sonra elemanlar için hatalar 2 , 3 ve 4 sırasıyla eşit:

Burada değerler -0.014, -0.028 ve -0.056 çıkış elemanının hatasının üzerinden geçilerek elde edilir - 0.014 elemanlar yönünde ağırlıklı bağlantılar ile 2 , 3 ve 4 sırasıyla.

Ve son olarak, ağırlık katsayılarının değerlerini değiştirmenin gerekli olduğu miktarı hesaplıyoruz. Örneğin, öğeler arasındaki ilişki için ayarlama miktarı 0 ve 2 elemana gelen sinyalin büyüklüğünün ürününe eşit 2 elemandan 0 , eleman hataları 2 ve eğitim normları (hepsi makalenin başında tartıştığımız delta kuralına göre):

Aynı şekilde, diğer elementler için de hesaplamalar yaparız:

Şimdi yeni ağırlıklar, önceki değerin ve düzeltme değerinin toplamına eşit olacaktır.

Bu, ağ üzerinden geriye doğru geçişi tamamlar, hedefe ulaşılır 😉 Geri yayılım algoritması kullanılarak öğrenme süreci tam olarak böyle ilerler. Bu işlemi bir veri kümesi için düşündük ve bu tür veri kümelerinden tam olarak eğitilmiş bir ağ elde etmek için elbette çok daha fazlası olmalı, ancak algoritma değişmeden kalıyor, sadece farklı veriler için birçok kez bir daire içinde tekrar ediyor)

Blog okuyucularının isteği üzerine, iki gizli katmana sahip bir ağ eğitiminin hızlı bir örneğini eklemeye karar verdim:

Böylece ağımıza şimdi girdi görevi görecek iki yeni eleman (X ve Y) ekliyoruz. Ayrıca girişte bir örnek gönderiyoruz (0.2, 0.5) ... Bu durumda algoritmayı düşünün:

1. Doğrudan ağ geçişi. Buradaki her şey, bir gizli katmana sahip bir ağ ile tamamen aynıdır. Sonuç bir değer olacaktır.

2. Çıkış elemanının hatasını hesaplıyoruz:

3. Şimdi 2., 3. ve 4. maddelerin hatalarını hesaplamamız gerekiyor.

Bu makale, yapay sinir ağlarının temel çalışması için - çoğunlukla Rusça konuşulan - materyaller içermektedir.

Bir yapay sinir ağı veya ANN, biyolojik sinir ağlarının organizasyonu ve işleyişi ilkesine dayanan bir matematiksel modelin yanı sıra yazılım veya donanım uygulamasıdır - canlı bir organizmanın sinir hücrelerinin ağları. Sinir ağları bilimi uzun süredir var olmuştur, ancak bu alanın popülerlik kazanmaya başlaması, bilimsel ve teknolojik ilerlemenin en son başarılarıyla tam olarak bağlantılıdır.

Kitabın

Koleksiyonumuza klasik öğrenme yöntemiyle başlayalım - kitapların yardımıyla. Çok sayıda örnek içeren Rusça kitaplar seçtik:

  • F. Wasserman, Nörobilgisayar Mühendisliği: Teori ve Uygulama. 1992 yılı
    Kitap, nörobilgisayarları halka açık bir biçimde oluşturmanın temellerini özetliyor. Sinir ağlarının yapısı ve bunların ayarlanması için çeşitli algoritmalar açıklanmıştır. Sinir ağlarının uygulanmasına ayrı bölümler ayrılmıştır.
  • S. Khaikin, Sinir Ağları: Eksiksiz Bir Kurs. 2006 yılı
    Yapay sinir ağlarının ana paradigmaları burada tartışılmaktadır. Sunulan materyal, örneklerle, bilgisayar deneylerinin açıklamalarıyla gösterilen tüm sinir ağı paradigmalarının titiz bir matematiksel doğrulamasını içerir, birçok pratik problemin yanı sıra kapsamlı bir kaynakça içerir.
  • D. Forsyth, Bilgisayarla Görü. Modern yaklaşım. 2004 r.
    Bilgisayarla görme, küresel dijital bilgisayar teknolojilerinin geliştirilmesinde bu aşamada en çok talep edilen alanlardan biridir. Üretimde, robotları kontrol ederken, süreçleri otomatikleştirirken, tıbbi ve askeri uygulamalarda, uydulardan gözlem yaparken ve kişisel bilgisayarlarla çalışırken, özellikle dijital görüntüleri ararken gereklidir.

Video

Video yardımıyla görsel eğitimden daha erişilebilir ve anlaşılır bir şey yoktur:

  • Makine öğreniminin neyle ilgili olduğunu anlamak için buraya bir göz atın. bu iki ders SHAD Yandex'den.
  • Tanıtım sinir ağı tasarımının temel ilkelerine - sinir ağlarına aşinalığınızı sürdürmek için harika.
  • ders kursu VMK MSU'dan "Bilgisayar vizyonu" konusunda. Bilgisayarla görme, görüntülerdeki ve video kayıtlarındaki nesneleri algılayan ve sınıflandıran yapay sistemler oluşturmaya yönelik bir teori ve teknolojidir. Bu dersler, bu ilginç ve karmaşık bilime bir giriş olarak sınıflandırılabilir.

Eğitim kaynakları ve faydalı bağlantılar

  • Yapay zeka portalı.
  • Laboratuvar "Ben zekayım".
  • Matlab'da sinir ağları.
  • Python'da Sinir Ağları:
    • Metinlerin sınıflandırılması;
    • Basit .
  • Sinir ağı açık.

Konuyla ilgili yayın serimiz

Daha önce, zaten bir kurs yayınlamıştık #[e-posta korumalı] sinir ağları üzerinden. Bu listede, yayınlar size kolaylık sağlamak için çalışma sırasına göre düzenlenmiştir.

sinir ağı eğitimi

Sinir ağları bilgiyi temsil etmek için kullanılır. Geleneksel hesaplamadan farklı olarak, sinir ağlarında bilginin temsili, saklanan verilerin adresinden ziyade içeriğe göre arama yapar. Ek olarak, sinir ağlarında bilginin temsili, mutlak kesinlik yerine yaklaşık yazışma yoluyla gerçekleştirilir. Sinir ağlarında bilginin temsili, bir ağ, bağlantı ağırlıkları ve düğüm aktivasyonlarına eklenen anlamsal yorumlardan oluşur. Örneğin, yönetim sınıflandırması bağlamında, eğitimli bir sinir ağı kullanılarak, bir müşterinin yeni bir ürün seçip seçmeyeceğini, örneğin son satın alınan marka, maruziyet öncesi ilgi, maruziyet sonrası fırsatlar gibi sayısal müşteri verilerine dayanarak tahmin etmek mümkündür. ve faiz. Bu niceleyici nitelikler, eğitilmiş sinir ağının girdileridir. Sinir ağından alınan "+1" aktivasyonu, müşterinin yeni bir ürün seçeceğini ve "-1" - tersini gösterebilir.

Sinir ağlarında bilginin genelleştirilmesi eğitim yoluyla sağlanır. Sinir ağlarındaki öğrenme süreci, istenen aktivasyon modellerini uyarır ve mevcut verilere dayanarak istenmeyenleri engeller. Bir sinir ağında belirli bir bilgi genellemesi elde etmek için bir öğrenme algoritması geliştirilmiştir. Sinir ağının çıkışında belirlenen hata fonksiyonu veya ağ elemanları etkinleştirilirken belirlenen enerji fonksiyonu, bilginin genelleştirilmesinde sinir ağının kalitesini karakterize eder. Bu durumda, eğitim veri seti, sinir ağını eğitmesi beklenen bilgi temsili örneklerinden oluşmalıdır. Öğrenme algoritması, ya ağırlıkları (yani, düğümler arasındaki bağlantıların gücü) ya da sinir ağının çıktılarını ya da sinir ağının yapısını değiştirerek, eğitim verilerine dayalı olarak minimum hata ya da enerjiyi hedefleyerek çalışır.

Sinir ağı sistemlerinde çok sayıda öğrenme paradigması vardır. Denetimli öğrenme (denetimli öğrenme) ve denetimsiz öğrenme (denetimsiz öğrenme veya kendi kendine öğrenme), öğrenme algoritmalarının tasarımında yaygın olarak kullanılan iki ana paradigmadır. Ayrıca karma bir paradigma var.

Öğrenme paradigmasında öğretmenle sinir ağı, her giriş örneği için doğru yanıtlara (ağ çıkışlarına) sahiptir. Öğrenme süreci, sinir ağının gerçek ve istenen çıktıları arasındaki "mesafeyi" en aza indirmeye çalışır. Ağırlıklar, ağ bilinen doğru cevaplara mümkün olduğunca yakın cevaplar üretecek şekilde ayarlanır. Denetimli öğrenmenin gelişmiş versiyonu, yalnızca sinir ağının çıktısının doğruluğunun kritik değerlendirmesinin bilindiğini, ancak çıktının kendisinin doğru değerlerinin bilinmediğini varsayar.

Denetimli öğrenmenin tersi öğretmektir. öğretmensiz... Denetimli öğrenmenin aksine, önceden istenen çıktı değerleri kümesi yoktur ve eğitim kümesinin her örneği için doğru cevapları bilmeye gerek yoktur. Bu paradigma kullanıldığında, çoklu giriş modelleri ima edilir. Eğitim sürecinde, sinir ağının girdilerin temel özelliklerini tespit ettiği varsayılır (örneklerin kategorize edilmesini sağlayan dahili veri yapısı veya veri sistemindeki örnekler arasındaki korelasyonlar ortaya çıkar). Sinir ağı, bir öğretmenin yardımı olmadan kendi girdi uyaran sunumunu geliştirmelidir.

NS karışıkÖğretimde ağırlıkların bir kısmı denetimli öğrenme yoluyla belirlenirken, geri kalanı kendi kendine öğrenme yoluyla elde edilir.

Öğrenme teorisi, örneklerle öğrenmeyle ilgili üç temel özelliği dikkate alır: kapasite, örnek karmaşıklığı ve hesaplama karmaşıklığı.

Kapasite, ağın kaç örneği hatırlayabildiği ve üzerinde hangi işlevlerin ve karar verme sınırlarının oluşturulabileceği olarak anlaşılmaktadır.

Örneklerin karmaşıklığı, ağın genellenebilirliğini sağlamak için gereken eğitim örneklerinin sayısını belirler. Çok az örnek, ağın eğitim seti örneklerinde iyi performans gösterdiğinde, ancak aynı istatistiksel dağılıma tabi olan test senaryolarında zayıf performans gösterdiğinde ağın "fazla sığmasına" neden olabilir.

4 ana öğrenme kuralı türü vardır: hata düzeltme, Boltzmann makinesi, Hebb kuralı ve rekabetle öğrenme.

Hata düzeltme kuralı. Denetimli öğrenmede, her girdi örneğine istenen çıktı verilir d. y ağının gerçek çıktısı istenen çıktı olmayabilir. Öğrenme hatası düzeltme ilkesi, hatayı kademeli olarak azaltmak için ağırlıkları değiştirmek için bir sinyal (d-y) kullanmaktır. Öğrenme ancak algılayıcı yanlış olduğunda gerçekleşir. Bu öğrenme algoritmasının çeşitli modifikasyonları bilinmektedir.

Boltzmann'ın eğitimi. Bilgi teorik ve termodinamik ilkeleri takip eden stokastik bir öğrenme kuralıdır. Boltzmann'ın eğitiminin amacı, ağırlıkları, görünür nöronların durumları istenen olasılık dağılımını sağlayacak şekilde ayarlamaktır. Boltzmann eğitimi, hatanın iki moddaki durum korelasyonları arasındaki tutarsızlık olarak anlaşıldığı özel bir hata düzeltme durumu olarak düşünülebilir.

Hebb kuralı. En eski öğretim kuralı, Hebb'in öğretme önermesidir. Hebb, aşağıdaki nörofizyolojik gözlemlere dayanıyordu: sinapsın her iki tarafındaki nöronlar aynı anda ve düzenli olarak ateşlenirse, sinaptik bağlantının gücü artar. Bu kuralın önemli bir özelliği, sinaptik ağırlıktaki değişimin yalnızca belirli bir sinaps ile bağlanan nöronların aktivitesine bağlı olmasıdır. Bu, bir VLSI uygulamasında öğrenme zincirini büyük ölçüde basitleştirir.

Yarışma eğitimi. Birden fazla çıktı nöronunun aynı anda ateşlenebildiği Hebb öğrenmesinden farklı olarak, rekabetçi öğrenmede, çıktı nöronları ateşleme için birbirleriyle rekabet eder. Bu fenomen "kazanan hepsini alır" kuralı olarak bilinir. Benzer öğrenme biyolojik sinir ağlarında gerçekleşir. Rekabet yoluyla öğrenme, girdi verilerinin kümelenmesini sağlar: bu tür örnekler, ağ tarafından korelasyonlara göre gruplandırılır ve tek bir öğe ile temsil edilir.

Eğitim sırasında sadece "kazanan" nöronun ağırlıkları değiştirilir. Bu kuralın etkisi, ağda depolanan örnekte (kazanan nöronun bağlantılarının ağırlıklarının vektörü) böyle bir değişiklik nedeniyle elde edilir, burada giriş örneğine biraz daha yaklaşır. İncirde. 3, yarışmalı öğrenmenin geometrik bir gösterimidir. Girdi vektörleri normalleştirilir ve kürenin yüzeyindeki noktalarla temsil edilir. Üç nöron için ağırlık vektörleri rastgele değerlerle başlatılır. Eğitimden sonraki ilk ve son değerleri, Şekil 2'de X ile işaretlenmiştir. sırasıyla 3a ve 3b. Üç örnek grubunun her biri, ağırlık vektörü tespit edilen grubun ağırlık merkezine ayarlanmış olan çıkış nöronlarından biri tarafından tespit edildi.


Pirinç. N.
Müsabaka yöntemiyle antrenman örneği: (a) antrenmandan önce; (b) eğitimden sonra

Öğrenme hızı parametresi 0'a eşit değilse ağın öğrenmeyi asla durdurmayacağını görebilirsiniz. Bazı girdi örnekleri, öğrenme sürecinde sonraki yinelemelerde başka bir çıktı nöronunu etkinleştirebilir. Bu, eğitim sisteminin sürdürülebilirliği sorusunu gündeme getirmektedir. Eğitim sürecinin sonlu sayıda yinelemesinden sonra eğitim örneğinin örneklerinden hiçbiri kategoriye aitliğini değiştirmezse sistem kararlı olarak kabul edilir. İstikrar sağlamanın bir yolu, öğrenme oranını kademeli olarak 0'a düşürmektir. Bununla birlikte, öğrenmenin bu yapay engellemesi, plastisite adı verilen ve yeni verilere uyum sağlama yeteneği ile ilişkili başka bir soruna neden olur. Rekabetçi öğrenmenin bu özellikleri, Grossberg Kararlılık-Esneklik İkilemi olarak bilinir.

Tablo 2, çeşitli öğrenme algoritmalarını ve ilgili ağ mimarilerini sunar (liste ayrıntılı değildir). Son sütun, her bir algoritmanın uygulanabileceği görevleri listeler. Her öğrenme algoritması, belirli bir mimariye sahip bir ağa odaklanır ve sınırlı bir problem sınıfı için tasarlanmıştır. Dikkate alınanlara ek olarak, diğer bazı algoritmalardan da bahsetmek gerekir:

Adaline ve Madaline,

lineer diskriminant analizi], Sammon projeksiyonu,

temel bileşen yöntemi / analizi.

Tablo 2. Bilinen öğrenme algoritmaları.

paradigma öğretim kuralı Mimari Algoritma Öğrenme Görev
öğretmenle Hata düzeltme Tek ve çok katmanlı algılayıcı Algılayıcı Öğrenme Algoritmaları Geri Yayılım Adaline ve Madaline
Boltzmann tekrarlayan Boltzmann öğrenme algoritması Görüntü sınıflandırması
hebb Lineer Diskriminant Analizi Veri Analizi Görüntü Sınıflandırma
Yarışma Yarışma vektör nicemleme Bir sınıf içinde sınıflandırma Veri sıkıştırma
SANAT ağı ARTMap Görüntü sınıflandırması
öğretmen olmadan Hata düzeltme Çok katmanlı ileri besleme Sammon'un projeksiyonu Bir sınıf içinde sınıflandırma Veri Analizi
hebb Doğrudan dağıtım veya rekabet Temel bileşenler Analizi Veri Analizi Veri Sıkıştırma
Hopfield ağı İlişkisel hafıza eğitimi ilişkisel bellek
Yarışma Yarışma vektör nicemleme Kategorizasyon Veri Sıkıştırma
SOM Kohonen SOM Kohonen Kategorizasyon Veri Analizi
SANAT ağları SANAT1, SANAT2 sınıflandırma
Karışık Hata düzeltme ve rekabet RBF ağı RBF öğrenme algoritması Görüntü sınıflandırma Fonksiyon yaklaşımı Tahmin, kontrol

Çeşitli ağ topolojilerinin eğitiminde kullanılan yöntemler, kurallar ve algoritmalar.

... Sinir ağlarının eğitimi.

... Sinir ağı eğitim yöntemleri.

Bir nörobilgisayarda bir problemi çözmek, aynı problemi Von Neumann mimarisine sahip geleneksel bir bilgisayarda çözmekten temel olarak farklıdır. Konvansiyonel bir bilgisayarda problemin çözümü, giriş verilerini programa uygun olarak işlemek. Program bir kişi tarafından yapılır. Bir programı derlemek için bir algoritma bulmanız gerekir, yani. Bu sorunu çözmek için gerekli olan belirli bir matematiksel ve mantıksal eylemler dizisi. Algoritmalar, programlar gibi, insanlar tarafından geliştirilir ve bir bilgisayar yalnızca çok sayıda temel işlemi gerçekleştirmek için kullanılır: toplama, çarpma, mantıksal koşulları kontrol etme, vb.

Nörobilgisayar, bir sınıftan problemleri çözmek için öğretilebilen bir "kara kutu" olarak kullanılır. Nörobilgisayar, problemin ilk verileri ve bu verilere karşılık gelen ve herhangi bir şekilde elde edilen cevap ile “sunulur”. Nörobilgisayar, doğru cevapla örtüşen bir cevap verebilmek için “kara kutu” içinde bu sorunu çözmek için bir algoritma oluşturmalıdır. Nörobilgisayara ne kadar farklı çiftler (ilk veri), (cevap) sunulursa, çözülmekte olan problem için bir model oluşturması o kadar yeterli olacaktır.

Nörobilgisayarın eğitim aşamasından sonra, daha önce karşılaşmadığı ilk verilerle sunulursa, yine de doğru çözümü verdiği umulmalıdır - bu, nörobilgisayarın genelleme yeteneğidir.

Bir nörobilgisayar bir yapay sinir ağına dayandığından, öğrenme süreci bu ağın parametrelerinin ayarlanmasından oluşur. Bu durumda, kural olarak, ağ topolojisi değişmemiş olarak kabul edilir ve ayarlanabilir parametreler genellikle nöronların parametrelerini ve sinaptik ağırlıkların değerlerini içerir. Bugüne kadar literatürde, öğrenmeyi nöronlar arasındaki bağlantıların ağırlıklarını değiştirme süreci olarak anlamak gelenekseldir.

Ağ eğitim yöntemlerini sınıflandırmanın iki yönünü ele alacağız. İlk yön, öğretmeni kullanma yolları üzerinedir.

Bir öğretmenle:

Ağlar girdi ve çıktı örnekleri gösterir. Ağ, girdi verilerini dönüştürür ve çıktısını istenen veriyle karşılaştırır. Bundan sonra, çıktıların daha iyi bir tutarlılığını elde etmek için ağırlıklar düzeltilir.

Takviye öğrenimi:

Bu durumda ağa istenen çıkış değeri verilmez, bunun yerine ağa çıkışın iyi mi kötü mü olduğu değerlendirilir.

Öğretmensiz öğrenme:

Ağın kendisi, bir dizi girdi verisinden özellikler çıkararak öğrenme kuralları geliştirir.

Öğretim yöntemlerinin sınıflandırılmasının ikinci yönü, rastgelelik unsurlarının kullanımına göredir.

Deterministik yöntemler:

Onlarda, adım adım ağ ağırlıklarını düzeltme prosedürü, örneğin istenen ağ çıkışlarının değerleri gibi mevcut değerlerinin kullanımına dayalı olarak gerçekleştirilir. Aşağıda ele alınan geri yayılım öğrenme algoritması, deterministik öğrenmeye bir örnektir.

Stokastik öğrenme yöntemleri:

Antrenman sırasında ağırlıklardaki rastgele değişikliklerin kullanımına dayanırlar. Aşağıda ele alınan Boltzmann öğrenme algoritması, stokastik öğrenmeye bir örnektir.

... Sinir ağı eğitim kuralları .

Öğrenme kuralları, öğrenme sürecinde ağın sinaptik ağırlıklarını değiştirmesi gereken yasayı tanımlar.

Hebb kuralı (D.Hebb):

Eğitim yöntemlerinin çoğu, Donald Hebb tarafından geliştirilen sinir ağı eğitiminin genel ilkelerine dayanmaktadır. Hebb'in ilkesi şu şekilde formüle edilebilir: "İki nöron aynı anda aktifse, aralarındaki bağlantının gücünü artırın", bu şu şekilde yazılabilir:

dW ij = gf (Y ben) f (Y j),

burada: dW ij - sinaps değişikliğinin değeri Wi ij

Y ben - i-inci nöronun uyarılma seviyesi

Y j - j-th nöronunun uyarılma seviyesi

f (.) - dönüştürme işlevi

g öğrenme oranını belirleyen bir sabittir.

Öğretim kurallarının çoğu bu formüle dayanmaktadır.

Delta kuralı:

Kare hata azaltma kuralı olarak bilinir ve önerilmiştir. Denetimli öğrenmede delta kuralı kullanılır.

dW ij = g (D j - Y j) Y ben

burada: D j, j-inci nöronun istenen çıktısıdır.

Böylece, bağlantıların gücündeki değişiklik, çıkış sinyalinin (D j - Y j) hatasına ve giriş elemanı Y'nin aktivite seviyesine göre gerçekleşir. ...

SANAT - kural:

Adaptif Rezonans Teorisi (ART) yılında geliştirilmiştir. ART, bir dizi girdi görüntüsüne verilen yanıtın bir sonucu olarak kendi kendine örgütlenme meydana geldiğinde, denetimsiz öğrenmedir. ART ağı, görüntüleri sınıflandırma yeteneğine sahiptir. ART, sinir ağlarını öğrenmek için uzun süreli ve kısa süreli bellek kavramını kullanır. Uzun süreli bellek, ağın eğitildiği görüntülere verilen tepkileri ağırlık vektörleri biçiminde depolar. Kısa süreli bellek, mevcut giriş görüntüsünü, beklenen görüntüyü, giriş görüntüsünün sınıflandırmasını içerir. NN girişine yeni bir model beslendiğinde, beklenen model uzun süreli bellekten alınır. Belirli bir kritere göre benzerlerse, ağ onu mevcut sınıfa ait olarak sınıflandırır. Farklılarsa, girdi vektörünün sınıfın ilk üyesi olacağı yeni bir sınıf oluşturulur.

Bu öğrenmeye çekişmeli öğrenme denir. En basit çekişmeli öğrenme türü, “kazanan hepsini alır” kuralıyla belirlenir. en iyi çıkışa sahip topluluk etkinleştirilir, geri kalanı bastırılır.

Aktivasyon düzeyi en yüksek olan öğeye “kazanan” denir. Seçildiğinde, NN, uzun süreli belleğin ağırlıkları arasında tekrar tekrar çalışarak girdi görüntüsünün özelliklerini uzun süreli bellek üyelerine ekler. Grossberg bu sürece rezonans adını verdi.

Kohonen kuralı:

Helsinki Teknoloji Enstitüsü'nden Theo Kohonen, Kohonen haritası gibi bir sinir ağında “denetimsiz” öğrenme kuralını geliştirmek için çekişmeli öğrenme kavramını kullandı (Şekil 3.3).

Kohonen kuralı aşağıdaki gibidir. İlk olarak, kazanan hepsini alır stratejisi kullanılarak bir kazanan seçilir. j'inci nöronun çıkışı, giriş katmanı ile j'inci nöron arasındaki bağlantıların ağırlıklarının vektörü ile giriş vektörü U'nun skaler çarpımı (U, W j) tarafından belirlendiği için, U, W j vektörleri Bu nedenle, W j ağırlıklarının vektörü U girdi vektörüne en yakın olan bir nöron seçilir (başka bir deyişle, en aktif nöron seçilir). Daha sonra, yeni bir W j vektörü, U girdi vektörüne daha yakın olacak şekilde oluşturulur, yani. :

Wi ij yeni = W ij eski + g (U - W ij eski) i = 1,2, ..., k.

burada: k, ağ girişlerinin sayısıdır.

g bir öğrenme sabitidir.

Boltzmann eğitimi:

Boltzmann eğitimi, sinir ağının çıktısını değiştirmenin amaç fonksiyonuna uygun olarak eğitimi güçlendirmeyi içerir. Bu eğitim, ağırlıkları değiştirmek için olasılıksal bir fonksiyon kullanır. Bu fonksiyon genellikle Gauss dağılımı biçimindedir, ancak diğer dağılımlar da kullanılabilir.

Boltzmann eğitimi birkaç aşamada gerçekleştirilir.

1. Katsayı T'ye büyük bir başlangıç ​​değeri verilir.

2. Ağdan bir girdi vektörü geçirilir ve çıktıdan amaç fonksiyonu hesaplanır.

3. Ağırlık, Gauss dağılımına göre rastgele değiştirilir: P (x) = exp (-x 2 / T 2), burada x ağırlıktaki değişikliktir.

4. Çıktı ve amaç fonksiyonu tekrar hesaplanır.

5. Amaç fonksiyonunun değeri azaldıysa (iyileştiyse), ağırlıktaki değişikliği koruyun. Değilse ve amaç fonksiyonundaki bozulmanın değeri C ise, ağırlıktaki değişikliğin devam etme olasılığı aşağıdaki gibi hesaplanır.

P (C) değeri, Boltzmann dağılımı kullanılarak belirlenen amaç fonksiyonunda C'deki bir değişikliğin olasılığıdır: P (C) ~ exp (- C / kT)

burada: k, problemin koşullarına bağlı olarak seçilen Boltzmann sabitine benzer bir sabittir.

Sonra sıfırdan bire düzgün bir dağılım kullanarak rastgele bir V sayısı seçin. Р (С)> V ise, ağırlıktaki değişiklik korunur, aksi takdirde ağırlıktaki değişiklik sıfıra eşittir.

Adım 3 - 5 ağ ağırlıklarının her biri için tekrarlanırken, amaç fonksiyonunun kabul edilebilir düşük bir değerine ulaşılana kadar T kademeli olarak azaltılır. Bundan sonra, tüm öğrenme süreci başka bir girdi vektörü için tekrarlanır. Ağ, amaç fonksiyonu hepsi için uygun hale gelene kadar tüm vektörler üzerinde eğitilir. Ayrıca yakınsamayı sağlamak için T'deki değişim t zamanının logaritması ile orantılı olmalıdır:

T (t) = T (0) / günlük (1 + t)

Bu, amaç fonksiyonunun yakınsama hızının düşük olduğu, dolayısıyla eğitim süresinin çok uzun olabileceği anlamına gelir.

... Sinir ağlarını eğitmek için algoritmalar.

İleri beslemeli ağların eğitimi.

Ağı eğitmek için d j (j = 1,2 ...

Bu veriler üzerindeki ağ işlem hatası şu şekilde tanımlanır:

burada: y j - ağ çıkışı.

Bu hatayı azaltmak için ağ ağırlıkları aşağıdaki kurala göre değiştirilmelidir:

W k yeni = W k eski -  • (E / W k)

burada:  öğrenme oranını karakterize eden bir sabittir.

Son formül, ağırlıkların uzayında gradyan iniş sürecini tanımlar. dE / dW türevinin ifadesi aşağıdaki gibidir:

E / W k-1 ij = (d j - y j) f j u k-1 i çıkış katmanı için, yani. k = K

E / W k-1 ij =  [(d j - y j)  f j w k ij]  f j u k-1 i gizli katmanlar için,

onlar. k = 1.2. ... ... , K-1.

Doğrusal olmayan bir dönüştürme işlevi olarak bir sigmoid işlevi kullanılıyorsa, son iki ifade yerine, çıktı katmanı için aşağıdaki yinelenen formüllerin kullanılması uygundur:

 k-1 j = (d j - y j) y j  (1- y j), E / W k-1 ij =  k-1 j u k-1 i

gizli katmanlar için:

 k-1 j =  [ k j w k] u j k  (1- u j k), E / W k-1 ij =  k-1 j u k-1 i

Bu ilişkilere Geri Yayılım formülleri denir. Doğrudan çalışma sırasında, giriş sinyali ağ üzerinden giriş katmanından çıkışa yayılırsa, ağırlıkları ayarlarken ağ hatası çıkış katmanından girişe yayılır.

Kohonen ağlarının eğitimi (özellik haritalarının oluşturulması).

Bir Kohonen haritası oluşturmak için, eğitim öznitelik vektörlerinin (U) yeterince temsili bir örneği gereklidir. (U) kümesinin her U vektörü k boyutuna sahip olsun: U = (U 1, U 2,..., U k).

O halde Kohonen ağının ilk (dağıtım) katmanı k tane nörona sahip olmalıdır; İkinci katmanın (harita) n nöronu, örneğin kare dikdörtgen bir ızgaradan bazı düzenli konfigürasyonlarda düzlemin dışına yerleştirilmiştir (Şekil 3.3). Birinci ve ikinci katman Wij'nin nöronları arasındaki ayarlanabilir bağlantılara rastgele değerler atanır.

Burada i indeksi birinci katmanın nöron sayısını, j indeksi - ikinci katmanın nöron sayısını ifade eder. Eğitime başlamadan önce, ikinci katmanın nöronlarının birbirleri üzerindeki etkisinin işlevi g (r, t) ayarlanır, burada r, nöronlar arasındaki mesafedir, t, eğitim süresini karakterize eden bir parametredir.

Bu işlev geleneksel olarak, t parametresi arttıkça öğrenme sürecinde "daraltılmış" olan bir "Meksika şapkası" (Şekil 3.4.) biçimine sahiptir. Ancak, genellikle daha basit işlevler kullanılır, örneğin:

burada: D, Meksika şapkasının pozitif tepe noktasının başlangıç ​​yarıçapını karakterize eden bir sabittir.

Her eğitim döngüsü, W ij ağırlıklarının müteakip düzeltmesi ile eğitim setinin vektörler ağını dönüşümlü olarak sunmaktan oluşur. Ayar aşağıdaki gibi gerçekleştirilir:

1. Ağın girişinde bir sonraki eğitim vektörü U göründüğünde, ağ ikinci katmanın nöronlarının yanıtını hesaplar:

2. Kazanan nöron seçilir (yani en yüksek tepkiye sahip nöron). C sayısı şu şekilde tanımlanır:

C = argmaks Y j, j = 1,2,. ... ., n.

3. W bağlarının ağırlıklarının düzeltilmesi aşağıdaki formüle göre yapılır:

Wi ij yeni = W ij eski +  • g (r, t) • (U i - W ij eski), ben = 1,. ... ... k; j=1,. ... ... n.

Burada  sabit bir karakterize edici öğrenmedir.

Bir sonraki öğrenme döngüsünden sonra ağırlıkları değiştirme süreci yavaşlamışsa, t parametresini artırın.

Hopfield ağları eğitimi.

Burada ağın sonraki kullanımıyla ilgili iki olasılığı vurgulamalıyız: bir çağrışımsal bellek olarak mı yoksa bir optimizasyon problemini çözmek için mi kullanılacak.

Ağ, ilişkisel bir bellek olarak kullanılır. Yani: içinde m ikili vektör V s, s = 1,2, depolamak istiyoruz. ... .n: V s = (V 1s, V 2s, ..., V ns).

Bu, bu vektörlerden herhangi birinin bir ağı sunulurken, bu vektöre karşılık gelen kararlı bir duruma gelmesi gerektiği anlamına gelir; nöronların çıkışında aynı vektör seçilmelidir. Ağ, bilinmeyen bir U vektörü ile sunuluyorsa, saklanan vektörlerden V i, ağın U'ya en yakın olan çıkışında görünmelidir.

Açıkçası, böyle bir ağdaki nöronların sayısı, depolanan vektörlerin n uzunluğuna eşit olmalıdır.

Böyle bir ağın ağırlıklarını oluşturmanın en basit yolu aşağıdaki prosedürle elde edilir:

Ancak, böyle bir ağın kapasitesi (yani depolanan vektörlerin sayısı m) küçüktür, m  log n. Bu çalışmada ağırlıkları oluşturmak için Hebb tipi öğrenme kuralı kullanılmış ve bunun sonucunda ağ kapasitesi m  n elde edilmiştir.

Ağ, optimizasyon problemini çözmek için kullanılır. Bu olasılık, Hopfield ağlarının aşağıdaki dikkate değer özelliğinden kaynaklanmaktadır: ağın çalışması sırasında, değer (literatürde yaygın olarak Hopfield ağının "enerjisi" olarak adlandırılır) artmaz. Hopfield ağının "enerjisi" seçeneklerinden biri:

burada A, B problem tarafından tanımlanan sabitlerdir. Araştırma görevi, bir sinir ağı açısından ilk optimizasyon problemini formüle etmek ve minimize edilmiş fonksiyonel E h'yi yazmaktır. Wi ij için elde edilen ifade, ağırlıklandırma faktörlerinin değerini verir. İşlevselliğin bir sonucu olarak, ağ, işlevsel E h'nin yerel bir minimumuna karşılık gelen bir denge durumuna getirir. Bu durumda, nöronların uyarılma değerleri, minimuma ulaşıldığı argümanların değerlerine karşılık gelir.