"Enter"a basıp içeriğe geçin

Yapay Sinir Ağları (Artificial Neural Networks)

Yapay sinir ağları makine öğrenmesi alanının en gözde modellerindendir. Bu şekilde olmasının bir kaç nedeni var elbette. Hızlıca sayarsak; sinir hücrelerinden esinlenilerek yapılabilmesi, katman sayısının ve her katmandaki düğüm (node) sayısının dilendiğince değiştirilebilmesi, esnek kullanımı, derin öğrenmenin kapılarını açması önde gelen sebeplerdendir.

Yapay Sinir Ağları (Artificial Neural Networks-ANN ya da NN olarak karşılaşabilirsiniz) ilk paragrafta adı geçtiği üzere düğümlerden (node’lardan)) oluşmaktadır. Modelleme yapmaya çalıştığınız veri setinin (data set) karmaşıklığına göre düğüm sayısını artırmanız mümkün. Düğüm denilen yapılar aslında birer fonksiyon ve genellikle y=mx+b şeklinde ifade edilebilen doğrusal fonksiyonlardan ibaret. Ancak bunlardan 2 tanesini dahi aşağıdaki görseldeki şekilde bir araya getirdiğimizde doğrusal olmayan (non-linear) alanların sınırlarını çizme yetisini gösterebiliyorlar.

Bu grafik 2 boyuta/özelliğe (dimention – feature) – burada x ve y – ve bir etikete (label) sahip olan (sarı ve kahverengi renkler) veri setlerinde göstermek ve genel prensibi anlamak için kullanışlı olsa da çoğu kez veri setleriniz çok sayıda özelliğe (feature) ve modeliniz de paralel olarak çok sayıda düğüme sahip olacağından bu şekilde çizmek mümkün olmayacaktır. Hemen her zaman aşağıdaki yapıda bir görsel ile karşılaşacaksınız :

Yukarıda 4 özelliğe/boyuta sahip bir veri setini girdi (input) olarak kabul edip tek 3 katmanlı ve toplam 12 düğüme (node’a) ve bir output düğümüne sahip bir yapay sinir ağı görüyorsunuz. Farklı kullanımlar mümkünse de genel olarak her bir katmandaki tüm düğümler kendinden sonra gelen katmandaki tüm düğümlere -başlangıçta rastgele çarpanlara sahip – bağlar ile bağlıdırlar. Örneğin, X4 özelliği input layer’dan kendinden sonra gelen katmanda bulunan 6 düğüme farklı ağırlıklarla (weight) çarpılarak girdi oluyor. Her düğüm kendisine farklı ağırlıklarla çarpılarak gelen değerlerin toplamını kendi üzerindeki değerin altında mı yoksa üzerinde mi olduğuna bakarak 1 ya da 0 değerini kendinden sonra gelen katmanın üzerindeki düğümlere yine farklı ağırlıklarla çarparak iletiyor.

Node’lar her zaman içerisinde bulunan değerle karşılaştırmada bulunmayabiliyor. Kulak dolgunluğu olması açısından kendilerine gelen değeri Linear, ReLU, tanh, sigmoid fonksiyonları ile dönüştürmek de oldukça yaygın yöntemler. Çalıştığınız veri setine göre daha iyi ya da kötü sonuçlar doğurabilecektir. Bu kısmı ileri ünitelerde daha detaylı işleyeceğiz.

Buraya kadar anlatılan literatürde feed forward olarak karşılaşacağınız ileri besleme kısmı idi. Bu kısımla ilgili animatif görsel serisini aşağıda inceleyebilirsiniz:

Şimdi bir yapay sinir ağını bir resimdeki meyvenin elma mı yoksa armut mu olduğunu cevaplamak istediğinizi düşünün. Yukarıdaki animasyonda olduğu gibi henüz hiç eğitilmemiş (train edilmemiş) bir ağ buna rastgele bir cevap dönecek ve bu bir elma diyecektir. Bu cevabın gerçekte armut olduğunu varsayalım. algoritmamız örnek veri setinde ilgili örnek veri için bilinen doğru cevap ile modelin verdiği cevabı karşılaştırabilir. Bu karşılaştırma ile yaptığı hatayı fark eder ve geriye doğru yaptığı hatadan ders çıkararak W ve b değerlerini daha önce mantığını kısaca kavradığımız Gradient Descent metodu ile ya da artık pek kullanılmayan perceptron algoritması ile güncelleyerek daha iyiye varmaya çalışır. Geriye doğru giderek ağırlıkları (W ya da weight) ve b (bias) değerlerini güncelleyerek daha iyi sonuç verecek değerlere ulaşmaya çalışan bu sürece ise geri yayılım (back propagation) denir ki bu konuyu da ileride farklı yönleri ile detaylıca irdeleyeceğiz.

Bir elmayı yapay sinir ağınızı eğitmek için kaç defa kullanacağınız bilgisi karşınıza epoch olarak çıkacaktır.

Genel hatları ile yapay sinir ağlarını da kavradık ve ilk defa eğitim (train) kelimesini de kullanarak kelime dağarcığımızı genişlettik.

Keyifli Öğrenmeler 🙂

İlk Yorumu Siz Yapın

Bir Cevap Yazın

Translate »
%d blogcu bunu beğendi: