Evrişimsel Sinir Ağı (CNN) için Başlangıç Kılavuzu
Yayınlanan: 2021-07-05Son on yılda Yapay Zeka ve daha akıllı makinelerde muazzam bir büyüme görüldü. Alan, insan zekasının farklı yönlerinde uzmanlaşmış birçok alt disipline yol açmıştır. Örneğin, doğal dil işleme, insan konuşmasını anlamaya ve modellemeye çalışırken, bilgisayarla görme, makinelere insan benzeri bir görüş sağlamayı amaçlar.
Evrişimsel Sinir Ağları hakkında konuşacağımız için, odak noktamız çoğunlukla bilgisayar görüşü üzerinde olacak. Bilgisayarla görü, makinelerin dünyayı bizim yaptığımız gibi görmesini ve görüntü tanıma, görüntü sınıflandırma ve çok daha fazlasıyla ilgili sorunları çözmesini sağlamayı amaçlar. Konvolüsyonel Sinir Ağları, bilgisayarla görmenin çeşitli görevlerini yerine getirmek için kullanılır. CNN veya ConvNet olarak da bilinirler, insan beynindeki nöronların kalıplarına ve bağlantılarına benzeyen bir mimariyi takip ederler ve iletişimin gerçekleşmesi için beyinde meydana gelen çeşitli biyolojik süreçlerden ilham alırlar.
İçindekiler
Kıvrımlı Sinir Ağının biyolojik önemi
CNN'ler görsel korteksimizden ilham alıyor. Beynimizde görsel işlemede yer alan serebral korteks alanıdır. Görsel korteks, görsel uyaranlara duyarlı çeşitli küçük hücresel bölgelere sahiptir.
Bu fikir, 1962'de Hubel ve Wiesel tarafından, farklı farklı nöronal hücrelerin belirli bir yönelimin farklı kenarlarının varlığına tepki gösterdiğinin (ateşlendiği) bulunduğu bir deneyde genişletildi. Örneğin, bazı nöronlar yatay kenarları algılarken, diğerleri diyagonal kenarları algılarken ve bazıları da dikey kenarları algıladığında tetiklenir. Bu deney sayesinde. Hubel ve Wiesel, nöronların modüler bir şekilde organize edildiğini ve görsel algının üretilmesi için tüm modüllerin birlikte gerekli olduğunu keşfettiler.
Bu modüler yaklaşım - bir sistem içindeki özel bileşenlerin belirli görevleri olduğu fikri - CNN'lerin temelini oluşturan şeydir.
Bunu hallettikten sonra, CNN'lerin görsel girdileri algılamayı nasıl öğrendiğine geçelim.
Evrişimli Sinir Ağı Öğrenmesi
Görüntüler, 0 ile 255 sayıları arasında bir temsil olan ayrı piksellerden oluşur. Dolayısıyla, gördüğünüz herhangi bir görüntü, bu sayılar kullanılarak uygun bir dijital temsile dönüştürülebilir - ve bilgisayarlar da bu şekilde görüntülerle çalışır.
İşte bir CNN'nin görüntü algılama veya sınıflandırma için öğrenmesini sağlayan bazı önemli işlemler. Bu size CNN'lerde öğrenmenin nasıl gerçekleştiği hakkında bir fikir verecektir.
1. Evrişim
Evrişim, matematiksel olarak, farklı işlevin etkisinin veya birbirini nasıl değiştirdiğini bulmak için iki farklı işlevin birleşik entegrasyonu olarak anlaşılabilir. Matematiksel terimlerle şu şekilde tanımlanabilir:
Evrişimin amacı, görüntülerdeki çizgiler, kenarlar, renkler, gölgeler ve daha fazlası gibi farklı görsel özellikleri tespit etmektir. Bu çok kullanışlı bir özelliktir çünkü CNN'niz görüntüdeki belirli bir özelliğin özelliklerini öğrendiğinde, daha sonra görüntünün başka herhangi bir bölümünde bu özelliği tanıyabilir.
CNN'ler, herhangi bir görüntüde bulunan farklı özellikleri tespit etmek için çekirdekleri veya filtreleri kullanır. Çekirdekler, belirli özellikleri tespit etmek için eğitilmiş farklı değerlerin (Yapay Sinir Ağları dünyasında ağırlıklar olarak bilinir) yalnızca bir matrisidir. Filtre, herhangi bir özelliğin algılanıp algılanmadığını kontrol etmek için tüm görüntü üzerinde hareket eder. Filtre, belirli bir özelliğin mevcut olduğundan ne kadar emin olduğunu gösteren nihai bir değer sağlamak için evrişim işlemini gerçekleştirir.
Görüntüde bir özellik varsa, evrişim işleminin sonucu yüksek değerli pozitif bir sayıdır. Özellik yoksa, evrişim işlemi 0 veya çok düşük değerli bir sayı ile sonuçlanır.
Bunu bir örnek kullanarak daha iyi anlayalım. Aşağıdaki resimde, bir artı işaretini algılamak için bir filtre eğitilmiştir. Ardından filtre orijinal görüntünün üzerinden geçirilir. Orijinal görüntünün bir kısmı, filtrenin eğitildiği özelliklerin aynısını içerdiğinden, özelliğin bulunduğu her hücredeki değerler pozitif bir sayıdır. Aynı şekilde, bir evrişim işleminin sonucu da çok sayıda sonuç verecektir.
Bununla birlikte, aynı filtre, farklı özellik ve kenar kümesine sahip bir görüntünün üzerinden geçirildiğinde, bir evrişim işleminin çıktısı daha düşük olacaktır - bu, görüntüde herhangi bir güçlü artı işaretinin bulunmadığı anlamına gelir.
Bu nedenle, eğriler, kenarlar, renkler vb. gibi çeşitli özelliklere sahip karmaşık görüntüler söz konusu olduğunda, bu tür N sayıda özellik algılayıcıya ihtiyacımız olacak.
Bu filtre görüntüden geçirildiğinde, temelde bu filtrenin kıvrımlarını görüntünün farklı bölümleri üzerinde depolayan çıktı matrisi olan bir özellik haritası oluşturulur. Birçok filtre olması durumunda, bir 3B çıktı elde edeceğiz. Bu filtre, evrişim işleminin gerçekleşmesi için giriş görüntüsüyle aynı sayıda kanala sahip olmalıdır.
Ayrıca, bir adım değeri kullanılarak giriş görüntüsü üzerinde farklı aralıklarla bir filtre kaydırılabilir. Adım değeri, filtrenin her adımda ne kadar hareket etmesi gerektiğini bildirir.
Belirli bir evrişim bloğunun çıktı katmanlarının sayısı bu nedenle aşağıdaki formül kullanılarak belirlenebilir:
2. Dolgu
Evrişimli katmanlarla çalışırken bir sorun, orijinal görüntünün çevresinde bazı piksellerin kaybolma eğiliminde olmasıdır. Genel olarak, kullanılan filtreler küçük olduğundan, filtre başına kaybedilen pikseller birkaç olabilir, ancak bu, farklı evrişim katmanları uyguladığımızda toplanır, bu da birçok pikselin kaybolmasına neden olur.
Doldurma kavramı, bir CNN filtresi onu işlerken görüntüye fazladan piksel eklemekle ilgilidir. Bu, görüntü işlemede filtreye yardımcı olacak bir çözümdür - çekirdeğin tüm görüntüyü kaplaması için daha fazla alan sağlamak için görüntüyü sıfırlarla doldurarak. Filtrelere sıfır dolgu eklendiğinde, CNN tarafından görüntü işleme çok daha doğru ve kesindir.
Yukarıdaki resmi kontrol edin – girdi görüntüsünün sınırına ek sıfırlar eklenerek dolgu yapılmıştır. Bu, herhangi bir piksel kaybetmeden tüm farklı özelliklerin yakalanmasını sağlar.
3. Aktivasyon Haritası
Özellik haritalarının, doğası gereği doğrusal olmayan bir eşleme işlevinden geçirilmesi gerekir. Özellik haritaları bir önyargı terimiyle dahil edilir ve ardından doğrusal olmayan aktivasyon (ReLu) işlevinden geçirilir. Bu fonksiyon, tespit edilen ve incelenen görüntülerin doğası gereği lineer olmadığı ve farklı nesnelerden oluştuğu için, CNN'ye bir miktar doğrusal olmama durumu getirmeyi amaçlamaktadır.
4. Havuzlama Aşaması
Aktivasyon aşaması sona erdiğinde, CNN'nin işlem süresinden tasarruf etmeye yardımcı olan kıvrımlı özellikleri aşağı örneklediği havuzlama adımına geçiyoruz. Bu aynı zamanda görüntünün genel boyutunu, fazla sığdırmayı ve Kıvrılmış Sinir Ağları çok fazla bilgi ile beslendiğinde ortaya çıkabilecek diğer sorunları azaltmaya yardımcı olur - özellikle bu bilgi görüntünün sınıflandırılması veya tespit edilmesiyle çok alakalı değilse.
Havuzlama temelde iki tiptedir – maksimum havuzlama ve minimum havuzlama. İlkinde, belirli bir adım değerine göre görüntünün üzerinden bir pencere geçirilir ve her adımda pencereye dahil edilen maksimum değer çıktı matrisinde toplanır. Min havuzunda, minimum değerler çıktı matrisinde toplanır.
Çıktıların bir sonucu olarak oluşan yeni matris, havuzlanmış özellik haritası olarak adlandırılır.
Minimum ve maksimum havuzlama dışında, maksimum havuzlamanın bir yararı, CNN'nin tüm nöronlara odaklanmak yerine yüksek değerlere sahip birkaç nörona odaklanmasına izin vermesidir. Böyle bir yaklaşım, eğitim verilerine fazla uyma olasılığını azaltır ve genel tahmin ve genellemenin iyi gitmesini sağlar.
5. Düzleştirme
Havuzlama yapıldıktan sonra, görüntünün 3B temsili artık bir özellik vektörüne dönüştürülmüştür. Bu daha sonra çıktıyı üretmek için çok katmanlı bir algılayıcıya geçirilir. Düzleştirme işlemini daha iyi anlamak için aşağıdaki resme bakın:
Gördüğünüz gibi, matrisin satırları tek bir özellik vektöründe birleştirilmiştir. Birden çok giriş katmanı varsa, tüm satırlar daha uzun düzleştirilmiş bir özellik vektörü oluşturmak için bağlanır.
6. Tam Bağlantılı Katman (FCL)
Bu adımda, düzleştirilmiş harita bir sinir ağına beslenir. Bir sinir ağının tam bağlantısı, bir giriş katmanı, FCL ve bir son çıkış katmanı içerir. Tam bağlantılı katman, Yapay Sinir Ağlarında gizli katmanlar olarak anlaşılabilir, ancak gizli katmanların aksine bu katmanlar tamamen bağlantılıdır. Bilgi tüm ağdan geçer ve bir tahmin hatası hesaplanır. Bu hata daha sonra ağırlıkları ayarlamak ve nihai çıktıyı iyileştirmek, daha doğru hale getirmek için sistemler aracılığıyla geri bildirim (geri yayılım) olarak gönderilir.
Sinir ağının yukarıdaki katmanından elde edilen nihai çıktının toplamı genellikle bir değildir. Bu çıktıların [0,1] aralığındaki sayılara indirilmesi gerekir – bu daha sonra her sınıfın olasılıklarını temsil edecektir. Bunun için Softmax işlevi kullanılır.
Yoğun katmandan elde edilen çıktı, Softmax aktivasyon fonksiyonuna beslenir. Bu sayede, tüm nihai çıktılar, tüm öğelerin toplamının bir olduğu bir vektöre eşlenir.
Tam bağlantılı katman, önceki katmanın çıktısına bakarak ve ardından hangi özelliğin belirli bir sınıfla en çok ilişkili olduğunu belirleyerek çalışır. Bu nedenle, program bir görüntünün kedi içerip içermediğini tahmin ederse, dört bacak, pençeler, kuyruk vb. gibi özellikleri temsil eden aktivasyon haritalarında yüksek değerlere sahip olacaktır. Aynı şekilde, program başka bir şeyi tahmin ediyorsa, farklı türde aktivasyon haritalarına sahip olacaktır. Tam bağlantılı bir katman, ağırlıklar ve önceki katman arasındaki hesaplamanın doğru olması ve farklı çıktı sınıfları için doğru olasılıkları elde etmeniz için belirli sınıflar ve ağırlıklarla güçlü bir şekilde ilişkili olan farklı özelliklerle ilgilenir.
CNN'lerin çalışmalarının kısa bir özeti
İşte CNN'nin nasıl çalıştığına ve bilgisayarlı görüye nasıl yardımcı olduğuna dair tüm sürecin kısa bir özeti:
- Görüntüden farklı pikseller, bir evrişim işleminin gerçekleştirildiği evrişim katmanına beslenir.
- Önceki adım, kıvrımlı bir haritayla sonuçlanır.
- Bu harita, düzeltilmiş bir haritaya yol açmak için bir doğrultucu işlevinden geçirilir.
- Görüntü, farklı özelliklerin bulunması ve saptanması için farklı kıvrımlar ve etkinleştirme işlevleriyle işlenir.
- Havuzlama katmanları, görüntünün belirli, farklı kısımlarını tanımlamak için kullanılır.
- Havuzlanmış katman düzleştirilir ve tamamen bağlı katmana giriş olarak kullanılır.
- Tam bağlı katman, olasılıkları hesaplar ve [0,1] aralığında bir çıktı verir.
Sonuç olarak
CNN'nin içsel işleyişi çok heyecan vericidir ve yenilik ve yaratım için birçok olanak sunar. Aynı şekilde Yapay Zeka çatısı altındaki diğer teknolojiler de büyüleyici ve insan yetenekleri ile makine zekası arasında çalışmaya çalışıyor. Sonuç olarak, dünyanın her yerinden farklı alanlara mensup insanlar bu alana olan ilgilerini fark etmekte ve ilk adımlarını atmaktadırlar.
Neyse ki, AI endüstrisi son derece misafirperver ve akademik geçmişinize göre ayrım yapmıyor. Tek ihtiyacınız olan, temel niteliklerle birlikte teknolojiler hakkında çalışma bilgisi ve hazırsınız!
Makine öğrenimi ve yapay zekanın özünde ustalaşmak istiyorsanız, ideal eylem planı profesyonel bir yapay zeka/ makine öğrenimi programına kaydolmak olacaktır. Örneğin, Makine Öğrenimi ve Yapay Zekadaki Yönetici Programımız, veri bilimi adayları için mükemmel bir kurstur. Program istatistik ve keşifsel veri analitiği, makine öğrenimi ve doğal dil işleme gibi konuları kapsar. Ayrıca 13'ün üzerinde endüstri projesi, 25'ten fazla canlı oturum ve 6 capstone projesi içerir. Bu kursun en iyi yanı, dünyanın her yerinden akranlarla etkileşim kurmanızdır. Fikir alışverişini kolaylaştırır ve öğrencilerin farklı geçmişlere sahip insanlarla kalıcı bağlantılar kurmasına yardımcı olur. 360 derecelik kariyer yardımımız, makine öğrenimi ve yapay zeka yolculuğunuzda başarılı olmanız için tam da ihtiyacınız olan şeydir!