Yapay Sinir Ağları
Yapay Sinir Ağı veya kısaca sinir ağı yeni bir fikir değil. Yaklaşık 80 yıldır ortalıkta.
Derin Sinir Ağlarının yeni teknikler, büyük veri seti kullanılabilirliği ve güçlü bilgisayarların kullanımıyla popüler hale geldiği 2011 yılına kadar değildi.
Bir sinir ağı, dendritlere, çekirdeğe, aksona ve terminal aksona sahip bir nöronu taklit eder.
Bir ağ için iki nörona ihtiyacımız var. Bu nöronlar, birinin dendritleri ile diğerinin terminal aksonu arasındaki sinaps yoluyla bilgi aktarır.
Yapay bir nöronun olası bir modeli şuna benzer -
Bir sinir ağı aşağıda gösterildiği gibi görünecektir -
Daireler nöronlar veya düğümlerdir, veri üzerindeki işlevleri ve bunları birbirine bağlayan çizgiler / kenarlar, aktarılan ağırlıklar / bilgilerdir.
Her sütun bir katmandır. Verilerinizin ilk katmanı giriş katmanıdır. Ardından, giriş katmanı ile çıktı katmanı arasındaki tüm katmanlar gizli katmanlardır.
Bir veya birkaç gizli katmanınız varsa, sığ bir sinir ağınız vardır. Çok sayıda gizli katmanınız varsa, derin bir sinir ağınız var demektir.
Bu modelde, girdi verileriniz var, onu tartıyorsunuz ve nörondaki eşik işlevi veya aktivasyon işlevi adı verilen işlevden geçiriyorsunuz.
Temel olarak, belirli bir değerle karşılaştırıldıktan sonra tüm değerlerin toplamıdır. Bir sinyal ateşlerseniz, sonuç (1) çıkar veya hiçbir şey ateşlenmez, sonra (0). Bu daha sonra ağırlıklandırılır ve bir sonraki nörona aktarılır ve aynı tür işlev çalıştırılır.
Aktivasyon fonksiyonu olarak sigmoid (s-şekli) fonksiyonumuz olabilir.
Ağırlıklara gelince, bunlar sadece rastgele başlamaktadır ve düğüm / nöron girişine göre benzersizdirler.
Tipik bir "ileri beslemeli", en temel sinir ağı türünde, bilgilerinizin doğrudan oluşturduğunuz ağdan geçmesini sağlarsınız ve çıktıyı, çıktının örnek verilerinizi kullanmasını umduğunuzla karşılaştırırsınız.
Buradan, çıktınızı istediğiniz çıktıya uyacak şekilde elde etmenize yardımcı olacak ağırlıkları ayarlamanız gerekir.
Doğrudan bir sinir ağı üzerinden veri gönderme eylemine feed forward neural network.
Verilerimiz sırasıyla girdiden katmanlara, sonra çıktıya gider.
Geriye dönüp, kaybı / maliyeti en aza indirmek için ağırlıkları ayarlamaya başladığımızda buna back propagation.
Bu bir optimization problem. Sinir ağı ile gerçek pratikte yüz binlerce değişkenle veya milyonlarca veya daha fazlasıyla uğraşmak zorundayız.
İlk çözüm, optimizasyon yöntemi olarak stokastik gradyan inişini kullanmaktı. Artık AdaGrad, Adam Optimizer ve benzeri seçenekler var. Her iki durumda da, bu çok büyük bir hesaplama işlemidir. Bu nedenle Sinir Ağları çoğunlukla yarım yüzyıldan fazla rafta kaldı. Çok kısa bir süre önce makinelerimizde bu işlemleri yapmayı düşünecek güce ve mimariye ve buna uygun boyutta veri kümelerine bile sahiptik.
Basit sınıflandırma görevleri için, sinir ağı K Nearest Neighbors gibi diğer basit algoritmalara performans açısından nispeten yakındır. Sinir ağlarının gerçek faydası, her ikisi de diğer makine öğrenimi modellerinden daha iyi performans gösteren çok daha büyük verilere ve çok daha karmaşık sorulara sahip olduğumuzda fark edilir.