Evrişimli Sinir Ağı Nasıl Çalışır | robot_dreams
should_authorize_via_email
email.input_code tel.input_code
 
email.code_actual_for tel.code_actual_for
apply_exit_text
session_ended
to_homepage
Evrişimli Sinir Ağı Nasıl Çalışır?

Evrişimli Sinir Ağı Nasıl Çalışır?

Tarih, mimarlık ve eğitimin temelleri

Evrişimli sinir ağları fikri 1950'lerde ortaya çıkmış ve bunlara olan ilgi, Toronto Üniversitesi'nden matematikçiler Alek Krizhevsky ve Jeff Hinton'un örüntü tanıma ImageNet yarışmasını kazandığı 2012'den sonra yeniden başlamıştır. İcat ettikleri yapay sinir ağları, görüntü kalifikasyon hatalarının sayısını %26'dan %15'e düşürerek, yeni bir rekor kırmıştır. Bu ağların bir kalabalığın içinde yüz tanıma algoritmalarının doğruluğu %99,8'dir (bir insandan kabiliyetinden fazla).

Bir bilgisayarın verileri çıkarmasına neler yardımcı olduğunu ve bir sinir ağını nasıl yönetildiğini size bu makalede anlatacağız.

Evrişimli sinir ağlarının kullanım amacı ve ortaya çıkması

Evrişimli sinir ağları, yapay sinir ağlarının bir türüdür. İki fonksiyonun bağlantısı olan evrişimin matematiksel işlemine dayanır. Önceki ikisinin kesişimini gösterecek üçüncü bir işlevin oluşturma imkanı sağlanır. Evrişim, görüntülerdeki sınırların bulunması için kullanılabilir. Bu nedenle, evrişimli sinir ağları, computer vision'da sıklıkla kullanılır ve cihazların grafik bilgilerini işlemesine, nesneleri algılamasına, bölümlere ayırmasına ve sınıflandırmasına yardımcı olur.

Her sinir ağının temelinde, yaşayan sinir hücrelerinin (nöronlar) iş organizasyonunu kopyalayan bir sistem vardır. Evrişimli sinir ağları için en yakın benzetme, insanın görsel sistemidir. Nöronların dendritleri, retinanın tüm reseptörlerinden değil, belirli bir bölgeden sinyal alır. Bazı nöronlar dikey şeritler gördüklerinde ateşlenirken, diğerleri yatay şeritler gördüklerinde ateşlenir. Nöronların toplanması, uzaydaki nesneleri ve ölçekleri tanımamızı sağlar.

Bir evrişimli sinir ağı da böyle bir mekanizma kullanır. Ağın içinde filtreler, sistemin resimde gösterileni tahmin etmesine izin veren belirli özellikleri arar.

Perceptron ve ilk sinir ağı

1957'de nörofizyolog Frank Rosenblat, beynin sibernetik modelini kopyalamaya çalıştığı Perceptron adlı bir matematiksel model yarattı. Ertesi yıl, 20x20 piksel görüntüleri analiz edebilen ve basit geometrik şekilleri tanıyabilen bir sistem geliştirdi. Rosenblat bir görüntü sınıflandırma sistemi kurmaya çalışmıyordu, beynin nasıl çalıştığı hakkında bilgi edinmek istiyordu. Ancak araştırması, sinir ağlarının yaratılmasına katkıda bulundu.

Bir sinir ağındaki her nöron matematiksel bir fonksiyondur. Giriş sinyalinin ağırlığı ne kadar büyükse, bu giriş nöronun çıkışını o kadar fazla etkiler. Nöronların çıktısı, doğrusal olmayan bir işleme tabi tutulur, bu işleme aktivasyon işlevi adı verilir. Amacı, bu değerin sonuçların çıktısına dahil edilip edilmeyeceğini belirlemektir.

Sinir ağlarının avantajı, örneklerden öğrenme yeteneğidir. Sinir ağı, nöronların ağırlıklarını ayarlayarak eğitilir. Ağ, görüntüleri doğru bir şekilde tanımlarsa, doğru cevaba katkıda bulunan ağırlıklar artar. Yanlışsa ters yönde düzeltir.

Sinir Ağlarının Çalışma Özelliği

Sinir ağları, örneğin bir motosikleti bir arabadan ayıran benzersiz bir özelliğe sahiptir. Bu özelliği gerçekleştirebilmek için sistemin en temel düzeydeki özellikleri (renkler, sınırlar, eğrilikler) genelleştirmesi ve bulması, ardından bunlara dayanarak daha soyut varsayımlar oluşturması gerekir.

İnsan gözü nesnelerdeki farklılıkları bulma yeteneğine sahiptir. Bir bilgisayar ise bir resmi işlerken daha önce girilen bir dizi pikseli alır. Örneğin, bir görüntü 32x32 pikselden oluşuyorsa, algoritma 32x32 (1024 öğeden oluşan) bir dizi oluşturur.

Renkli görüntüler işlenirse, tam renkli bir görüntü genellikle bir RGB modeliyle (kırmızı, yeşil, mavi) temsil edildiğinden, dizi 32x32x3 gibi görünür. Her bir renk bileşeni ayrı ayrı işlenecektir.

RGB modelindeki tüm renkler kırmızı, yeşil ve mavi bileşenlerinin birleşiminden oluşur. Her pikselin, 0'ın siyah ve 255'in en doygun yeşil, mavi veya kırmızı renk olduğu bir renk doygunluğu ölçeği vardır. Görüntü giriş sinyali (piksel değerleri), nöronun girişine yalnızca, örneğin, 5x5 piksel, küçük bir alanda beslenir. (alıcılı alan veya algısal alan olarak adlandırılır)

Bir nöron (çekirdek), belirli katsayılardan (ağırlıklar) oluşan bir matris olarak filtrelenebilir. Optimum değerler, sinir ağını eğitme sürecinde belirlenir.

Alıcı alanda parametre sayısı kadar katsayı olmalıdır. Nöron, filtrelenecek matris değerlerini piksel değerleriyle çarpar. Çarpımların sonucu toplanır. Ortaya çıkan sayı, resimdeki filtrenin konumunu gösterir. Bu işlem evrişim olarak adlandırılır. Örneğin, 32x32 boyutunda bir resimde filtrenin vurgulayabileceği 784 kare vardır. Bu sayılar 28x28'lik bir matris oluşturur. Daha sonra alıcı alan örneğin 1 piksel belirli bir adıma kaydırılır. Katmandaki tüm nöronların ağırlık katsayıları aynıdır, sadece piksel değerleri değişir. Daha sonra ağırlıklar ve yeni değerler çarpılır. Tarama, farklı ağırlık katsayıları ile tekrarlanır. Başka bir nöron grubunu elde ediyoruz. Bu işlem, isteğe bağlı sayıda tekrar edilebilir.

Evrişim, görüntü özelliklerini (çizgiler, daireler, eğriler) bulmaya yardımcı olur. Örneğin, bir oda görüntüsünde filtrelerden biri yatay çizgileri, ikincisi dikey çizgileri, üçüncüsü ise eğimli çizgileri arıyor. Görüntüyü filtrelerden geçirdiğimizde, ilk durumda çıktıda belirgin bir yatay çizgi seçimi olan bir görüntü, ikincisinde dikey bir görüntü elde ediyoruz.


Filtrelerin görselleştirilmesi ve görüntü özelliklerinin tanımı / Proproprogs

Bu işlem, filtre değerlerini orijinal piksel değerleriyle çarparak elde edilir. Filtre ve piksel değerlerinin çarpılması, görüntünün bir bölümünde uygun özellikler göründüğünde daha fazla ağırlık verilmesini sağlar ve böylece nöronlar aktive edilir.


Alıcı Alandaki Filtre Değerlerini Piksel Değerleriyle Çarpma/ Neural Networks and Deep Learning, Michael Nielsen

Bu, sistemin görüntünün o kısmında filtreyle eşleşen bir şey olduğunu varsaymasını sağlar.


Görüntü ve filtre görselleştirmesi / Neural Networks и Deep Learning, Michael Nielsen

Sonuç olarak, her biri bir özellikten sorumlu olan bir dizi özellik haritası olarak da bilinen kanallar elde edilir. Bu nedenle, sinir ağları genellikle çok kanallıdır. Haritalar, görüntüde belirli bir konumda bir özelliğin varlığını gösterir. Bu tür işaretlerin birçok bölgede varsa, bu alanlarla ilişkili birkaç nöron yanıt verecektir.

Bir sonraki katman verileri genelleştirebilir. Örneğin, geometrik şekilleri bulabilir ve daha gelişmiş filtre seviyelerinde, resimde el yazısı metin veya belli bir renkteki bir nesne olduğunda insanları tanıyabilir veya etkinleştirebilir.

Pooling Nedir?

Hesaplanan özellikleri daha büyük bir ölçekte analiz etmek için, özellik haritalarının boyutu küçültülür. Pooling katmanı, evrişim katmanından alınan görüntüyü küçük alanlara (örneğin 2x2 kareler) böler ve yalnızca en büyük değere sahip pikseli bırakır. Sonuç olarak, piksel sayısı birkaç kez azalır ve bir sonraki katmanın nöronları, görüntüdeki daha genel özellikleri vurgulayabilir.

Tam bağlantılı katman nedir?

Yapay sinir ağının tam bağlantılı katmanındaki nöronlar, giriş katmanındaki tüm nöronlarla birleştirilir. Genellikle bu son katmandır. Sinir ağının çıktısını verir ve çalıştığı doğrusal olmayan fonksiyonun sonuçlarını döndürmelidir. Görüntüyü işlemek için önceki tüm katmanlara ihtiyaç duyulurken, tamamen bağlantılı bir katman ise resimde ne olduğunu belirlemeli veya belirli bir öğeyi bulmalı ve temel özellikleri vurgulamalı ve sınıflandırma yapmalıdır.

Tamamen bağlantılı bir katmanda farklı ağırlıklara sahip birçok nöron vardır, bu nedenle sonuçları göstermek için bir nöron vektörü kullanılır. Örneğin, taşıma türlerini belirlemek için bir sinir ağı oluşturuldu. Görevi, bir nesnenin 20 sınıftan hangisine ait olduğunu belirlemektir. Algoritma, [0; 0; … 0.1; 0; 0.9]. 0.1 puan alan sınıf bisiklet, 0.9 puan alan sınıf ise motosiklettir. O zaman resimde motosiklet olma olasılığı %90 olur ve sinir ağı böyle bir tahminde bulunur.

Bir sinir ağı nasıl eğitilir?

Sinir ağı, nöronların optimal ağırlıklarını seçmeyi ve geri yayılım yöntemini kullanarak tahminler yapmayı öğrenir.

İlk olarak, eğitim görüntüsü tüm ağdan geçirilir. Bu aşamada, ağırlıklar rastgele ayarlanır, bu nedenle ağ, çıkışta birkaç özellik belirleyecek ve resimde gösterilenleri doğru bir şekilde yanıt veremeyecektir. Böylece, algoritmanın gerçek çıktısının tahmin edilenden ne kadar farklı olduğunu ifade eden kayıp fonksiyonu değerlendirilebilir.

Daha sonra, çıkışa en yakın nöronlardan başlayarak ağırlıklar ayarlanır. Bu, kayıp fonksiyonunu azaltır ve geri yayılım olarak adlandırılır. Veri kümesinin her iki yönde bir geçişi bir dönem olarak adlandırılır. Çağların evrensel bir sayısı yoktur.

Öğrenme hızından etkilenen yinelemeli bir süreçtir. Yüksek hız, ağırlıkların daha fazla değiştiği ve algoritmanın ayarlanmasının daha az zaman aldığı anlamına gelir. Ancak bu durumda, algoritma yeterince doğru olmayabilir. Tersine, algoritma veri kümesi örneklerini hatırladığında, ancak verileri genelleştirmede başarısız olduğunda, çok fazla dönem aşırı uyuma yol açacaktır. Eğitimin görevi, eğitim veri setinde olmayan gerçek verilere dayalı tahminler yapabilen bir sistem oluşturmaktır.

Daha fazla makale
Mustafa Çamurlu ile yaptığımız röportajda, yazılım mimarisi alanında mikroservis, serverless ve event-driven mimarilerinin önemi ve yüksek trafikli uygulamalarda karşılaşılan zorlukları konuştuk.
Yüksek Trafikli Yazılım Mimarisi Eğitimimize katılın ve dijital dünyada fark yaratma fırsatını yakalayın!