• Sinir ağlarını öğrenmek: nereden başlamalı? Sinir ağı eğitimi. Geriye Yayılım Algoritması

    Bu bölümde aşağıdaki gibi kavramları tanıttık. yapay zeka, makine öğrenmesi ve yapay sinir ağları.

    Bu bölümde yapay nöron modelini ayrıntılı olarak anlatacağım, ağ eğitimine yönelik yaklaşımları anlatacağım ve ayrıca iyi bilinen bazı yapay nöron türlerini anlatacağım. nöral ağlar bunu sonraki bölümlerde inceleyeceğiz.

    Basitleştirme

    Son bölümde sürekli olarak bazı ciddi basitleştirmelerden bahsettim. Basitleştirmelerin nedeni, modern bilgisayarlar yapamamak hızlı Beynimiz gibi karmaşık sistemleri simüle edin. Ayrıca dediğim gibi beynimiz bilgi işlemeyle ilgisi olmayan çeşitli biyolojik mekanizmalarla doludur.

    Giriş sinyalini ihtiyacımız olan çıkışa dönüştürmek için bir modele ihtiyacımız var. Geriye kalan her şey bizi ilgilendirmiyor. Basitleştirmeye başlayalım.

    Biyolojik yapı → şema

    Önceki bölümde biyolojik sinir ağlarının ve biyolojik nöronların ne kadar karmaşık olduğunu fark ettiniz. Nöronları dokunaçlı canavarlar olarak tasvir etmek yerine sadece diyagramlar çizelim.

    Genel olarak konuşursak, birkaç yol vardır grafik görüntü sinir ağları ve nöronlar. Burada yapay nöronları daireler halinde tasvir edeceğiz.

    Giriş ve çıkışların karmaşık bir şekilde iç içe geçmesi yerine, sinyal hareketinin yönünü gösteren okları kullanacağız.

    Böylece, bir yapay sinir ağı, oklarla birbirine bağlanan bir dizi daire (yapay nöronlar) olarak temsil edilebilir.

    Elektrik sinyalleri → sayılar

    Gerçek bir biyolojik sinir ağında, ağ girişlerinden çıkışlara bir elektrik sinyali iletilir. Sinir ağından geçme sürecinde değişebilir.

    Bir elektrik sinyali her zaman bir elektrik sinyali olacaktır. Kavramsal olarak hiçbir şey değişmiyor. Peki o zaman değişen ne? Bu elektrik sinyalinin büyüklüğü değişir (daha güçlü/zayıf). Ve herhangi bir değer her zaman bir sayı (büyük/küçük) olarak ifade edilebilir.

    Yapay sinir ağı modelimizde, hiçbir şey onun uygulanmasına bağlı olmayacağından, elektrik sinyalinin davranışını kesinlikle uygulamamıza gerek yoktur.

    Ağ girişlerine, eğer varsa, elektrik sinyalinin büyüklüğünü simgeleyen bazı sayılar uygulayacağız. Bu sayılar ağ içerisinde hareket edecek ve bir şekilde değişecektir. Ağın çıkışında, ağın yanıtı olan bir sonuç numarası elde edeceğiz.

    Kolaylık olması açısından ağ sinyallerinde dolaşan numaralarımızı aramaya devam edeceğiz.

    Sinapslar → bağlantı ağırlıkları

    Nöronlar - sinapslar - arasındaki bağlantıların renkli olarak gösterildiği ilk bölümdeki resmi hatırlayalım. Sinapslar, içlerinden geçen elektrik sinyalini güçlendirebilir veya zayıflatabilir.

    Bu tür bağlantıların her birini, bu bağlantının ağırlığı adı verilen belirli bir sayı ile karakterize edelim. Sinyal geçti bu bağlantı, karşılık gelen bağlantının ağırlığı ile çarpılır.

    Yapay sinir ağları kavramında bu önemli bir nokta, bunu daha detaylı anlatacağım. Aşağıdaki resme bakın. Şimdi bu resimdeki her siyah ok (bağlantı) bir sayıya karşılık gelir ​\(w_i \)​ (bağlantı ağırlığı). Ve bir sinyal bu bağlantıdan geçtiğinde, büyüklüğü bu bağlantının ağırlığıyla çarpılır.

    Yukarıdaki şekilde etiketler için yer olmadığı için her bağlantının bir ağırlığı yoktur. Gerçekte, her ​\(i \) ​'inci bağlantının kendi ​\(w_i \) ​ağırlığı vardır.

    yapay nöron

    Şimdi yapay bir nöronun iç yapısını ve girişlerine gelen sinyali nasıl dönüştürdüğünü ele alacağız.

    Aşağıdaki şekil göstermektedir komple model yapay nöron.

    Korkma, burada karmaşık bir şey yok. Soldan sağa her şeye ayrıntılı olarak bakalım.

    Girişler, ağırlıklar ve toplayıcı

    Yapay olanı da dahil olmak üzere her nöronun, sinyali aldığı bazı girişlere sahip olması gerekir. Bağlantıdan geçen sinyallerin çarpıldığı ağırlık kavramını daha önce tanıtmıştık. Yukarıdaki resimde ağırlıklar dairelerle temsil edilmektedir.

    Girişlerden alınan sinyaller ağırlıklarıyla çarpılır. İlk girişin sinyali ​\(x_1 \) ​ bu girişe karşılık gelen ​\(w_1 \) ağırlığı ile çarpılır. Sonuç olarak ​\(x_1w_1 \) elde ederiz. Ve bu, ​\(n \) ​'inci girişe kadar devam eder. Sonuç olarak, son giriş​\(x_nw_n \) elde ederiz.

    Artık tüm ürünler toplayıcıya aktarılıyor. Zaten isminden yola çıkarak ne yaptığını anlayabilirsiniz. Basitçe tüm girdileri ilgili ağırlıklarıyla çarparak toplar:

    \[ x_1w_1+x_2w_2+\cdots+x_nw_n = \sum\limits^n_(i=1)x_iw_i \]

    Matematik Yardımı

    Sigma - Vikipedi.

    Tekrarlayan / aynı türdeki üyelerin toplamından oluşan büyük bir ifadeyi kısaca yazmak gerektiğinde sigma işareti kullanılır.

    Dikkate almak en basit seçenek kayıtlar:

    \[ \sum\limits^5_(i=1)i=1+2+3+4+5 \]

    Böylece, sigmanın altından, sayaç değişkenine ​\(i \)​ üst sınıra ulaşana kadar artacak bir başlangıç ​​değeri atarız (yukarıdaki örnekte bu 5'tir).

    Üst limit de değişken olabilir. Böyle bir duruma örnek vereceğim.

    Diyelim ki ​\(n\) mağazamız var. Her mağazanın kendi numarası vardır: 1'den ​\(n\)​'e. Her mağaza kâr eder. Hadi biraz (hangisi olduğu önemli değil) ​\(i \) ​th mağazasını alalım. Bundan elde edilen kâr ​\(p_i \) ​.

    \[ P = p_1+p_2+\cdots+p_i+\cdots+p_n \]

    Gördüğünüz gibi bu toplamın tüm terimleri aynı türdedir. O zaman kısaca şu şekilde yazılabilirler:

    \[ P=\toplam\limits^n_(i=1)p_i \]

    Başka bir deyişle: "İlk mağazadan başlayıp ​\(n \) ​th ile biten tüm mağazaların karlarını toplayın." Formül şeklinde çok daha basit, daha kullanışlı ve daha güzel.

    Toplayıcının sonucu ağırlıklı toplam adı verilen bir sayıdır.

    Ağırlıklı toplam(ağırlıklı toplam) (​\(net \) ​) girdilerin toplamının ilgili ağırlıklarıyla çarpımıdır.

    \[ net=\sum\limits^n_(i=1)x_iw_i \]

    Toplayıcının rolü açıktır - tüm giriş sinyallerini (çok sayıda olabilir) tek bir sayı halinde toplar - nöron tarafından bir bütün olarak alınan sinyali karakterize eden ağırlıklı bir toplam. Bir başka ağırlıklı toplam, nöronun genel uyarılma derecesi olarak temsil edilebilir.

    Örnek

    Yapay bir nöronun son bileşeninin - aktivasyon fonksiyonunun - rolünü anlamak için bir benzetme yapacağım.

    Bir yapay nöronu ele alalım. Görevi denizde dinlenmeye gidip gitmeyeceğine karar vermektir. Bunu yapmak için girişlerine çeşitli veriler besliyoruz. Nöronumuzun 4 girişi olsun:

    1. Seyahat maliyeti
    2. Denizde hava nasıl
    3. Mevcut çalışma durumu
    4. Sahilde snack bar olacak mı

    Tüm bu parametreler 0 veya 1 ile karakterize edilecektir. Buna göre denizde hava güzelse bu girdiye 1 uygularız ve diğer tüm parametreler için de aynısı geçerlidir.

    Bir nöronun dört girişi varsa, o zaman dört ağırlığın da olması gerekir. Örneğimizde ağırlıklandırma faktörleri, her bir girdinin öneminin göstergeleri olarak düşünülebilir. ortak karar nöron. Girişlerin ağırlıklarını aşağıdaki gibi dağıtıyoruz:

    Denizdeki maliyet ve hava durumu faktörlerinin (ilk iki girdi) çok önemli bir rol oynadığını görmek kolaydır. Ayrıca nöronun karar vermesinde de belirleyici rol oynayacaklar.

    Nöronumuzun girişlerine aşağıdaki sinyalleri gönderelim:

    Girişlerin ağırlıklarını karşılık gelen girişlerin sinyalleriyle çarpıyoruz:

    Bu girdi kümesinin ağırlıklı toplamı 6'dır:

    \[ net=\sum\limits^4_(i=1)x_iw_i = 5 + 0 + 0 + 1 =6 \]

    Aktivasyon fonksiyonunun devreye girdiği yer burasıdır.

    Etkinleştirme işlevi

    Sadece çıkışa ağırlıklı bir miktar vermek oldukça anlamsız. Nöron bir şekilde bunu işlemeli ve yeterli bir çıkış sinyali oluşturmalıdır. Aktivasyon fonksiyonu bu amaçla kullanılır.

    Ağırlıklı toplamı, nöronun çıktısı olan bir sayıya dönüştürür (nöronun çıktısını ​\(out \) değişkeniyle belirtiriz).

    İçin farklı şekiller Yapay nöronlar çeşitli aktivasyon fonksiyonlarını kullanır. Genel olarak ​\(\phi(net) \) sembolüyle gösterilirler. Parantez içinde ağırlıklı bir sinyalin belirtilmesi, aktivasyon fonksiyonunun ağırlıklı toplamı parametre olarak alması anlamına gelir.

    Etkinleştirme işlevi (aktivasyon fonksiyonu)(​\(\phi(net) \) ​) argüman olarak ağırlıklı toplamı alan bir fonksiyondur. Bu fonksiyonun değeri nöronun çıktısıdır (\(out \) ).

    Tek atlama işlevi

    Aktivasyon fonksiyonunun en basit türü. Bir nöronun çıkışı yalnızca 0 veya 1 olabilir. Ağırlıklı toplam belirli bir eşikten büyükse ​\(b \), o zaman nöronun çıkışı 1 olur. Daha düşükse o zaman 0 olur.

    Bu nasıl kullanılabilir? Diyelim ki denize ancak ağırlıklı toplam 5'ten büyük veya eşit olduğunda gidiyoruz. Yani eşiğimiz 5:

    Örneğimizde ağırlıklı toplam 6 idi, yani nöronumuzun çıktısı 1 oldu. Yani denize gidiyoruz.

    Bununla birlikte, denizde hava kötüyse ve yolculuk çok pahalıysa, ancak bir atıştırmalık büfesi ve normal bir çalışma ortamı varsa (girdiler: 0011), o zaman ağırlıklı toplam 2 olur, bu da nöronun çıkışının şu anlama gelir: 0 olsun. Yani hiçbir yere gitmiyoruz.

    Genel olarak nöron ağırlıklı toplama bakar ve eğer eşik değerinden büyükse nöron 1'e eşit bir çıktı üretir.

    Grafiksel olarak bu aktivasyon fonksiyonu aşağıdaki gibi gösterilebilir.

    Ağırlıklı toplam değerleri yatay eksende bulunur. Dikey eksende çıkış sinyalinin değerleri bulunur. Görülmesi kolay olduğu gibi, çıkış sinyalinin yalnızca iki değeri mümkündür: 0 veya 1. Ayrıca, 0 her zaman eksi sonsuzdan eşik adı verilen ağırlıklı toplamın bir değerine kadar verilecektir. Ağırlıklı toplam eşiğe eşit veya eşikten büyükse işlev 1 değerini döndürür. Her şey son derece basittir.

    Şimdi bu aktivasyon fonksiyonunu matematiksel olarak yazalım. Bileşik fonksiyon kavramıyla neredeyse kesinlikle karşılaşmışsınızdır. Bu, birkaç kuralı tek bir fonksiyon altında birleştirdiğimizde, değeri buna göre hesaplanır. Bileşik fonksiyon formunda birim atlama fonksiyonu şöyle görünecektir:

    \[out(net) = \begin(cases) 0, net< b \\ 1, net \geq b \end{cases} \]

    Bu girişte karmaşık bir şey yok. Bir nöronun çıktısı (​\(dışarı \) ​) ağırlıklı toplama (​\(net \) ​) şu şekilde bağlıdır: eğer ​\(net \) ​ (ağırlıklı toplam) bir eşikten küçükse (​ \(b \ ) ​), o zaman ​\(out \) ​ (nöronun çıkışı) 0'dır. Ve eğer ​\(net \) ​ eşikten büyük veya eşik değere eşitse ​\(b \) ​, o zaman ​\(dışarı \) ​ 1'e eşittir.

    Sigmoid işlevi

    Aslında, bazıları yapay nöronlarda aktivasyon fonksiyonu olarak kullanılan bir dizi sigmoidal fonksiyon vardır.

    Tüm bu işlevler, sinir ağlarında kullanıldıkları bazı çok yararlı özelliklere sahiptir. Bu fonksiyonların grafiklerini gördükten sonra bu özellikler açıkça görülecektir.

    Yani ... sinir ağlarında en yaygın kullanılan sigmoid lojistik fonksiyon.

    Bu fonksiyonun grafiği oldukça basit görünüyor. Yakından bakarsanız benzerlik görebilirsiniz İngilizce mektup​\(S \) ​, bu işlevler ailesinin adı buradan gelmektedir.

    Analitik olarak şu şekilde yazılır:

    \[ out(net)=\frac(1)(1+\exp(-a \cdot net)) \]

    \(a\) parametresi nedir? Bu, fonksiyonun diklik derecesini karakterize eden bir sayıdır. Aşağıda farklı parametrelere sahip lojistik fonksiyonlar ​\(a \) ​.

    Denize açılıp açılmayacağımıza karar veren yapay nöronumuzu hatırlayın. Birim atlama fonksiyonu durumunda her şey açıktı. Denize ya gideriz (1) ya da gitmeyiz (0).

    Burada durum gerçeğe daha yakın. Tam olarak emin değiliz (özellikle paranoyaksanız) - gitmeye değer mi? Daha sonra lojistik fonksiyonunu bir aktivasyon fonksiyonu olarak kullanmak, 0 ile 1 arasında bir sayı elde etmenizle sonuçlanacaktır. Ağırlıklı toplam ne kadar büyükse, çıktı 1'e o kadar yakın olacaktır (ancak hiçbir zaman tam olarak ona eşit olmayacaktır). Tersine, ağırlıklı toplam ne kadar küçükse, nöronun çıktısı 0'a o kadar yakın olacaktır.

    Örneğin nöronumuzun çıktısı 0,8'dir. Bu, hâlâ denize gitmeye değer olduğuna inandığı anlamına gelir. Eğer çıktısı 0,2 olsaydı, bu onun neredeyse kesinlikle denize gitmeye karşı olacağı anlamına gelirdi.

    Lojistik fonksiyonun dikkat çekici özellikleri nelerdir?

    • bu bir "sıkıştırma" fonksiyonudur, yani argümandan (ağırlıklı toplam) bağımsız olarak çıkış sinyali her zaman 0 ile 1 arasında olacaktır.
    • birim atlama fonksiyonundan daha esnektir - sonucu yalnızca 0 ve 1 değil, aradaki herhangi bir sayı da olabilir
    • her noktada bir türevi vardır ve bu türev aynı fonksiyonla ifade edilebilir

    Bu özelliklerinden dolayı lojistik fonksiyon çoğunlukla yapay nöronlarda aktivasyon fonksiyonu olarak kullanılır.

    Hiperbolik tanjant

    Ancak başka bir sigmoid daha var: hiperbolik tanjant. Sinir hücresinin daha gerçekçi bir modeli için biyologlar tarafından aktivasyon fonksiyonu olarak kullanılır.

    Böyle bir işlev, çıktıda çeşitli ağlar için faydalı olabilecek farklı işaretlerin değerlerini (örneğin, -1'den 1'e kadar) almanızı sağlar.

    Fonksiyon şu şekilde yazılmıştır:

    \[ out(net) = \tanh\left(\frac(net)(a)\right) \]

    Yukarıdaki formülde ​\(a \) ​ parametresi aynı zamanda bu fonksiyonun grafiğinin ne kadar dik olduğunu da belirler.

    Ve işte bu fonksiyonun grafiği.

    Gördüğünüz gibi lojistik fonksiyonun grafiğine benziyor. Hiperbolik tanjant, lojistik fonksiyonun sahip olduğu tüm kullanışlı özelliklere sahiptir.

    Ne öğrendik?

    Artık yapay bir nöronun iç yapısını tam olarak anladınız. tekrar getireceğim Kısa Açıklama onun işleri.

    Bir nöronun girdileri vardır. Onlara sayı şeklinde sinyaller verilir. Her girdinin kendi ağırlığı (aynı zamanda bir sayısı) vardır. Giriş sinyalleri karşılık gelen ağırlıklarla çarpılır. Bir dizi "ağırlıklı" giriş sinyali alıyoruz.

    Ağırlıklı toplam daha sonra dönüştürülür aktivasyon fonksiyonu ve alıyoruz nöron çıkışı.

    Şimdi bir nöronun çalışmasının en kısa tanımını, matematiksel modelini formüle edelim:

    Yapay bir nöronun matematiksel modeli​\(n\)​ girişleriyle:

    Nerede
    ​\(\phi \) ​ – etkinleştirme işlevi
    \(\sum\limits^n_(i=1)x_iw_i \)​, giriş sinyallerinin çarpımları ve karşılık gelen ağırlıkların ​\(n\)​ toplamı olarak ağırlıklı toplamdır.

    INS Türleri

    Yapay bir nöronun yapısını çözdük. Yapay sinir ağları bir dizi yapay nörondan oluşur. Mantıksal bir soru ortaya çıkıyor - bu çok yapay nöronlar birbirleriyle nasıl düzenlenecek / bağlanacak?

    Kural olarak, çoğu sinir ağında sözde bir şey vardır. giriş katmanı, yalnızca tek bir görevi yerine getirir - giriş sinyallerinin diğer nöronlara dağıtımı. Bu katmanın nöronları herhangi bir hesaplama yapmaz.

    Tek katmanlı sinir ağları

    Tek katmanlı sinir ağlarında giriş katmanından gelen sinyaller hemen çıkış katmanına beslenir. Sonuçları anında çıktılara aktarılan gerekli hesaplamaları yapar.

    Tek katmanlı bir sinir ağı şuna benzer:

    Bu resimde, giriş katmanı dairelerle işaretlenmiştir (bir sinir ağı katmanı olarak kabul edilmez) ve sağda sıradan nöronlardan oluşan bir katman bulunmaktadır.

    Nöronlar birbirlerine oklarla bağlanır. Okların üstünde ilgili bağlantıların ağırlıkları (ağırlık katsayıları) bulunur.

    Tek katmanlı sinir ağı (tek katmanlı sinir ağı) - giriş katmanından gelen sinyallerin hemen çıkış katmanına beslendiği, sinyali dönüştüren ve hemen cevap veren bir ağ.

    Çok katmanlı sinir ağları

    Bu tür ağlar, nöronların giriş ve çıkış katmanlarına ek olarak gizli katman(lar)la da karakterize edilir. Konumlarını anlamak kolaydır; bu katmanlar giriş ve çıkış katmanları arasındadır.

    Sinir ağlarının bu yapısı, beynin belirli bölümlerinin çok katmanlı yapısını kopyalar.

    Gizli katmanın adı tesadüfi değildi. Gerçek şu ki, gizli katmandaki nöronları eğitmek için nispeten yakın zamanda yöntemler geliştirildi. Bundan önce yalnızca tek katmanlı sinir ağlarıyla idare ediyorlardı.

    Çok katmanlı sinir ağları, tek katmanlı sinir ağlarından çok daha güçlüdür.

    Nöronların gizli katmanlarının çalışmasını büyük bir fabrikanın çalışmasına benzetebiliriz. Tesisteki ürün (çıkış sinyali) aşamalar halinde monte edilir. Her makineden sonra bazı ara sonuçlar elde edilir. Gizli katmanlar ayrıca giriş sinyallerini bazı ara sonuçlara dönüştürür.

    Çok katmanlı sinir ağı (çok katmanlı sinir ağı) - girdi, çıktı ve aralarında bulunan bir (birkaç) gizli nöron katmanından oluşan bir sinir ağı.

    Doğrudan yayılma ağları

    Yukarıdaki örneklerde sinir ağı resimlerinde çok ilginç bir ayrıntıyı fark edebilirsiniz.

    Tüm örneklerde oklar kesinlikle soldan sağa doğru gider, yani bu tür ağlardaki sinyal kesinlikle giriş katmanından çıkış katmanına gider.

    Doğrudan yayılma ağları (İleri beslemeli sinir ağı) (ileri beslemeli ağlar) - sinyalin kesinlikle giriş katmanından çıkış katmanına yayıldığı yapay sinir ağları. Sinyal ters yönde yayılmaz.

    Bu tür ağlar yaygın olarak kullanılmaktadır ve belirli bir sorun sınıfını oldukça başarılı bir şekilde çözmektedir: tahmin, kümeleme ve tanıma.

    Ancak hiç kimse sinyalin ters yöne gitmesini yasaklamaz.

    Geri bildirim ağları

    Bu tür ağlarda sinyal ters yöne gidebilir. Avantajı nedir?

    Gerçek şu ki, doğrudan yayılma ağlarında ağın çıktısı, giriş sinyali ve yapay nöronların ağırlıklandırma katsayıları tarafından belirlenir.

    Ve ağlarda geri bildirim Nöron çıktıları girdilere geri beslenebilir. Bu, bir nöronun çıkışının yalnızca ağırlıkları ve giriş sinyali tarafından değil, aynı zamanda önceki çıkışlar (çünkü tekrar girişlere döndükleri için) tarafından da belirlendiği anlamına gelir.

    Sinyallerin bir ağda dolaşabilme yeteneği, sinir ağları için yeni ve şaşırtıcı olasılıkların önünü açıyor. Bu tür ağları kullanarak sinyalleri geri yükleyen veya tamamlayan sinir ağları oluşturabilirsiniz. Başka bir deyişle, bu tür sinir ağlarının özellikleri vardır. kısa süreli hafıza(bir insan gibi).

    Geri bildirim ağları (Tekrarlayan sinir ağı) - bir nöronun çıktısının girişine geri beslenebildiği yapay sinir ağları. Daha genel bir durumda bu, sinyalin çıkışlardan girişlere yayılma olasılığı anlamına gelir.

    Sinir ağı eğitimi

    Şimdi bir sinir ağının eğitimi konusuna daha yakından bakalım. Ne olduğunu? Peki bu nasıl oluyor?

    Ağ öğrenimi nedir?

    Yapay sinir ağı, yapay nöronların bir koleksiyonudur. Şimdi örneğin 100 nöronu alalım ve bunları birbirine bağlayalım. Girişe bir sinyal uygulandığında çıkışta anlamsız bir şey elde edeceğimiz açıktır.

    Bu yüzden giriş sinyali ihtiyacımız olan çıkışa dönüştürülene kadar bazı ağ parametrelerini değiştirmemiz gerekiyor.

    Bir sinir ağında neyi değiştirebiliriz?

    Yapay nöronların toplam sayısını değiştirmek iki nedenden dolayı anlamsızdır. Birincisi, bir bütün olarak bilgi işlem elemanlarının sayısındaki artış, sistemi yalnızca daha ağır ve gereksiz hale getirir. İkincisi, 100 yerine 1000 aptal toplarsanız yine de soruyu doğru cevaplayamayacaklardır.

    Eklemek için sabit kodlanmış bir işlevi gerçekleştirdiği için toplayıcı değiştirilemez. Eğer onu bir şeyle değiştirirsek ya da tamamen ortadan kaldırırsak o artık yapay bir nöron olmayacaktır.

    Her nöronun aktivasyon fonksiyonunu değiştirirsek, çok rengarenk ve kontrolsüz bir sinir ağı elde ederiz. Ayrıca çoğu durumda sinir ağlarındaki nöronlar aynı tiptedir. Yani hepsi aynı aktivasyon fonksiyonuna sahiptir.

    Geriye tek bir seçenek kaldı - bağlantı ağırlıklarını değiştir.

    Sinir ağı eğitimi (eğitim)- giriş sinyalinin ağdan geçtikten sonra ihtiyacımız olan çıktıya dönüştürüldüğü böyle bir ağırlık katsayıları kümesini arayın.

    “Sinir ağı eğitimi” terimine yönelik bu yaklaşım aynı zamanda biyolojik sinir ağlarına da karşılık gelmektedir. Beynimiz birbirine bağlı çok sayıda sinir ağından oluşur. Her biri ayrı ayrı aynı tipteki nöronlardan oluşur (aktivasyon fonksiyonu aynıdır). Giriş sinyalini yükselten/azaltan unsurlar olan sinapsları değiştirerek öğreniriz.

    Ancak bir tane daha var önemli nokta. Ağı yalnızca bir giriş sinyali kullanarak eğitirseniz, ağ yalnızca "doğru cevabı hatırlayacaktır". Dışarıdan bakıldığında çok çabuk "öğrendiği" görülüyor. Ve doğru cevabı görmeyi bekleyerek biraz değiştirilmiş bir sinyal verdiğinizde, ağ saçmalık yayacaktır.

    Aslında sadece bir fotoğraftaki yüzü algılayan bir ağa neden ihtiyacımız var? Ağdan bu yeteneği bekliyoruz genelleştirmek Bazıları diğer fotoğraflardaki yüzleri de işaret ediyor ve tanıyor.

    Bu amaçla yaratılmışlardır eğitim örnekleri.

    Eğitim örneği (Eğitim Seti), ağın eğitildiği sınırlı bir giriş sinyalleri kümesidir (bazen doğru çıkış sinyalleriyle birlikte).

    Ağ eğitildikten sonra, yani ağ eğitim örneğindeki tüm giriş sinyalleri için doğru sonuçlar ürettiğinde pratikte kullanılabilir.

    Bununla birlikte, yeni pişirilmiş bir sinir ağını savaşa sokmadan önce, genellikle işin kalitesini sözde örnek test.

    örnek test (test seti) - ağın kalitesini değerlendirmek için kullanılan sınırlı sayıda giriş sinyali (bazen doğru çıkış sinyalleriyle birlikte).

    "Ağ öğreniminin" ne olduğunu anladık; doğru ağırlık setini seçmek. Şimdi şu soru ortaya çıkıyor: Ağ nasıl eğitilebilir? En genel durumda, farklı sonuçlara yol açan iki yaklaşım vardır: denetimli öğrenme ve denetimsiz öğrenme.

    Bir öğretmenle öğrenme

    Bu yaklaşımın özü, girişe bir sinyal vermeniz, ağın yanıtına bakmanız ve ardından bunu önceden hazırlanmış doğru yanıtla karşılaştırmanızdır.

    Önemli bir nokta. Doğru cevapları ve iyi bilinen çözüm algoritmasını karıştırmayın! Bir fotoğraftaki bir yüzü parmağınızla takip edebilirsiniz (doğru cevap), ancak bunun nasıl yapıldığını söyleyemezsiniz (bilinen algoritma). İşte aynı durum.

    Daha sonra özel algoritmalar yardımıyla sinir ağının bağlantılarının ağırlıklarını değiştirip ona tekrar giriş sinyali veriyorsunuz. Cevabını doğru cevapla karşılaştırın ve ağ kabul edilebilir bir doğrulukla cevap vermeye başlayıncaya kadar bu işlemi tekrarlayın (Bölüm 1'de söylediğim gibi, ağ kesin olarak doğru cevaplar veremez).

    Bir öğretmenle öğrenme (Denetimli öğrenme), ağın cevaplarının önceden hazırlanmış doğru cevaplardan minimum düzeyde farklı olması için ağırlıklarının değiştiği bir ağ eğitimi türüdür.

    Doğru cevapları nereden alabilirim?

    Ağın yüzleri tanımasını istiyorsak, 1000 fotoğraftan (girdi) oluşan bir eğitim örneği oluşturabilir ve bundan bağımsız olarak yüzleri çıkarabilir (doğru yanıtlar).

    Ağın fiyatlardaki artış/düşüşü tahmin etmesini istiyorsak eğitim örneğinin geçmiş verilere dayalı olarak yapılması gerekir. Giriş sinyali olarak belirli günleri, piyasanın genel durumunu ve diğer parametreleri alabilirsiniz. Ve doğru cevaplar olarak - o günlerde fiyatın yükselişi ve düşüşü.

    Tabii ki öğretmenin mutlaka bir kişi olmadığını belirtmekte fayda var. Gerçek şu ki, bazen ağın binlerce ve on binlerce deneme yaparak saatlerce ve günlerce eğitilmesi gerekir. Vakaların% 99'unda bu rol bir bilgisayar veya daha doğrusu özel bir bilgisayar programı tarafından gerçekleştirilir.

    Öğretmen olmadan öğrenme

    Denetimsiz öğrenme, giriş sinyallerine doğru cevaplarımız olmadığında kullanılır. Bu durumda eğitim örneğinin tamamı bir dizi giriş sinyalinden oluşur.

    Ağın böyle bir eğitimi sırasında ne olur? Böyle bir "eğitim" ile ağın, girişe sağlanan sinyal sınıflarını ayırt etmeye başladığı ortaya çıktı. Kısacası ağ kümelenmeye başlar.

    Örneğin şeker, hamur işleri ve kek zincirlerini sergiliyorsunuz. Ağı hiçbir şekilde düzenlemiyorsunuz. Sadece girişlerine veri beslersiniz verilen nesne. Zamanla ağ, giriş nesnelerinden sorumlu olan üç farklı türde sinyaller üretmeye başlayacaktır.

    Öğretmen olmadan öğrenme (Denetimsiz öğrenme), ağın giriş sinyallerini bağımsız olarak sınıflandırdığı bir ağ öğrenme türüdür. Doğru (referans) çıkış sinyalleri görüntülenmiyor.

    sonuçlar

    Bu bölümde, yapay bir nöronun yapısının yanı sıra onun nasıl çalıştığını (ve matematiksel modelini) tam olarak anladınız.

    Üstelik artık farklı yapay sinir ağları türlerini biliyorsunuz: tek katmanlı, çok katmanlı, ileri beslemeli ve geri beslemeli ağlar.

    Ayrıca denetimli ve denetimsiz ağ öğrenimini de öğrendiniz.

    Gerekli teoriyi zaten biliyorsunuz. Aşağıdaki bölümlerde belirli sinir ağları türleri, bunların eğitimi ve programlama uygulamaları için özel algoritmalar tartışılmaktadır.

    Sorular ve görevler

    Yapay sinir ağlarına ilişkin temel teorik bilgileri içerdiğinden bu bölümün içeriğinin çok iyi bilinmesi gerekmektedir. Aşağıdaki tüm soru ve görevlere kendinizden emin ve doğru yanıtlar verdiğinizden emin olun.

    YSA'ların biyolojik sinir ağlarına kıyasla basitleştirilmesini açıklayın.

    1. Biyolojik sinir ağlarının karmaşık ve karmaşık yapısı basitleştirilmiş ve diyagramlar halinde sunulmuştur. Yalnızca sinyal işleme modelini bırakın.

    2. Sinir ağlarındaki elektrik sinyallerinin doğası aynıdır. Fark sadece boyutlarındadır. Kaldırıyoruz elektrik sinyalleri ve bunların yerine geçen sinyalin büyüklüğünü belirten sayıları kullanıyoruz.

    Etkinleştirme işlevi genellikle \(\phi(net) \) ile gösterilir.

    Yapay bir nöronun matematiksel modelini yazınız.

    ​\(n \) ​ girişlerine sahip bir yapay nöron, giriş sinyalini (sayı) çıkış sinyaline (sayı) aşağıdaki gibi dönüştürür:

    \[ out=\phi\left(\sum\limits^n_(i=1)x_iw_i\right) \]

    Tek katmanlı ve çok katmanlı sinir ağları arasındaki fark nedir?

    Tek katmanlı sinir ağları, bir hesaplamalı nöron katmanından oluşur. Giriş katmanı, sinyalleri doğrudan çıkış katmanına gönderir; bu katman, sinyali dönüştürür ve hemen sonucu verir.

    Çok katmanlı sinir ağlarında giriş ve çıkış katmanlarının yanı sıra gizli katmanlar da bulunur. Bu gizli katmanlar, tıpkı bir fabrikadaki ürünlerin üretim aşamaları gibi, bir tür iç ara dönüşümleri gerçekleştirir.

    İleri beslemeli ağlar ile geri bildirim ağları arasındaki fark nedir?

    İleri beslemeli ağlar, sinyalin girişlerden çıkışlara yalnızca tek yönde akmasına izin verir. Geri beslemeli ağlarda bu kısıtlamalar yoktur ve nöronların çıktıları girdilere geri beslenebilmektedir.

    Eğitim örneği nedir? Anlamı nedir?

    Ağı pratikte kullanmadan önce (örneğin, cevabını bulamadığınız mevcut sorunları çözmek için), ağı eğitmek için hazır cevapları olan bir sorun koleksiyonu toplamanız gerekir. Bu koleksiyona eğitim seti denir.

    Çok küçük bir dizi giriş ve çıkış sinyali toplarsanız, ağ yanıtları hatırlayacak ve öğrenme hedefine ulaşılamayacaktır.

    Ağ eğitimi ne anlama geliyor?

    Ağ öğrenimi, giriş sinyalini doğru çıktıya dönüştürecek bir kombinasyon seçmek için ağdaki yapay nöronların ağırlık katsayılarını değiştirme süreci olarak anlaşılmaktadır.

    Denetimli ve denetimsiz öğrenme nedir?

    Bir ağı bir öğretmenle eğitirken, girişlerine sinyaller verilir ve ardından çıkışı, daha önce bilinen doğru bir çıkışla karşılaştırılır. Cevapların gerekli doğruluğu elde edilene kadar bu işlem tekrarlanır.

    Ağlar yalnızca giriş sinyallerini hazır çıkışlarla karşılaştırmadan sağlarsa, ağ bu giriş sinyallerini bağımsız olarak sınıflandırmaya başlar. Başka bir deyişle giriş sinyallerinin kümelenmesini gerçekleştirir. Bu tür öğrenmeye denetimsiz öğrenme denir.

    Geri bildirimsiz sinir ağı - algılayıcı

    Sinir ağlarına yönelik görevler

    Sinir ağlarının kullanıldığı görevlerin çoğu, aşağıdaki ana sorunların özel durumları olarak değerlendirilebilir.

    Yaklaşım - sonlu bir değer kümesi üzerinde bir işlev oluşturma (örneğin, zaman serisi tahmini)

    · Bir dizi nesne üzerinde ilişkilerin kurulması (örneğin, görüntülerin ve ses sinyallerinin tanınması sorunları).

    Dağıtılmış bilgi erişimi ve ilişkisel hafıza(örneğin, büyük veri dizilerinde örtülü bağımlılıkları bulma sorunu).

    · Filtrasyon (örneğin, “çıplak gözle görülebilen” durumun tespiti, ancak sinyallerdeki değişikliklerin analitik olarak tanımlanması zordur).

    · Bilgilerin sıkıştırılması (örneğin, sesleri, statik ve dinamik görüntüleri sıkıştırmaya yönelik algoritmaların sinir ağı uygulamaları).

    Tanılama dinamik sistemler ve onların yönetimi.


    Aşağıdaki şekilde gösterilen çok çıkışlı çok katmanlı sinir ağı bir algılayıcıdır.

    Devre, gerekirse nöronların çıkış sinyallerini tek bir ortak çıkışta birleştiren bir toplayıcı ile desteklenebilir.

    Perceptrondaki katman sayısı problemin karmaşıklığına bağlı olarak farklı olabilir. Üç tam sinir katmanının herhangi bir değere yaklaşmak için yeterli olduğu matematiksel olarak kanıtlanmıştır (Kolmogorov teoremi). matematiksel fonksiyon(Gizli katmandaki nöron sayısını süresiz olarak artırmak mümkün olduğu sürece).

    Perceptron ayrık zaman modunda çalışır - girişe statik bir sinyal seti (giriş vektörü) uygulanır, çıkışların toplam durumu (çıkış vektörü) tahmin edilir, ardından bir sonraki vektör girişe uygulanır vb. algılayıcıdaki sinyalin girişten çıkışa anında yayıldığı, yani bir sinyalin nörondan nörona, katmandan katmana ve ilgili dinamik iletimindeki zaman gecikmeleri olduğu varsayılmaktadır. geçici olaylar eksik. Algılayıcının geri bildirimi olmadığından (ne pozitif ne de negatif), zamanın her anında, değerlerin herhangi bir giriş vektörü, sinir ağının girişleri değişmeden kaldığı sürece değişmeyecek olan belirli bir çıkış vektörüne benzersiz bir şekilde karşılık gelir.

    Algılayıcı teorisi, diğer birçok yapay sinir ağı türünün temelini oluşturur ve algılayıcıların kendisi de yapay sinir ağlarının incelenmesi için mantıksal bir başlangıç ​​noktasıdır.

    Bir sinir ağını eğitmek, ona ondan ne elde etmeye çalıştığımızı anlatmak anlamına gelir. Bu süreç bir çocuğa alfabeyi öğretmeye çok benzer. Çocuğa "A" harfinin resmini göstererek ona soruyoruz: "Bu hangi harf?" Cevap yanlışsa çocuğa ondan almak istediğimiz cevabı söyleriz: "Bu A harfidir." Çocuk bu örneği doğru cevapla birlikte hatırlar, yani hafızasında doğru yönde bazı değişiklikler meydana gelir. 33 harfin tamamı kesin olarak hatırlanana kadar mektup sunum sürecini tekrar tekrar tekrarlayacağız. Böyle bir süreç denir "bir öğretmenle antrenman yapmak" .

    Bir sinir ağını eğitirken tamamen aynı şekilde hareket ederiz. Diyelim ki bir tablomuz var - örnekleri içeren bir veritabanı (kodlanmış bir harf görüntüleri seti). Sinir ağının girişine "A" harfinin görüntüsünü sunarak, OUT1 çıkışında (A, 33 alfabesindeki 1 numaralı harftir) sinyal seviyesinin maksimum (=1) olmasını bekliyoruz (ideal olarak). harfler) ve minimum (=0) .

    Yani tablo çağrıldı öğrenme seti , şöyle görünecektir (örnek olarak yalnızca ilk satır doldurulmuştur):

    Mektup Giriş vektörü İstenilen çıktı vektörü
    X1 X2 X12 HEDEF1 HEDEF2 HEDEF33
    A
    B
    YU
    BEN

    Vektör kümesi eğitim setinin her örneği için (tablonun satırları) çağrılır öğrenen çift .

    Uygulamada, eğitimsiz bir sinir ağı ideal olarak beklediğimiz gibi çalışmayacaktır; yani örneklerin tümü veya çoğu için hata vektörleri sıfırdan önemli ölçüde farklı öğeler içerecektir.

    Sinir ağı eğitim algoritması toplam hatanın (tüm çıktılar için karesel hataların toplamı genellikle öğrenme sürecini kontrol etmek için kullanılır) azaltılması amacıyla sinir ağının ağırlıkları için bu tür düzeltmelerin hesaplanmasında hata vektörünün kullanılmasına olanak sağlayan bir dizi matematiksel işlemdir. Bu eylemlerin tekrar tekrar uygulanmasıyla, eğitim setindeki her bir örnek için (A, B, C, vb.) hatanın kademeli olarak azaltılması sağlanır.

    Ağırlıkların bu şekilde döngüsel olarak çoklu ayarlanmasından sonra sinir ağı, veritabanındaki tüm (veya hemen hemen tüm) örneklere doğru (veya neredeyse doğru) yanıtlar verecektir; yani, her eğitim için toplam hata sıfıra veya kabul edilebilir bir düşük seviyeye ulaşacaktır. çift. Bu durumda "sinir ağının eğitildiğini", yani yeni, kullanıma hazır olduğunu söylüyorlar. önceden bilinmiyor , veri.

    İÇİNDE Genel görünüm Denetimli öğrenme algoritması şöyle görünecektir:

    1. Sinaptik ağırlıkları küçük rastgele değerlerle başlatın.

    2. Eğitim setinden sonraki eğitim çiftini seçin; Giriş vektörünü ağın girişine besleyin.

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

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

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

    6. Setin tamamındaki hata kabul edilebilir bir seviyeye ulaşana kadar her eğitim seti çifti için 2'den 5'e kadar olan adımları tekrarlayın.

    5. adımda gerçekleştirilen matematiksel işlemlerin spesifik türü, öğrenme algoritmasının türünü belirler. Örneğin, tek katmanlı algılayıcılar için sözde dayalı en basit algoritma kullanılır. delta kuralı Herhangi bir sayıda katmana sahip algılayıcılar için yaygın olarak kullanılır geri yayılım prosedürü ilginç özelliklere sahip bir grup algoritma bilinmektedir. stokastik öğrenme algoritmaları vb. Sinir ağlarını öğrenmeye yönelik bilinen tüm algoritmalar, aslında, gradyan optimizasyon yöntemlerinin çeşitleridir. doğrusal fonksiyon birçok değişken. Pratik uygulamalarında ortaya çıkan temel sorun, sinaptik ağırlıkların sonuçta ortaya çıkan kombinasyonunun, tüm eğitim seti üzerindeki toplam hatayı en aza indirme açısından gerçekten en etkili kombinasyon olduğundan asla emin olunamamasıdır. Bu belirsizliğe "hedef fonksiyonun yerel minimum problemi" adı verilmiştir.

    Bu durumda amaç fonksiyonu seçilen integral skaler gösterge olarak anlaşılır. eğitim setinin tüm örneklerinin sinir ağı tarafından işlenmesinin kalitesini karakterize eden - örneğin standart sapmaların toplamı DIŞARI itibaren HEDEF her eğitim çifti için. Hedef fonksiyonunun elde edilen değeri ne kadar küçük olursa, belirli bir eğitim setindeki sinir ağının kalitesi o kadar yüksek olur. İdeal olarak (pratikte yalnızca en basit problemler için elde edilebilir), böyle bir sinaptik ağırlık seti bulmak mümkündür: .

    Yüzey işlevi hedefi Karmaşık ağ yoğun girintili çıkıntılıdır ve yüksek boyutlu bir uzayda tepeler, vadiler, kıvrımlar ve vadilerden oluşur. Gradyan eğitimli bir ağ, yakınlarda çok daha derin bir minimum olduğunda yerel minimuma (sığ vadi) düşebilir. Yerel minimum noktasında tüm yönler yukarıya doğru çıkar ve algoritma bunun dışına çıkamaz.

    Dolayısıyla, sinir ağını eğitme girişimi sonucunda gerekli doğruluk elde edilememişse, araştırmacının iki alternatifi vardır:

    1. Sürecin yerel minimumda sıkışıp kaldığını varsayalım ve aynı ağ konfigürasyonu için başka türde bir öğrenme algoritması uygulamaya çalışın.

    2. Bu özel ağ konfigürasyonu için hedef fonksiyonunun global minimumunun bulunduğunu varsayalım ve ağı karmaşıklaştırmaya çalışın - nöron sayısını artırın, bir veya daha fazla katman ekleyin, tam bağlı bir ağdan tam bağlı olmayan bir ağa geçiş yapın eğitim setinin yapısındaki önceden bilinen bağımlılıkları vb. hesaba katar.

    Örüntü tanıma ve sınıflandırma problemlerinde, algoritmalar yaygın olarak kullanılmaktadır. öğretmensiz öğrenme . Bu durumda ağın görevi, sunulan örneklerde "birbirine benzer" girdi vektörü gruplarını bağımsız olarak bulmak ve çıktılardan birinde yüksek seviye oluşturmaktır (hangisi olduğunu önceden belirlemeden). Ancak problemin böyle bir formülasyonunda bile, kapalı bir biçimde de olsa, hedef fonksiyonunun katı bir matematiksel tanımı olmaksızın yerel minimum problemi de ortaya çıkar (çünkü hedef fonksiyonu kavramının kendisi, belirli bir referansın varlığını ima eder). ağ yanıtı, yani "öğretmen") - "Sinir ağı, bu özel konfigürasyon için girdi vektörü kümelerini mümkün olan en iyi şekilde tahsis etmeyi gerçekten öğrendi mi?".

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

    4.1 Sinir ağlarına giriş

    Yapay sinir ağları, insan beyninin yapısı ve içinde yer alan bilgi işleme süreçleri hakkındaki modern fikirlere dayanan modellerdir. YSA'lar halihazırda görevlerde geniş uygulama alanı bulmuştur: bilgi sıkıştırma, optimizasyon, örüntü tanıma, uzman sistemler oluşturma, sinyal ve görüntü işleme vb.

    Biyolojik ve yapay nöronlar arasındaki iletişim

    Şekil 20 - Biyolojik bir nöronun yapısı

    Gergin sistem insan çok sayıda birbirine bağlı nörondan oluşur; yaklaşık 10 11; bağlantı sayısı 10 15 sayısıyla hesaplanır.

    Bir çift biyolojik nöronu şematik olarak temsil edelim (Şekil 20).Bir nöronun çeşitli girdi süreçleri (dendritler) ve bir çıktısı (akson) vardır. Dendritler diğer nöronlardan bilgi alır, akson - iletir. Aksonun dendrite bağlandığı alana (temas alanı) sinaps adı verilir. Sinapslar tarafından alınan sinyaller, toplandıkları nöronun gövdesine beslenir. Bu durumda giriş sinyallerinin bir kısmı uyarıcı, diğer kısmı ise engelleyicidir.

    Giriş eylemi belirli bir eşiği aştığında nöron aktif hale gelir ve akson boyunca diğer nöronlara bir sinyal gönderir.

    Yapay bir nöron matematiksel model biyolojik nöron (Şekil 21). Giriş sinyalini x ile ve giriş sinyalleri kümesini X = (x1, x2, …, xN) vektörü ile gösterelim. Nöronun çıkış sinyali y ile gösterilecektir.

    Bir nöronun fonksiyonel diyagramını çizelim.

    Şekil 21 - Yapay nöron

    Girişin uyarıcı veya engelleyici etkisini belirtmek için, her giriş için w 1 , w 1 , ..., w N - katsayılarını, yani vektörü tanıtıyoruz

    W = (w 1 , w 1 , …, w N ), w 0 eşik değeridir. W vektörü üzerinde ağırlıklandırılan X giriş eylemleri karşılık gelen w katsayısıyla çarpılır, toplanır ve g sinyali oluşturulur:

    Çıkış sinyali g'nin bir fonksiyonudur


    ,

    burada F aktivasyon fonksiyonudur. Çeşitli türlerde olabilir:

    1) adım eşiği

    veya

    Genel olarak:

    2) doğrusal, bu da bir eşik öğesinin hiç bulunmamasına eşdeğerdir

    F(g) = g


    3) parçalı doğrusal, değişim aralığının sınırlandırılmasıyla doğrusaldan elde edilir, yani

    4) sigmoid

    5) çoklu eşik

    6) hiperbolik tanjant

    F(g) = tanh(g)


    Çoğu zaman, giriş değerleri XÎ aralığına dönüştürülür. w i = 1 (i = 1, 2,…, N) olduğunda nöron çoğunluk elemanıdır. Bu durumda eşik w 0 = N/2 değerini alır.

    Yapay bir nöronun koşullu görüntüsünün başka bir çeşidi Şekil 22'de gösterilmektedir.

    Şekil 22 - Sembol yapay nöron

    Geometrik açıdan bakıldığında, doğrusal aktivasyon fonksiyonuna sahip bir nöron, girişte bir x 1 değeri varsa çizgi denklemini açıklar.

    veya giriş, X değerlerinin bir vektörü olduğunda düzlem

    Sinir ağlarının yapısı (mimarisi, topolojisi)

    Bir YSA'yı organize etmenin birçok yolu vardır; bunlara bağlı olarak: katmanların sayısı, bağlantıların şekli ve yönü.

    Sinir ağlarının organizasyonuna bir örnek gösterelim (Şekil 23).


    Tek katmanlı yapı Geri bildirimli çift katmanlı geri bildirim yapısı

    İki katmanlı yapı Doğrudan bağlantılı, doğrudan bağlantılı üç katmanlı yapı

    Şekil 23 - Sinir ağlarının yapı örnekleri

    Şekil 24, doğrudan bağlantıları olan üç katmanlı bir NS'yi göstermektedir. Dış ortamdan doğrudan bilgi alan nöron katmanına giriş katmanı, bilgiyi dış ortama ileten katmana ise çıkış katmanı adı verilir. Aralarında yer alan ve dış ortamla teması olmayan herhangi bir katmana ara (gizli) katman adı verilir. Daha fazla katman olabilir. Çok katmanlı ağlarda, kural olarak, bir katmandaki nöronlar aynı türde bir aktivasyon fonksiyonuna sahiptir.


    Şekil 24 - Üç katmanlı sinir ağı

    Bir ağ tasarlarken ilk veriler şunlardır:

    giriş sinyali vektörünün boyutu, yani girişlerin sayısıdır;

    çıkış sinyali vektörünün boyutudur. Çıkış katmanındaki nöronların sayısı genellikle sınıf sayısına eşittir;

    – çözülecek problemin formülasyonu;

    problem çözümünün doğruluğudur.

    Örneğin, yararlı bir sinyalin tespit edilmesi problemini çözerken, bir sinir ağının bir veya iki çıkışı olabilir.

    NS'nin oluşturulması veya sentezi şu anda teorik olarak çözülmemiş bir görevdir. Özeldir.

    Sinir ağlarının eğitimi

    Sinir ağlarının en dikkat çekici özelliklerinden biri öğrenme yetenekleridir. YSA'nın öğrenme süreci her ne kadar alışılagelmiş anlamda bir kişinin eğitiminden farklı olsa da bu tür bir eğitimin sonunda benzer sonuçlar elde edilmektedir. Bir sinir ağını eğitmenin amacı, onu belirli bir davranışa göre ayarlamaktır.

    Sinir ağlarının eğitiminde en yaygın yaklaşım bağlantıcılıktır. Nöronlar arasındaki farklı bağlantılara karşılık gelen ağırlık katsayılarının değerlerini ayarlayarak ağın eğitilmesini içerir. Ağın ağırlıklarının W matrisine sinaptik harita adı verilir. İşte indeks i: seri numarası bağlantının geldiği nöron yani önceki katman, j ise bir sonraki katmanın nöron numarasıdır.

    İki tür NN öğrenmesi vardır: denetimli öğrenme ve denetimsiz öğrenme.

    Denetimli öğrenme, eğitim dizisi olarak adlandırılan eğitilebilir çiftlerin (örnekler) (Хi, Hi), i = 1, 2, …, m görüntülerinin bir dizisinin ağa sunulmasından oluşur. Aynı zamanda, her giriş görüntüsü Xi için, Yi ağının tepkisi hesaplanır ve karşılık gelen hedef görüntü Hi ile karşılaştırılır. Ortaya çıkan uyumsuzluk, öğrenme algoritması tarafından sinaptik haritayı uyumsuzluk hatasını azaltacak şekilde ayarlamak için kullanılır. Bu tür bir uyarlama, uyumsuzluk hatası yeterli seviyeye ulaşıncaya kadar eğitim örneğinin döngüsel sunumuyla gerçekleştirilir. düşük seviye.

    Denetimli öğrenme süreci anlaşılabilir olmasına ve sinir ağlarının birçok uygulamasında yaygın olarak kullanılmasına rağmen, öğrenme süreci sırasında insan beyninde meydana gelen gerçek süreçlere hala tam olarak karşılık gelmemektedir. Öğrenirken beynimiz herhangi bir görüntü kullanmaz, ancak dışarıdan gelen bilgilerin genellemesini kendisi gerçekleştirir.

    Denetimsiz öğrenme durumunda, öğrenme dizisi yalnızca Xi giriş görüntülerinden oluşur. Öğrenme algoritması, benzer giriş vektörlerinin aynı çıkış vektörlerine karşılık gelmesi için ağırlıkları ayarlar, yani aslında giriş görüntülerinin alanını sınıflara böler. Aynı zamanda eğitimden önce hangi çıktı görüntülerinin girdi görüntüleri sınıflarına karşılık geleceğini tahmin etmek imkansızdır. Böyle bir yazışmanın kurulması ve yorumlanması ancak eğitim sonrasında mümkündür.

    YSA öğrenimi sürekli veya ayrık bir süreç olarak görülebilir. Buna göre öğrenme algoritmaları şu şekilde tanımlanabilir: diferansiyel denklemler veya sonlu fark. İlk durumda, NS analog üzerinde, ikincisinde ise dijital elemanlar üzerinde uygulanır. Sadece sonlu fark algoritmalarından bahsedeceğiz.

    Aslında NN, özel bir paralel işlemci veya seri bilgisayardaki sinir ağını taklit eden bir programdır.

    NN'nin öğrenme algoritmalarının (AL) çoğu Hebb kavramından doğmuştur. Her iki nöron da uyarılmış durumdaysa, i-th ve j-th nöronları arasındaki bağlantıya karşılık gelen w ij ağırlık değerinin arttığı basit, denetimsiz bir algoritma önerdi. Başka bir deyişle, öğrenme sürecinde nöronlar arasındaki bağlantılar, durumlarının korelasyon derecesine göre düzeltilir. Bu, aşağıdaki sonlu fark denklemi ile ifade edilebilir:

    burada w ij (t + 1) ve w ij (t), sırasıyla ayarlamadan önce (t+1 adımında) ve ayarlamadan sonra (t adımında) nöron i ve nöron j arasındaki bağlantıların ağırlıklarıdır; v i(t), t adımındaki i nöronunun çıktısı ve j nöronunun çıktısıdır; vj(t), t adımındaki j nöronunun çıktısıdır; α öğrenme hızı parametresidir.

    Sinir Ağı Eğitim Stratejisi

    Öğrenme algoritmasının yanı sıra ağ öğrenme stratejisi de aynı derecede önemlidir.

    Yaklaşımlardan biri, eğitim setini oluşturan bir dizi örnek (Х i , H i) i = 1, 2, …, m üzerinde ağın sıralı eğitimidir. Bu durumda ağ, önce ilk X 1 görüntüsüne, ardından ikinci X 2 vb. görüntüye doğru yanıt verecek şekilde eğitilir. Ancak bu stratejide, her bir sonraki örneği öğrenirken ağın daha önce edindiği becerileri kaybetmesi, yani ağın daha önce sunulan örnekleri "unutabilmesi" tehlikesi vardır. Bunun olmasını önlemek için ağı eğitim setinin tüm örnekleriyle bir kerede eğitmek gerekir.

    X 1 \u003d (X 11, ..., X 1 N) 100 c 1'i eğitebilirsiniz

    X 2 \u003d (X 21, ..., X 2 N) 100 c 2 100 c

    ……………………

    X m \u003d (X m 1, ..., X mN) 100 c 3

    Öğrenme probleminin çözümü büyük zorluklarla ilişkili olduğundan, formun amaç fonksiyonunu en aza indirmek bir alternatif olabilir:

    ,

    burada l ben örneklerin her biri için sinir ağının eğitim kalitesine yönelik gereksinimleri belirleyen parametrelerdir, öyle ki λ 1 + λ 2 + ... + λ m = 1.

    Pratik kısım.

    Bir eğitim seti oluşturalım:

    P_o=cat(1, Mt, Mf);

    Tespit görevi için sinir ağının yapısını ayarlayalım:

    net = newff (minmax(P_o), , ("logsig", "logsig"), "trainlm", "learngdm");

    net.trainParam.epochs = 100;% ayarlanan eğitim döngüsü sayısı

    net.trainParam.show = 5;ara sonuçları gösterecek döngü sayısı;

    net.trainParam.min_grad = 0;% eğim hedef değeri

    net.trainParam.max_fail = 5;%, ulaşılan minimum değeri aşan test örneği hatasının izin verilen maksimum çokluğudur;

    net.trainParam.searchFcn = "srchcha";kullanılacak 1D optimizasyon algoritmasının % adı

    net.trainParam.goal = 0;% hedef eğitim hatası

    Newff işlevi, geri yayılım eğitimi ile "klasik" çok katmanlı bir sinir ağı oluşturmak için tasarlanmıştır. Bu işlev birden fazla argüman içerir. Fonksiyonun ilk argümanı minimumun matrisidir ve maksimum değerler minmax (P_o) ifadesi kullanılarak belirlenen eğitim seti P_o.

    Fonksiyonun ikinci argümanları şurada verilmiştir: köşeli parantez ve katmanların sayısını ve boyutunu belirleyin. İfade, sinir ağının 2 katmana sahip olduğu anlamına gelir. İlk katmanda - npr=10 nöron ve ikincide - 2. Birinci katmandaki nöron sayısı, giriş özelliği matrisinin boyutuna göre belirlenir. İlk katmandaki özellik sayısına bağlı olarak 5, 7, 12 nöron olabilir. İkinci katmanın (çıktı katmanı) boyutu çözülen probleme göre belirlenir. Birinci ve ikinci sınıflara göre sınıflandırılan mikrosisizmin arka planına karşı yararlı bir sinyal tespit etme görevlerinde, sinir ağının çıkışına 2 nöron yerleştirilir.

    Üçüncü fonksiyon argümanları her katmandaki aktivasyon fonksiyonunun tipini belirler. ("logsig", "logsig") ifadesi, her katmanın, aralığı (0, 1) olan bir sigmoidal-lojistik aktivasyon fonksiyonu kullandığı anlamına gelir.

    Dördüncü argüman sinir ağı eğitim fonksiyonunun tipini belirtir. Örnek, Levenberg-Marquardt optimizasyon algoritmasını (trainlm) kullanan bir öğrenme işlevini tanımlar.

    T matrisinin vektörlerinin ilk yarısı (1, 0) değerleriyle başlatılır ve sonrakiler (0, 1) olur.

    net=newff (minmax(P_o), , ("logsig", "logsig"), "trainlm", "learngdm");

    net.trainParam.epochs = 1000;

    net.trainParam.show = 5;

    net.trainParam.min_grad = 0;

    net.trainParam.max_fail = 5;

    net.trainParam.searchFcn = "srchcha";

    net.trainParam.goal = 0;

    T sinir ağının istenen çıktıları için başlatma programı:

    n1=uzunluk (Mt(:, 1));

    n2=uzunluk (Mf(:, 1));

    T1=sıfır(2, n1);

    T2=sıfır(2, n2);

    T=kedi(2, T1, T2);

    Sinir ağı eğitimi:

    net = tren(net, P_o, T);

    Şekil 25 - Sinir ağı eğitim programı.

    Sinir ağını kontrol edelim:

    Y_k=sim(net, P_k);

    Sim komutu, P_k kontrol kümesinden sinir sisteminin girişine veri gönderir. açık, sonuçlar ise Y_k çıkış matrisine yazılır. P_k ve Y_k matrislerindeki satır sayısı aynıdır.

    Pb=toplam (yuvarlak(Y_k (1.1:100))))/100

    Paletli araçların doğru tespit edilme olasılığının tahmini Pb=1 alfa = toplam (round(Y_k (1,110:157)))/110

    Tahmini yanlış alarm olasılığı alfa =0

    EK sinir ağının istenen ve gerçek çıktılarını kullanarak kontrolün standart hatasını belirliyoruz.

    Ortalama karekök kontrol hatasının değeri:

    sqe_k = 2.5919e-026

    Sinir ağının çalışmasını test edelim. Bunu yapmak için test sinyalinin özelliklerinin bir matrisini oluşturacağız:

    h3=tr_t50-mean(tr_t50);

    Mh1=MATRPRIZP(h3,500, N1, N2);

    Mh1=Mh1(1:50,:);

    Y_t=sim(net, P_t);

    Pb=toplam (yuvarlak(Y_t (1.1:100))))/100

    Paletli araçların doğru tespit edilme olasılığının tahmini Pb=1

    E sinir ağının istenen ve gerçek çıktıları arasındaki farkı buluyoruz ve testin standart hatasını belirliyoruz.

    Testin standart hatasının değeri:

    sqe_t = 3.185e-025

    Sonuç: Bu bölümde geri yayılım eğitimi ile sinir ağı üzerinde sismik sinyal dedektör modeli oluşturduk. Tespit sorunu küçük hatalarla çözüldüğü için işaretler tespite uygundur.

    Bu iki katmanlı sinir ağı, bir nesne algılama sisteminin oluşturulmasında kullanılabilir.


    Çözüm

    Bu dönem ödevi bilgi işleme yöntemlerinin incelenmesi ve bunların nesne algılama problemlerini çözmek için uygulanmasıydı.

    Dört aşamada gerçekleştirilen çalışmada aşağıdaki sonuçlar elde edildi:

    1) Sinyal genliklerinin örnek olasılık yoğunluklarının histogramları rastgele değişkenler olarak oluşturuldu.

    Dağılım parametreleri tahmin edildi: matematiksel beklenti, varyans, standart sapma.

    Genlik dağılım yasası hakkında bir varsayımda bulunduk ve hipotezi Kolmogorov-Smirnov ve Pearson kriterlerini 0,05 anlamlılık düzeyinde kullanarak test ettik. Kolmogorov-Smirnov kriterine göre dağılım doğru seçilmiştir. Pearson kriterine göre dağılım yalnızca arka plan sinyali için doğru seçilmiştir. Ona göre normal dağılım hipotezi kabul edildi.

    Uygulama için kabul edilen sinyaller rastgele işlevler ve onlar için korelasyon fonksiyonları oluşturdum. İle korelasyon fonksiyonları sinyallerin rastgele salınım karakterine sahip olduğunu belirledi.

    2) Eğitim ve kontrol veri setleri oluşturuldu (sinir ağının eğitimi ve kontrolü için).

    3) Eğitim matrisi için işaretlerin dağılım parametreleri tahmin edildi: matematiksel beklenti, varyans, standart sapma. Verilen sınıflara ait eğitim matrisinin her bir özelliği için mesafe hesaplanmış ve farkı en fazla olan özellik seçilmiştir. Karar eşiği hesaplandı ve olasılık dağılım yoğunluk eğrileri bir grafik üzerinde çizildi. Bir temel kural formüle etti.

    4) Sınıflandırma problemini çözmek için iki katmanlı bir sinir ağı eğittik. Doğru tespit ve yanlış alarm olasılıkları tahmin edildi. Aynı göstergeler test sinyalleriyle değerlendirildi.

    Solunum felcinden kaynaklanan hastalıklar. 4. Yangın çıkarıcı silahlar Konvansiyonel silahlar sisteminde önemli bir yer, yangın çıkarıcı maddelerin kullanımına dayanan bir dizi silah olan yangın çıkarıcı silahlara aittir. Amerikan sınıflandırmasına göre yangın çıkarıcı silahlar kitle imha silahlarıdır. Yangın çıkarıcı yeteneği ...

    5. SLW atmosferlerinin akış yoğunluğu ve azimut dağılımlarına ilişkin uzun vadeli sürekli gözlem serileri elde edildi; bu, dünyanın fırtına merkezlerindeki fırtına aktivitesinin dinamiklerini izlemeyi mümkün kıldı. 5.1. Deniz gözlemleri, küresel fırtına faaliyetlerine ana katkıyı kıtasal ve adadaki fırtına merkezlerinin yaptığını göstermiştir. Darbe akışının yoğunluğundaki değişiklikler...


    Tutarlılık sinyali, frekans ölçerin hassasiyetini kaybetmeden rastgele, yan ölçüm sonuçlarını ortadan kaldırır. Spektrum analizörleri Bu zaten oldukça gelişmiş, ancak yine de umut verici bir radyo izleme türü, frekans spektrumuçeşitli modüle edilmiş sinyaller frekans aralıkları ve bu spektrumların görüntü/osiloskop ekranında görüntülenmesi. Ne zaman, ...

    Sinir ağlarının en önemli özelliği çevresel verilerden öğrenme ve öğrenme sonucunda performanslarını geliştirme yeteneğidir. Performans iyileştirmeleri zamanla belirli kurallara göre gerçekleşir. Sinir ağı eğitimi, sinaptik ağırlıkların ve eşiklerin ayarlanmasına yönelik etkileşimli bir süreç aracılığıyla gerçekleşir. İdeal olarak sinir ağı, öğrenme sürecinin her yinelemesinde çevre hakkında bilgi edinir.

    Öğrenme kavramıyla ilgili oldukça fazla etkinlik vardır, bu nedenle bu sürece net bir tanım vermek zordur. Üstelik öğrenme süreci, ona bakış açısına bağlıdır. Bunu herhangi bir kişi için neredeyse imkansız kılan şey budur. kesin tanım bu kavram. Örneğin, bir psikoloğun bakış açısından öğrenme süreci, bir okul öğretmeninin bakış açısından öğrenmeden temelde farklıdır. Bir sinir ağı açısından muhtemelen aşağıdaki tanım kullanılabilir:

    Öğrenme, bir sinir ağının serbest parametrelerinin, ağın gömülü olduğu ortamı simüle ederek ayarlandığı bir süreçtir. Öğrenmenin türü bu parametrelerin nasıl ayarlandığına göre belirlenir.

    Sinir ağı öğrenme sürecinin bu tanımı, aşağıdaki olay dizisini varsayar:

    1. Sinir ağı dış ortamdan uyarı alır.
    2. Birinci paragraf sonucunda sinir ağının serbest parametreleri değiştirilmektedir.
    3. İç yapıyı değiştirdikten sonra sinir ağı uyarılara farklı bir şekilde yanıt verir.

    Bir sinir ağı öğrenme problemini çözmeye yönelik açık kuralların yukarıdaki listesine öğrenme algoritması adı verilir. Tüm sinir ağı mimarilerine uygun evrensel bir öğrenme algoritmasının olmadığını tahmin etmek kolaydır. Yalnızca çeşitli öğrenme algoritmalarıyla temsil edilen ve her birinin kendine has avantajları olan bir dizi araç vardır. Öğrenme algoritmaları, nöronların sinaptik ağırlıklarını ayarlama açısından birbirlerinden farklılık gösterir. Bir diğer ayırt edici özellik ise eğitilmiş sinir ağının dış dünyayla iletişim kurma şeklidir. Bu bağlamda, belirli bir sinir ağının çalıştığı ortamın bir modeliyle ilişkili bir öğrenme paradigmasından söz edilir.

    Sinir ağlarını eğitmek için iki kavramsal yaklaşım vardır: denetimli öğrenme ve denetimsiz öğrenme.

    Bir sinir ağının denetimli eğitimi, eğitim setindeki her giriş vektörü için, hedef adı verilen çıkış vektörünün gerekli bir değerinin bulunduğunu varsayar. Bu vektörler bir eğitim çifti oluşturur. Ağ ağırlıkları, her giriş vektörü için çıkış vektörünün hedef olandan kabul edilebilir bir sapma düzeyi elde edilene kadar değiştirilir.

    Denetimsiz sinir ağı eğitimi, yapay sinir ağlarının biyolojik kökleri açısından çok daha makul bir öğrenme modelidir. Eğitim seti yalnızca girdi vektörlerinden oluşur. Sinir ağı eğitim algoritması, tutarlı çıktı vektörleri elde edilecek şekilde ağ ağırlıklarını ayarlar; böylece yeterince yakın girdi vektörlerinin sunumu aynı çıktıları verir.

    Bu makale, yapay sinir ağlarına ilişkin temel bir çalışma için çoğunlukla Rusça olan materyaller içermektedir.

    Yapay sinir ağı veya YSA, biyolojik sinir ağlarının (canlı bir organizmanın sinir hücrelerinin ağları) organizasyonu ve işleyişi ilkesine dayanan bir matematiksel modelin yanı sıra yazılım veya donanım uygulamasıdır. Sinir ağları bilimi uzun zamandır varlığını sürdürüyor ancak bilimsel ve teknolojik ilerlemedeki en son başarılarla tam olarak bağlantılı. verilen alan popülerlik kazanmaya başlıyor.

    Kitabın

    Seçime kitapların yardımıyla klasik çalışma yöntemiyle başlayalım. Rusça kitaplar seçtik büyük miktarörnekler:

    • F. Wasserman, Nörobilgisayar Mühendisliği: Teori ve Uygulama. 1992
      Kitap, nörobilgisayarları halka açık bir biçimde oluşturmanın temellerini özetlemektedir. Sinir ağlarının yapısı ve bunların ayarlanması için çeşitli algoritmalar açıklanmaktadır. Sinir ağlarının uygulanmasına ayrı bölümler ayrılmıştır.
    • S. Khaikin, Sinir ağları: Kursu tamamlayın. 2006
      Burada yapay sinir ağlarının ana paradigmaları ele alınmaktadır. Sunulan materyal, tüm sinir ağı paradigmaları için kesin bir matematiksel gerekçe içerir, örneklerle gösterilir, bilgisayar deneylerinin açıklamaları içerir, birçok pratik problemin yanı sıra kapsamlı bir kaynakça içerir.
    • D. Forsyth, Bilgisayarla Görme. Modern yaklaşım. 2004
      Bilgisayar görüşü küresel dijitalin gelişiminde bu aşamada en çok aranan alanlardan biridir. bilgisayar Teknolojisi. Üretim, robot kontrolü, proses otomasyonu, tıbbi ve askeri uygulamalar, uydu gözetimi ve kişisel bilgisayarlarözellikle dijital görsellerin aranması.

    Video

    Video kullanarak görsel öğrenmeden daha erişilebilir ve anlaşılır bir şey yoktur:

    • Genel olarak makine öğreniminin ne olduğunu anlamak için buraya bakın. bu iki ders ShAD Yandex'den.
    • giriiş sinir ağı tasarımının temel ilkelerine uygun - sinir ağlarını keşfetmeye devam etmek için harika.
    • Ders kursu VMK MSU'dan "Bilgisayarla Görme" konusu hakkında. Bilgisayarlı görme, görüntülerdeki ve videolardaki 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 değerlendirilebilir.

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

    • Yapay zeka portalı.
    • Laboratuvar "Ben zekayım".
    • Matlab'da sinir ağları.
    • Python'daki sinir ağları (İngilizce):
      • İle metin sınıflandırması;
      • Basit .
    • Sinir ağı açık.

    Konuyla ilgili bir dizi yayınımız

    Zaten bir kurs yayınladık #sinir ağı@tproger sinir ağları tarafından. Bu listede size kolaylık sağlamak amacıyla yayınlar çalışma sırasına göre düzenlenmiştir.