Tarayıcınız Javascript Desteklemiyor! Yapay Sinir Ağları | Zap Group Web Tasarım

Yapay Sinir Ağları

Yapay Sinir Ağları

Yapay Sinir Ağları

2015 yılı, yapay zeka alanında anıtsal bir yıldı. Bilgisayarlar sadece daha fazla öğrenmek ve daha hızlı öğrenmekle kalmıyor, aynı zamanda sistemlerinin nasıl geliştirileceğini de öğreniyoruz. Her şey hizalanmaya başlıyor ve bu yüzden şimdiye kadar asla mümkün olmadığını düşündüğümüz basamakları görüyoruz. Biz resimler hakkında hikâyeler anlatabiliriz programlar . Biz kendilerini sürüş arabalar . Sanat yaratan programlarımız bile var . 2015'teki gelişmeler hakkında daha fazla bilgi edinmek istiyorsanız, bu makaleyi okuyun . Burada Josh.ai'de , AI teknolojisi yaptığımız her şeyin özü haline geldiğinde, ortak terminolojinin bazılarını anlamak ve her şeyin nasıl çalıştığı hakkında kaba bir fikir edinmenin önemli olduğunu düşünüyoruz.

 

ONLAR NELER?

Yapay zekada kaydedilen ilerlemelerin çoğu yeni istatistiksel modellerdir, ancak ilerlemelerin ezici çoğunluğu yapay sinir ağları (YSA) adı verilen bir teknolojidedir . Daha önce onlar hakkında bir şey okuduysanız, bu YSA'ların insan beyninin nasıl yapılandırıldığına dair çok kaba bir model olduğunu okudunuz. Yapay sinir ağları ve sinir ağları arasında bir fark olduğuna dikkat edin. İnsanların çoğu yapaylığı kısaltmak adına yapay olarak bıraksalar da, yapay kelimesi, hesaplamalı nörobiyolojideki insanların hala çalışmalarına atıfta bulunmak için sinir ağı terimini kullanabilmeleri için hazırlandı. Aşağıda beyindeki gerçek nöronların ve sinapsların yapay olanlarla karşılaştırıldığında bir diyagramıdır.

 

yapay sinir ağları

 

Diyagram çok açık bir şekilde gelmezse korkmayın. Burada anlamak için önemli olan, YSA'larımızda nöron adı verilen bu hesaplama birimlerine sahip olduğumuzdur . Bu yapay nöronlar, gerçekten sadece ağırlıklı değerler olan sinapslarla bağlanır . Bunun anlamı, bir sayı verildiğinde, bir nöronun bir tür hesaplama yapmasıdır ( örneğin sigmoid fonksiyonu ) ve daha sonra bu hesaplamanın sonucu “hareket ettiği” zaman bir ağırlıkla çarpılır. Ağırlıklı sonuç bazen olabilir. Sinir ağınızın çıktısını ya da yakında konuşacağım gibi, katmanlar halinde yapılandırılmış daha fazla nöronlara sahip olabilirsiniz. Bu, derin öğrenme olarak adlandırdığımız bir fikre temel kavramdır.

 

NERDEN GELİYORLAR?

Yapay sinir ağları yeni bir kavram değildir. Aslında, biz onlara her zaman sinir ağları bile demiyorduk ve şimdi başlangıçta olduğu gibi kesinlikle aynı görünmüyorlar. 1960'larda bir algı olarak adlandırılan şeye sahip olduk . Algılayıcılar McCulloch-Pitts nöronlarından yapıldı . Hatta algılayıcılarla önyargılı olduğu ve sonuçta insanlar oluşturmaya başladı katmanlı algılayıcılarla , biz yaklaşık anda duymak genel yapay sinir ağı ile eş anlamlıdır.

yapay sinir ağları

Çok katmanlı basit bir algılayıcı 

Fakat bekleyin, 1960'lardan beri sinir ağlarımız varsa, neden şimdi yeni büyüyorlar? Bu uzun bir hikaye ve modern ANN'lerin konuya bakışları hakkında konuştuklarının “babalarını” dinlemek için bu podcast bölümünü dinlemenizi tavsiye ediyorum . Hızlı bir şekilde özetlemek gerekirse, YSA'ların daha popüler hale gelmesini engelleyen faktörlerle dolu bir el var. Bilgisayar işleme gücümüz yoktu ve onları eğitecek verilerimiz yoktu. İyi bir performans sergileme kabiliyetine sahip oldukları için onları kullanmak kaşlarını çattı. Bu faktörlerin her biri değişiyor. Bilgisayarlarımız gittikçe daha hızlı ve daha güçleniyor ve internet sayesinde, kullanım için her türden veri paylaşılıyor.

 

NASIL ÇALIŞIYORLAR?

Gördüğünüz gibi, yukarıda bahsettiğim nöronların ve sinapsların hesaplamaları var. Aklınızdaki soru şu olmalı: “Hangi hesaplamaları yapacaklarını nasıl öğrenirler?” Haklı mıydım? Cevap, temelde onlara büyük miktarda soru sormamız ve cevapları vermemiz gerektiğidir. Bu, denetimli öğrenme denilen bir alandır . Yeterli soru-cevap çifti örneği ile, her bir nöronda ve sinapsta depolanan hesaplamalar ve değerler yavaşça ayarlanır. Genellikle bu geri yayılım denilen bir süreçten geçer .

 

yapay sinir ağları

Bir kaldırımda yürüdüğünüzü ve bir sokak lambası gördüğünüzü hayal edin. Daha önce hiç bir sokak lambası görmediniz, bu yüzden hemen yanına yürüyün ve “ah” diyin. Bir dahaki sefere bir sokak lambası gördüğünüzde, yanlara doğru birkaç santim saplayın ve yürümeye devam edin. Bu kez omzunuz lamba duyuna çarpıyor ve yine “ah” diyorsunuz. Bir lamba duyunu üçüncü kez gördüğünüzde, lamba dirseğine çarpmadığınızdan emin olmak için tamamen ilerlersiniz. Bunun dışında korkunç bir şey oldu - şimdi doğrudan bir posta kutusunun yoluna girdiniz ve daha önce hiç posta kutusu görmediniz. İçine giriyorsun ve tüm süreç tekrar oluyor. Açıkçası, bu bir aşırı basitleştirmedir, ancak backpropogation'ın yaptığı şey etkilidir. Yapay bir sinir ağına çok sayıda örnek verilmiştir ve daha sonra verilen örnekle aynı cevabı almaya çalışır. Yanlış olduğundaBir sonraki sefer için YSA'da geriye doğru yayılır . Bu işlem çok sayıda örnek alır. Gerçek dünya uygulamaları için, örnek sayısı milyonlarca olabilir.

 

Şimdi yapay sinir ağları ve biraz nasıl çalıştıkları hakkında bir anlayışa sahip olduğumuza göre aklınızda bulunması gereken başka bir soru var. Ne kadar nöron kullanmamız gerektiğini nereden biliyoruz? Ve neden kelime katmanlarını daha önce kalın bıraktınız? Katmanlar sadece nöron kümeleridir. YSA'ya sağladığımız veriler olan bir girdi katmanına sahibiz Büyünün olduğu gizli katmanlara sahibiz . Son olarak, ağın bitmiş hesaplamaları kullanmamız için yerleştirildiği çıkış katmanına sahibiz .

 

yapay sinir ağları

Katmanların kendisi sadece nöron kümeleridir. Çok katmanlı algılayıcıların ilk günlerinde, başlangıçta yalnızca bir giriş katmanına, bir gizli katmana ve bir çıkış katmanına sahip olmanın yeterli olduğunu düşündük. Mantıklı, değil mi? Bazı rakamlar göz önüne alındığında, yalnızca bir hesaplama grubuna ihtiyacınız olur ve ardından bir çıktı alırsınız. YSA'nız doğru değeri hesaplamıyorsa, sadece gizli katmana daha fazla nöron eklediniz. Sonunda, bunu yaparken gerçekten her girdiden çıktıya doğrusal bir harita oluşturduğumuzu öğrendik. Başka bir deyişle, belirli bir girdinin her zaman belirli bir çıktıya eşleneceğini öğrendik. Esnekliğimiz yoktu ve gerçekten daha önce gördüğümüz girdileri kaldırabiliyorduk. Bu bizim istediğimiz şey değildi.

Şimdi , birden fazla gizli katmana sahip olduğumuzda derin öğrenmeyi tanıtın. Bu, şimdi daha iyi YSA'ların olmasının sebeplerinden biridir, çünkü daha fazla katman yoksa yüzlerce düğüme ihtiyacımız var. Bu, bir anda izlememiz gereken büyük miktarda değişkene yol açar. Paralel programlamadaki gelişmeler ayrıca daha büyük YSA'ları gruplar halinde çalıştırmamızı sağlar Bizim yapay sinir ağları şimdi artık tek çalıştırmak böylece büyük alıyorsanız çağı olduğunu, bir kerede, tüm ağ üzerinden bir yineleme. Her şeyi sadece tüm ağın altkümesi olan gruplar halinde yapmamız gerekiyor ve tüm bir dönemi tamamladığımızda, geri yayılımı uyguluyoruz.

 

NE ÇEŞİTLER VAR?

Şimdi derin öğrenmeyi kullanmanın yanı sıra, yapay sinir ağlarının çok sayıda farklı mimarisinin olduğunu bilmek önemlidir. Tipik YSA, her bir nöronun bir sonraki katmandaki diğer her bir nörona bağlandığı şekilde kurulur. Bunlara özellikle ileri beslemeli yapay sinir ağları denir (YSA'ların tümü genel olarak ileri beslenmelerine rağmen ). Nöronları diğer nöronlara belirli şekillerde bağlayarak, belirli senaryolarda daha iyi sonuçlar alabileceğimizi öğrendik.

 

TEKRARLAYAN SİNİR AĞLARI

Önceki bilgilere dayanarak karar vermeyen yapay sinir ağlarındaki kusurları gidermek için Tekrarlayan Sinir Ağları (RNN) yaratıldı. Tipik bir YSA eğitimde içeriğe dayalı kararlar almayı öğrenmiştir, ancak kullanım kararları verdikten sonra kararlar birbirinden bağımsız olarak alınmıştır.

 

yapay sinir ağları

Tekrarlayan bir sinir ağı (fotoğraf kredisi)

Ne zaman böyle bir şey isteriz? Blackjack oynamayı düşün. Başlamanız için 4 ve 5 verildiyse, 2 düşük kartın desteden çıktığını bilirsiniz . Bunun gibi bilgiler, vurulup vurulmayacağınıza karar vermenize yardımcı olabilir.RNN'ler doğal dil işlemede çok faydalıdır, çünkü önceki kelimeler veya karakterler başka bir kelimenin içeriğini anlamada faydalıdır.Pek çok farklı uygulama var, ancak niyet her zaman aynı. Bilgiyi saklamak istiyoruz. Bunu, çift yönlü RNN'lere sahip olarak elde edebiliriz veya her ileri beslemeyle değiştirilen tekrarlanan gizli bir katman uygulayabiliriz. RNN'ler hakkında daha fazla bilgi edinmek istiyorsanız, ya Python'da bir RNN uyguladığınız bu öğreticiye ya da bir RNN için kullanımların daha ayrıntılı bir şekilde açıklandığı bu blog gönderisine bakın .

Onurlu bir söz Bellek Ağları'na gider Buradaki kavram, birbirimize dayanan birçok olayın olabileceği bir film veya kitap gibi bir şeyi anlamak istiyorsak, bir RNN veya LSTM'nin tuttuğu bilgiden daha fazla bilgi tutmamız gerektiğidir.

Sam mutfağa girer.
Sam bir elma alır.
Sam yatak odasına girer.
Sam elmayı düşürür.
S: Elmanın neresi.
A: Bu kağıttan
alınan Yatak Odası Örneği .

 

DÖNÜŞÜMLÜ SİNİR AĞLARI

Dönüşümlü Sinir AğlarıBazen LeNets (Yann LeCun'dan sonra adlandırılan) adı verilen (CNN), katmanlar arasındaki bağlantıların biraz keyfi göründüğü yapay sinir ağlarıdır. Ancak, sinapsların oldukları gibi kurulmalarının nedeni, optimize edilmesi gereken parametre sayısının azaltılmasına yardımcı olmaktır. Bu, nöronların nasıl bağlandığına dair belli bir simetriye dikkat ederek yapılır ve böylece aynı sayıda sinapsa gerek duymadan özdeş kopyaları özdeşleştirmek için esasen “yeniden kullanabilirsiniz”. CNN'ler, çevreleyen piksellerdeki desenleri tanıma kabiliyetleri sayesinde görüntülerle çalışırken yaygın olarak kullanılır. Her bir piksele etrafındaki piksellere göre baktığınızda içerilen fazla bilgi var ve simetrik özellikleri sayesinde bu bilgilerin bir kısmını gerçekten sıkıştırabilirsiniz. Bana sorarsanız, bir CNN için mükemmel durum gibi geliyor. Christopher Olah, CNN'leri ve bulabileceğiniz diğer YSA türlerini anlama konusunda harika bir blog yazısına sahip burada . CNN'leri anlamak için bir başka harika kaynak da bu blog yazısı.

 

GÜÇLENDİRME ÖĞRENMESİ

En son konuşacağım YSA türü, Takviye Öğrenme denen türdür . Güçlendirme Öğrenme, belirli bir ödülü en üst düzeye çıkarmaya çalışırken bilgisayarların sergilediği davranış için kullanılan genel bir terimdir; bu, kendi başına yapay bir sinir ağı mimarisi olmadığı anlamına gelir. Bununla birlikte, daha önce kullanmayı düşünmemiş olabileceğiniz yapay bir sinir ağı mimarisi oluşturmak için takviye öğrenme veya genetik algoritmalar uygulayabilirsiniz . YouTube kullanıcısı SethBling'in tamamen kendi başına bir Mario oyunu oynayan yapay bir sinir ağı mimarisi inşa eden bir takviye öğrenme sistemi oluşturduğu bu videoda harika bir örnek ve açıklama bulunabilir . Takviye öğrenmenin bir başka başarılı örneği de görülebilir.DeepMind şirketinin çeşitli Atari oyunlarında ustalaşmak için bir program öğrettiği bu video.

 

yapay sinir ağları

Güçlendirici öğrenme 

 

SONUÇ

Şimdi yapay zeka alanındaki sanat eseri ile neler olup bittiğine dair temel bir anlayışa sahip olmalısınız. Sinir ağları, dil çevirisi, hayvan tanıma, resim yazısı, metin özetleme ve aklınıza gelebilecek herhangi bir şey dahil, yaptığımız her şeyi güçlendiriyor. Gelecekte onlar hakkında daha fazla şey duyacağınızdan eminiz, bu yüzden onları şimdi anlamanız çok iyi!