Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Ders 2.1 — Sinir ağı mimarisi türleri
Ders 2.1 — Sinir ağı mimarisi türleri [Makine Öğrenimi için Sinir Ağları]
Sinir ağları, nöronların nasıl bağlandığına atıfta bulunan farklı mimari türlerine sahip olabilir. Pratik uygulamalardaki en yaygın mimari, bilginin girdi birimlerinden gizli katmanlar yoluyla çıktı birimlerine aktığı ileri beslemeli bir sinir ağıdır. Öte yandan, tekrarlayan sinir ağları, bilginin döngüler halinde akmasına izin vererek, uzun süreli hafızayı ve karmaşık dinamikleri mümkün kıldığı için daha ilgi çekicidir. Yinelenen ağları eğitmek, karmaşıklıkları nedeniyle zordur, ancak son gelişmeler onları daha eğitilebilir ve etkileyici görevler yapabilir hale getirdi.
Diğer bir mimari türü, birimler arasındaki ağırlıkların her iki yönde de aynı olduğu simetrik olarak bağlı ağlardır. Bu ağlar bir enerji fonksiyonunu takip eder ve tekrarlayan ağlara kıyasla analiz edilmesi daha kolaydır. Ancak, yetenekleri daha kısıtlıdır ve döngüleri modelleyemezler.
İleri beslemeli sinir ağlarında, her katman, girdi ve çıktı arasındaki dönüşümleri hesaplar ve her katmanda yeni temsillerle sonuçlanır. Girişler arasındaki benzerliği ve farklılığı yakalamak için her katmandaki nöronların aktivitelerine doğrusal olmayan fonksiyonlar uygulanır. Buna karşılık, tekrarlayan sinir ağları, bağlantı grafiklerinde karmaşık dinamiklere ve sıralı veri modellemeye izin veren yönlendirilmiş döngüleri kullanır. Her zaman adımında aynı ağırlıklar kullanılır ve gizli birimlerin durumları bir sonraki zaman adımının durumlarını belirler.
Tekrarlayan sinir ağları, bilgileri gizli hallerinde uzun süre hatırlama yeteneğine sahiptir, ancak bu yeteneği kullanmaları için onları eğitmek zordur. Bununla birlikte, son algoritmalar, tekrarlayan ağların eğitiminde önemli ilerleme kaydetmiştir. Bu ağlar, bir dizideki bir sonraki karakteri tahmin etmek, metin oluşturmak veya sıralı verileri modellemek gibi görevler için kullanılabilir.
Genel olarak, sinir ağı mimarileri, basit hesaplamalar için ileri beslemeli ağlardan bellek ve karmaşık dinamikler için tekrarlayan ağlara kadar değişen bağlantı ve yeteneklere göre değişebilir.
Ders 2.2 — Algılayıcılar: birinci nesil sinir ağları
Ders 2.2 — Algılayıcılar: birinci nesil sinir ağları [Makine Öğrenimi için Sinir Ağları]
Makine öğrenimi için bir algoritma sınıfı olan algılayıcılar ilk olarak 1960'ların başında araştırıldı. Başlangıçta, öğrenme araçları olarak büyük umut vaat ettiler, ancak sınırlamaları daha sonra Minsky ve Papert tarafından ortaya çıktı ve popülerliklerinde bir düşüşe yol açtı. Minsky ve Papert, algılayıcıların istatistiksel örüntü tanıma görevlerinde karmaşık örüntüleri öğrenme yeteneklerinin oldukça sınırlı olduğunu gösterdi.
İstatistiksel örüntü tanıma alanında, örüntüleri tanımak için standart bir yaklaşım izlenir. İlk olarak, ham girdi verileri işlenir ve bir özellik aktivasyonları kümesine veya vektörüne dönüştürülür. Bu dönüştürme, hangi özelliklerin eldeki görevle ilgili olduğunu insan uzmanlığının belirlediği, sağduyuya dayalı önceden tanımlanmış programlar kullanılarak yapılır. Bu ön işleme aşamasının öğrenmeyi içermediğine dikkat etmek önemlidir. Uygun özelliklerin seçimi çok önemli bir adımdır ve genellikle deneme yanılma gerektirir. Farklı özellikler denenir ve etkinlikleri değerlendirilir. Bu yinelemeli süreç aracılığıyla, sonraki öğrenme aşamasının sorunu etkili bir şekilde çözmesine izin veren bir dizi özellik sonunda belirlenir.
İstatistiksel örüntü tanımadaki öğrenme aşaması, her özellik aktivasyonu ile ilişkili ağırlıkların belirlenmesini içerir. Bu ağırlıklar, her bir özelliğin mevcut girdinin belirli bir örüntüye veya sınıfa ait olduğu hipotezinin lehinde veya aleyhinde sağladığı kanıtların gücünü temsil eder. Ağırlıklı özellik aktivasyonlarının toplanmasıyla, bir eşikle karşılaştırılan toplam kanıt puanı elde edilir. Kanıt eşiği aşarsa, giriş vektörü tanınan modelin pozitif bir örneği olarak sınıflandırılır.
Algılayıcılar, belirli bir istatistiksel örüntü tanıma sistemi türüdür. Çeşitli algılayıcı türleri olsa da, Rosenblatt tarafından alfa algılayıcı olarak adlandırılan standart form, özellik aktivasyonlarına dönüştürülen girdi birimlerinden oluşur. Bu dönüşüm, nöronların davranışına benzeyebilir, ancak sistemin bu aşamasının öğrenmeyi içermediğini not etmek önemlidir. Özellik aktivasyonları elde edildikten sonra, ağırlıklar bir öğrenme algoritması kullanılarak öğrenilir.
Perceptronlar, 1960'larda, onları kapsamlı bir şekilde inceleyen ve "Principles of Neurodynamics" adlı kitabında açıklayan Frank Rosenblatt'ın çalışmasıyla öne çıktı. Kitap, farklı türde algılayıcılar sunuyordu ve yenilikçi fikirlerle doluydu. En dikkate değer katkılardan biri, yetenekleri için yüksek beklentiler oluşturan, algılayıcılarla ilişkili güçlü bir öğrenme algoritmasıydı.
Bununla birlikte, algılayıcıları çevreleyen ilk coşku, öğrenme algoritmalarının sınırlamaları olduğu keşfedildiğinde şüpheyle karşılandı. Örneğin, kısmen gizlenmiş tank ve kamyon resimlerini ayırt etme yetenekleri hakkında abartılı iddialarda bulunuldu. Bu iddialar, algılayıcıların yalnızca piksellerin toplam yoğunluğunu ölçtüğü ortaya çıktığında çürütüldü; bu, insanların daha büyük bir hassasiyetle gerçekleştirdiği bir görevdi. Bu tür bir yanlış anlama, algılayıcının itibarını zedeledi ve bir bütün olarak sinir ağı modellerinin etkinliği hakkında şüphelere yol açtı.
1969'da Minsky ve Papert, algılayıcıların yeteneklerini eleştirel bir şekilde analiz eden ve sınırlamalarını vurgulayan "Perceptrons" adlı ufuk açıcı bir kitap yayınladı. Bununla birlikte, daha geniş yapay zeka alanı, yanlışlıkla bu sınırlamaları tüm sinir ağı modellerine tahmin etti. Hakim olan inanç, Minsky ve Papert'in sinir ağı modellerinin pratik olmadığını ve karmaşık görevleri öğrenmekten aciz olduğunu kanıtladı. Gerçekte Minsky ve Papert'in bulguları, inceledikleri algılayıcılara özgüydü ve bir bütün olarak sinir ağlarının potansiyelini geçersiz kılmadı.
Birazdan inceleyeceğimiz algılayıcı yakınsama prosedürünün, günümüzde büyük özellik vektörlerini içeren görevler için yaygın olarak kullanılmaya devam ettiğini belirtmekte fayda var. Aslında, Google gibi büyük şirketler, geniş özellik kümelerine dayalı sonuçları tahmin etmek için algılayıcı tabanlı algoritmalar kullanır.
Bir algılayıcıdaki karar birimi, daha önce sinir ağı modellerinde karşılaşılan bir tür nöron olan ikili eşik nörondur. Anlayışımızı tazelemek için, bu nöronlar diğer nöronlardan alınan girdilerin ağırlıklı bir toplamını hesaplar, bir yanlılık terimi ekler ve toplam sıfırı aşarsa bir çıktı üretir, aksi takdirde sıfır çıktı üretir.
Öğrenme sürecini basitleştirmek için, önyargılar, her girdi vektörünü ek bir sabit değerli bir girdiyle artırarak ağırlıklar olarak ele alınabilir. Bunu yaparak, önyargı bu ekstra giriş satırına bir ağırlık olarak dahil edilir ve önyargılar için ayrı bir öğrenme kuralına olan ihtiyacı ortadan kaldırır. Özünde, önyargı, değeri eşiğin negatifi olan bir ağırlığa eşdeğer hale gelir.
Şimdi, algılayıcının şaşırtıcı derecede güçlü ve bir çözüme yakınsaması garanti olan öğrenme prosedürünü keşfedelim. Ancak, daha sonra tartışılacak olan garantisiyle ilgili bazı uyarıları dikkate almak önemlidir.
Başlamak için, her girdi vektörüne 1 değerinde fazladan bir bileşen ekliyoruz. Daha sonra ağırlıklara odaklanabilir ve artık ek giriş satırında ağırlıklar olarak ele alındıkları için önyargıları göz ardı edebiliriz. Eğitim vakaları, her vakanın makul bir zaman çerçevesi içinde seçilmesini sağlayan herhangi bir politikaya göre seçilir, ancak "makul süre"nin kesin tanımı bağlama bağlı olarak değişebilir.
Bir eğitim durumu seçtikten sonra, algılayıcı tarafından üretilen çıktıyı değerlendirir ve bunu beklenen çıktıyla karşılaştırırız. Çıktı doğruysa, yani algılayıcının kararının istenen sınıflandırmayla uyumlu olduğunu gösteriyorsa, ağırlıkları değiştirmeden bırakırız. Ancak, çıktı yanlışsa, ağırlıkları aşağıdaki kurallara göre ayarlarız:
Dikkat çekici bir şekilde, bu basit öğrenme prosedürünün, her eğitim durumu için doğru çıktıyı üreten bir ağırlık seti bulması garanti edilir. Bununla birlikte, önemli bir koşul yerine getirilmelidir: tüm eğitim durumlarını doğru bir şekilde sınıflandırabilen uygun bir ağırlık seti olmalıdır. Ne yazık ki, pek çok ilginç problem için böyle uygun bir ağırlık seti mevcut olmayabilir.
Uygulanabilir bir ağırlık setinin varlığı büyük ölçüde kullanılan özelliklerin seçimine bağlıdır. Pek çok problem için kritik zorluk, ilgili kalıpları yakalamak için en uygun özelliklerin belirlenmesinde yatmaktadır. Doğru özellikler seçilirse, öğrenme süreci uygulanabilir ve etkili hale gelir. Öte yandan, yetersiz özellikler seçilirse, öğrenme imkansız hale gelir ve birincil odak, özellik seçimine kayar.
Sonuç olarak, algılayıcılar, sinir ağı modellerinin erken gelişiminde önemli bir rol oynamıştır. Sınırlamaları Minsky ve Papert tarafından ortaya çıkarılmış olsa da, bulgularının inceledikleri algılayıcılara özgü olduğunu ve sinir ağlarının daha geniş potansiyelini geçersiz kılmadığını not etmek önemlidir. Algılayıcı yakınsama prosedürü, özellikle büyük özellik vektörlerini içeren görevler için değerli bir araç olmaya devam etmektedir. Bununla birlikte, başarılı örüntü tanımanın anahtarı, uygun özelliklerin seçilmesinde yatmaktadır, çünkü doğru özelliklerin kullanılması öğrenme sürecini büyük ölçüde kolaylaştırırken, yetersiz özelliklerin kullanılması öğrenmeyi imkansız hale getirebilir.
Ders 2.3 — Algılayıcıların geometrik görünümü
Ders 2.3 — Algılayıcıların geometrik görünümü [Makine Öğrenimi için Sinir Ağları]
Bu videoda, algılayıcıların nasıl öğrendiğine dair geometrik anlayışı derinlemesine inceleyeceğiz. Bunu yapmak için, her noktanın tüm ağırlıkların belirli bir konfigürasyonuna karşılık geldiği yüksek boyutlu bir alan olan ağırlık uzayı açısından düşünmemiz gerekir. Bu alanda, eğitim durumlarını uçaklar olarak temsil edebiliriz ve öğrenme süreci, ağırlık vektörünün tüm eğitim düzlemlerinin doğru tarafında konumlandırılmasını içerir.
Matematik konusunda bilgili olmayanlar için bu, önceki materyallerden daha zorlayıcı olabilir. Özellikle yüksek boyutlu uzaylarda hiperdüzlemler hakkında düşünmeye yabancıysanız, gelecek içeriği anlamak için bolca zaman ayırmanız gerekebilir. Önce üç boyutlu bir alanı gözünüzde canlandırarak ve ardından sesli olarak kendinize boyutsallığı hatırlatarak 14 boyutlu bir alanı görselleştirme konusunda rahat olmanız gerekecek. Tuhaf görünebilir, ancak anlamaya yardımcı olmak için yaygın bir uygulamadır.
14 boyutlu bir uzayda hiperdüzlemlerle uğraşırken, 2B uzaydan 3B uzaya geçişe benzer şekilde karmaşıklık önemli ölçüde artar. 14 boyutlu bir uzayın geniş ve karmaşık olduğunu anlamak çok önemlidir. Bunu akılda tutarak, ağırlık alanına odaklanarak başlayalım.
Ağırlık uzayı, algılayıcıdaki her ağırlık için bir boyutu olan bir alandır. Ağırlık uzayındaki bir nokta, eşiği ortadan kaldırdığımızı varsayarsak, tüm ağırlıkların belirli bir konfigürasyonunu temsil eder. Her eğitim durumu, ağırlık uzayında orijinden geçen bir hiper düzlem olarak temsil edilebilir. Sonuç olarak, bu uzaydaki noktalar ağırlık vektörlerine, eğitim durumları ise düzlemlere karşılık gelir.
Belirli bir eğitim durumu için, doğru çıktıyı üretmek için ağırlıklar hiper düzlemin bir tarafında bulunmalıdır. Bu kavramı bir örnek üzerinden görselleştirelim. Doğru cevabın bir olduğu bir eğitim durumu düşünün. Ağırlık vektörünün, eğitim vektörünün gösterdiği yön ile hiper düzlemin aynı tarafında olması gerekir. Bu taraftaki herhangi bir ağırlık vektörü, giriş vektörü ile 90 dereceden daha az bir açıya sahip olacak ve bu da pozitif bir skaler çarpımla sonuçlanacaktır. Eşiği ortadan kaldırdığımız için, algılayıcı doğru cevabı vererek bir çıktı verecektir.
Tersine, bir ağırlık vektörü düzlemin yanlış tarafında bulunuyorsa, giriş vektörüyle olan açısı 90 dereceyi aşacak ve negatif bir skaler çarpım verecektir. Sonuç olarak, algılayıcı sıfır verecek ve bu da yanlış bir cevaba yol açacaktır.
Özetlemek gerekirse, düzlemin bir tarafındaki ağırlık vektörleri doğru cevabı, diğer tarafındaki ağırlık vektörleri ise yanlış cevabı vermektedir. Şimdi, doğru cevabın sıfır olduğu farklı bir eğitim durumunu inceleyelim.
Bu durumda, giriş vektörü ile 90 dereceden daha az açı yapan herhangi bir ağırlık vektörü, pozitif bir skaler çarpımla sonuçlanarak algılayıcının bir çıktı vermesine ve yanlış bir cevaba yol açmasına neden olur. Tersine, düzlemin diğer tarafında 90 dereceyi aşan bir açıyla ağırlık vektörleri, sıfırdan küçük bir skaler çarpım verecek ve algılayıcı, cevabı doğru bir şekilde sağlayarak sıfır verecektir.
Bu iki eğitim durumunu tek bir ağırlık alanı resminde birleştirelim. Ağırlık alanı kalabalıklaşır ve olası ağırlık vektörlerinden oluşan bir koni ortaya çıkar. Bu koni içindeki herhangi bir ağırlık vektörü, her iki eğitim durumu için de doğru cevabı verecektir. Böyle bir koninin varlığının garanti edilmediğini belirtmekte fayda var. Hiçbir ağırlık vektörünün tüm eğitim durumları için doğru yanıtları vermediği senaryolar olabilir. Ancak, bu tür ağırlık vektörleri varsa, bunlar bir koni oluşturacaktır.
Öğrenme algoritması, ağırlık vektörünü sonunda bu koninin içinde kalacak şekilde ayarlayarak, eğitim durumlarını birer birer ele alır. Tüm eğitim durumları için çalışan iki iyi ağırlık vektörümüz varsa, bunların ortalamasının da koninin içinde olacağını gözlemlemek önemlidir. Bu, sorunun dışbükey olduğu ve iki çözümün ortalamasının kendisinin bir çözüm olduğu anlamına gelir. Dışbükey öğrenme problemleri, makine öğrenimindeki süreci basitleştirir.
Ağırlık uzayını ve ağırlık vektörleri ile eğitim durumları arasındaki ilişkiyi anlamak, algılayıcıların nasıl öğrendiğine dair geometrik bir içgörü sağlar. Amaç, tüm eğitim durumları için doğru sınıflandırmayı sağlayan olası çözümler konisi içinde yer alan bir ağırlık vektörü bulmaktır.
Ders 2.4 — Öğrenme neden işe yarar?
Ders 2.4 — Öğrenme neden işe yarıyor [Makine Öğrenimi için Sinir Ağları]
Bu videoda, algılayıcı öğrenme prosedürünün eninde sonunda ağırlıkların uygulanabilir çözümler konisi içinde yakınsamasına yol açacağına dair bir kanıt sunmayı amaçlıyoruz. Ancak, bu dersin titiz ispatlardan ziyade öncelikle mühendislik yönlerine odaklandığını vurgulamak isterim. Kurs boyunca birkaç kanıt olacaktır. Bununla birlikte, algılayıcıların sonunda doğru yanıtı nasıl bulduklarını anlamak, değerli içgörüler sağlar.
Kanıtımızı oluşturmak için, ağırlık uzayı ve algılayıcı öğrenme süreci hakkındaki geometrik anlayışımızdan yararlanacağız. Tüm eğitim durumları için doğru cevabı veren uygun bir ağırlık vektörünün varlığını varsayıyoruz. Diyagramda, bu yeşil nokta ile temsil edilir.
Kanıtlamamızdaki ana fikir, algılayıcının bir eğitim durumunu her yanlış sınıflandırmasında, mevcut ağırlık vektörünün onu tüm uygun ağırlık vektörlerine yaklaştıracak şekilde güncelleneceğidir. Geçerli ağırlık vektörü ile makul bir ağırlık vektörü arasındaki mesafenin karesini, girdi vektörünün çizgisi (eğitim durumunun tanımı) boyunca alınan mesafenin karesi ve bu çizgiye ortogonal başka bir karesi alınmış mesafenin toplamı olarak ölçebiliriz. Girdi vektörünün çizgisi boyunca mesafe azalırken ortogonal kare uzaklığı sabit kalır.
Bu iddia umut verici görünse de, diyagramda altın uygun ağırlık vektörü ile gösterilen bir sorunla karşılaşıyoruz. Eğitim durumlarından biri tarafından tanımlanan düzlemin hemen sağ tarafında yer alırken, mevcut ağırlık vektörü yanlış taraftadır. Ek olarak, girdi vektörü nispeten büyüktür ve girdi vektörünün eklenmesinin mevcut ağırlık vektörünü altın uygun ağırlık vektöründen daha uzağa taşımasına neden olur. Sonuç olarak, ilk iddiamız başarısız oluyor.
Bununla birlikte, cömertçe uygulanabilir bir ağırlık vektörü kavramını tanıtarak bunu düzeltebiliriz. Bu ağırlık vektörleri, yalnızca tüm eğitim durumlarını doğru bir şekilde sınıflandırmakla kalmaz, aynı zamanda her durum için girdi vektörünün uzunluğuna eşit veya daha büyük bir marjla bunu yapar. Uygulanabilir çözümler konisinin içinde, cömertçe uygulanabilir çözümlerden oluşan başka bir konimiz var.
Bu düzeltme ile ispatımız geçerli hale gelir. Şimdi, algılayıcının bir durumu yanlış sınıflandırdığı her seferde, cömertçe uygulanabilir tüm ağırlık vektörlerine olan mesafenin karesinin, en azından giriş vektörünün uzunluğunun karesi kadar azaldığını iddia edebiliriz. Bu güncelleme, ağırlık vektörünün cömertçe uygulanabilir çözümlere yaklaşmasını sağlar.
Burada resmi bir kanıt sunmayacak olsak da, bu resmi olmayan taslak yakınsama sürecini göstermektedir. Girdi vektörleri sonsuz küçük değilse, sonlu sayıda hatadan sonra, cömertçe uygulanabilir tüm ağırlık vektörlerine olan mesafenin karesi, en azından girdi vektörünün uzunluğunun karesi kadar azalır. Sonuç olarak, ağırlık vektörü, var olduğu varsayılarak, sonunda uygun bölge içinde bulunmalıdır. Cömertçe uygulanabilir bölgede olması gerekmez, ancak daha fazla hata yapmaktan kaçınmak için en azından uygulanabilir bölge içinde olması gerekir.
Özetlemek gerekirse, bu, algılayıcı yakınsama prosedürünün çalıştığını gösteren kanıtın gayri resmi bir özetidir. Bununla birlikte, tüm ispatın cömertçe uygulanabilir bir ağırlık vektörünün var olduğu varsayımına dayandığına dikkat etmek önemlidir. Böyle bir vektör yoksa ispat çöker.
Ders 2.5 — Algılayıcıların yapamayacakları
Ders 2.5 — Algılayıcıların yapamayacakları [Makine Öğrenimi için Sinir Ağları]
Bu videoda, kullanılan özellik türlerinden kaynaklanan algılayıcıların sınırlamalarını keşfedeceğiz. Algılayıcıların etkinliği büyük ölçüde özelliklerin seçimine bağlıdır. Doğru özelliklerle algılayıcılar inanılmaz derecede çok yönlü olabilir, ancak yanlış özelliklerle öğrenme yetenekleri ciddi şekilde kısıtlanır. Bu sınırlama, geçmişte algılayıcıların gözden düşmesine neden oldu. Öğrenme sürecinin en önemli yönü olan uygun özellikleri öğrenmenin zorluğunu vurgular.
Bununla birlikte, öğrenme özellikleri olmasa bile, algılayıcılar yine de çok şey başarabilir. Örneğin, bir İngilizce cümlenin inandırıcılığını belirleme gibi görevlerde, bir cümlenin dilbilgisi açısından doğru olma olasılığına karar vermek için çok sayıda özelliği manuel olarak tanımlayabilir ve ağırlıklarını öğrenebilir. Bununla birlikte, uzun vadede, öğrenme özellikleri gerekli hale gelir.
Perceptron araştırması, 1960'ların sonlarında ve 1970'lerin başlarında, algılayıcıların önemli sınırlamaları olduğu keşfedildiğinde başarısızlıklarla karşılaştı. Özellikleri manuel olarak seçerek ve yeterli özelliği dahil ederek, algılayıcılar hemen hemen her görevi başarabilir. Örneğin, ikili girdi vektörlerini ele alırsak ve belirli ikili girdi vektörlerine dayalı olarak etkinleşen ayrı özellik birimleri yaratırsak, ikili girdi vektörleri üzerinde herhangi bir ayrım elde edebiliriz. Bununla birlikte, bu yaklaşım, genellemeyi engelleyen aşırı sayıda özellik birimi gerektirdiğinden, gerçek dünyadaki problem çözme için pratik değildir. Bir vaka alt kümesinden genellemeye çalışmak ve diğerlerini göz ardı etmek beyhudedir çünkü kalan vakalar için yeni özellik birimleri gerekli olacaktır ve bu yeni özellik birimleri için ağırlıkları belirlemek, manuel seçim tamamlandıktan sonra zordur.
Özellik birimleri ve ağırlıkları belirlendikten sonra algılayıcıların öğrenebilecekleri konusunda katı kısıtlamalar vardır. Bu sınırlamaları anlamak için klasik bir örneği inceleyelim. Bir ikili eşik karar biriminin, iki özelliğin aynı değere sahip olup olmadığını belirlemeyi öğrenip öğrenemeyeceğini belirlemek istiyoruz. Her biri 1 veya 0 değerlerine sahip tek bitlik özelliklerle tanımlanan iki pozitif durum ve iki negatif durum var. bir özelliğin açık (1) ve diğerinin kapalı (0) olduğu durumlar meydana gelir. Görev basit görünüyor, ancak cebirsel olarak, bu girdi-çıktı çiftlerinin oluşturduğu dört eşitsizliğin tümünü sağlamanın imkansız olduğu kanıtlanabilir. Sonuç olarak, algılayıcının dört durum için de doğru çıktıyı sağlamasına izin veren ağırlıkları bulmak mümkün değildir.
Bu sınırlama geometrik olarak da anlaşılabilir. Her noktanın bir veri noktasını temsil ettiği ve ağırlık vektörlerinin veri noktalarına dik düzlemleri tanımladığı bir veri alanı hayal ediyoruz. Doğru bir şekilde ayırt etmek için, ağırlık düzlemi pozitif durumları negatif durumlardan ayırmalıdır. Bununla birlikte, doğrusal olarak ayrılamayan eğitim durumları kümeleri vardır, yani hiçbir hiper düzlem, çıktının 1 olması gereken durumları çıktının 0 olması gereken durumlardan doğru bir şekilde ayıramaz. doğrusal olarak ayrılamayan eğitim vakaları."
Algılayıcılar için başka bir yıkıcı örnek, sarmalama ile çevrildiklerinde bile kimliklerini koruyan kalıpları tanımayı içerir. Ayırımın çevrilmiş ve sarılmış desenlerle çalışması gerekiyorsa, algılayıcılar aynı sayıda piksele sahip desenler arasında ayrım yapamaz. Bu sınırlama, A ve B modelleri dikkate alındığında belirginleşir. A Modeli, barkod benzeri bir şekilde düzenlenmiş dört "açık" piksele sahiptir ve B modeli ayrıca farklı şekilde düzenlenmiş dört "açık" piksele sahiptir. Sarma ile çevrildiğinde, algılayıcılar bu modeller arasında ayrım yapmayı öğrenemezler. Minsky ve Papert'in Grup Değişmezliği teoremi, sarmaya izin verilirse, algılayıcıların çeviri altındaki kalıpları tanıyamayacağını belirtir. Bu teorem, algılayıcıların tarihinde özellikle önemliydi çünkü örüntü tanıma, çeviri gibi dönüşümlere rağmen örüntüleri tanımlamayı hedefliyor.
Teorem, başlangıçta formüle edildikleri şekliyle algılayıcıların, sarmalama ile çeviri değişmezliği gerektiren örüntü tanıma görevlerini yerine getiremediğini ortaya çıkardı. Bu sınırlama, pratik uygulamalarını büyük ölçüde kısıtladı ve 1960'ların sonlarında ve 1970'lerin başlarında algılayıcılara olan ilginin ve araştırmaların azalmasına yol açtı. Bununla birlikte, bu sınırlamaların yalnızca ikili eşik birimleri olan tek katmanlı algılayıcılar için geçerli olduğuna dikkat etmek önemlidir. Yapay sinir ağları alanı, çok katmanlı algılayıcılar (MLP'ler) ve evrişimli sinir ağları (CNN'ler) gibi daha gelişmiş modellerin geliştirilmesiyle gelişmeye ve bu sınırlamaların üstesinden gelmeye devam etti. MLP'ler, giriş ve çıkış katmanları arasında gizli katmanlar oluşturarak, özelliklerin daha karmaşık ve esnek temsillerine izin verir. Doğrusal olmayan aktivasyon fonksiyonlarını dahil ederek ve ağırlık ayarı için geri yayılım gibi teknikleri kullanarak, MLP'ler, tek katmanlı algılayıcıların doğrusal ayrılabilirlik sınırlamasının üstesinden gelebilir.
Öte yandan CNN'ler, örüntü tanıma ve görüntü sınıflandırma sorununu ele almak için özel olarak tasarlanmıştır. Yerel özellikleri ayıklayan evrişimli katmanlara ve mekansal değişmezliği yakalayan havuzlama katmanlarına sahip hiyerarşik bir yapı kullanırlar. CNN'ler, görüntü tanıma, nesne algılama ve doğal dil işleme gibi görevlerde kayda değer bir başarı göstermiştir.
Algılayıcıların sınırlamaları, sinir ağlarında özellik öğrenmenin, doğrusal olmamanın ve hiyerarşik temsillerin önemini vurguladı. Alandaki müteakip ilerlemeler, geliştirilmiş öğrenme yetenekleri ve daha geniş uygulamalar ile daha karmaşık modellerin geliştirilmesine yol açmıştır.
Algılayıcıların karmaşık özellikleri öğrenme ve belirli örüntü tanıma görevlerini yerine getirme yeteneklerinde sınırlamalar olsa da, bu sınırlamalar daha gelişmiş sinir ağı mimarilerinin geliştirilmesiyle ele alınmıştır. Diğer modellerin yanı sıra MLP'ler ve CNN'ler, tek katmanlı algılayıcıların kısıtlamalarının üstesinden geldi ve yapay zekanın çeşitli alanlarında güçlü araçlar haline geldi.
Ders 3.1 — Doğrusal bir nöronun ağırlıklarını öğrenme
Ders 3.1 — Doğrusal bir nöronun ağırlıklarını öğrenme [Makine Öğrenimi için Sinir Ağları]
videosu, bir algılayıcı için öğrenme algoritmasından farklı bir şey başaran doğrusal bir nöron için öğrenme algoritmasını tanıtıyor. Bir algılayıcıda, ağırlıklar her zaman iyi bir ağırlık kümesine yaklaşırken, lineer bir nöronda çıktılar her zaman hedef çıktılara yaklaşır.
Perceptron yakınsama prosedürü, ağırlıkları değiştirmenin bizi iyi bir ağırlık setine yaklaştırmasını sağlar. Ancak, bu garanti daha karmaşık ağlara genişletilemez çünkü iki iyi ağırlık setinin ortalaması kötü bir ağırlık setiyle sonuçlanabilir. Bu nedenle, çok katmanlı sinir ağları için algılayıcı öğrenme prosedürünü kullanmıyoruz ve öğrenme sırasındaki iyileştirmenin kanıtı da farklı.
Genellikle çok katmanlı algılayıcılar (MLP'ler) olarak adlandırılan çok katmanlı sinir ağları, ilerlemeyi göstermek için farklı bir yaklaşım gerektirir. Ağırlıkların iyi bir ağırlık setine yaklaştığını göstermek yerine, gerçek çıktı değerlerinin hedef çıktı değerlerine yaklaştığını gösteriyoruz. Bu, iki iyi çözümün ağırlıklarının ortalamasının iyi bir çözüm vermediği dışbükey olmayan problemler için bile geçerlidir.
Doğrusal bir nöron için öğrenme algoritması bir oyuncak örneği ile gösterilmektedir. Porsiyon fiyatları için rastgele tahminlerle başlamayı ve ardından bu tahminleri yinelemeli olarak gözlemlenen fiyatlara uyacak şekilde ayarlamayı içerir. Yinelemeli yaklaşım, ağırlıkları öğrenme hızına, bölüm sayısına ve artık hataya dayalı olarak güncellemek için delta kuralını kullanır.
Delta kuralı, ağırlıklardan birine göre hata ölçüsünün farklılaştırılmasıyla elde edilir. Öğrenme kuralı, bir ağırlıktaki değişimin, giriş değeri ile hedeflenen ve gerçek çıktılar arasındaki farkla çarpılan öğrenme oranına eşit olduğunu belirtir. Delta kuralını yinelemeli olarak uygulayarak, hatayı en aza indirmek için ağırlıklar ayarlanabilir.
Delta kuralını kullanan öğrenme prosedürü, bireysel ağırlıkların her zaman gelişeceğini garanti etmez. Ancak, hedef ve tahmin edilen çıktılar arasındaki fark iyileşme eğilimindedir. Öğrenme oranı, öğrenme hızını belirler ve yeterince küçük bir öğrenme oranı ile ağırlıklar, verilen eğitim durumları için en iyi yaklaşıma yaklaşabilir.
Doğrusal sistemler için bile öğrenme sürecinin, özellikle girdi boyutları yüksek oranda ilişkili olduğunda yavaş olabileceğini not etmek önemlidir. Bu gibi durumlarda, her bir girdi boyutuna ne kadar ağırlık atfedilmesi gerektiğini belirlemek zorlaşır. Ek olarak, delta kuralının çevrimiçi versiyonu ile ağırlık vektörünün giriş vektörü ve hataya göre ayarlandığı perceptron öğrenme kuralı arasında benzerlik vardır. Bununla birlikte, delta kuralı, öğrenme oranını ve artık hatayı içerir. Uygun bir öğrenme oranı seçmek, istikrarlı ve verimli bir öğrenme için çok önemlidir.
Doğrusal nöron için açıklanan yinelemeli öğrenme süreci, hata ölçüsünü en aza indiren bir çözüme yakınsayabilir. Ancak, tüm eğitim durumları için istenen çıktılarla tam olarak eşleşen mükemmel bir çözüm olmayabileceğini not etmek önemlidir. Bunun yerine amaç, tüm eğitim durumlarında en iyi yaklaşımı sağlayan ve hata ölçüsünü en aza indiren bir ağırlık seti bulmaktır. Öğrenme oranını yeterince küçük yaparak ve öğrenme sürecinin yeterince uzun süre devam etmesine izin vererek, bu en iyi yaklaşıma yaklaşabiliriz.
Doğrusal sistemler için bile öğrenme hızı değişebilir. İki girdi boyutu yüksek oranda ilişkili olduğunda, her bir girdi boyutuna ne kadar ağırlık atfedilmesi gerektiğini belirlemek zorlaşır. Örneğin, ketçap ve cips porsiyonlarının sayısı her zaman aynıysa, öğrenme sürecinin her bileşene fiyatı doğru bir şekilde ataması uzun zaman alabilir.
İlginç bir şekilde, delta kuralı ile algılayıcılar için öğrenme kuralı arasında bir ilişki vardır. Her eğitim durumundan sonra ağırlıkların güncellendiği delta kuralının çevrimiçi versiyonu, perceptron öğrenme kuralıyla benzerlikler taşır. Algılayıcı öğrenmede, ağırlık vektörü giriş vektörü tarafından artırılır veya azaltılır, ancak yalnızca bir hata oluştuğunda. Delta kuralının çevrimiçi versiyonunda, ağırlık vektörü de giriş vektörü tarafından ayarlanır, ancak hem artık hata hem de öğrenme oranı tarafından ölçeklenir.
Delta kuralını kullanmanın zorluklarından biri, uygun bir öğrenme oranı seçmektir. Öğrenme oranı çok büyükse, sistem kararsız hale gelebilir ve bu da bir çözüme yakınsamayı zorlaştırır. Öte yandan, öğrenme oranı çok küçükse, öğrenme sürecinin mantıklı bir ağırlık setine ulaşması gereksiz yere uzun sürebilir.
Doğrusal bir nöron için öğrenme algoritması, hedef çıktılar ile gerçek çıktılar arasındaki hatayı en aza indirmeyi amaçlar. Öğrenme oranını, girdi değerlerini ve hedef ile gerçek çıktılar arasındaki farkı içeren delta kuralını kullanarak ağırlıkları yinelemeli olarak ayarlar. Öğrenme süreci yavaş olabilse ve ağırlıklar bireysel olarak gelişmese de, genel amaç verilen eğitim durumları için en iyi yaklaşıma yaklaşmaktır.
Ders 3.2 — Doğrusal bir nöron için hata yüzeyi
Ders 3.2 — Doğrusal bir nöron için hata yüzeyi [Makine Öğrenimi için Sinir Ağları]
Bu videoda, öğrenme sürecine içgörü sağlayan doğrusal bir nöronun hata yüzeyini keşfedeceğiz. Bu yüzeyi görselleştirerek, doğrusal bir nöronda ağırlıkların nasıl öğrenildiğine dair geometrik bir anlayış kazanabiliriz. Düşündüğümüz uzay, algılayıcılarda kullanılan ağırlık uzayına benzer, ancak ek bir boyuta sahiptir.
Yatay boyutların ağırlıkları temsil ettiği ve dikey boyutun hatayı temsil ettiği bir alan hayal edin. Bu alanda, farklı ağırlık ayarları yatay düzlemde noktalar olarak temsil edilir ve her noktanın yüksekliği, tüm eğitim durumlarında toplanan ağırlık ayarıyla ilişkili hataya karşılık gelir. Doğrusal bir nöron için, her ağırlık ayarının hataları, ikinci dereceden bir kase şeklini alan bir hata yüzeyini tanımlar. Hata yüzeyinin dikey enine kesiti her zaman bir parabol verir, yatay enine kesit ise bir elips oluşturur. Bu davranışın yalnızca kare hatası olan doğrusal sistemler için geçerli olduğuna dikkat etmek önemlidir. Çok katmanlı doğrusal olmayan sinir ağlarına geçtikçe, hata yüzeyi daha karmaşık hale gelir.
Ağırlıklar makul bir aralıkta kalırken, hata yüzeyi düzgün kalır ancak çok sayıda yerel minimuma sahip olabilir. Öğrenmeyi kolaylaştırmak için, ağırlıklara göre hatanın türevini hesaplamayı içeren delta kuralını kullanırız. Ağırlıkların bu türev ile orantılı olarak ayarlanması, hata yüzeyinde en dik inişin yapılmasına eşdeğerdir. Hata yüzeyine yukarıdan bakıldığında eliptik kontur çizgileri ortaya çıkar. Delta kuralı bizi bu kontur çizgilerine dik olarak yönlendirir. Gradyanın tüm eğitim durumlarında hesaplandığı toplu öğrenmede, delta kuralı bizi doğru yöne götürür. Bununla birlikte, algılayıcılara benzer şekilde her eğitim durumundan sonra ağırlıkların güncellendiği çevrimiçi öğrenmeyi de kullanabiliriz. Bu durumda, ağırlık değişimi bizi eğitim durumlarının oluşturduğu kısıtlama düzlemlerine doğru hareket ettirir.
Eğitim durumları arasında geçiş yaparak, kısıtlama çizgilerinin kesiştiği çözüm noktasına doğru zikzaklar çizerek her iki durumu da karşılayan ağırlıkları gösterebiliriz. Ek olarak, hata yüzeyini incelemek, yavaş öğrenmeye neden olan koşulları anlamamızı sağlar. Kontur çizgilerini temsil eden elips oldukça uzunsa, ki bu iki eğitim durumuna karşılık gelen çizgiler neredeyse paralel olduğunda ortaya çıkar, gradyan olumsuz bir özellik sergiler. Eğim, uzağa gitmek istemediğimiz yönde büyür ve önemli ilerleme kaydetmek istediğimiz yönde küçülür. Bu uyumsuzluk verimli öğrenmeyi engeller ve hata yüzeyinin dağ geçidi benzeri yapısını uzatılmış ekseni boyunca kat etmeyi zorlaştırır.
Doğrusal bir nöronun hata yüzeyinin görselleştirilmesi, öğrenme sürecine ilişkin değerli bilgiler sağlar. Yüzeyin geometrisini anlamak, delta kuralının davranışını ve bunun öğrenme hızı üzerindeki etkilerini kavramamıza yardımcı olur.
Ders 3.3 — Lojistik çıktı nöronunun öğrenme ağırlıkları
Ders 3.3 — Lojistik çıktı nöronunun öğrenme ağırlıkları [Makine Öğrenimi için Sinir Ağları]
Öğrenme kuralını doğrusal bir nörondan doğrusal olmayan nöronların çok katmanlı ağlarına genişletmek için iki adım atmamız gerekiyor. İlk olarak, öğrenme kuralını doğrusal olmayan tek bir nöron için, özellikle bir lojistik nöron için genelleştirmemiz gerekiyor. Örnek olarak lojistik nöronlar kullanılırken, diğer lineer olmayan nöron türleri de kullanılabilir.
Bir lojistik nöron, önyargısının toplamı ve girdi satırlarının ağırlıklı toplamı olan z olarak gösterilen logitini hesaplar. Y olarak gösterilen çıktı, logit'in düz doğrusal olmayan bir fonksiyonudur. Grafikte, fonksiyonun z büyük ve negatif olduğunda sıfıra, z büyük ve pozitif olduğunda bire yaklaştığı ve arada düzgün ve doğrusal olmayan değişimler gösterdiği görülmektedir. Lojistik fonksiyonun sürekliliği, öğrenme için uygun türevler sağlar. Bir lojistik nöronun ağırlıklara göre türevlerini elde etmek için (ki bu öğrenme için çok önemlidir), önce logitin kendisinin bir ağırlığa göre türevini hesaplarız. Bu türev, giriş satırındaki xi olarak gösterilen değere sadeleşir. Benzer şekilde logitin xi'ye göre türevi de wi ağırlığıdır.
Çıktının logite göre türevi, çıktının kendisi cinsinden ifade edilebilir. Spesifik olarak, çıktı y olarak temsil edilirse, dy/dz, y * (1 - y) ile verilir. Bu sonucun matematiksel türevi bir sonraki slaytta verilmektedir ve sıkıcı ama anlaşılır hesaplamalar içermektedir. Çıktının logite göre türevini ve logitin ağırlığa göre türevini elde ettikten sonra, artık çıktının ağırlığa göre türevini belirleyebiliriz. Zincir kuralını uygulayarak dz/dw'yi xi olarak ve dy/dz'yi y * (1 - y) olarak elde ederiz. Sonuç olarak, bir lojistik nöron için delta kuralına çok benzeyen bir öğrenme kuralına ulaşıyoruz.
Bir ağırlığı değiştirdiğimizde de/dwi olarak gösterilen hatadaki değişiklik, tüm eğitim durumlarının (n) bir giriş satırındaki değerin (xin) çarpımı ile aradaki fark olan kalıntının toplanmasıyla elde edilir. nöronun hedef çıktısı ve gerçek çıktısı. Ancak, lojistik fonksiyonun eğiminden kaynaklanan ek bir terim vardır, yani yn * (1 - yn). Delta kuralındaki bu küçük değişiklikle, bir lojistik nöronu eğitmek için kademeli iniş öğrenme kuralına ulaşıyoruz.
Bir lojistik nörona gradyan iniş öğrenme kuralını uygulayarak, doğrusal olmayan nöronların çok katmanlı ağlarını etkili bir şekilde eğitebiliriz. Bu, öğrenme kuralını doğrusal sistemlerin ötesine taşır ve daha karmaşık görevlerin üstesinden gelmemizi sağlar. Bu öğrenme kuralının çok katmanlı ağlar bağlamında nasıl çalıştığını anlamak için, örnek olarak basit bir iki katmanlı ağ düşünelim. Birden fazla nöron içeren bir girdi katmanımız ve tek bir lojistik nöron içeren bir çıktı katmanımız var. Katmanlar arasındaki ağırlıklar W olarak ve sapmalar b olarak gösterilir.
Öğrenme süreci iki adım içerir. İlk olarak, belirli bir girdi için ağın çıktısını hesaplıyoruz. Bu, girdileri ağ üzerinden ilerleterek, lojistik işlevi her bir nöronun toplam girdisine (logit) uygulayarak ve nihai çıktıyı elde ederek yapılır. Daha sonra, zincir kuralını kullanarak ağırlıklara göre hatanın gradyanlarını hesaplıyoruz. Çıkış katmanından başlayarak, hatanın çıktıya göre türevini hesaplıyoruz, bu sadece hedef çıktı ile ağın gerçek çıktısı arasındaki farktır. Daha sonra bu hata gradyanını, gizli katmandaki gradyanları elde etmek için her bir nörondaki lojistik fonksiyonun türevi ile çarparak ağ üzerinden geriye doğru yayıyoruz. Son olarak, hesaplanan gradyanları ve bir öğrenme oranını kullanarak ağırlıkları güncelleriz. Öğrenme hızı, ağırlık güncellemesindeki adım boyutunu belirler ve öğrenme hızını kontrol etmek için ayarlanabilir. Ağırlık güncellemesi şu denklemi takip eder: ΔW = öğrenme_oran * error_gradient * girdi, burada ΔW ağırlıklardaki değişimi temsil eder.
Bu ileri yayılım, hata geri yayılımı ve ağırlık güncellemesi, belirli sayıda dönem için veya ağ istenen performans düzeyine ulaşana kadar yinelemeli olarak tekrarlanır. Ağırlıkları yinelemeli olarak ayarlayarak, ağ kademeli olarak daha iyi tahminler yapmayı veya girdileri daha doğru bir şekilde sınıflandırmayı öğrenir. Lojistik nöronlar için tartıştığımız öğrenme kuralının, diğer doğrusal olmayan aktivasyon fonksiyonlarına da genelleştirilebileceğini not etmek önemlidir. Anahtar, hata gradyanlarını ağ boyunca etkili bir şekilde yaymak için aktivasyon fonksiyonlarının türevlerini doğru bir şekilde hesaplamaktır.
Öğrenme kuralını doğrusal nöronlardan lojistik nöronlara genişleterek ve çok katmanlı ağlara uygulayarak, karmaşık doğrusal olmayan modeller eğitebiliriz. Bu, ağırlıkları hata gradyanlarına göre yinelemeli olarak ayarlayarak örüntü tanıma, sınıflandırma ve regresyon dahil olmak üzere çok çeşitli görevleri çözmemize olanak tanır.
Ders 3.4 — Geri yayılım algoritması
Ders 3.4 — Geri yayılım algoritması [Makine Öğrenimi için Sinir Ağları]
Artık ön hazırlıkları yaptığımıza göre, çoklu özellik katmanlarını öğrenmenin ana konusuna geçelim. Bu videoda nihayet 1980'lerde ortaya çıkan ve sinir ağlarına olan ilgiyi ateşleyen geri yayılım algoritmasını anlatacağız.
Geri yayılmaya dalmadan önce, o kadar etkili olmayan ama bahsetmeye değer başka bir algoritmayı tartışalım. Bir lojistik birimin ağırlıklarını nasıl öğreneceğimizi öğrendikten sonraki zorluk, gizli birimlerin ağırlıklarını öğrenmektir. Gizli birimleri olmayan sinir ağları, modelleyebilecekleri girdi-çıktı eşlemelerinde sınırlıdır. Bir algılayıcıdaki gibi elle kodlanmış özellikler katmanı ağın gücünü artırırken, bu özellikleri yeni bir görev için tasarlamak zor ve manuel bir süreç olmaya devam ediyor.
İdeal olarak, özellik tasarım döngüsünü otomatik hale getirerek, bilgisayarın insan içgörüsü veya tekrarlanan deneme yanılma gerektirmeden iyi özellikler bulmasını sağlamak istiyoruz. Ağırlıkları alt üst ederek öğrenme kavramı burada akla gelir. Bir ağırlığı rastgele bozmak, mutasyona benzer ve ağın performansını iyileştirip iyileştirmediğini gözlemleyebiliriz. Performans iyileşirse, bu ağırlık değişikliğini, bir tür takviyeli öğrenmeye benzer şekilde kaydederiz.
Ancak bu yöntem oldukça verimsizdir. Bir ağırlığı değiştirmenin ağı iyileştirip iyileştirmediğini değerlendirmek için, temsili bir eğitim durumları setinde birden fazla ileri geçiş gereklidir. Tek bir eğitim durumuna dayalı olarak ağırlık değişikliğinin etkisinin değerlendirilmesi yetersizdir. Ek olarak, öğrenme ilerledikçe, ağırlıklardaki büyük değişiklikler, ağırlıklar arasındaki uygun göreli değerler çok önemli olduğundan, işleri daha da kötüleştirme eğilimindedir. Öğrenmenin sonuna doğru, her bir ağırlık değişikliğini değerlendirmek zaman alıcı olmakla kalmaz, aynı zamanda değişikliklerin kendisi de küçük olmalıdır.
Öğrenme için pertürbasyonları kullanmanın biraz daha iyi yolları var. Bir yaklaşım, tüm ağırlıkları paralel olarak bozmak ve ardından performans kazancını ağırlık değişiklikleriyle ilişkilendirmektir. Ancak bu yöntem önemli bir iyileşme sağlamamaktadır. Zorluk, bir ağırlığı değiştirmenin etkisini diğerlerini değiştirmenin neden olduğu gürültü arasında izole etmek için tüm ağırlıkların farklı rasgele pertürbasyonları ile çok sayıda denemeye duyulan ihtiyaçta yatmaktadır.
Biraz iyileşme gösteren alternatif bir yaklaşım, ağırlıklar yerine gizli birimlerin faaliyetlerini rastgele bozmaktır. Belirli bir eğitim durumundaki gizli bir birimin aktivitesini bozmanın performansı iyileştirdiği belirlendikten sonra, ağırlık değişiklikleri hesaplanabilir. Ağırlıklardan daha az aktivite olduğundan, algoritma daha verimli hale gelir. Bununla birlikte, geri yayılım, ağdaki nöron sayısına eşit bir faktörle, verimlilik açısından bu yöntemleri hala geride bırakmaktadır.
Geri yayılımın arkasındaki ana fikir, gizli birimlerin ne yapması gerektiğini bilmesek de (dolayısıyla "gizli" terimi), belirli bir eğitim durumunda gizli bir birimin etkinliğini değiştirdiğimizde hatanın ne kadar hızlı değiştiğini hesaplayabiliriz. Gizli birimlerin aktivitelerini istenilen durumlar olarak kullanmak yerine aktivitelere göre hata türevlerinden yararlanıyoruz. Her gizli birim, birden çok çıktı birimini etkileyebileceğinden, etkilerinin verimli bir şekilde yapılabilmesi için birleştirilmesi gerekir.
Tek bir eğitim durumu için geri yayılım algoritmasını özetlemek için, hatayı, çıkış birimlerinin hedef değerleri ile ağ tarafından üretilen gerçek değerler arasındaki farkın karesi olarak tanımlayarak başlıyoruz. Bu hatayı türevleyerek, bir çıktı biriminin çıktısına göre hatanın nasıl değiştiğinin ifadesini elde ederiz. Daha sonra, yukarıdaki katmanın önceden hesaplanmış hata türevlerini kullanarak gizli birimden giden tüm bağlantıların etkilerini toplayarak gizli birimler için hata türevlerini hesaplayabiliriz.
Geri yayılım algoritması, hata türevlerini bir katmandan önceki katmana verimli bir şekilde yaymamızı sağlar. Gizli birimler için hata türevlerini elde ettikten sonra, gizli birime gelen ağırlıklar için hata türevlerini kolayca hesaplayabiliriz. Bu, birim tarafından alınan toplam girdiye göre hata türevinin aşağıdaki katmandaki birimin etkinliği ile çarpılmasıyla yapılır. Ağırlıklar için hesaplanan hata türevleri, belirli bir ağırlığı değiştirdiğimizde hatanın nasıl değiştiğini gösterir.
Şimdi, tek bir eğitim durumu için geri yayılım algoritmasında yer alan adımları özetleyelim:
Hatayı, ağın hedef değerleri ile gerçek çıkış değerleri arasındaki farkın karesi olarak tanımlayın.
Çıktının toplam girdiye göre türevinin çıktıya göre hata türevi ile çarpılmasını içeren zincir kuralını uygulayarak, her bir çıktı biriminin çıktısına göre hata türevini hesaplayın.
Gizli birimden giden tüm bağlantıların etkilerini toplayarak her gizli birimin çıktısına göre hata türevini hesaplayın. Bu, her bağlantıdaki ağırlığın yukarıdaki katmanda hesaplanan hata türevi ile çarpılmasını içerir.
Hata türevlerini ağ üzerinden geriye doğru yayarak tüm gizli katmanlar için 3. adımı tekrarlayın.
Her bir birime gelen ağırlıkların hata türevlerini hesaplayınız. Bu, birim tarafından alınan toplam girdiye göre hata türevinin aşağıdaki katmandaki birimin etkinliği ile çarpılmasıyla yapılır.
Bu adımları izleyerek, tek bir eğitim durumuna dayalı olarak ağdaki tüm ağırlıklar için hata türevlerini verimli bir şekilde hesaplayabiliriz. Geri yayılım algoritması, her bir ağırlığı değiştirmenin genel hatayı nasıl etkilediğini anlamamızı sağlar ve öğrenme sürecini kolaylaştırır. Geri yayılım algoritmasını anlamak ve uygulamak, birden çok özellik katmanına sahip derin sinir ağlarını eğitmek için çok önemlidir. Bu açıklama dikkatli bir çalışma gerektirse de, sinir ağı eğitiminde geri yayılımı etkili bir şekilde kullanmak için temeldeki kavramları ve hesaplamaları kavramak çok önemli olacaktır.
Geri yayılım algoritmasını kullanarak ağdaki tüm ağırlıklar için hata türevlerini hesapladıktan sonra, bu bilgiyi ağırlıkları güncellemek ve ağın performansını iyileştirmek için kullanabiliriz. Bu işlem ağırlık ayarı veya ağırlık güncelleme olarak bilinir. Ağırlık güncelleme tipik olarak, ağırlıkları hatayı en aza indirecek yönde yinelemeli olarak ayarlamak için gradyan iniş gibi bir optimizasyon algoritmasının kullanımını içerir. Temel fikir, her bir ağırlığı, ilgili hata türevinin küçük bir kısmını bir öğrenme oranı parametresi ile çarparak çıkararak güncellemektir.
Öğrenme hızı, ağırlık uzayındaki adım boyutunu belirler ve eğitim sürecinin yakınsama hızını etkiler. Uygun bir öğrenme oranı seçmek, istikrarlı ve verimli öğrenmeyi sağlamak için önemlidir. Çok büyük bir öğrenme oranı ağırlıkların ıraksamasına neden olurken, çok küçük bir öğrenme oranı yavaş yakınsamaya neden olabilir. Ağırlık güncelleme işlemi sırasında, ağırlıkları küçük gruplar halinde veya hatta tek seferde tek bir eğitim örneğinde güncellemek yaygın bir uygulamadır. Bu yaklaşım, stokastik gradyan inişi veya mini toplu gradyan inişi olarak bilinir ve öğrenme sürecini hızlandırmaya ve yerel optimuma takılmaktan kaçınmaya yardımcı olur.
Ağırlık güncelleme işlemi, tipik olarak birden fazla dönem için tekrarlanır ve her dönem, tüm eğitim veri setinin üzerinden geçilmesinden oluşur. Bu, ağın birden çok eğitim örneğinden birikmiş hatalara dayalı olarak ağırlıkları aşamalı olarak ayarlamasına olanak tanıyarak genelleştirme performansını artırır. Bir sinir ağının eğitim aşamasında geri yayılım ve ağırlık güncellemesinin yapıldığını not etmek önemlidir. Ağ eğitildikten sonra, girdiyi ağ üzerinden besleyerek ve çıktıyı alarak yeni, görünmeyen veriler üzerinde tahminler yapmak için kullanılabilir.
Geri yayılım ve birden çok özellik katmanını öğrenme yeteneği, derin öğrenmenin başarısında çok önemli olmuştur. Geri yayılım algoritması ile sinir ağları, verilerin karmaşık temsillerini otomatik olarak öğrenerek görüntü ve konuşma tanıma, doğal dil işleme ve daha fazlası dahil olmak üzere çok çeşitli görevleri çözmelerini sağlar.
Geri yayılım algoritması, çok katmanlı sinir ağlarında hata türevlerini verimli bir şekilde hesaplamak için güçlü bir tekniktir. Hata bilgisini ağ üzerinden geriye doğru yayarak, ağırlıklardaki değişikliklerin toplam hatayı nasıl etkilediğini belirleyebiliriz. Bu bilgi daha sonra ağırlıkları yinelemeli olarak güncellemek için kullanılır ve ağın zaman içinde performansını öğrenmesine ve geliştirmesine olanak tanır.
Ders 3.5 — Geri yayılımdan elde edilen türevlerin kullanılması
Ders 3.5 — Geri yayılımdan elde edilen türevleri kullanma [Makine Öğrenimi için Sinir Ağları]
Çok katmanlı sinir ağlarında verimli bir şekilde öğrenmek için, tüm ağırlıklar için hata türevlerini elde etmek çok önemlidir. Bununla birlikte, bir öğrenme prosedürünü tam olarak belirlemek için ele alınması gereken başka hususlar da vardır.
Bu hususlardan biri, ağırlık güncellemelerinin sıklığını belirlemek ve büyük bir ağ kullanırken fazla uydurmayı önlemektir. Geri yayılım algoritması, tek bir eğitim durumuna dayalı olarak her ağırlık için türevleri verimli bir şekilde hesaplar, ancak tam bir öğrenme algoritması değildir. Uygun bir öğrenme prosedürü geliştirmek için ek faktörlerin belirtilmesi gerekir.
Optimum ağırlık setini keşfetmek için ağırlık türevlerini kullanırken optimizasyon sorunları devreye girer. Bir soru, ağırlıkların ne sıklıkta güncellenmesi gerektiğidir. Yaklaşımlardan biri, ağırlıkları her eğitim durumundan sonra güncellemek ve değişen hata türevleri nedeniyle zigzaglara neden olmaktır. Bununla birlikte, ortalama olarak, küçük ağırlık değişiklikleri doğru yöne götürebilir. Alternatif olarak, tam toplu eğitim, tüm eğitim verilerini gözden geçirmeyi, bireysel durumlardan hata türevlerini toplamayı ve bu yönde küçük bir adım atmayı içerir. Yine de bu yaklaşım, özellikle ilk ağırlıklar zayıfsa hesaplama açısından pahalı olabilir. Mini toplu öğrenme, ağırlıkları güncellemek için küçük bir eğitim vakası örneğini rastgele seçerek bir uzlaşma sunar. Bu, hesaplama açısından verimli olmaya devam ederken zigzaglamayı azaltır, bu da onu büyük veri kümelerinde büyük sinir ağlarını eğitmek için yaygın olarak kullanılır hale getirir.
Ağırlık güncellemelerinin büyüklüğünü belirlemek başka bir optimizasyon konusudur. Manuel olarak sabit bir öğrenme oranı seçmek yerine, öğrenme oranını uyarlamak genellikle daha mantıklıdır. Örneğin, hata salınırsa öğrenme oranı azaltılabilirken, istikrarlı bir ilerleme sağlanırsa öğrenme oranı arttırılabilir. Bazı ağırlıkların diğerlerinden daha hızlı öğrenmesini sağlamak için ağdaki farklı bağlantılara farklı öğrenme hızları atamak bile mümkündür. Ek olarak, en dik iniş yönünü kesin olarak takip etmek yerine, daha iyi bir yakınsamaya yol açan alternatif yönleri keşfetmek faydalı olabilir. Ancak, bu alternatif yönleri bulmak zor olabilir.
İkinci konu grubu, öğrenilen ağırlıkların görünmeyen durumlara ne kadar genelleştirildiği ile ilgilidir. Eğitim verileri, hem düzenlilikler hem de iki tür gürültü hakkında bilgi içerir. İlk tip, genellikle küçük bir sorun olan güvenilir olmayan hedef değerlerdir. İkinci tip, seçilen belirli eğitim durumları nedeniyle tesadüfi düzenliliklerin ortaya çıkabileceği örnekleme hatasıdır. Modeller, rastlantısal düzenlilikler ile iyi genelleme yapan gerçek düzenlilikler arasında ayrım yapamaz. Bu nedenle, modeller her iki düzenliliğe de uyma eğilimindedir ve model çok karmaşıksa zayıf genellemeye yol açar.
Aşırı uydurmayı ele almak için, sinir ağları ve diğer modeller için çeşitli teknikler geliştirilmiştir. Bu teknikler, modeli basitleştirmek için ağırlıkların küçük veya sıfırda tutulduğu ağırlık azaltmayı ve karmaşıklığı azaltmak için birçok ağırlığın aynı değere sahip olduğu ağırlık paylaşımını içerir. Erken durdurma, eğitim sırasında sahte bir test setinin izlenmesini ve sahte test setindeki performans bozulmaya başladığında durmayı içerir. Model ortalaması, hataları azaltmak için birden fazla sinir ağının eğitilmesini ve tahminlerinin ortalamasının alınmasını gerektirir. Sinir ağlarının Bayes uyumu, Bayes ilkelerini içeren bir model ortalaması alma biçimidir. Bırakma, eğitim sırasında gizli birimleri rastgele atlayarak model sağlamlığını artıran bir tekniktir. Daha ileri bir yaklaşım olan üretken ön eğitim, kursun ilerleyen kısımlarında tartışılacaktır.
Çok katmanlı bir ağda tüm ağırlıklar için hata türevlerinin elde edilmesi verimli öğrenme için gereklidir. Bununla birlikte, eksiksiz bir öğrenme prosedürü geliştirmek için, ağırlık güncelleme sıklığı, fazla uydurmanın önlenmesi, optimizasyon teknikleri ve görünmeyen durumlara genelleme gibi diğer faktörler dikkate alınmalı ve ele alınmalıdır.