Nida Canpolat tarafından yazılmıştır.
Yapay sinir ağı, insan beynindeki işlem sürecinden esinlenerek geliştirilen ve insan beynindeki nöronları taklit eden bir teknolojidir. Beyinde gerçekleşen sinaptik bağın dijital ortama uyarlanması olarak da ifade edilebilir. Yapay sinir ağlarındaki bağlanma işlemi katmanlar arasında gerçekleşir. Tipik olarak yapay sinir ağları üç katmandan oluşur. Bunlar sırası ile giriş katmanı, gizli katman ve çıkış katmanıdır. Gizli katman bir veya birden daha fazla olabilir. Ve derin öğrenmenin derinliği gizli katman sayısına göre atar. Giriş katmanında veriler alınır ve gizli katmanda yer alan ağırlıklar dâhil edilerek hesaplamalar yapılır. Çıkış katmanı ise verilerden çıktı değeri döndürür. Her katmanda nöronlar vardır ve her nöronun ağırlık katsayısı vardır. Ağırlık katsayısı, iki düğüm arasındaki bağlantının bağlantı gücünü ifade eder. Yani yapay sinir ağını eğitirken hangi nöronun hangi oranda etki edeceğini belirler. Bu örnekte kullanılacak olan yapay sinir ağının ağırlıkları tablo 2’de belirtildiği gibidir.
Yapay sinir ağlarında, ağı eğitebilmek için ileri yayılım ve geri yayılım işlemleri uygulanır.
İleri yayılım sürecinde, katmanlar arasında matematiksel işlemler gerçekleştirilir. Bu işlem bir nöronun diğer bir nöron ile ağırlıkları da hesaba katılarak sonuç değere ulaşmasıdır. Katmanlar arasında geçiş yapılırken aktivasyon fonksiyonlarından yararlanılır. Yaygın olarak kullanılan aktivasyon fonksiyonlara; sigmoid, relu, tanh ve softmax örnek verilebilir. Bu fonksiyonlar ve fonksiyonlara ait formüller Şekil 2’de gösterilmiştir. Bu örnekte sigmoid fonksiyonu kullanılarak bir hesaplama yapılacaktır.
Hesaplamalar sonucunda ağırlık değerleri güncellenir ve sonuç tekrar hesaplanır. Buradaki amaç ağırlıkları güncelleyerek toplam hata oranını düşürmek ve sistemi olabilecek en iyi hale getirmektir.
Yapay sinir ağlarının öğrenmesi ve toplam hatayı bulabilmesi için ilk olarak ileri yayılım işlemi uygulanır.
Öncelikle net girişler bulunmalıdır. Bunun için i1 değerleri ve sahip oldukları ağırlıkları çarpılarak h1 ve h2 değerleri hesaplanmalıdır.
İlk olarak Net h1 değeri hesaplanır. Net h1, w1 ağırlığı ile i1’e, w3 ağırlığı ile i2’ye ve w5 ağırlığı ile de i3 değerine bağlıdır. Formülde verildiği gibi ağırlıklar ve nöron değerleri çarpılarak Net h1 değeri elde edilir.
Tıpkı Net h1 ve Net h2 değerlerinin hesaplandığı gibi Net o1 ve Net o2 değerleri hesaplanır. Bunun için; out h1 ve Out h2 değerleri sahip oldukları ağırlıklar ile çarpılarak Net o1 ve Net o2 değerleri elde edilir. Ardından sonuç bir aktivasyon fonksiyonuna sokulur. İsteğe bağlı olarak bu katmanda farklı bir aktivasyon fonksiyonu kullanılabilir ancak bu örnekte tüm katmanlar için sigmoid fonksiyonu kullanılacaktır.
Toplam hata bulunduktan sonra değerlerin güncellenmesi işlemine geçilir. Değerin güncellenmesi sayesinde target o1 değerine biraz daha yaklaşmış oluruz. Bu işleme geri yayılım denir. Bu örnekte güncellenmesi istenilen değer w7 değeridir. Değerin güncellenmesi için zincir kuralından faydalanılır. Zincir kuralında verilen her bir parçanın kısmi türevi alınır. Bu sayede güncellenen değerin toplam hatayı ne kadar etkilediğini hesaplamış olacağız.
[1] https://www.derinogrenme.com/2018/06/28/geri-yayilim-algoritmasina-matematiksel-yaklasım/
[2] https://devhunteryz.wordpress.com/2018/06/20/geri-yayilimbackpropagation/
[3] https://yapayakademi.com/derin-ogrenme-1-ileri-yayilim-algoritmasi/
Yapay sinir ağı, insan beynindeki işlem sürecinden esinlenerek geliştirilen ve insan beynindeki nöronları taklit eden bir teknolojidir. Beyinde gerçekleşen sinaptik bağın dijital ortama uyarlanması olarak da ifade edilebilir. Yapay sinir ağlarındaki bağlanma işlemi katmanlar arasında gerçekleşir. Tipik olarak yapay sinir ağları üç katmandan oluşur. Bunlar sırası ile giriş katmanı, gizli katman ve çıkış katmanıdır. Gizli katman bir veya birden daha fazla olabilir. Ve derin öğrenmenin derinliği gizli katman sayısına göre atar. Giriş katmanında veriler alınır ve gizli katmanda yer alan ağırlıklar dâhil edilerek hesaplamalar yapılır. Çıkış katmanı ise verilerden çıktı değeri döndürür. Her katmanda nöronlar vardır ve her nöronun ağırlık katsayısı vardır. Ağırlık katsayısı, iki düğüm arasındaki bağlantının bağlantı gücünü ifade eder. Yani yapay sinir ağını eğitirken hangi nöronun hangi oranda etki edeceğini belirler. Bu örnekte kullanılacak olan yapay sinir ağının ağırlıkları tablo 2’de belirtildiği gibidir.
Yapay sinir ağlarında, ağı eğitebilmek için ileri yayılım ve geri yayılım işlemleri uygulanır.
İleri yayılım sürecinde, katmanlar arasında matematiksel işlemler gerçekleştirilir. Bu işlem bir nöronun diğer bir nöron ile ağırlıkları da hesaba katılarak sonuç değere ulaşmasıdır. Katmanlar arasında geçiş yapılırken aktivasyon fonksiyonlarından yararlanılır. Yaygın olarak kullanılan aktivasyon fonksiyonlara; sigmoid, relu, tanh ve softmax örnek verilebilir. Bu fonksiyonlar ve fonksiyonlara ait formüller Şekil 2’de gösterilmiştir. Bu örnekte sigmoid fonksiyonu kullanılarak bir hesaplama yapılacaktır.
Hesaplamalar sonucunda ağırlık değerleri güncellenir ve sonuç tekrar hesaplanır. Buradaki amaç ağırlıkları güncelleyerek toplam hata oranını düşürmek ve sistemi olabilecek en iyi hale getirmektir.
Yapay sinir ağlarının öğrenmesi ve toplam hatayı bulabilmesi için ilk olarak ileri yayılım işlemi uygulanır.
Öncelikle net girişler bulunmalıdır. Bunun için i1 değerleri ve sahip oldukları ağırlıkları çarpılarak h1 ve h2 değerleri hesaplanmalıdır.
İlk olarak Net h1 değeri hesaplanır. Net h1, w1 ağırlığı ile i1’e, w3 ağırlığı ile i2’ye ve w5 ağırlığı ile de i3 değerine bağlıdır. Formülde verildiği gibi ağırlıklar ve nöron değerleri çarpılarak Net h1 değeri elde edilir.
Tıpkı Net h1 ve Net h2 değerlerinin hesaplandığı gibi Net o1 ve Net o2 değerleri hesaplanır. Bunun için; out h1 ve Out h2 değerleri sahip oldukları ağırlıklar ile çarpılarak Net o1 ve Net o2 değerleri elde edilir. Ardından sonuç bir aktivasyon fonksiyonuna sokulur. İsteğe bağlı olarak bu katmanda farklı bir aktivasyon fonksiyonu kullanılabilir ancak bu örnekte tüm katmanlar için sigmoid fonksiyonu kullanılacaktır.
Toplam hata bulunduktan sonra değerlerin güncellenmesi işlemine geçilir. Değerin güncellenmesi sayesinde target o1 değerine biraz daha yaklaşmış oluruz. Bu işleme geri yayılım denir. Bu örnekte güncellenmesi istenilen değer w7 değeridir. Değerin güncellenmesi için zincir kuralından faydalanılır. Zincir kuralında verilen her bir parçanın kısmi türevi alınır. Bu sayede güncellenen değerin toplam hatayı ne kadar etkilediğini hesaplamış olacağız.
kaynakça
[1] https://www.derinogrenme.com/2018/06/28/geri-yayilim-algoritmasina-matematiksel-yaklasım/
[2] https://devhunteryz.wordpress.com/2018/06/20/geri-yayilimbackpropagation/
[3] https://yapayakademi.com/derin-ogrenme-1-ileri-yayilim-algoritmasi/
Moderatör tarafında düzenlendi: