Nöral ağlar. Sinir ağları - matematiksel aparat

  • 31.08.2019

Yapay zeka ve sinir ağları artık her zamankinden daha popüler hale geliyor. Pek çok kullanıcı, sinir ağlarının nasıl çalıştığı, ne oldukları ve faaliyetlerinin ilkesinin neye dayandığı hakkında giderek daha sık sorular soruyor?

Süreçler, değişiklikleri analiz etmekten belirli eylemlerle ilişkili modelleme risklerine kadar çeşitli amaçlar için tasarlanmış karmaşık makine öğrenimi algoritmaları olduğundan, popülerlikleriyle birlikte bu sorular da oldukça karmaşıktır.

Yapay sinir ağları ve türleri nelerdir?

İlgilenenlerin aklına gelen ilk soru sinir ağı nedir? Klasik tanımda, bu, sinapslarla birbirine bağlanan belirli bir nöron dizisidir. Sinir ağları, biyolojik analogların basitleştirilmiş bir modelidir.

Sinir ağı yapısına sahip olan program, makinenin giriş verilerini analiz etmesini ve belirli kaynaklardan elde edilen sonucu hafızaya almasını sağlar. Daha sonra, benzer bir yaklaşım, ağ döngülerinin deneyiminde zaten mevcutsa, mevcut veri kümesine karşılık gelen sonucun bellekten alınmasına izin verir.

Birçok insan sinir ağını insan beynine benzer olarak algılar. Bir yandan, bu yargı gerçeğe yakın olarak kabul edilebilir, ancak diğer yandan insan beyni, onu bir makine ile en az yüzde bir oranında yeniden oluşturamayacak kadar karmaşık bir mekanizmadır. Bir sinir ağı, her şeyden önce, beynin çalışma prensibine dayanan bir programdır, ancak hiçbir şekilde analogu değildir.

Bir sinir ağı, her biri bilgiyi alan, işleyen ve başka bir nörona ileten bir grup nörondur. Her nöron sinyali tamamen aynı şekilde işler.

O zaman nasıl farklı bir sonuç elde edersiniz? Her şey nöronları birbirine bağlayan sinapslarla ilgili. Bir nöron, bir sinyali güçlendiren veya zayıflatan çok sayıda sinapsa sahip olabilir ve bunlar zamanla özelliklerini değiştirme yeteneğine sahiptir.

Girdi verilerinin çıktıda dönüştürülmesinin doğru sonucunu elde etmeyi mümkün kılan tam olarak doğru seçilmiş sinaps parametreleridir.

Bir sinir ağının ne olduğunu genel olarak tanımladıktan sonra, sınıflandırmalarının ana türlerini ayırt edebiliriz. Sınıflandırmaya geçmeden önce bir açıklama yapmak gerekir. Her ağ, giriş katmanı adı verilen bir ilk nöron katmanına sahiptir.

Herhangi bir hesaplama ve dönüşüm yapmaz, görevi yalnızca bir şeydir: giriş sinyallerini almak ve nöronların geri kalanına dağıtmak. Bu, her tür sinir ağı için ortak olan tek katmandır, daha sonraki yapıları ana bölümün kriteridir.

  • Tek katmanlı sinir ağı. Bu, girdi verilerinin ilk girdi katmanına girdikten sonra hemen nihai sonucun çıktı katmanına aktarıldığı nöronların etkileşiminin yapısıdır. Bu durumda, yukarıda belirtildiği gibi alım ve dağıtım dışında herhangi bir işlem yapmadığından birinci girdi katmanı dikkate alınmaz. İkinci katman ise gerekli tüm hesaplamaları ve işlemleri gerçekleştirir ve anında nihai sonucu verir. Giriş nöronları, bağlantıların kalitesini sağlayan farklı ağırlıklara sahip sinapslarla ana katmana bağlanır.
  • Çok katmanlı sinir ağı. Tanımdan da anlaşılacağı gibi, bu tür sinir ağlarında giriş ve çıkış katmanlarına ek olarak ara katmanlar da vardır. Sayıları, ağın kendisinin karmaşıklık derecesine bağlıdır. Biyolojik bir sinir ağının yapısını daha çok andırıyor. Bu tür ağlar oldukça yakın zamanda geliştirildi, bundan önce tüm işlemler tek katmanlı ağlar kullanılarak uygulandı. Buna göre, böyle bir çözüm, atasından çok daha fazla yeteneğe sahiptir. Bilgi işleme sürecinde, her bir ara katman, bilginin işlenmesi ve dağıtılmasında bir ara aşamadır.

Bilginin sinapslar arasında bir nörondan diğerine dağıtım yönüne bağlı olarak, ağlar da iki kategoriye ayrılabilir.

  • İleri beslemeli ağlar veya tek yönlü, yani sinyalin kesinlikle giriş katmanından çıkışa hareket ettiği bir yapı. Ters yönde sinyal hareketi mümkün değildir. Bu tür gelişmeler oldukça yaygındır ve şu anda tanıma, tahmin veya kümeleme gibi sorunları başarıyla çözmektedir.
  • Geri bildirim ağları veya tekrarlayan ağlar. Bu tür ağlar, sinyalin yalnızca ileri yönde değil, aynı zamanda ters yönde de hareket etmesine izin verir. Bu ne işe yarıyor? Bu tür ağlarda, çıkışın sonucu buna dayanarak girişe döndürülebilir, nöronun çıkışı ağırlıklar ve giriş sinyalleri tarafından belirlenir ve tekrar girişe dönen önceki çıkışlarla tamamlanır. Bu tür ağlar, işleme sırasında sinyallerin geri yüklendiği ve tamamlandığı temelinde kısa süreli belleğin işlevi ile karakterize edilir.

Ağları sınıflandırmak için tek seçenek bunlar değildir.

Ağı oluşturan nöron türlerine göre homojen ve hibrit olarak ayrılabilirler. Ve ayrıca, öğretmenli veya öğretmensiz, ağı öğretme yöntemine bağlı olarak hetero-ilişkisel veya oto-ilişkili. Ağları amaçlarına göre de sınıflandırabilirsiniz.

Sinir ağları nerelerde kullanılır?

Yapay sinir ağları çeşitli problemleri çözmek için kullanılır. Görevleri karmaşıklık derecesine göre ele alırsak, en basit görevleri çözmek için sıradan bir bilgisayar programı uygundur, daha fazlası
basit tahmin veya denklemlerin yaklaşık çözümünü gerektiren karmaşık görevler, istatistiksel yöntemleri kullanan programlar kullanılır.

Ancak daha da karmaşık bir düzeydeki görevler, tamamen farklı bir yaklaşım gerektirir. Bu özellikle örüntü tanıma, konuşma veya karmaşık tahmin için geçerlidir. Bir kişinin kafasında, bu tür süreçler bilinçsizce gerçekleşir, yani görüntüleri tanır ve ezberler, kişi bu sürecin nasıl gerçekleştiğinin farkında değildir ve bu nedenle onu kontrol edemez.

Bunlar, sinir ağlarının çözmeye yardımcı olduğu görevlerdir, yani algoritmaları bilinmeyen süreçleri yürütmek için oluşturulurlar.

Bu nedenle, sinir ağları aşağıdaki alanlarda yaygın olarak kullanılmaktadır:

  • tanıma ve bu yön şu anda en geniş olanıdır;
  • bir sonraki adımı tahmin ederek, bu özellik ticaret ve borsalarda geçerlidir;
  • Girdi verilerinin parametrelere göre sınıflandırılması, böyle bir işlev, bir kişiye bir krediyi onaylamada farklı parametrelerden oluşan bir girdi setine dayanarak karar verebilen kredi robotları tarafından gerçekleştirilir.

Sinir ağlarının yetenekleri onları çok popüler hale getiriyor. Oyun oynamak, belirli bir sesi tanımak vb. gibi çok şey öğretilebilir. Yapay ağların biyolojik ağlar ilkesi üzerine kurulu olduğu gerçeğinden hareketle, bir kişinin bilinçsizce gerçekleştirdiği tüm işlemlerde eğitilebilirler.

Nöronlar ve sinaps nedir?

Peki yapay sinir ağları açısından nöron nedir? Bu terim, hesaplamaları gerçekleştiren bir birimi ifade eder. Ağın giriş katmanından bilgi alır, onunla basit hesaplamalar yapar ve bir sonraki nörona kadar yer.

Ağ üç tip nöron içerir: giriş, gizli ve çıkış. Ayrıca ağ tek katmanlı ise gizli nöronlar içermez. Ayrıca, yer değiştirme nöronu ve bağlam nöronu olarak adlandırılan çeşitli birimler vardır.

Her nöronun iki tür verisi vardır: girdi ve çıktı. Bu durumda, birinci katmanın girdi verileri, çıktı verilerine eşittir. Diğer durumlarda, önceki katmanların toplam bilgisi nöronun girişine ulaşır, ardından normalizasyon sürecinden geçer, yani gerekli aralığın dışına düşen tüm değerler aktivasyon fonksiyonu tarafından dönüştürülür.

Yukarıda bahsedildiği gibi, bir sinaps, her biri kendi ağırlık derecesine sahip olan nöronlar arasındaki bir bağlantıdır. Bu özellik sayesinde, iletim sırasında giriş bilgileri değiştirilir. İşleme sürecinde, sinaps tarafından büyük bir ağırlık göstergesi ile iletilen bilgiler geçerli olacaktır.

Sonucun nöronlardan değil, belirli bir girdi veri ağırlıkları seti veren sinapslardan etkilendiği ortaya çıktı, çünkü nöronlar her seferinde tam olarak aynı hesaplamaları yapıyorlar.

Bu durumda, ağırlıklar rastgele sırada ayarlanır.

Sinir ağının şeması

Bir sinir ağının nasıl çalıştığını anlamak için özel bir beceri gerekmez. Belirli bilgiler nöronların giriş katmanına ulaşır. Sinapslar aracılığıyla bir sonraki katmana iletilir, her sinaps kendi ağırlık katsayısına sahiptir ve sonraki her nöronun birkaç gelen sinaps olabilir.

Sonuç olarak, bir sonraki nöron tarafından alınan bilgi, her biri kendi ağırlık katsayısı ile çarpılan tüm verilerin toplamıdır. Ortaya çıkan değer, aktivasyon fonksiyonuna ikame edilir ve nihai çıktıya ulaşana kadar iletilecek olan çıktı bilgisi elde edilir. Ağ henüz eğitilmediği için ağın ilk başlatılması doğru sonuçları vermiyor.

Aktivasyon işlevi, giriş verilerini normalleştirmek için kullanılır. Bu tür birçok işlev vardır, ancak en yaygın olan birkaç ana işlev vardır. Ana farkları, çalıştıkları değer aralığıdır.

  • Mümkün olan en basit olan f (x) = x doğrusal fonksiyonu, yalnızca oluşturulan sinir ağını test etmek veya verileri orijinal biçiminde aktarmak için kullanılır.
  • Sigmoid en yaygın aktivasyon fonksiyonu olarak kabul edilir ve f (x) = 1/1 + e- ×; değerlerinin aralığı 0 ile 1 arasındadır. Lojistik fonksiyon olarak da adlandırılır.
  • Hiperbolik tanjant, negatif değerleri de kapsayacak şekilde kullanılır. F (x) = e² × - 1 / e² × + 1 - bu fonksiyon bu forma ve -1'den 1'e kadar olan aralığa sahiptir. Sinir ağı negatif değerlerin kullanımını sağlamıyorsa, yapmamalısınız. onu kullan.

Verileri çalışacağı ağa ayarlamak için eğitim setlerine ihtiyaç vardır.

Entegrasyon, her eğitim seti ile artan bir sayaçtır.

Çağ, sinir ağının eğitim seviyesinin bir göstergesidir, bu gösterge, ağ tam bir eğitim seti döngüsünden her geçtiğinde artar.

Buna göre, ağı doğru bir şekilde eğitmek için, dönem göstergesini sürekli olarak artırarak setler yapmanız gerekir.

Eğitim sırasında hatalar ortaya çıkacaktır. Elde edilen sonuç ile istenen sonuç arasındaki farkın yüzdesidir. Bu gösterge, dönem göstergesini artırma sürecinde azalmalıdır, aksi takdirde bir yerde bir geliştirici hatası vardır.

Yer değiştirme nöronu nedir ve ne işe yarar?

Sinir ağlarında başka bir tür nöron daha vardır - yer değiştirme nöronu. Ana nöron türünden, girdisi ve çıktısı her durumda bire eşit olması bakımından farklıdır. Ayrıca, bu tür nöronların girdi sinapsları yoktur.

Bu tür nöronların düzenlenmesi katman başına bir tane olur ve daha fazla olmaz; ayrıca sinapslarla birbirlerine bağlanamazlar. Bu tür nöronların çıktı katmanına yerleştirilmesi tavsiye edilmez.

Ne için ihtiyaç duyuyorlar? Bir sinir ağının istenen noktaya ulaşılamayacak olması nedeniyle doğru çözümü bulamadığı durumlar vardır. Bunun için tanım bölgesini değiştirebilmek için bu tür nöronlara ihtiyaç vardır.

Yani, sinapsın ağırlığı fonksiyon grafiğinin bükülmesini değiştirirken, yer değiştirme nöronu X koordinat ekseni boyunca bir kaymaya izin verir, böylece sinir ağı bir kayma olmadan erişilemeyen bir alanı yakalayabilir. Bu durumda, kaydırma hem sağa hem de sola yapılabilir. Şematik olarak, kaydırma nöronları genellikle belirtilmez, giriş değeri hesaplanırken ağırlıkları varsayılan olarak dikkate alınır.

Ayrıca, yanlılık nöronları, diğer tüm nöronların çıkış parametresi olarak 0 vermesi durumunda sonucu almanızı sağlayacaktır. Bu durumda, sinapsın ağırlığı ne olursa olsun, bu değer sonraki her katmana iletilecektir.

Bir önyargı nöronunun varlığı durumu düzeltecek ve farklı bir sonuç alacaktır. Önyargı nöronlarını kullanmanın fizibilitesi, ağı onlarla ve onlarsız test ederek ve sonuçları karşılaştırarak belirlenir.

Ancak bir sinir ağı oluşturmanın sonuçlara ulaşmak için yeterli olmadığını hatırlamak önemlidir. Ayrıca özel yaklaşımlar gerektiren ve kendi algoritmaları olan eğitimli olması gerekir. Uygulanması belirli bilgi ve çaba gerektirdiğinden, bu süreç pek basit olarak adlandırılamaz.

Yapay zeka, sinir ağları, makine öğrenimi - tüm bu popüler kavramlar gerçekten ne anlama geliyor? Acemi insanların çoğu, ki ben de öyleyim, her zaman fantastik bir şey gibi görünüyorlardı, ama aslında özleri yüzeyde yatıyor. Yapay sinir ağları hakkında basit bir dille yazmak için uzun zamandır bir fikrim vardı. Kendiniz öğrenin ve başkalarına bu teknolojinin ne olduğunu, nasıl çalıştığını anlatın, geçmişini ve beklentilerini göz önünde bulundurun. Bu yazıda, ormana girmemeye çalıştım, ancak yüksek teknolojiler dünyasında bu umut verici yönü basit ve popüler bir şekilde anlattım.

Yapay zeka, sinir ağları, makine öğrenimi - tüm bu popüler kavramlar gerçekten ne anlama geliyor? Çoğu deneyimsiz insan için, ki ben de öyleyim, her zaman fantastik bir şey gibi görünüyorlardı, ama aslında onların özü yüzeyde yatıyor. Yapay sinir ağları hakkında basit bir dille yazmak için uzun zamandır bir fikrim vardı. Kendiniz öğrenin ve başkalarına bu teknolojinin ne olduğunu, nasıl çalıştığını anlatın, geçmişini ve beklentilerini göz önünde bulundurun. Bu yazıda, ormana girmemeye çalıştım, ancak yüksek teknolojiler dünyasında bu umut verici yönü basit ve popüler bir şekilde anlattım.

biraz tarih

İlk kez, beynin süreçlerini simüle etmeye çalışırken yapay sinir ağları (YSA) kavramı ortaya çıktı. Bu alandaki ilk büyük atılım, 1943'te McCulloch-Pitts sinir ağı modelinin yaratılması olarak kabul edilebilir. Bilim adamları önce yapay bir nöron modeli geliştirdiler. Ayrıca mantıksal işlemleri gerçekleştirmek için bu öğelerden oluşan bir ağ oluşturmayı önerdiler. Ama en önemlisi, bilim adamları böyle bir ağın öğrenme yeteneğine sahip olduğunu kanıtladılar.

Bir sonraki önemli adım, 1949'da Donald Hebb tarafından, önümüzdeki birkaç on yıl için temel hale gelen, YSA hesaplamak için ilk algoritmanın geliştirilmesiydi. 1958'de Frank Rosenblatt, beynin süreçlerini taklit eden bir sistem olan parceptron'u geliştirdi. Bir zamanlar, teknolojinin analogları yoktu ve hala sinir ağlarında temel teşkil ediyor. 1986'da, pratik olarak aynı anda, birbirinden bağımsız olarak, Amerikalı ve Sovyet bilim adamları, çok katmanlı algılayıcıyı öğretmek için temel yöntemi önemli ölçüde geliştirdiler. 2007'de sinir ağları yeniden doğdu. İngiliz bilgisayar bilimcisi Jeffrey Hinton, örneğin kendi kendini süren arabaları çalıştırmak için kullanılan çok katmanlı sinir ağları için bir derin öğrenme algoritmasına öncülük etti.

Kısaca ana şey hakkında

Kelimenin genel anlamıyla, sinir ağları, bir hayvan organizmasında sinir hücrelerinin ağları ilkesi üzerinde çalışan matematiksel modellerdir. YSA'lar hem programlanabilir hem de donanım çözümlerinde uygulanabilir. Algılamayı kolaylaştırmak için bir nöron, birçok giriş deliği ve bir çıkış deliği olan belirli bir hücre olarak hayal edilebilir. Çok sayıda gelen sinyalin giden sinyallere dönüşmesi, hesaplama algoritmasını belirler. Bir nöronun her girişine etkin değerler verilir ve bunlar daha sonra nöronlar arası bağlantılar (özet) boyunca yayılır. Sinapsların bir parametresi vardır - bir nörondan diğerine geçerken giriş bilgilerinin değişmesi nedeniyle ağırlık. Sinir ağlarının nasıl çalıştığını hayal etmenin en kolay yolu, renk karıştırma örneği ile gösterilebilir. Mavi, yeşil ve kırmızı nöronların farklı ağırlıkları vardır. Ağırlığı bir sonraki nöronda daha baskın olacak olan o nöronun bilgisi.

Sinir ağının kendisi, bu tür birçok nörondan (işlemciden) oluşan bir sistemdir. Bireysel olarak, bu işlemciler oldukça basittir (bir kişisel bilgisayar işlemcisinden çok daha basittir), ancak büyük bir sisteme bağlandıklarında, nöronlar çok karmaşık görevleri yerine getirebilirler.

Bir sinir ağı, uygulama alanına bağlı olarak farklı şekillerde yorumlanabilir. Örneğin, makine öğrenmesi açısından bir YSA, bir örüntü tanıma yöntemidir. Matematiksel bir bakış açısından, bu çok parametreli bir problemdir. Sibernetik açısından bakıldığında, robotiğin uyarlanabilir kontrolünün bir modelidir. Yapay zeka için YSA, hesaplama algoritmalarını kullanarak doğal zekayı modellemek için temel bir bileşendir.

Yapay sinir ağlarının geleneksel hesaplama algoritmalarına göre ana avantajı, öğrenme yetenekleridir. Kelimenin genel anlamıyla öğrenme, nöronlar arasında doğru bağlantı katsayılarını bulmanın yanı sıra verileri genelleştirmek ve giriş ve çıkış sinyalleri arasındaki karmaşık bağımlılıkları belirlemekten oluşur. Aslında bir sinir ağının başarılı bir şekilde eğitilmesi, sistemin eğitim setinde mevcut olmayan verilere dayanarak doğru sonucu belirleyebileceği anlamına gelir.

Bugünkü durum

Ve bu teknoloji ne kadar umut verici olursa olsun, şimdiye kadar YSA'lar hala insan beyninin ve düşünmenin yeteneklerinden çok uzaktır. Bununla birlikte, sinir ağları, insan faaliyetinin birçok alanında halihazırda kullanılmaktadır. Şimdiye kadar, son derece entelektüel kararlar alamıyorlar, ancak daha önce ihtiyaç duyulan bir kişinin yerini alabiliyorlar. YSA'ların sayısız uygulama alanları arasında şunlar sayılabilir: üretim süreçleri, insansız araçlar, görüntü tanıma sistemleri, akıllı güvenlik sistemleri, robotik, kalite izleme sistemleri, sesli etkileşim arayüzleri, analitik sistemleri ve çok daha fazlasının kendi kendine öğrenen sistemlerinin oluşturulması. . Sinir ağlarının bu kadar yaygın kullanımı, diğer şeylerin yanı sıra, YSA'nın öğrenilmesini hızlandırmak için çeşitli yolların ortaya çıkmasından kaynaklanmaktadır.

Bugün sinir ağları pazarı çok büyük - milyarlarca ve milyarlarca dolar. Uygulamanın gösterdiği gibi, dünyadaki sinir ağlarının teknolojilerinin çoğu birbirinden çok az farklıdır. Bununla birlikte, sinir ağlarının kullanımı, çoğu durumda yalnızca büyük şirketler tarafından karşılanabilen çok maliyetli bir uygulamadır. Sinir ağlarının geliştirilmesi, eğitimi ve test edilmesi için büyük bilgi işlem gücü gereklidir, BT pazarındaki büyük oyuncuların buna yeterince sahip olduğu açıktır. Bu alanda gelişmeye öncülük eden başlıca şirketler arasında Google DeepMind, Microsoft Research, IBM, Facebook ve Baidu bulunmaktadır.

Tabii ki, tüm bunlar iyi: sinir ağları gelişiyor, pazar büyüyor, ancak şu ana kadar ana görev çözülmedi. İnsanlık, yetenekler açısından insan beynine bile yakın bir teknoloji yaratmayı başaramadı. İnsan beyni ile yapay sinir ağları arasındaki temel farklara bir göz atalım.

Sinir ağları neden hala insan beyninden uzakta?

Sistemin çalışma prensibini ve verimini temelden değiştiren en önemli fark, yapay sinir ağlarında ve nöronların biyolojik ağlarında sinyal iletiminin farklı olmasıdır. Gerçek şu ki, YSA'da nöronlar gerçek değerler, yani sayılar olan değerleri iletir. İnsan beyninde, sabit bir genliğe sahip dürtüler iletilir ve bu dürtüler neredeyse anlıktır. Bu nedenle, insan nöron ağının bir takım avantajları vardır.

Birincisi, beyindeki iletişim hatları YSA'lardan çok daha verimli ve ekonomiktir. İkincisi, darbe devresi, teknoloji uygulamasının basitliğini sağlar: karmaşık hesaplama mekanizmaları yerine analog devreleri kullanmak yeterlidir. Sonuç olarak, dürtü ağları akustik parazitten korunur. Geçerli sayılar, hata olasılığını artıran gürültüye eğilimlidir.

Sonuç

Tabii ki, son on yılda sinir ağlarının gelişiminde gerçek bir patlama oldu. Bu öncelikle YSA'nın öğrenme sürecinin çok daha hızlı ve kolay hale gelmesinden kaynaklanmaktadır. Ayrıca, teknoloji uygulama sürecini önemli ölçüde hızlandırabilen "önceden eğitilmiş" sinir ağları aktif olarak geliştirilmeye başlandı. Ve eğer bir gün sinir ağlarının insan beyninin yeteneklerini tam olarak yeniden üretip üretemeyeceğini söylemek için çok erken ise, önümüzdeki on yılda YSA'ların mevcut mesleklerin dörtte birinde insanların yerini alma olasılığı giderek artıyor. NS.

Daha fazlasını bilmek isteyenler için

  • Büyük Sinir Savaşı: Google Gerçekten Ne Yapıyor?
  • Bilişsel bilgisayarlar geleceğimizi nasıl değiştirebilir?

Günümüzde, yalnızca önceden belirlenmiş veriler üzerinde bir zamanlar programlanmış bir dizi eylem gerçekleştirebilen değil, aynı zamanda yeni gelen bilgileri analiz edebilen, içindeki kalıpları bulabilen, tahminlerde bulunabilen vb. sistemlere artan bir ihtiyaç vardır. Bu uygulama alanında, sözde nöral ağlar- insan beyninin aktivitesini taklit eden kendi kendine öğrenme sistemleri. Yapay sinir ağlarının (NN) yapısını ve belirli görevlerdeki uygulamalarını daha ayrıntılı olarak ele alalım.

yapay nöron

Çok çeşitli sinir ağı seçeneklerine rağmen, hepsinin ortak özellikleri vardır. Yani hepsi, tıpkı insan beyni gibi, aynı türden çok sayıda ilgili öğeden oluşur - nöronlar beyindeki nöronları taklit eder. İncirde. 1, bir nöronun bir diyagramını gösterir.

Şekil, yapay bir nöronun, tıpkı canlı bir nöron gibi, nöronun girdilerini çekirdeğe bağlayan sinapslardan oluştuğunu göstermektedir; giriş sinyallerini işleyen nöronun çekirdeği ve nöronu bir sonraki katmanın nöronlarına bağlayan akson. Her sinaps, karşılık gelen nöron girişinin durumunu ne kadar etkilediğini belirleyen bir ağırlığa sahiptir. Nöronun durumu formülle belirlenir.

$ S = \ toplam \ limitler_ (i = 1) ^ (n) \, x_iw_i $, (1)

$ \ toplam \ limitler_ (k = 1) ^ (N) k ^ 2 $, (1)

n- nöron girdilerinin sayısı
x ben- nöronun i-inci girişinin değeri
ben i. sinapsın ağırlığıdır.

Daha sonra nöronun aksonunun değeri formülle belirlenir.

$ Y = f \, (S) $, (2)

Nereye F- çağrılan bazı işlevler aktivasyon... Çoğu zaman, sözde sigmoid bu şuna benziyor:

$ f \, (x) = \ frac (1) (1 \, + \, \ mbox e ^ (- eksen)) $, (3)

Bu fonksiyonun ana avantajı, tüm apsis ekseninde türevlenebilir olması ve çok basit bir türevine sahip olmasıdır:

$ f "\, (x) = \ alpha f (x) \, \ bigl (1 \, - \, f \, (x) \ bigr) $, (4)

a parametresi azaldıkça, sigmoid daha düz hale gelir ve a = 0'da 0,5 düzeyinde yatay bir çizgiye dönüşür. Arttıkça, sigmoid birim atlama işlevine giderek daha fazla yaklaşır.

Geri yayılım sinir ağları

Geri yayılım sinir ağları, kalıpları, tahminleri ve nitel analizleri bulmak için güçlü bir araçtır. Böyle bir isim - geri yayılma ağları Bunlar, hatanın çıkış katmanından giriş katmanına, yani normal ağ işlemi sırasında sinyal yayılma yönünün tersi yönde yayıldığı kullanılan öğrenme algoritması nedeniyle elde edilmiştir.

Geri yayılımlı bir sinir ağı, her nöron bir katmanda olan birkaç nöron katmanından oluşur. ben katmanın her bir nöronuna bağlı ben + 1, yani bahsettiğimiz tamamen bağlı NS.

Genel durumda, sinir ağlarını öğretme görevi, belirli bir işlevsel bağımlılık bulmaya indirgenir. Y = F(X) nerede x- giriş ve Y- çıktı vektörleri. Genel durumda, sınırlı sayıda girdi verisi olan böyle bir problemin sonsuz sayıda çözümü vardır. Eğitim sırasında arama uzayını sınırlamak için, en küçük kareler yöntemi kullanılarak bulunan NN hatasının amaç fonksiyonunu en aza indirme görevi ortaya konmuştur:

$ E \, (w) = \ frac (1) (2) \ toplam \ limitler_ (j = 1) ^ (p) \, ((y_i \, - \, d_i)) ^ 2 $, (5)

y j- sinir ağının j-th çıktısının değeri,

d j- j-th çıktısının hedef değeri,

P- çıkış katmanındaki nöron sayısı.

Sinir ağı, gradyan iniş yöntemi kullanılarak eğitilir, yani her yinelemede ağırlık aşağıdaki formüle göre değiştirilir:

$ \ Delta \, w_ (ij) = - \, \ eta \, \ cdot \, \ frac (\ kısmi \, E) (\ kısmi \, w_ (ij)) $, (6)

nerede HÖğrenme oranını belirleyen bir parametredir.

$ \ frac (\ kısmi \, E) (\ kısmi \, w_ (ij)) = \ frac (\ kısmi \, E) (\ kısmi \, y_i) \, \ cdot \, \ frac (dy_i) (dS_j ) \, \ cdot \, \ frac (\ kısmi \, S_j) (\ kısmi \, w_ (ij)) $, (7)

y j- j'inci nöronun çıktısının değeri,

S j- formül (1) ile belirlenen giriş sinyallerinin ağırlıklı toplamı.

Ayrıca, faktör

$ \ frac (\ kısmi \, S_j) (\ kısmi \, w_ (ij)) = x_i $, (8)

x ben- nöronun i-inci girişinin değeri.

$ \ frac (\ kısmi \, E) (\ kısmi \, y_j) = \ toplam \ limitler_ (k) ^ () \ frac (\ kısmi \, E) (\ kısmi \, y_k) \, \ cdot \, \ frac (dy_k) (dS_k) \, \ cdot \, \ frac (\ kısmi \, S_k) (\ kısmi \, y_j) = \ toplam \ limitler_ (k) ^ () \ frac (\ kısmi \, E) (\ kısmi \, y_k) \, \ cdot \, \ frac (dy_k) (dS_k) \, \ cdot \, w_ (jk) ^ ((n + 1)) $, (9)

k- katmandaki nöron sayısı n + 1.

Yardımcı bir değişken tanıtalım

$ \ delta_j ^ ((n)) = \ frac (\ kısmi \, E) (\ kısmi \, y_j) \, \ cdot \, \ frac (dy_j) (dS_j) $, (10)

Sonra belirlemek için özyinelemeli bir formül tanımlayabiliriz. n-inci katman eğer sonrakini biliyorsak (n + 1)-inci katman.

$ \ delta_j ^ ((n)) = \ biggl [\ toplam \ limitler_ (k) ^ () \ delta_k ^ ((n + 1)) \, \ cdot \, w_ (jk) ^ ((n + 1) ) \ biggr] \, \ cdot \, \ frac (dy_j) (dS_j) $, (11)

Son katman için sinir ağını bulmak zor değildir, çünkü hedef vektörü, yani sinir ağının belirli bir girdi değerleri kümesi için üretmesi gereken değerlerin vektörünü biliyoruz.

$ \ delta_j ^ ((N)) = \ büyük (y_i ^ ((N)) - \, d_i \ büyük) \, \ cdot \, \ frac (dy_j) (dS_j) $, (12)

Ve son olarak, formülü (6) genişletilmiş biçimde yazıyoruz.

$ \ Delta w_ (ij) ^ ((n)) = - \, \ eta \, \ cdot \, \ delta_j ^ ((n)) \, \ cdot \, x_i ^ n $, (13)

Şimdi bir sinir ağını eğitmek için tam algoritmayı ele alalım:

  1. sinir ağının girişine gerekli görüntülerden birini gönderin ve sinir ağının nöronlarının çıkışlarının değerlerini belirleyin
  2. NS'nin çıkış katmanı için formül (12)'ye göre hesaplayın ve formül (13)'e göre çıkış katmanı N'nin ağırlıklarındaki değişiklikleri hesaplayın
  3. NS'nin kalan katmanları için sırasıyla (11) ve (13) formülleri ve $ \ Delta w_ (ij) ^ ((N)) $ ile hesaplayın, n = N-1..1
  4. Tüm NA ağırlıklarını düzeltin

    $ w_ (ij) ^ ((n)) \, (t) = w_ (ij) ^ ((n)) \, (t \, - \, 1) \, + \, \ Delta w_ (ij) ^ ((n)) \, (t) $, (14)

  5. Hata önemliyse, 1. adıma gidin

2. aşamada, eğitim dizisinden vektörler ağa rastgele bir sırayla sunulur.

Sinir ağı geri yayılımı eğitiminin verimliliğini artırma

Yukarıda tartışılan en basit gradyan iniş yöntemi, farklı ağırlıklara göre türevler çok farklı olduğunda çok etkisizdir. Bu, bazı nöronlar için S fonksiyonunun değerinin modül olarak 1'e yakın olduğu veya bazı ağırlıkların modülünün 1'den çok daha büyük olduğu bir duruma karşılık gelir. Bu durumda, hatayı düzgün bir şekilde azaltmak için, çok düşük bir öğrenme oranı. seçilmelidir, ancak eğitim çok uzun zaman alabilir.

Gradyan inişini iyileştirmenin en basit yöntemi, an gradyanın ağırlıklardaki değişim üzerindeki etkisi zamanla değiştiğinde. Daha sonra formül (13) formunu alır

$ \ Delta w_ (ij) ^ ((n)) \, (t) = - \, \ eta \, \ cdot \, \ delta_j ^ ((n)) \, \ cdot \, x_i ^ n \, + \, \ mu \, \ Delta w_ (ij) ^ ((n)) \, (t \, - \, 1) $, (13.1)

Bir tork tanıtmanın ek bir avantajı, algoritmanın küçük yerel minimumların üstesinden gelme yeteneğidir.

Giriş verileri sunumu

Sinir ağları arasındaki temel fark, içlerinde tüm giriş ve çıkış parametrelerinin genellikle bir aralıkta kayan nokta sayıları olarak gösterilmesidir. Aynı zamanda, konu alanının verileri genellikle farklı şekilde kodlanır. Bu nedenle, rastgele bir aralıktaki sayılar, tarihler, karakter dizileri olabilir. Bu nedenle, problemle ilgili veriler hem nicel hem de nitel olabilir. Önce kaliteli verileri sayısal verilere dönüştürmeye bakalım ve ardından girdi verilerinin gerekli aralığa nasıl dönüştürüleceğini düşünelim.

Nitel verileri sıralı (sıralı) ve sırasız olmak üzere iki gruba ayırabiliriz. Bu verileri kodlamanın yollarını düşünmek için, bir hastalığın tedavisinin başarısını tahmin etme problemini ele alacağız. Sıralı verilere bir örnek, örneğin belirli bir hastalık için ek risk faktörleri hakkındaki veriler olabilir.

Ve ayrıca olası bir örnek, örneğin hastanın yaşı olabilir:

Tablolarda soldan sağa doğru gidildikçe her faktörün tehlikesi artmaktadır.

İlk durumda, hastanın aynı anda birkaç risk faktörüne sahip olabileceğini görüyoruz. Bu durumda, aynı değerin farklı faktör kombinasyonlarına karşılık geldiği bir durumun olmadığı böyle bir kodlama kullanmamız gerekir. En yaygın kodlama yöntemi, her faktöre bir bit ikili sayı atanmasıdır. Bu bitteki 1, bir faktörün varlığını, 0 ise yokluğunu gösterir. no parametresine 0 sayısı atanabilir. Bu nedenle, tüm faktörleri temsil etmek için 4 bitlik bir ikili sayı yeterlidir. Dolayısıyla 1010 2 = 10 10 sayısı hastanın hipertansiyonu ve alkol tüketimi olduğu, 0000 2 sayısı ise hastada risk faktörlerinin bulunmadığı anlamına gelmektedir. Böylece, risk faktörleri bir aralıktaki sayılarla temsil edilecektir.

İkinci durumda, tüm değerleri ikili ağırlıklarla da kodlayabiliriz, ancak bu pratik olmayacaktır, çünkü olası değerler kümesi çok düzensiz olacaktır. Bu durumda, komşu değerin ağırlığından 1 farklı olan kendi ağırlığının her değerine göre ayarlamak daha doğru olacaktır. Yani 3 sayısı 50-59 yaşına tekabül edecektir. Böylece yaş, aralıktaki sayılarla kodlanacaktır.

Prensip olarak, her değere bir sayı atayarak sırasız veriler için de aynısını yapabilirsiniz. Ancak bu, verileri çarpıtabilecek ve öğrenme sürecini büyük ölçüde karmaşıklaştırabilecek istenmeyen sıralamaya neden olur. Bu sorunu çözmenin yollarından biri olarak, NN girişlerinden birinin her bir değerini ilişkilendirmeyi önermek mümkündür. Bu durumda, eğer bu değer mevcutsa, aksi halde ilgili giriş 1 veya 0'a ayarlanır. Ne yazık ki, bu yöntem her derde deva değildir, çünkü çok sayıda giriş değeri seçeneğiyle, NN girişlerinin sayısı çok büyük bir sayıya ulaşır. Bu, eğitim için harcanan zamanı önemli ölçüde artıracaktır. Bu soruna geçici bir çözüm olarak, biraz farklı bir çözüm kullanabilirsiniz. Giriş parametresinin her değerine göre, her biti NS'nin ayrı bir girişine karşılık gelen bir ikili vektör konur.

Edebiyat

  • Dirk Emma Baestaens, Willem Max Van Den Bergh, Douglas Wood, "Finansal Piyasalarda Ticaret için Sinir Ağı Çözümü", Pitman yayıncılık
  • R. M. Hristev, "Yapay Sinir Ağları"
  • S. Korotkiy, "Sinir Ağları: Bir Geri Yayılım Algoritması"
  • S. Kısa, "Sinir Ağları: Temel Bilgiler"

Yapay sinir sistemi kavramının bir girişi ve tanımıyla materyali düşünmeye başlayalım.

Temel olarak birbirine paralel olarak bağlanan basit veri işleme elemanlarının kullanıldığı bir analog bilgi işlem kompleksi olarak düşünülebilir. Veri işleme öğeleri, girdi verileri üzerinde çok basit mantıksal veya aritmetik işlemler gerçekleştirir. Bir yapay sinir sisteminin işleyişinin temeli, böyle bir sistemin her bir elemanı ile ağırlık katsayılarının ilişkilendirilmesidir. Bu ağırlıklar sistemde depolanan bilgileri temsil eder.

Tipik bir yapay nöron diyagramı

Bir nöronun birçok girdisi olabilir, ancak sadece bir çıktısı olabilir. İnsan beyni kabaca nöronlar içerir ve her nöronun diğerleriyle binlerce bağlantısı olabilir. Nöronun girdi sinyalleri ağırlıklarla çarpılır ve nöronun toplam girdisini elde etmek için toplanır - ben:

Pirinç. 1.Tipik yapay nöron

Bir nöronun çıkışını girişlerine bağlayan fonksiyona ateşleme fonksiyonu denir. Bir sigmoidal fonksiyon formuna sahiptir. θ ... Nöronun yanıtının resmileştirilmesi, orijinal sinyalin çok küçük ve çok büyük giriş sinyalleri alırken sınırlardan birine yönlendirilmiş olmasıdır. Ek olarak, her nöronla bir eşik değeri ilişkilendirilir - θ , çıkış sinyalini hesaplamak için formüldeki toplam giriş sinyalinden çıkarılır. Sonuç olarak, nöronun çıkış sinyali - O genellikle şu şekilde tanımlanır:

Geri yayılım ağ yapısı "src =" https://libtime.ru/uploads/images/00/00/01/2014/06/27/set-s-obratnym-rasprostraneniyem.png.pagespeed.ce.O_0jCrJsLr.png "alt =" (! LANG: Geri yayılım ağ yapısı" width="450" height="370">!}

Pirinç. 2. Geri yayılım ağı

Geri yayılım ağı ek bölümler de oluşturulabilmesine rağmen, genellikle üç bölüme ayrılır. Giriş ve çıkış bölümleri arasında yer alan bölümlere (segment), dış dünya görsel olarak yalnızca giriş ve çıkış bölümlerini algıladığı için gizli bölümler denir. "Exclusive OR" mantıksal işleminin değerini hesaplayan ağ, yalnızca tüm girişlerinin doğru değerlere sahip olmadığı veya tüm girişlerin hatalı değerler olmadığı durumlarda gerçek bir değer çıkarır. Gizli sektördeki düğüm sayısı, projenin amacına bağlı olarak değişebilir.

Sinir ağı özellikleri

Sinir ağlarının, kelimenin genel anlamıyla programlama gerektirmediğine dikkat edilmelidir. Sinir ağlarını eğitmek için, karşı yayılım ve geri yayılım gibi sinir ağlarını eğitmek için özel algoritmalar kullanılır. Programcı, giriş verilerini ve karşılık gelen çıkış verilerini belirterek ağı "programlar". Ağ, nöronlar arasındaki sinaptik bağlantıların ağırlıklarını otomatik olarak ayarlayarak öğrenir.

Ağırlıklar, nöronların eşik değerleri ile birlikte, verilerin ağ üzerinden yayılmasının doğasını belirler ve böylece eğitim sürecinde kullanılan verilere doğru yanıtı ayarlar. Doğru yanıtları almak için ağı eğitmek zaman alıcı olabilir. Ağın eğitimi sırasında kaç görüntünün ustalaşması gerektiğine ve ayrıca kullanılan donanım ve yardımcı yazılımın özelliklerine ne kadar bağlıdır. Ancak, eğitim tamamlandıktan sonra ağ yüksek hızda yanıt verme yeteneğine sahiptir.

ona göre mimari yapay sinir sistemi diğer bilgisayar sistemlerinden farklıdır. Klasik bilgi sisteminde, ayrık bilgilerin bellek elemanları ile birleştirilmesi olasılığı gerçekleştirilmektedir. Örneğin, tipik olarak bir bilgi sistemi, belirli bir nesne hakkındaki verileri bir grup bitişik bellek öğesinde depolar. Sonuç olarak, nesnenin nitelikleri ile kaydedildiği bellek hücrelerinin adresleri arasında bire bir ilişki oluşturularak verilere erişme ve bunları işleme yeteneği elde edilir.

Bu tür sistemlerin aksine, yapay sinir sistemleri modelleri, beyinde bilgilerin ağırlıklar kullanılarak temsil edildiği modern beyin işleyişi teorileri temelinde geliştirilir. Ancak, belirli bir ağırlık değeri ile belirli bir saklanan bilgi öğesi arasında doğrudan bir ilişki yoktur.

Bu dağıtılmış bilgi sunumu, hologramlarda kullanılan görüntü depolama ve sunum teknolojisine benzer. Bu teknolojiye göre, hologramın çizgileri kırınım ızgaraları gibi davranır. Onların yardımıyla, lazer ışını geçtiğinde, kaydedilen görüntü yeniden üretilir, ancak verilerin kendisi doğrudan yorumlanmaz.


Bir problemi çözmenin bir yolu olarak sinir ağı

Sinir ağı büyük miktarda ampirik veri olduğunda bir problemi çözmenin kabul edilebilir bir yolu olarak hareket eder, ancak gerekli hızda yeterince doğru bir çözüm sağlayabilecek bir algoritma yoktur. Bu bağlamda, bir yapay sinir sisteminin verilerini temsil etme teknolojisi, diğer bilgi teknolojilerine göre önemli avantajlara sahiptir. Bunlar Faydalar aşağıdaki gibi formüle edilebilir:

  1. Sinir ağının belleği hataya dayanıklıdır. Sinir ağının tek tek parçalarını çıkarırken, yalnızca bilgi kalitesinde bir azalma meydana gelir, korunur, ancak tamamen kaybolmaz. Bunun nedeni, bilgilerin dağıtılmış bir biçimde saklanmasıdır.
  2. Azalmaya tabi olan sinir ağındaki bilgi kalitesi, ağın kaldırılan kısmı ile orantılı olarak giderek azalmaktadır. Felaket bir bilgi kaybı yoktur.
  3. Bir sinir ağındaki veriler, ilişkisel bellek kullanılarak doğal bir şekilde saklanır. İlişkisel bellek, tüm bilgileri tamamen geri yüklemek için kısmen temsil edilen verileri aramanın yeterli olduğu bir bellektir. Bu, ilgili bellek öğelerinin tam adresini belirterek verilerin alındığı ilişkisel bellek ile sıradan bellek arasındaki farktır.
  4. içlerinde depolanan bilgilere dayalı olarak ekstrapolasyon ve enterpolasyon gerçekleştirmenize izin verir. Yani öğrenme, ağın verilerdeki önemli özellikleri veya ilişkileri arayabilmesini sağlar. Bundan sonra ağ, kendisine gelen yeni verilerdeki bağlantıları tahmin edebilir ve ortaya çıkarabilir. Örneğin, bir deneyde, varsayımsal bir örnek kullanılarak bir sinir ağı eğitildi. Eğitimi tamamladıktan sonra, ağ, eğitim yapılmayan soruları doğru cevaplama yeteneğini kazandı.
  5. Sinir ağları esnektir. Belirli sayıda nöron çıkarıldıktan sonra bile, ağ birincil düzeyine yeniden eğitilebilir (tabii ki, içinde yeterli sayıda nöron varsa). Bu özellik aynı zamanda, bireysel parçaların zarar görebileceği, ancak zamanla, eğitim yardımıyla, temel beceri ve bilgi seviyesine ulaşılan insan beyninin özelliğidir.

Bu özellikleri sayesinde yapay sinir sistemleri günümüzde kullanım için oldukça çekici hale gelmektedir. robotik uzay aracı, petrol endüstrisi ekipmanları, sualtı araçları, proses kontrolleri ve diğer teknik cihazlar elverişsiz bir ortamda tamir edilmeden uzun süre çalışması gereken . Yapay sinir sistemleri sadece güvenilirlik sorununu çözmekle kalmaz, aynı zamanda plastisiteleri sayesinde işletme maliyetlerini düşürme fırsatı da sağlar.

Ancak genel olarak yapay sinir sistemleri, karmaşık matematiksel hesaplamalar gerektiren uygulamalar oluşturmak veya en uygun çözümü bulmak için pek uygun değildir. Ayrıca, bu tür problemlerin çözümüne yönelik pratik uygulama nedeniyle zaten olumlu bir sonuç sağlayan algoritmik bir çözüm varsa, yapay sinir sisteminin kullanılması en iyi seçenek olmayacaktır.

NÖRAL AĞLAR formal nöronlardan oluşan yapay, çok katmanlı, yüksek düzeyde paralel (yani, çok sayıda bağımsız çalışan öğenin paralel olduğu) mantıksal yapılar. Sinir ağları teorisinin başlangıcı ve nörobilgisayarlar Amerikalı nörofizyologlar W. McCulloch ve W. Pitts, The Logical Calculus of Ideas of Ideas of Nervous Activity (1943), burada bir biyolojik nöronun matematiksel bir modelini önerdiler. Temel çalışmalar arasında, yapay sinir ağları için algoritmaları öğrenmenin başlangıç ​​noktası olan öğrenme yasasını 1949'da öneren D. Hubb'ın modeli öne çıkarılmalıdır. Sinir ağı teorisinin daha da geliştirilmesi, Amerikalı nörofizyolog F. Rosenblatt'ın "Nörodinamik Prensipleri" monografisinden önemli ölçüde etkilendi ve burada algılayıcının şemasını ayrıntılı olarak açıkladı (bilgi algı sürecini simüle eden bir cihaz). İnsan beyni). Fikirleri birçok yazarın bilimsel çalışmalarında geliştirildi. 1985-86'da. sinir ağları teorisi, sinir ağlarını o sırada ortaya çıkan mevcut ve yüksek performansta simüle etme yeteneğinden kaynaklanan bir "teknolojik dürtü" aldı. kişisel bilgisayarlar... Sinir ağı teorisi, 21. yüzyılın başında oldukça aktif bir şekilde gelişmeye devam ediyor. Uzmanlara göre, yakın gelecekte sinir ağlarının ve nörobilgisayarların tasarımında önemli teknolojik büyüme bekleniyor. Son yıllarda, sinir ağlarının birçok yeni olasılığı keşfedilmiştir ve bu alandaki çalışmalar endüstriye, bilime ve teknolojiye önemli katkılar sağlamakta ve büyük ekonomik öneme sahiptir.

Sinir ağlarının ana uygulama alanları

Yapay sinir ağlarının potansiyel uygulama alanları, insan zekasının etkisiz olduğu ve geleneksel hesaplamaların zaman alıcı veya fiziksel olarak yetersiz olduğu alanlardır (yani, gerçek fiziksel süreçleri ve nesneleri yansıtmazlar veya yetersiz yansıtmazlar). Sinir ağlarının (yani nörobilgisayarların) kullanımının önemi, çözülmesi gereken bir ihtiyaç olduğunda birçok kez artar. kötü biçimlendirilmiş arka taraf h.Sinir ağlarının ana uygulama alanları: sınıflandırma sürecinin otomasyonu, tahmin otomasyonu, tanıma sürecinin otomasyonu, karar verme sürecinin otomasyonu; bilgilerin yönetimi, kodlanması ve kodunun çözülmesi; bağımlılıkların yakınlaştırılması, vb.

Sinir ağları yardımıyla, alanında önemli bir sorun olan telekomünikasyon- iletişim ağlarının tasarımı ve optimizasyonu (düğümler arasındaki en uygun trafik yolunu bulma). Akış yönlendirme yönetimine ek olarak, yeni telekomünikasyon ağlarının tasarımında etkin çözümler elde etmek için sinir ağları kullanılmaktadır.

Konuşma tanıma Sinir ağları için en popüler uygulamalardan biridir.

Başka bir alan fiyat ve üretim yönetimi(optimal olmayan üretim planlamasından kaynaklanan kayıplar genellikle hafife alınır). Ürünlerin satışına yönelik talep ve koşullar zamana, mevsime, döviz kurlarına ve diğer birçok faktöre bağlı olduğundan, kaynakların kullanımını optimize etmek için üretim hacmi de esnek bir şekilde değişmelidir (sinir ağı sistemi, reklam maliyetleri arasındaki karmaşık ilişkileri tespit eder). , satış hacimleri, fiyat, rakiplerin fiyatları, haftanın günü, sezon vb.). Sistemin kullanılması sonucunda satışların veya kârların maksimize edilmesi açısından optimal üretim stratejisi seçilir.

NS tüketici pazarı analizi(pazarlama), tüketici tepkisini tahmin etmenin olağan (klasik) yöntemleri yeterince doğru olmayabileceğinde, uyarlanabilir bir nörosimülatör mimarisine sahip bir tahmine dayalı sinir ağı sistemi kullanılır.

Talep araştırmasışirketin işini rekabetçi bir ortamda sürdürmenize, yani "geri bildirim" yoluyla tüketicilerle sürekli iletişim kurmanıza olanak tanır. Büyük şirketler, belirli bir ürün veya hizmeti satın alırken kendileri için hangi faktörlerin belirleyici olduğunu, neden bazı durumlarda rakiplere tercih edildiğini ve tüketicinin gelecekte hangi ürünleri görmek istediğini öğrenmek için tüketici anketleri yapar. Çok sayıda ilişkili parametre olduğundan, böyle bir anketin sonuçlarını analiz etmek oldukça zor bir iştir. Sinir ağı sistemi, talep faktörleri arasındaki karmaşık bağımlılıkları belirlemenize, pazarlama politikalarını değiştirirken tüketici davranışını tahmin etmenize, en önemli faktörleri ve en uygun reklam stratejilerini bulmanıza ve ayrıca belirli bir ürün için en umut verici tüketici segmentini ana hatlarıyla belirlemenize olanak tanır.

V tıbbi teşhisÖrneğin, bebeklerde işitmeyi teşhis etmek için sinir ağları kullanılır. Objektif teşhis sistemi, muayene sırasında sentezlenen ses uyaranına yanıt olarak elektroensefalogramda patlamalar şeklinde görünen kayıtlı "uyarılmış potansiyelleri" (beyin tepkileri) işler. Deneyimli bir odyolog, bir çocuğun işitmesini güvenle teşhis etmek için tipik olarak yaklaşık bir saat süren 2000'e kadar teste ihtiyaç duyar. Sinir ağına dayalı bir sistem, sadece birkaç dakika içinde ve kalifiye personel katılımı olmadan 200 gözlemden aynı güvenilirlikte işitme seviyesini belirleme yeteneğine sahiptir.

Sinir ağları da tahmin için kullanılır kısa ve uzun vadeli trendlerçeşitli alanlarda (finansal, ekonomik, bankacılık vb.)

Sinir ağlarının yapısı

Sinir sistemi ve insan beyni, sinir lifleri ile birbirine bağlı nöronlardan oluşur. Sinir lifleri, nöronlar arasında elektriksel uyarıları iletebilir. Tahrişlerin cildimizden, kulaklarımızdan ve gözlerimizden beyne iletilmesi, düşünme ve eylemlerin kontrol edilmesi süreçleri - tüm bunlar canlı bir organizmada nöronlar arasında elektriksel uyarıların iletimi olarak gerçekleştirilir.

biyolojik nöron(Hücre) bir çekirdeğe (Çekirdek) ve ayrıca iki tip sinir lifi süreçlerine sahiptir (Şekil 1) - impulsların alındığı dendritler (Dendritler), ve tek bir akson (Akson), bir nöronun bir dürtü iletebildiği (sinyalleri uzağa taşır). Akson, iletilen dürtünün gücünü etkileyen özel yapılar - sinapslar aracılığıyla diğer nöronların dendritleriyle temas eder. Bu tür çok sayıda nörondan oluşan bir yapıya biyolojik (veya doğal) sinir ağı denir.

ortaya çıkışı resmi nöron büyük ölçüde biyolojik nöronların çalışması nedeniyle. Resmi bir nöron (bundan sonra nöron olarak anılacaktır), herhangi bir yapay sinir ağının temelidir. Nöronlar, beyin nöronlarının çalışmalarını taklit eden nispeten basit, tek biçimli öğelerdir. Her nöron, uyarılabilen ve engellenebilen beyindeki sinir hücrelerine benzetilerek mevcut durumu ile karakterize edilir. Yapay bir nöron, doğal prototipi gibi, diğer nöronların çıktılarına bağlı bir grup sinapsa (girdilere) ve bir aksona sahiptir - bu nöronun uyarı veya inhibisyon sinyalinin gittiği çıkış bağlantısı diğer nöronların sinapsları.

Resmi bir nöron, $ N $ girdileri, ($ N + 1 $) ağırlık katsayıları, bir toplayıcı ve doğrusal olmayan bir dönüştürücü olan mantıksal bir elemandır. Mantıksal bir dönüşüm gerçekleştiren en basit formal nöron $ y = \ metin (işaret) \ toplam_ (i = 0) ^ (N) a_ix_i $Çıkış sinyaline giriş sinyalleri (örneğin, N. sayfanın diğer resmi nöronlarının çıkış sinyalleridir), Şekil 2'de sunulmaktadır. 1.

Burada $ y $ formal nöronun çıktı değeridir; $ a_i $ - ağırlık katsayıları; $ x_i $ - resmi nöronun giriş değerleri ($ x_i∈ \ sol \ (0,1 \ sağ \), \; x_0 = 1 $). Resmi bir nöronun çıktı değerini hesaplama süreci, veri akışının hareketi ve dönüşümüdür. İlk olarak, veriler resmi nöronun giriş bloğuna gider, burada ilk veriler, sözde karşılık gelen ağırlık katsayıları ile çarpılır. sinoptik ağırlıklar (biyolojik nöronların sinapslarına göre). Ağırlıklandırma faktörü, karşılık gelen girdi değerinin formal nöronun durumunu ne kadar etkilediğini belirleyen bir ölçüdür. Ağırlık katsayıları eğitim örneklerine, N'nin mimarisine göre değiştirilebilir, Eğitim kuralları vb. Elde edilen değerler (çarpma sırasında) toplayıcıda tek bir sayısal değere dönüştürülür $ g $ (toplam yoluyla). Daha sonra, doğrusal olmayan dönüşüm bloğundaki (transfer fonksiyonunu uygulayan) formal nöronun çıktısını belirlemek için $ g $ belirli bir sayı (eşik) ile karşılaştırılır. Toplam eşik değerinden büyükse, formal nöron bir sinyal üretir, aksi takdirde sinyal sıfır veya engelleyici olur. Bu formal nöronda doğrusal olmayan bir dönüşüm uygulanır. $$ \ metin (işaret) (g) = \ başlangıç ​​(durumlar) 0, \; G< 0 \\ 1,\; g ⩾ 0 \end{cases},\quad \text{где}\,\,g = \sum_{i=0}^N a_i x_i.$$

Sinir ağı yapısının seçimi, problemin özelliklerine ve karmaşıklığına göre yapılır. Teorik olarak, bir sinir ağının her katmanındaki katmanların sayısı ve nöronların sayısı isteğe bağlı olabilir, ancak aslında bir sinir ağının genellikle uygulandığı bir bilgisayarın veya özel mikro devrenin kaynakları ile sınırlıdır. Ayrıca, ağdaki tüm nöronlar için tek bir atlama işlevi bir aktivasyon işlevi olarak kullanılıyorsa, sinir ağı denir. çok katmanlı algı m.

İncirde. Şekil 3, çok katmanlı bir seri sinir ağının genel bir diyagramını göstermektedir. Yüksek işlem paralelliği, çok sayıda formal nöronun katmanlar halinde birleştirilmesi ve farklı nöronların belirli bir şekilde birbirine bağlanmasıyla elde edilir.

Genel olarak, bu yapıya özelleştirilebilir ağırlıklara sahip çapraz bağlantılar ve geri bildirimler dahil edilebilir (Şekil 4).

Sinir ağları, çok sayıda serbestlik derecesine sahip karmaşık doğrusal olmayan sistemlerdir. Bilgileri işleme ilkesi, von Neumann mimarisine sahip işlemcilere dayalı bilgisayarlarda kullanılan ilkeden farklıdır - mantıksal bir temelde VE, VEYA, DEĞİL (bkz. J. von Neumann, Hesaplama makinesi). Klasik programlama yerine (geleneksel bilgi işlem sistemlerinde olduğu gibi), sinir ağı işleyişinin kalitesi için belirli bir kriteri optimize etmek amacıyla, kural olarak, ağırlık katsayılarını ayarlamaya indirgenen sinir ağı eğitimi kullanılır.

Sinir ağı algoritmaları

Problemleri çözmek için bir sinir ağı algoritması, tamamen veya çoğunlukla belirli bir yapıya sahip bir sinir ağı şeklinde uygulanan bir hesaplama prosedürüdür (örneğin, resmi nöronların katmanları arasında sıralı veya çapraz bağlantılara sahip çok katmanlı bir sinir ağı) ağırlık katsayılarını ayarlamak için uygun bir algoritma ile. Bir sinir ağı algoritmasının geliştirilmesinin temeli, bir problem çözme sürecinin zaman içinde bazı dinamik sistemlerin işleyişi olarak temsil edildiği sistematik bir yaklaşımdır. Bunu oluşturmak için şunları belirlemek gerekir: bir sinir ağının giriş sinyali olarak işlev gören bir nesne; bir sinir ağının çıkış sinyali olarak işlev gören bir nesne (örneğin, çözümün kendisi veya bazı özellikleri); sinir ağının istenen (gerekli) çıkış sinyali; sinir ağının yapısı (katman sayısı, katmanlar arasındaki bağlantılar, ağırlık katsayıları olarak görev yapan nesneler); sistem hatası işlevi (sinir ağının istenen çıkış sinyalinin gerçek çıkış sinyalinden sapmasını karakterize eder); hataya bağlı olarak sistem kalite kriteri ve optimizasyon işlevi; ağırlık katsayılarının değeri (örneğin, bazı sayısal yöntemler veya bir sinir ağının ağırlık katsayılarını ayarlama prosedürü kullanılarak doğrudan problem ifadesinden analitik olarak belirlenir).

Katmanlardaki formal nöronların sayısı ve türü ile nöron katmanlarının sayısı, çözülecek problemlerin özelliklerine ve çözümün gerekli kalitesine göre seçilir. Belirli bir problemin çözümüne ayarlama sürecinde, bir sinir ağı, yinelemeli bir modda, problemin çözümünün kalitesini nicel olarak belirleyen bazı fonksiyonların optimumunu kasıtlı olarak arayan çok boyutlu doğrusal olmayan bir sistem olarak kabul edilir. . Sinir ağları için, çok boyutlu doğrusal olmayan kontrol nesneleri olarak, bir dizi ağırlık katsayısını ayarlamak için algoritmalar oluşturulur. Bir sinir ağı çalışmasının ana aşamaları ve ağırlık katsayılarının ayarlanması (uyarlanması) için algoritmaların oluşturulması şunları içerir: sinir ağının çeşitli çalışma modları için giriş sinyalinin özelliklerinin incelenmesi (sinir sisteminin giriş sinyali). ağ, kural olarak, işlenmiş bilgi girişi ve sinir ağının sözde "öğretmeni"nin göstergesidir); optimizasyon kriterlerinin seçimi (dış dünyanın olasılıksal bir modeliyle, bu kriterler ortalama risk fonksiyonunun minimumu, özellikle ortalama risk fonksiyonunun bireysel bileşenleri üzerinde kısıtlamalar varsa, arka olasılığın maksimumu olabilir); optimizasyon fonksiyonlarının ekstremumlarını aramak için bir algoritmanın geliştirilmesi (örneğin, yerel ve global ekstremumları bulmak için algoritmalar uygulamak için); sinir ağı katsayılarının uyarlanması için algoritmaların oluşturulması; bir sinir ağının güvenilirliğinin ve teşhis yöntemlerinin analizi, vb.

1960'larda ve 1980'lerde geri bildirimlerin getirilmesi ve sonuç olarak katsayılarını ayarlamak için algoritmaların geliştirilmesinin, bu tür yapılara uygun pratik problemler olmadığından tamamen teorik bir anlama sahip olduğu belirtilmelidir. Sadece 1980'lerin sonlarında ve 1990'ların başlarında, bu tür problemler ve çözümleri için özelleştirilebilir geri bildirimlere sahip en basit yapılar (tekrarlayan sinir ağları olarak adlandırılan) ortaya çıkmaya başladı. Sinir ağı teknolojileri alanındaki geliştiriciler, yalnızca çok katmanlı sinir ağlarını ve çeşitli sorunları çözmek için sinir ağı algoritmalarını ayarlamak için algoritmalar oluşturmakla kalmayıp, aynı zamanda en etkili (elektronik teknolojisinin şu anki geliştirme anında) donanım emülatörlerinde (özel bir sistemi diğerinin kabuğunda çalıştırmak için tasarlanmış programlar) sinir ağı algoritmaları. 1960'larda, mikroişlemcinin ortaya çıkmasından önce, sinir ağlarının en etkili öykünücüleri, genel amaçlı bilgisayarlarda (bazen analog belleğe sahip uyarlanabilir öğelere dayalı sistemler) gelişmiş ayar algoritmaları ile açık döngü sinir ağlarının analog uygulamalarıydı. Elektronikteki bu gelişme düzeyi, sinir ağlarının yapılarına çapraz bağlantıların getirilmesini acil hale getirdi. Bu, problem çözümünün kalitesini korurken sinir ağındaki nöron sayısında önemli bir azalmaya yol açtı (örneğin, örüntü tanıma problemlerini çözerken ayırt etme yeteneği). 1960'ların ve 70'lerin çapraz bağlı sinir ağlarının yapılarını optimize etme alanındaki çalışmaları, uygulandığında muhtemelen geliştirilecektir. meristör sinir sistemleri[memristör (memristör, bellekten - bellek ve direnç - elektrik direnci), mikroelektronikte içinden akan yüke bağlı olarak direncini değiştirebilen pasif bir eleman], analog-dijital bilgi işleme açısından özgüllüklerini dikkate alarak ve çok önemli miktarda özel oranlar. Uygulamalı problemlerin özel gereksinimleri, ayarlama algoritmaları kullanılarak sinir ağlarının yapılarının bazı özelliklerini belirledi: süreklilik (Latin sürekliliğinden - sürekli, sürekli) sistemin "öğretmeninin" talimatı şeklinde oluşturulduğunda sınıf sayısı belirli bir varyasyon aralığında sürekli bir fonksiyon değerinin; son katmanın nöronunun sürekli aktivasyon fonksiyonunun seçimiyle oluşturulan çok katmanlı sinir ağının çözümlerinin sürekliliği; özniteliklerin uzayında, çıktı sinyalinin gerçek sayıların $ N $ boyutlu bir vektörü biçimindeki temsilinden, belirli bir varyasyon aralığında gerçek bir fonksiyona geçişle oluşturulan öznitelik sayısının sürekliliği. argüman; özellik sayısının sürekliliği, sonuç olarak, sinir ağının belirli bir yazılım ve donanım uygulamasını gerektirir; Girdi uzayının özelliklerinin sürekliliğinin bir varyantı, periyodik sinyalleri kullanarak dönüştürmeden tanıma probleminde uygulandı. analogtan dijitale dönüştürücü(ADC) sistemin girişinde ve analogdan dijitale çok katmanlı sinir ağının uygulanmasında; katmandaki nöron sayısının sürekliliği; çok katmanlı sinir ağlarının bir sınıflar ve çözümler sürekliliği ile uygulanması, son katmanın nöronları için uygun aktivasyon fonksiyonlarının seçilmesiyle gerçekleştirilir.

Tablo, "Giriş sinyali - karar alanı" alanındaki çok katmanlı sinir ağları için algoritmaları ayarlamak için sistematik bir seçenekler kümesini göstermektedir. 1960-70 yıllarında Rus bilim okulu tarafından geliştirilen katsayıları ayarlamak için algoritmaların geçerli olduğu sinir ağlarının giriş ve çıkış sinyallerinin özellikleri için birçok seçenek sunulmaktadır. Sinir ağının girişine giden sinyal, "öğretmenin" talimatlarını temsil eden görüntülerin sınıflarının (derecelendirmelerinin) sayısı ile tanımlanır. Bir sinir ağının çıktısı, karar uzayının nicel bir açıklamasıdır. Tablo, çeşitli giriş sinyali türleri (2 sınıf, $ K $ sınıfı, sınıfların sürekliliği) için sinir ağlarının işleyişi için seçeneklerin bir sınıflandırmasını ve çözüm alanının nicel bir açıklaması için çeşitli seçenekler (2 çözüm, $ K_p $ sağlar. çözümler, çözümlerin sürekliliği). Şekil 1, 7, 8, sinir ağlarının işleyişi için özel seçenekleri temsil etmektedir.

Tablo. Algoritmaları ayarlamak için bir dizi seçenek

Çözüm alanı (sayı)

Giriş sinyali

2. sınıf$ K $ sınıflarıSınıfların sürekliliği
2 1 7 8
$ K_p $$ K_p = 3 $3 A$ K \ lt K_p $9 10
$ K = K_p $2
$ K_p = \ metin (sabit) $3b$ K \ gt K_p $4
süreklilik5 6 11

Karmaşık problemleri çözmek için algoritmalar için mantıksal bir temel olarak sinir ağlarının başlıca avantajları şunlardır: sinir ağlarını öznitelik uzayı boyutundan sentezleme yöntemlerinin değişmezliği (değişmezlik, bağımsızlık); Çözümün gerekli kalitesini elde etmek için çözülmekte olan sorunun karmaşıklığına ve özelliklerine bağlı olarak sinir ağlarının yapısını önemli bir parametre aralığında seçme yeteneği; mevcut ve gelecekteki mikro elektronik teknolojilerine uygunluk; Arıza toleransı, küçük ve yıkıcı olmayan anlamında, arızalı elemanların sayısına bağlı olarak sorunun çözümünün kalitesinde değişiklik.

Sinir ağları - uyarlanabilir bir sistemdeki belirli bir kontrol nesnesi türü

Sinir ağları, kontrol teorisinde en basit doğrusal durağan sistemlerin kontrolünden karmaşık doğrusal olmayan, durağan olmayan, çok boyutlu, çok bağlantılı sistemlerin kontrolüne geçişin ilk örneklerinden biriydi. 1960'ların ikinci yarısında, neredeyse elli yıl boyunca geliştirilen ve başarıyla uygulanan sinir ağlarını sentezlemek için bir teknik doğdu. Bu tekniğin genel yapısı Şekil 2'de gösterilmektedir. 5.

Sinir ağı giriş sinyalleri

Çevreleyen dünyanın olasılık modeli, sinir ağı teknolojilerinin temelidir. Böyle bir model matematiksel istatistiklerin temelidir. Yapay sinir ağları, matematiksel istatistik yöntemlerini kullanan deneycilerin kendilerine şu soruyu sorduğu anda ortaya çıktı: “Neden rastgele girdi sinyallerinin dağılım fonksiyonlarını belirli analitik ifadeler (normal dağılım, Poisson dağılımı, vb.) ? Bu doğruysa ve bunun bazı fiziksel nedenleri varsa, rastgele sinyalleri işleme görevi oldukça basit hale gelir. "

Sinir ağı teknolojileri uzmanları şunları söyledi: “Giriş sinyallerinin dağıtım fonksiyonu hakkında hiçbir şey bilmiyoruz, çözülecek problem sınıfını daraltsak bile, giriş sinyallerinin dağıtım fonksiyonunun resmi bir tanımına olan ihtiyacı terk ediyoruz. Giriş sinyallerinin dağıtım işlevlerinin karmaşık, bilinmeyen olduğunu düşünüyoruz ve benzer koşullar altında belirli belirli sorunları çözeceğiz. önceki belirsizlik(yani eksik açıklama; olası sonuçlar hakkında bilgi yok) ". 1960'ların başında sinir ağlarının örüntü tanıma problemlerini çözmek için etkin bir şekilde kullanılmasının nedeni budur. Ayrıca, örüntü tanıma problemi, $ K $ değerlerini alan çok boyutlu bir rasgele fonksiyona yaklaşma problemi olarak yorumlanmıştır, burada $ K $ örüntü sınıflarının sayısıdır.

1960'ların sonlarında katsayı ayarlama algoritmalarının geliştirildiği rastgele giriş sinyallerinin özellikleriyle belirlenen çok katmanlı sinir ağlarının bazı çalışma modları aşağıda belirtilmiştir.

sinir ağı eğitimi

Bir sinir ağının işleyişinin, yani gerçekleştirebildiği eylemlerin, sinoptik bağlantıların büyüklüğüne bağlı olduğu açıktır. Bu nedenle, belirli bir görevi karşılayan bir sinir ağının yapısı göz önüne alındığında, geliştiricinin tüm ağırlık katsayıları $ w $ için en uygun değerleri bulması gerekir. Bu aşamaya sinir ağının eğitimi denir ve ağın operasyon sırasında ortaya çıkan sorunları çözme yeteneği, ne kadar iyi yapıldığına bağlıdır. Antrenmanın en önemli parametreleri şunlardır: ağırlık katsayılarının seçiminin kalitesi ve antrenmana harcanması gereken zaman. Tipik olarak, bu iki parametre ters orantılıdır ve bir uzlaşma temelinde seçilmelidir. Şu anda, sinir ağlarını öğrenmek için tüm algoritmalar iki büyük sınıfa ayrılabilir: "öğretmenli" ve "öğretmensiz".

Sınıfların görünümünün a priori olasılıkları

Giriş sinyallerinin dağıtım fonksiyonları hakkında ön bilgi eksikliği ile birlikte, bazı yararlı bilgilerin göz ardı edilmesi, problemin çözümünün kalitesinde bir kayba yol açabilir. Bu öncelikle sınıfların ortaya çıkışının a priori olasılıklarıyla ilgilidir. Çok katmanlı sinir ağlarını ayarlamak için algoritmalar, sınıfların görünümünün a priori olasılıkları hakkındaki mevcut bilgiler dikkate alınarak geliştirilmiştir. Bu, bir metindeki harfleri tanıma, belirli bir dil için her harfin görünme olasılığının bilinmesi gibi problemlerde gerçekleşir ve bu bilgi, çok katmanlı bir sinir ağının katsayılarını ayarlamak için bir algoritma oluştururken kullanılmalıdır.

Yeterlilik "öğretmen"

Sinir ağı hem giriş hem de çıkış parametrelerinin değerleri ile sunulur ve bazı dahili algoritmalara göre sinaptik bağlantılarının ağırlıklarını ayarlar. Denetimli öğrenme, her girdi vektörü için istenen çıktıyı temsil eden bir hedef vektör olduğunu varsayar. Genel olarak, bir "öğretmen"in nitelikleri, farklı görüntü sınıfları için farklı olabilir. Birlikte denir temsilci veya eğitim örneği NS. Genellikle, bir sinir ağı bu tür belirli sayıda örnek üzerinde eğitilir. Çıktı vektörü sunulur, sinir ağının çıktısı hesaplanır ve karşılık gelen hedef vektör ile karşılaştırılır, fark (hata) geri besleme yardımı ile sinir ağına geri gönderilir ve ağırlıklar bir algoritmaya göre değiştirilir. hatayı en aza indirmeye çalışır. Eğitim kümesinin vektörleri sırayla sunulur, hatalar hesaplanır ve ağırlıklar, tüm eğitim dizisindeki hata kabul edilebilir düşük bir düzeye ulaşana kadar her vektör için ayarlanır.

Örüntü tanıma görevlerinde, kural olarak, varsayılan olarak, bir "öğretmenin" kalifikasyonu tamamlanmıştır, yani. görüntülerin "öğretmeni" tarafından belirli bir sınıfa doğru atanma olasılığı bire eşittir. Uygulamada, dolaylı ölçümlerin varlığında, bu genellikle, örneğin tıbbi teşhis problemlerinde, eğitim amaçlı tıbbi verilerin bir arşivini doğrularken (kontrol ederken), bu verileri aşağıdakilere atfetme olasılığı ile gerçeğe karşılık gelmez. belirli bir hastalık bire eşit değildir. “Öğretmen” yeterliliği kavramının tanıtılması, eğitim modları için çok katmanlı sinir ağlarının katsayılarını ayarlamak, nihai yeterlilik ile “öğretmenle” öğrenme ve kendi kendine öğrenme (kümeleme) için birleşik algoritmalar geliştirmeyi mümkün kılmıştır. , $ K $ veya iki görüntü sınıfının varlığında, bir “öğretmenin” yeterliliği ( görüntüleri belirli bir sınıfa atfetme olasılığı) $ \ frac (1) (K) $ veya 1/2'ye eşittir. Görüntü tanıma sistemlerinde “öğretmen” nitelikleri kavramının tanıtılması, görüntülerin kasıtlı olarak yanlış (farklı derecelerde yanlışlıkla) atanmasından haberdar edildiğinde sisteme “sabotaj” modlarını tamamen teorik olarak düşünmemize izin verdi. belirli bir sınıfa. Çok katmanlı bir sinir ağının katsayılarını ayarlamanın bu modu henüz pratik bir uygulama bulamadı.

kümeleme

Kümeleme (kendi kendine öğrenme, "öğretmensiz öğrenme"), sistem örneklerin belirli bir sınıfa ait olduğu konusunda bilgilendirilmediğinde, çok katmanlı sinir ağlarının özel bir çalışma modudur. Sinir ağına yalnızca giriş sinyalleri sunulur ve ağın çıkışları, yalnızca giriş ve türetilmiş sinyaller dikkate alınarak bağımsız olarak oluşturulur. Çok sayıda uygulamalı ilerlemeye rağmen, denetimli öğrenme biyolojik mantıksızlık nedeniyle eleştirilmiştir. Geri besleme düzeltmesi yaparak çıktıların istenen ve gerçek değerlerini karşılaştıran doğal insan zekasında bir öğrenme mekanizması hayal etmek zordur. İnsan beyninde de benzer bir mekanizma olduğunu varsayarsak, istenen çıktılar nereden geliyor? Denetimsiz öğrenme, biyolojik bir sistemde daha makul bir öğrenme modelidir. Çıktılar için bir hedef vektöre ihtiyaç duymaz ve bu nedenle önceden tanımlanmış ideal yanıtlarla karşılaştırılmasına gerek yoktur. Eğitim seti yalnızca girdi vektörlerinden oluşur. Eğitim algoritması, sinir ağının ağırlıklarını, tutarlı çıktı vektörleri elde edilecek şekilde, yani yeterince yakın girdi vektörlerinin sunumunun aynı çıktıları verecek şekilde ayarlar. Bu nedenle öğrenme süreci, eğitim setinin istatistiksel özelliklerini çıkarır ve benzer vektörleri sınıflar halinde gruplandırır. Belirli bir sınıftan girdiye bir vektör sunmak belirli bir çıktı vektörü verecektir, ancak eğitimden önce belirli bir girdi vektörü sınıfı tarafından hangi çıktının üretileceğini tahmin etmek imkansızdır. Sonuç olarak, böyle bir ağın çıktıları, öğrenme süreci nedeniyle anlaşılabilir bir forma dönüştürülmelidir. Bu ciddi bir sorun değil. Ağ tarafından kurulan giriş ve çıkış arasındaki bağlantıyı belirlemek genellikle zor değildir.

Kümelemeye ayrılmış birçok bilimsel makale var. Kümelemenin ana görevi, kompakt alt kümelerin (birbirine yakın alt kümelerin), sayılarının ve özelliklerinin tahsisi ile çok boyutlu bir özellik uzayında bir vektör kümesini işlemek. En yaygın kümeleme yöntemi, pratik olarak geri yayılım yöntemleriyle ilgisi olmayan ve çok katmanlı sinir ağları gibi mimarilere genelleştirilmeyen "$ K $ -means" yöntemidir.

1960'larda “öğretmen” yeterliliği kavramının ve öğrenme ve kendi kendine öğrenmeye birleşik bir yaklaşımın tanıtılması, aslında, geniş bir sınıfın çok katmanlı sinir ağlarında kümeleme modunun uygulanması için temel oluşturmayı mümkün kıldı. yapılardan oluşur.

Durağan olmayan görüntüler

Çok katmanlı sinir ağlarına dayalı görüntü tanıma sistemleri alanındaki mevcut gelişmeler, esas olarak durağan görüntüler, yani. karmaşık bilinmeyenler ancak zamana bağlı dağıtım fonksiyonları ile rastgele giriş sinyallerine. Bazı çalışmalarda, giriş sinyalinin varsayılan bilinmeyen dağıtım fonksiyonu zamana bağlı olduğunda veya giriş rastgele sinyali normal bileşenin bir süperpozisyonu olduğunda, çok katmanlı sinir ağlarını durağan olmayan görüntülere ayarlamak için önerilen tekniği genişletme girişiminde bulunuldu. zamana bağlı olmayan, bilinmeyen karmaşık dağılım fonksiyonuna sahip rastgele bir bileşen.

Çok katmanlı sinir ağlarında birincil optimizasyon kriterleri hakkında

Çok katmanlı sinir ağlarında adaptasyon algoritmalarının oluşturulması için temel alınan dünyanın olasılık modeli, söz konusu sistemlerde minimum ortalama risk fonksiyonu için gereksinimler şeklinde birincil bir optimizasyon kriteri oluşturmayı mümkün kılmıştır. değişiklikleri: , yani deneyime dayalı veriler); minimum ortalama risk fonksiyonu; farklı sınıflar için koşullu risk fonksiyonlarının eşit olması şartıyla, ortalama risk fonksiyonunun minimumu; sınıflardan biri için koşullu risk fonksiyonunun belirli bir değeri koşulu altında ortalama risk fonksiyonunun minimumu; belirli bir pratik problemin gereksinimlerinden kaynaklanan diğer birincil optimizasyon kriterleri. Rus bilim adamlarının çalışmalarında, yukarıdaki birincil optimizasyon kriterleri için çok katmanlı sinir ağlarını ayarlamak için algoritmaların modifikasyonları sunuldu. Sinir ağları teorisi ve geri yayılım algoritmaları alanındaki çalışmaların ezici çoğunluğunda, en basit kriterin - koşullu risk fonksiyonlarında herhangi bir kısıtlama olmaksızın, ortalama kare hatasının minimumu olarak kabul edildiğine dikkat edin.

Kendi kendine öğrenme (kümeleme) modunda, sinir ağlarının birincil optimizasyonunun kriteri ve işlevselliğinin oluşturulması için bir ön koşul, giriş sinyalinin dağıtım fonksiyonunun çok boyutlu bir uzayda çok modlu bir işlev biçiminde temsil edilmesidir. belirli bir olasılıkla her modun bir sınıfa karşılık geldiği özellikler. Ortalama risk fonksiyonunun modifikasyonları, kendi kendine öğrenme modunda birincil optimizasyon için kriter olarak kullanıldı.

Birincil optimizasyon kriterlerinin sunulan modifikasyonları, sınıfların ve çözümlerin sürekliliği durumlarına genelleştirildi; girdi uzayının işaretlerinin sürekliliği; katmandaki nöron sayısının sürekliliği; öğretmenin keyfi bir niteliği ile. Dünyanın olasılıklı bir modeline sahip çok katmanlı sinir ağlarında birincil optimizasyonun kriterinin ve işlevselliğinin oluşumunun önemli bir bölümü, istatistiksel kararlar teorisinde kayıp katsayısını belirleyen kayıp matrisinin seçimidir $ L_ (12) $ 1. sınıf görüntülerin 2. sınıfa hatalı atanması durumunda ve 2. sınıf görüntüleri 1. sınıfa atıfta bulunurken $ L_ (21) $ kayıp katsayısı. Kural olarak, varsayılan olarak, geri yayılım yöntemini kullanırken de dahil olmak üzere çok katmanlı sinir ağlarını ayarlamak için algoritmalar sentezlenirken bu katsayıların $ L $ matrisinin simetrik olduğu varsayılır. Pratikte bu doğru değil. Tipik bir örnek, coğrafi konumu kullanan bir mayın tespit sistemidir. Bu durumda, bir taşın bir madene hatalı atanmasından kaynaklanan kayıplar, konum belirleyici kullanıcısının küçük bir zaman kaybıyla eşdeğerdir. Bir mayının taş sınıfına hatalı atanmasıyla ilgili kayıplar, konum belirleyicinin kullanıcıları tarafından yaşam veya önemli sağlık kaybı ile ilişkilidir.

Açık döngü sinir ağlarının analizi

Sentezin bu aşaması, ikincil optimizasyonun kriterini ve fonksiyonelini, yani, fonksiyon tarafından fiilen optimize edilen fonksiyoneli daha fazla oluşturmak için, çok boyutlu, doğrusal olmayan kontrol nesneleri olarak sinir ağlarının çıktı ve ara sinyallerinin istatistiksel özelliklerini genel terimlerle tanımlamayı amaçlar. belirli bir sinir ağında adaptasyon algoritması. Çalışmaların ezici çoğunluğunda, ortalama karekök hatası, çözümün kalitesini kötüleştiren veya birincil optimizasyon kriteri tarafından oluşturulan optimizasyon problemine hiç uymayan bir fonksiyonel olarak alınır.

Belirli bir birincil optimizasyon işlevine karşılık gelen ikincil optimizasyon işlevinin oluşumu için bir metodoloji ve algoritmalar geliştirilmiştir.

İkincil Optimizasyon İşlevlerinin Uç Noktasını Aramak için Algoritmalar

İkincil optimizasyonun belirli bir işlevine ilişkin bir ekstremum bulmaya yönelik algoritma, çok katmanlı bir sinir ağının katsayılarını ayarlamak için bir algoritma belirler. 21. yüzyılın başında, en büyük pratik ilgi, MatLab sisteminde uygulanan benzer algoritmalardır (İngilizce "Matrix Laboratuvarı" nın kısaltması - teknik hesaplama problemlerini çözmek için uygulamalı programlar paketi ve aynı adı taşıyan programlama dili) . Ancak, MatLab sistemlerinde kullanılan çok katmanlı sinir ağlarındaki uyarlama algoritmalarının özelliğine dikkat etmek gerekir (Neural Network Toolbox - denklemlerle tanımlanan karmaşık doğrusal olmayan sistemleri modellemek için işlevler ve uygulamalar sağlar; "öğretmenle" ve "olmadan öğrenmeyi destekler". bir öğretmen", doğrudan dağıtım, radyal tabanlı fonksiyonlar, vb.) ve bu algoritmaların, çözülmekte olan problemlerin özelliklerine değil, ikincil optimizasyon fonksiyonlarının hayali "geometrisine" yönlendirilmesi. Bu algoritmalar, belirli problemlerin çözümünde çok katmanlı sinir ağlarının uygulanmasına ilişkin birçok ayrıntıyı hesaba katmaz ve doğal olarak, memristor sinir sistemlerine geçerken temel değilse bile radikal işleme gerektirir. 1960'ların - 70'lerin geri yayılım yöntemi ve Rus yöntemlerinin ayrıntılı bir karşılaştırmalı analizi yapıldı. Bu algoritmaların ana özelliği, çok boyutlu bir ayarlanabilir sinir ağı katsayıları uzayında çok-uçlu bir fonksiyonelin yerel ve küresel uç noktalarını arama ihtiyacıdır. Bir sinir ağının boyutundaki bir artış, ayarlanabilir katsayıların sayısında önemli bir artışa, yani arama uzayının boyutunda bir artışa yol açar. 1960'larda, makaleler, ikincil optimizasyon fonksiyonelinin gradyanını hesaplamak için arama ve analitik prosedürler önerdi ve analitik prosedürler sınıfında, ikincil optimizasyon fonksiyonunun sadece birincisinin değil, aynı zamanda ikinci türevinin de kullanılması önerildi. ve araştırıldı. İkincil optimizasyon fonksiyonunun çok yönlülüğünün özellikleri, sonraki on yıllarda arama yöntemlerinde (genetik algoritmalar, vb.) çeşitli modifikasyonların ortaya çıkmasına neden oldu. Sinir ağlarının ağırlık katsayılarının değeri, hızı ve diğer parametreleri üzerinde kısıtlamalar bulunan ikincil optimizasyon fonksiyonlarının ekstremumlarını aramak için algoritmalar oluşturulmuştur. Transfer fonksiyonları gibi belirli özellikleri dikkate alarak, memristörler (ağırlık katsayıları) kullanarak sinir ağlarını ayarlama yöntemleri üzerinde çalışmanın temeli olması gereken bu yöntemlerdir.

Katsayıları ayarlarken başlangıç ​​koşulları

İkincil optimizasyon işlevlerinin uç noktalarını bulmak için yinelemeli prosedürün başlangıç ​​koşullarının seçimi, çok katmanlı sinir ağlarını ayarlamak için algoritmaların sentezinde önemli bir aşamadır. Başlangıç ​​koşullarını seçme problemi, bir sinir ağı tarafından çözülen her problem için özel olarak çözülmeli ve çok katmanlı sinir ağlarının ayarlanması için algoritmaların sentezlenmesi için genel prosedürün ayrılmaz bir parçası olmalıdır. Bu soruna yüksek kaliteli bir çözüm, kurulum süresini büyük ölçüde azaltabilir. İkincil optimizasyon işlevinin a priori karmaşıklığı, bu prosedürün tekrarı ile katsayıların rastgele değerleri şeklinde başlangıç ​​koşullarının seçilmesi için bir prosedür ve katsayıları ayarlama prosedürü getirilmesini gerekli kılmıştır. 1960'larda, bu prosedür katsayıları ayarlamak için harcanan zaman açısından son derece gereksiz görünüyordu. Ancak buna rağmen günümüzde yaygın olarak kullanılmaktadır. Bireysel problemler için aynı zamanda çözülecek verilen probleme özgü başlangıç ​​koşullarının seçilmesi fikri benimsenmiştir. Bu prosedür üç görev için uygulandı: örüntü tanıma; kümeleme; doğrusal olmayan dinamik nesnelerin sinirsel olarak tanımlanması.

Katsayıları ayarlamak için döngüde bellek

İkincil optimizasyon fonksiyonunun ekstremumunu bulmaya yönelik algoritmaların oluşturulmasına yönelik sistematik bir yaklaşım, ayarlama modlarından biri olarak, girişteki görüntülerin girişinin her adımındaki katsayıların, degradenin mevcut değerine göre yeniden yapılandırılmasını varsayar. ikincil optimizasyon işlevi. İkincil optimizasyon fonksiyonelinin gradyan değerlerinin sırasını filtreleyerek çok katmanlı sinir ağlarını ayarlamak için algoritmalar geliştirilmiştir: $ m_n $ hafızalı sıfır dereceli bir filtre (sabit görüntüler için); filtre $ 1,…, k $ bellekli -th sırasını $ m_n $ (durağan olmayan görüntüler için), farklı sınıfların görüntüleri için dağıtım fonksiyonlarının zaman değişiminin farklı hipotezi ile.

Sinir ağlarında adaptasyon algoritmalarının araştırılması

Ana soru - seçilen belirli bir sorunu çözmek için çok katmanlı bir sinir ağının yapısının nasıl seçileceği - hala büyük ölçüde çözülmemiştir. Sorunu çözme sürecinde etkinliklerinin bir değerlendirmesiyle, yalnızca makul bir yönlendirilmiş yapı seçenekleri listesi sunmak mümkündür. Ancak, belirli bir seçilen yapı üzerinde ayar algoritmasının kalitesinin değerlendirilmesi, belirli bir görev için yeterince doğru olmayabilir. Bu nedenle, doğrusal dinamik kontrol sistemlerinin kalitesini değerlendirmek için, kararlı durum hatasının (sistemin astatizmi) ve geçici süreçlerdeki hataların tepkisine göre tipik giriş sinyalleri (adım, ikinci dereceden vb.) kullanılır. tahmini.

Benzer şekilde, çok katmanlı sinir ağları için, çeşitli ayarlama algoritmalarının performansını test etmek ve karşılaştırmak için tipik giriş sinyalleri geliştirilmiştir. Doğal olarak, çok katmanlı sinir ağları gibi nesneler için tipik giriş sinyalleri, çözülmekte olan her soruna özeldir. Her şeyden önce, aşağıdaki görevler için standart giriş sinyalleri geliştirildi: örüntü tanıma; kümeleme; dinamik nesnelerin sinir kontrolü.

Klasik matematiksel istatistik yöntemleri yerine sinir ağı teknolojilerini kullanmanın ana aksiyomatik ilkesi, giriş sinyalleri için olasılık dağılım fonksiyonlarının resmi bir tanımının reddedilmesi ve bilinmeyen, karmaşık dağıtım fonksiyonları kavramının benimsenmesidir. Bu nedenle aşağıdaki genel giriş sinyalleri önerilmiştir.

Kümeleme problemi için, merkezleri $ Z $ miktarındaki dağıtım fonksiyonu modları ile $ N $ boyutlu özellik uzayında uygulanan çok modlu bir dağılıma sahip bir rastgele sinyal örneği önerilmiştir. $ N $ - boyutlu özellik uzayı. Her mod, $ Z $ modlarının her biri için normal dağılıma ve standart sapma $ σ $'a eşit olan rastgele bir örneğin bir bileşenini uygular. Çeşitli kümeleme yöntemlerinin karşılaştırılması konusu, yeterince büyük bir rasgele $ M $ numunesi için ayarlama dinamikleri ve $ N $, $ Z $ ve $ σ $'a bağlı olarak problemin çözümünün kalitesi olacaktır. Bu yaklaşım, çok katmanlı sinir ağlarına dayalı olanlar da dahil olmak üzere kümeleme algoritmalarını, gerekli kümeleme kalitesini elde etmek için uygun bir yapı seçimiyle karşılaştırmaya yönelik ilk oldukça objektif yaklaşımlardan biri olarak kabul edilebilir. Sınıflandırma problemleri için, testler için giriş sinyalleri, çok modlu bir dağılıma sahip bir örneğin ikiye (iki sınıf olması durumunda) veya $ K $'a ($ K $ sınıfı olması durumunda) bölünmesiyle birlikte kümeleme sinyallerine benzerdir. ) bireysel sınıflar için dağıtım fonksiyonunun alternatif modlarına sahip parçalar ...

Değişken yapılı sinir ağları

Sinir ağı teknolojilerinde ön bilgiden, giriş sinyallerinin dağıtım fonksiyonları hakkındaki bilgilerden reddetme, problem çözümünün gerekli kalitesini sağlamak için çok katmanlı sinir ağlarının yapısının parametrelerinin makul bir şekilde sıralanması ihtiyacına yol açar.

1960'larda, yapının önceden sabit olmadığı, ancak ayarlanabilir katsayıların değerleriyle birlikte ayarlamanın sonucu olduğu çok katmanlı sinir ağlarının ayarlanması için bir prosedür, çok ilgili olan bir problem sınıfı için önerildi. o zaman - örüntü tanıma. Bu durumda kurulum işlemi sırasında katman sayısı ve katmanlardaki nöron sayısı seçilir. Değişken bir yapıya sahip çok katmanlı bir sinir ağının katsayılarını ayarlama prosedürü, iki örüntü sınıfını tanıma probleminden $ K $ örüntü sınıflarını tanıma problemine kolayca aktarılabilir. Ve burada ayarlamanın sonucu $ K $ sinir ağlarıdır, her birinde birinci sınıf $ k $ -th sınıfıdır ($ k = 1, \ ldots, K $) ve ikincisi diğerleridir. Değişken yapıya sahip çok katmanlı sinir ağlarını ayarlamak için benzer bir fikir, kümeleme problemini çözmek için geçerlidir. Bu durumda, ilk analiz edilen numune birinci sınıf görüntü olarak alınır ve özelliklerdeki değişim aralığında düzgün dağılıma sahip numune ikinci sınıf olarak alınır. Ayarlama sürecinde uygulanan değişken yapıya sahip çok katmanlı sinir ağı, sorunu çözmenin karmaşıklığını niteliksel ve niceliksel olarak yansıtır. Bu bakış açısından, incelenen nesne hakkında yeni bilgi üretme görevi olarak kümeleme görevi, olasılık dağılım fonksiyonunun aralıktaki tekdüze dağılım seviyesini aştığı çok boyutlu özellik uzayının bu alanlarını belirlemek ve analiz etmekten oluşur. özelliklerin değerlerinin varyasyonu.

Kalkınma beklentileri

21. yüzyılın başında, çok katmanlı bir sinir ağının geliştirilmesi (eğitimi) için ana kavramlardan biri, katman sayısını artırma arzusudur ve bu, mevcut probleme uygun bir sinir ağı yapısının seçiminin sağlanmasını içerir. çözüldü, katsayıları ayarlamak için algoritmalar oluşturmak için yeni yöntemlerin geliştirilmesi. Sinir ağlarının avantajları şunlardır: sözde özelliği. kademeli bozulma - bireysel öğelerin arızalanması durumunda, sistemin kalitesi kademeli olarak azalır (karşılaştırma için, VE, VEYA mantıksal ağları, herhangi bir ağ öğesi arızalanırsa başarısız olmaz); bunları uygulayan devrelerin parametrelerindeki değişikliklere karşı artan direnç (örneğin, ağırlıklardaki çok önemli değişiklikler, iki değişkenli basit bir mantıksal işlevin uygulanmasında hatalara yol açmaz), vb.

Sinir ağı algoritmalarının karmaşık biçimselleştirilebilir, zayıf biçimselleştirilmiş ve biçimselleştirilmemiş problemler alanında yaygın olarak kullanılması, hesaplamalı matematikte yeni bir yönün yaratılmasına yol açmıştır - nöromatematik... Nöromatematik, aşağıdaki problemleri çözmek için sinir ağı algoritmalarını içerir: örüntü tanıma; fonksiyonların optimizasyonu ve ekstrapolasyonu; grafik teorisi; kriptografik görevler; doğrusal ve doğrusal olmayan denklemlerin gerçek ve Boolean sistemlerinin çözümü, sıradan tek boyutlu ve çok boyutlu diferansiyel denklemler, kısmi diferansiyel denklemler, vb. Sinir ağları teorisi temelinde, modern karmaşık doğrusal olmayan ve kontrol teorisinin yeni bir bölümü çok boyutlu, çok bağlantılı dinamik sistemler oluşturuldu - sinir kontrolü karmaşık dinamik nesnelerin sinir ağı tanımlama yöntemleri dahil; karmaşık dinamik nesnelerin kontrol döngülerinde nöro-düzenleyicilerin inşası, vb.