Herkese yeniden merhabalar. Yapay sinir ağları serisine bir süre ara vermiştim. Bu yazımla birlikte tekrar dönmüş bulunmaktayım. “Ağ Yapıları ve Bağlantılar” isimli yazımda ağ yapıları hakkında bilgiler vermiştim. Artık ağların eğitimine ve ağın öğrenmesine giriş yapabiliriz.

Öğrenme; gözlem, eğitim ve hareketlerin doğal yapıda meydana gelen değişiklik olarak tanımlanır. Zamanla yeni bilgiler keşfedildikçe davranışlar da gelişir veya iyileşir. İşte tüm bu durumlar “öğrenme” olarak adlandırılır. Öğrenme durumunu makinelere uyarladığımızda da karşımıza makine öğrenmesi kavramı çıkar. Makine öğrenmesi ise  bilgisayarların algılayıcı verisi veya veritabanları gibi veri türlerine dayalı öğrenimini olanaklı kılan algoritmaların tasarım ve geliştirme süreçlerini konu edinen bir bilim dalıdır. Veriler üzerinde işlemler yapılarak belli çıkarımlarda ve tahminlerde bulunulur ve o sistemler bilgisayarlar ile modellenir.

Yapay sinir ağları, kendilerine gösterilen girdilere göre ilgili çıktıları üretirler. Bu işlem için ağın eğitilmesi gerekir. Nasıl ki biz bir şeyleri öğrenmek için önce derse girip konuları öğreniyoruz, sonrasında da bu bilgileri sınavla birlikte sınama imkanı buluyoruz. İşte ağlarda da böyle bir durum söz konusu oluyor; önce eğitim sonra test. Tabi bu adımların yapılabilmesi için bağlantı ağırlıkları ve eşik değerleri de rastgele atanmalıdır. YSA, kendisine gösterilen eğitim setini, bağlantı ağırlıklarını değiştirerek devam ettirir. Bu sayede eğitim durumu sağlanır. Yani; ağırlık değerlerinin belirlenmesi “ağın eğitilmesi” olarak adlandırılır.

Yapay sinir ağlarında öğrenme ve öğrendiği en doğru bilgiyi uygulayabilme prensibi esastır.

Ağ Eğitimi Nasıl Gerçekleşir?

Ağ yapılandırıldıktan sonra artık ağın eğitimine geçilir. Veriler ağa tanıtılır ve ilgili problemin yapısına göre ağın verileri öğrenme aşaması başlar. Başlangıçta gerekli olan ağırlıklar rassal olarak seçilir ve işlemler yapılır. Bu esnada karşımıza yeni bir kavram çıkar: Eğitim seti.

Eğitim için kullanmış olduğumuz veri setine “eğitim seti” adı verilir.

Eğitim ve Öğrenme Aynı Anlama Mı Gelir?

Yapay sinir ağları öğrenme algoritması ve aktivasyon fonksiyonu olmak üzere iki temel bileşenden oluşur.

Ağın sahip olduğu ağırlıklar veriler için en uygun değerler olmalı, bu şekilde en uygun değerler bulunur. Ağırlıklar zaten en uygun değeri bulmaya odaklanır ve bu durum ağın eğitilmesidir. Öğrenme işlemi ise eğitim aşamasının sonucudur.

Alfabeyi yeni öğrenmeye başlayan bir çocuk, önce harfleri anlamaya çalışır ve bunun için belli bir zaman geçer. Bu durum ağın eğitilmesine karşılık gelir. Daha çok örnek gösterildikçe ve alfabeye daha fazla maruz bırakıldıkça bir süre sonra harfleri anlar ve öğrenir. İşte bu kısım da öğrenme kavramıdır. Ne kadar fazla örnek olursa hata sayısı da o kadar az olur.

Fakat örnek sayısı da belli bir düzeyde olmalıdır. Çünkü örnekler, belli bir sayının üzerine geçtiğinde artık öğrenme işlemi yerine ağ, örnekleri ezberler ve doğru sonuçlar vermeyebilir. O nedenle bu ayarın da uygun bir biçimde yapılması gerekir.

Eğitim ve Test Verilerinin Ayrımı

Bir YSA tasarlaması yapılırken veriler eğitim ve test verileri olmak üzere 2 bölüme ayrılır. Eğitim verileri, ağın eğitilmesi ve geliştirilmesi için kullanılırken(eğitim seti) performans değerlendirmesi için de test verileri kullanılır. Yani eğitim seti; modelin eğitildiği veri kümesidir. Test seti ise bir eğitim kümesinde geliştirilen modeli değerlendirmek için kullanılan veri kümesi olarak adlandırılır. Bu nedenle verilerin ayrımı için belli kriterler geliştirilmiştir ve genelde veriler arasında yapılacak eğitim ve test veri ayrımı o kriterler ile yapılır. Ayrıca bir de doğrulama setleri var ama bu veri setini farklı bir yazıda tekrar göreceğiz şimdilik iki kısma ayırarak ilerleyelim.

Peki Nedir Bu Ayrım?

Verilerin genelde %80-%20 şeklinde ayrılması öneriliyor. Yani elinizdeki veri setinin %80’i eğitim veri seti, kalan %20’si ise test verisi olarak kullanılıyor. Bu oran %70 eğitim veri setine %30 test veri seti olarak da karşımıza çıkabiliyor. Verilerin bu tarz oranlarda farklılık göstermesi eldeki probleme ve problemin yapısına da göre de değişmekte. YSA’nın amacı bulunması gereken en doğru sonucu bulabilmek veya sonuçlara en yakın çıktıyı üretmek olduğu için bu oranları uygun bir şekilde ayarlamak önemlidir.


Eğitim sonucunda elimizde bir çıktı değeri olur. Çıktı ile hedef değerler arasındaki fark ise hata olarak değerlendirilir. Ağ eğitimi birkaç kere daha yapıldığında ağ, hataları azaltmaya ve hedef değerlere daha çok yaklaşmaya çalışır. Yukarıdaki görselde ise bu hatanın grafiği yer almaktadır. W*, en az hatanın olduğu ağırlık vektörünü gösterir. Yani eğitim çıktılarının yakın olması gereken değerler. Eğitimin gerçekleştiği her iterasyon için ∆W kadarlık bir değişim uygulanır ve hatanın ∆E kadar düşmesi sağlanır. [Doç. Dr. Ersan Kabalcı(Yapay Sinir Ağları)]

Bir sonraki yazıda MATLAB programlama diline giriş yaparak verileri eğitim ve test olarak ayırmayı göreceğiz. Tekrar görüşmek dileğiyle.


What's Your Reaction?

hate hate
0
hate
fail fail
0
fail
fun fun
0
fun
geeky geeky
0
geeky
love love
0
love
lol lol
0
lol
omg omg
0
omg
win win
0
win
Elif Yönel

Merhaba, 8 Şubat 1997 doğumluyum ve Karadeniz Teknik Üniversitesi endüstri mühendisliği bölümünden yeni mezun oldum. Birkaç yıldır hem kendime ait blogumda hem de Industryolog Academy'de içerikler üretmekteyim. Hep birlikte nice yıllara..