Nöral Ağlar

menu icon

Nöral Ağlar

Nöral ağlar insan beyninin davranışlarını yansıtır ve bilgisayar programlarının yapay zeka, makine öğrenmesi ve derin öğrenme alanlarındaki yaygın sorunları algılayıp çözmelerine olanak tanır.

Nöral ağlar nedir?

Yapay nöral ağlar (ANN) ya da benzetimli nöral ağları (SNN) olarak da bilinen nöral ağlar, makine öğrenmesinin bir alt kümesidir ve derin öğrenme algoritmalarının temelini oluşturur. Biyolojik nöronların birbirine sinyal göndermesini taklit ettiğinden, ismini ve yapısını insan beyninden alır.

Yapay nöral ağlar (ANN) bir giriş katmanı, bir ya da daha fazla gizli katman ve bir çıkış katmanı içeren düğüm katmanlarından oluşur. Her düğüm ya da yapay nöron birbirine bağlanır ve ilişkili bir ağırlığa ve eşiğe sahiptir. Üstteki herhangi bir bireysel düğümün çıkışı belirtilen eşik değerin üzerindeyse, bu düğüm aktifleşir ve sonraki ağ katmanına veri gönderir. Aksi takdirde, ağın bir sonraki katmanına veri iletilmez.

İleri beslemeli bir nöral ağın giriş katmanının, gizli katmanlarının ve çıkış katmanının görsel çizgesi.

Nöral ağlar, öğrenmek ve zaman içinde doğruluklarını geliştirmek için eğitim verilerine dayanır. Ancak, bu öğrenme algoritmaları doğruluk için ince ayar yapıldıktan sonra, verileri yüksek bir hızla sınıflandırmamıza ve kümelememize olanak sağlayan bilgisayar bilimi ve yapay zeka alanında güçlü araçlar haline gelirler. Konuşma tanıma ya da görüntü tanıma içindeki görevler, insan uzmanların manuel olarak belirlemelerine kıyasla saatler yerine dakikalar sürebilir. En bilinen nöral ağlardan biri Google'ın arama algoritmasıdır.

Nöral ağlar nasıl çalışır?

Her bir düğümü, giriş verilerinden, ağırlıklardan, bir yanlılıktan (veya eşikten) ve bir çıkıştan oluşan kendi doğrusal regresyon modeli olarak düşünün. Formül şöyle görünecektir:

Toplam değeri belirlemek için kullanılan matematiksel formül

∑wixi + bias = w1x1 + w2x2 + w3x3 + bias

Çıktıyı belirlemek için kullanılan matematiksel formül

output = f(x) = 1 if ∑w1x1 + b> = 0; 0 if ∑w1x1 + b < 0

Bir giriş katmanı belirlendikten sonra ağırlıklar atanır. Bu ağırlıklar, herhangi bir değişkenin önemini belirlemeye yardımcı olurken, daha büyük olanlar, diğer girişlerle karşılaştırıldığında çıkışa daha fazla katkıda bulunur. Tüm girişler, ilgili ağırlıkları ile çarpılır ve sonra toplanır. Daha sonra, çıkış, kendisini belirleyen bir etkinleştirme işlevinden geçirilir. Bu çıkış belirli bir eşiği aşarsa, düğümü "ateşler" (ya da etkinleştirir) ve verileri ağdaki bir sonraki katmana geçirir. Bunun sonucunda bir düğümün çıkışı, sonraki düğümün girişi haline gelir. Bir katmandan sonraki katmana veri aktarma işlemi bu nöral ağı ileri beslemeli bir ağ olarak tanımlar.

İkili değerleri kullanırken tek bir düğümün nasıl görüneceğini detaylı olarak inceleyelim. Bu konsepti daha somut bir örneğe uyarlayabiliriz; örneğin sörf yapmaya gitmeli misiniz, yoksa gitmemeli misiniz? (Evet: 1, Hayır: 0). Gitme veya gitmeme kararı, öngörülen sonucumuz, yani y-hat'imiz. Karar vermenizde üç etken olduğunu varsayalım:

  1. Çok dalga var mı? (Evet: 1, Hayır: 0)
  2. Çok sıra var mı? (Evet: 1, Hayır: 0)
  3. Son zamanlarda bir köpekbalığı saldırısı oldu mu? (Evet: 0, Hayır: 1)

O halde, bize aşağıdaki girdi veren şu durumların geçerli olduğunu varsayalım:

  • Dalgalar çok şiddetli olduğu için, X1 = 1
  • Dışarısı çok kalabalık olduğu için, X2 = 0
  • Son zamanlarda bir köpekbalığı saldırısı olmadığı için, X3 = 1

Şimdi, önemi belirlemek için bazı ağırlıkları atamamız gerekiyor. Daha büyük ağırlıklar, belirli değişkenlerin karar ya da sonuç için daha büyük önem taşıdığı anlamına gelir.

  • Büyük dalgalar sık sık gelmediği için, W1 = 5
  • Kalabalıklara alışık olduğunuzdan, W2 =2
  • Köpekbalıklarından korkmadığınızdan, W3 = 4

Son olarak, eşik değerini 3 olarak varsayalım; bu da yanlılık değerinin -3 olduğu anlamına gelir. Tüm bu girdilerle, istenen çıktıyı elde etmek için formüllere değerler eklemeye başlayabiliriz.

Y-hat = (1*5) + (0*2) + (1*4) – 3 = 6

Bu bölümün başından itibaren aktivasyon işlevini kullanırsak, 6'nın 0'dan daha büyük olduğu düşünüldüğünde, bu düğümün çıktısının 1 olacağını belirleyebiliriz. Bu örnekte sörf yapmaya gidersiniz; ama ağırlıkları ya da eşiği düzenlersek, modelden farklı sonuçlar elde edebiliriz. Yukarıdaki örnekte olduğu gibi bir kararı gözlemlediğimizde, bir nöral ağın önceki kararların ya da katmanların çıktısına bağlı olarak giderek nasıl daha karmaşık kararlar yaratabileceğini görebiliriz.

Yukarıdaki örnekte, burada rol oynayan matematiğin bir kısmını göstermek için algılayıcıları (perceptrons) kullandık; ancak nöral ağlar, 0 ile 1 arasında değerlere sahip olmak suretiyle ayrılan sigmoit nöronlarından yararlanır. Nöral ağlar karar ağaçlarına benzer bir şekilde hareket ettiğinden, bir düğümden diğerine basamaklanan verilerin, 0 ile 1 arasında x değerlerine sahip olması, tek bir değişkeni değiştirmenin herhangi bir düğümün çıktısı ve ardından nöral ağın çıktısı üzerindeki etkisini azaltacaktır.

Nöral ağlar için, görüntü tanıma veya sınıflandırma gibi daha pratik kullanım senaryoları üzerinde düşünmeye başladıkça, algoritmayı eğitmek için denetimli öğrenmeyi ya da veri kümelerini kullanacağız. Modeli eğittikçe, bir maliyet (ya da kayıp) fonksiyonu kullanarak doğruluğunu değerlendirmek isteyeceğiz. Bu, genel olarak ortalama karekök hatası (MSE) olarak da adlandırılır. Aşağıdaki denklemde,

  • i, örneğin dizinini temsil eder,
  • y-şapka tahmin edilen sonuçtur,
  • y gerçek değerdir ve
  • m, örneklerin sayısıdır.
Maliyet fonksiyonunu belirlemek için kullanılan matematiksel formül

𝐶𝑜𝑠𝑡 𝐹𝑢𝑛𝑐𝑡𝑖𝑜𝑛 = 𝑀𝑆𝐸 =1/2𝑚 ∑129_(𝑖 =1)^𝑚▒(𝑦 ̂^((𝑖) )−𝑦^((𝑖) ) )^2

Nihayetinde amaç, belirli herhangi bir gözlemin doğruluğunu sağlamak için maliyet fonksiyonumuzu en aza indirmeyi sağlamaktır. Model, ağırlıklarını ve yanlılığı düzenledikçe, yakınsama noktasına ya da yerel alt sınıra ulaşmak için maliyet işlevini ve pekiştirmeli öğrenmeyi kullanır. Algoritma, ağırlıklarını gradyan inişi yoluyla ayarlayarak, modelin hataları azaltmak (ya da maliyet fonksiyonunu en aza indirgemek) için gideceği belirlemesine olanak sağlar. Her eğitim örneğiyle, modelin parametreleri, yavaş yavaş minimum seviyede birleşecek şekilde ayarlanır.

Yakınsama noktasını gösteren çizgi grafiği

Nöral ağlar kapsamındaki nicel kavramlara dair daha ayrıntılı bir açıklama için bu IBM Developer makalesini inceleyin.

Çoğu derin nöral ağlar ileri beslemelidir, yani sadece tek bir yönde, girişten çıkışa doğru akarlar. Ancak, modelinizi geri yayılım yoluyla, yani çıkıştan girişe olmak üzere karşı yönde hareket ederek de eğitebilirsiniz. Geri yayılım, her nöronla ilişkilendirilen hatayı hesaplayıp sınıflandırmamıza olanak tanıyarak, model(ler)in parametresini düzenleyebilmemizi ve uyarlayabilmemizi sağlar.

Nöral ağ tipleri

Nöral ağlar farklı amaçlar için kullanılan farklı tiplerde sınıflandırılabilir. Bu, kapsamlı bir tip listesi olmamakla birlikte, aşağıdakiler, yaygın kullanım senaryolarında karşınıza çıkacak en yaygın nöral ağ tiplerini temsil etmektedir:

Perceptron, 1958 yılında Frank Rosenblatt tarafından yaratılan en eski nöral ağdır. Tek bir nörona sahiptir ve bir nöral ağın en basit halidir:

Çizgilerin ve mavi bir dairenin kullanıldığı basit bir algılayıcı çizgesi

Bu makalede ana odak noktamız, ileri beslemeli nöral ağlar, ya da çok katmanlı algılayıcılardır (MLP). Bunlar bir giriş katmanından, gizli bir katmandan ya da katmanlardan ve bir çıkış katmanından oluşur. Bu nöral ağlar genel olarak MLP'ler olarak adlandırılsa da, gerçek dünya sorunları doğrusal olmadığından, algılayıcılar yerine sigmoit nöronlardan oluştuğunu belirtmek önemlidir. Veriler, genellikle bu modelleri eğitmek için onların içerisine beslenir ve bilgisayar vizyonunun, doğal dil işlemenin ve diğer nöral ağların temelini oluşturur.

Eşzamansal nöral ağlar (CNN) beslemeli ağlara benzer; ancak genellikle görüntü tanıma, örüntü tanıma ve/veya bilgisayarlı görme için kullanılırlar. Bu ağlar, bir görseldeki örüntüleri tanımlamak için özellikle matris çarpımı olmak üzere doğrusal cebir ilkelerinden faydalanır.

Özyinelemeli nöral ağlar (RNN), geribildirim döngüleriyle tanımlanır. Bu öğrenme algoritmalarından, öncelikle borsa tahminleri ya da satış öngörüleri gibi gelecek sonuçlar hakkında tahminler yapmak amacıyla zaman dizisi verileri kullanırken faydalanılır.

Nöral ağlar ile derin öğrenme karşılaştırması

Derin Öğrenme ve nöral ağlar karşılıklı olarak etkileşim içinde kullanılmaya eğilimlidir, bu da kafa karıştırıcı olabilir. Sonuç olarak, derin öğrenmede "derin" ifadesinin bir sinir ağındaki katmanların derinliğine atıfta bulunduğunu belirtmek gerekir. Girdilerin ve çıktının da dahil olduğu, üç katmandan daha fazlasını içeren bir nöral ağ, bir derin öğrenme algoritması olarak görülebilir. Sadece iki veya üç katmana sahip bir nöral ağ, temel bir nöral ağdır.

Nöral ağlar ve yapay zekanın makine öğrenimi gibi diğer türleri arasındaki farklar hakkında daha fazla bilgi edinmek için, lütfen "Yapay Zeka, Makine Öğrenmesi, Derin Öğrenme ve Nöral Ağlar: Aralarındaki Farklar Nelerdir?" başlıklı blog gönderisini okuyun.

Nöral ağların tarihi

Nöral ağların tarihi çoğu kişinin düşündüğünden daha eskiye dayanır. "Düşünebilen bir makine" fikri Eski Yunanlılara kadar uzansa da, popülerliği son yıllarda azalıp artan nöral ağlar çerçevesinde, düşünme devrimine önayak olan önemli olaylara odaklanacağız:

1943: Warren S. McCulloch ve Walter Pitts, "A logical calculus of the ideas immanent in nervous activity (PDF, 1 MB) (bağlantı IBM dışındadır) başlıklı makalelerini yayımladılar. Bu araştırmada, insan beyninin bağlanan beyin hücreleri ya da norönlar yoluyla nasıl karmaşık örüntüler üretebildiğini anlamaya yönünde adımlar atıldı. Bu çalışmanın ortaya çıkardığı ana fikirlerden biri, ikili eşiğe sahip nöronların Boolean mantığıyla kıyaslanmasıydı (yani 0/1 ya da doğru/yanlış beyanları).

1958: Frank Rosenblatt, “The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain” (PDF, 1.6 MB) (bağlantı IBM dışındadır) adlı çalışmasıyla, algılayıcıyı ilk geliştiren kişi olarak görülür. Kendisi, McCulloch ve Pitt 'in çalışmalarını, denklemlere ağırlık tanıtarak bir adım daha ileri götürmeye çalıştı. Bir IBM 704'ten yararlanan Rosenblatt, bir bilgisayarın sağdaki işaretli kartlarla soldaki işaretli kartları ayırt etmesini sağlamayı başardı.

1974: Pek çok araştırmacı geri yayılım fikrine katkıda bulunmuş olsa da, Paul Werbos kendi doktora tezinde (PDF, 8.1 MB) (bağlantı IBM dışındadır) ABD'de geri yayılımın nöral ağlar içindeki uygulamasını belirten ilk kişiydi.

1989: Yann LeCun, geri yayılımdaki kısıtlamaların ve nöral ağ ile bütünleştirilmesnin algoritmaları eğitmek için nasıl kullanılabileceğini ortaya koyan bir makale (PDF; 5.7 MB) yayımladı. Bu araştırma, ABD Posta İdaresi tarafından sağlanan el yazılı posta kodu rakamlarının tanınması için bir nöral ağı başarıyla kullanmış oldu.

Nöral ağlar ve IBM Cloud

On yıllardan bu yana, IBM Watson'ın geliştirilmesi ve yaşadığı dönüşümün de ortaya koyduğu üzere, IBM yapay zeka teknolojilerinin ve nöral ağların geliştirilmesinde bir öncü olmuştur. Watson, yapay zeka benimseme ve uygulamaya yönelik olarak kanıtlanmış, katmanlı bir yaklaşım kullanarak gelişmiş doğal dil işleme ve derin öğrenme tekniklerini sistemlerine uygulamak isteyen işletmeler için artık güvenilir bir çözüm.

Watson, güçlü derin öğrenme yeteneklerini uygulamaların kullanımına sunmak için Apache Unstructured Information Management Architecture (UIMA) çerçevesini ve IBM'in DeepQA yazılımını kullanır. IBM Watson Studio gibi araçları kullanarak, işletmeniz açık kaynak kodlu yapay zeka projelerini üretime sorunsuzca taşırken, bir yandan da tüm bulutlarda modeller devreye alabilir ve çalıştırabilir.

Derin öğrenme teknolojisiyle çalışmaya nasıl başlayabileceğiniz hakkında daha fazla bilgi için, IBM Watson Studio'yu ve Derin Öğrenme hizmetini keşfedin.

Bir IBMid almak için kaydolun ve IBM Cloud hesabınızı oluşturun.