Evrişimli Sinir Ağları (CNN'ler): Bir Giriş

Yayınlanan: 2022-08-30

Evrişimli sinir ağları, nesne tanıma ve görüntü sınıflandırma görevleri için daha ölçeklenebilir bir yol sunar.

Teknoloji dünyasında birçok gelişme yaşanıyor. Yapay zeka ve makine öğrenimi, sıkça duyabileceğiniz bazı yaygın olanlardır.

Şu anda, bu teknolojiler pazarlama, e-ticaret ve yazılım geliştirmeden bankacılık, finans ve ilaca kadar hemen hemen her alanda kullanılmaktadır.

AI ve ML çok geniş alanlardır ve birçok gerçek dünya sorununu çözmek için uygulamalarını genişletmek için çaba sarf edilmektedir. Bu nedenle bu teknolojilerin içinde çok sayıda dal görebilirdiniz; ML, AI'nın kendisinin bir alt kümesidir.

Evrişimli sinir ağları, günümüzde popüler hale gelen AI dallarından biridir.

Bu yazıda, CNN'lerin ne olduğunu, nasıl çalıştıklarını ve modern dünyadaki kullanışlılıklarını tartışacağım.

Hemen dalalım!

Evrişimsel Sinir Ağı Nedir?

Bir evrişimsel sinir ağı (ConvNet veya CNN), görüntüleri analiz etmek, görselleri sınıflandırmak ve bilgisayarla görme görevlerini gerçekleştirmek için derin öğrenme algoritmalarını kullanan bir yapay sinir ağıdır (YSA).

Evrişimli Sinir Ağı

CNN, bir görüntüdeki kalıpları tespit etmek için matris çarpımı gibi doğrusal cebir ilkelerinden yararlanır. Bu süreçler karmaşık hesaplamalar içerdiğinden, modelleri eğitmek için grafik işleme birimlerine (GPU'lar) ihtiyaç duyarlar.

Basit bir deyişle, CNN, görüntüler gibi girdi verilerini almak ve bu görüntünün farklı yönlerine önyargılar ve öğrenilebilir ağırlıklar biçiminde önem vermek için Derin Öğrenme algoritmalarını kullanır. Bu şekilde CNN, görüntüler arasında ayrım yapabilir veya bunları sınıflandırabilir.

CNN'ler: Kısa Bir Tarih

Evrişimsel sinir ağı bir yapay sinir ağı olduğundan, sinir ağlarını tekrarlamak önemlidir.

Hesaplamada, bir sinir ağı, derin öğrenme algoritmalarını kullanan makine öğreniminin (ML) bir parçasıdır. İnsan beynindeki nöronların izlediği bağlantı kalıplarına benzer. Yapay sinir ağları, görsel korteksin nasıl düzenlendiğinden de ilham alır.

CNN'ler: Kısa Bir Tarih

Bu nedenle, farklı amaçlar için farklı türde sinir ağları veya yapay sinir ağları (YSA) kullanılmaktadır. Bunlardan biri, görüntü algılama ve sınıflandırma için kullanılan CNN ve daha fazlası. 1980'lerde doktora sonrası araştırmacı Yann LeCun tarafından tanıtıldı.

CNN'nin ilk versiyonu - LeCun'un adını taşıyan LeNet, el yazısı rakamları tanıyabiliyordu. Daha sonra bankacılık ve posta hizmetlerinde çeklerdeki rakamların ve zarflara yazılan posta kodlarının okunması için kullanıldı.

Ancak, bu erken sürümde ölçekleme yoktu; bu nedenle yapay zeka ve bilgisayarla görmede CNN'lerden çok fazla yararlanılmadı. Ayrıca, daha büyük görüntüler için daha verimli çalışmak için önemli hesaplama kaynakları ve veriler gerektiriyordu.

Ayrıca, 2012'de AlexNet, birden çok katmandan oluşan sinir ağlarını kullanan derin öğrenmeyi yeniden ziyaret etti. Bu süre zarfında, teknoloji gelişti ve bilgisayarla görü faaliyetlerini verimli bir şekilde gerçekleştirebilen karmaşık CNN'lerin oluşturulmasını sağlamak için büyük veri setleri ve ağır bilgi işlem kaynakları mevcuttu.

CNN'deki Katmanlar

Bir CNN'deki farklı katmanları anlayalım. Bir CNN'deki katmanları artırmak, karmaşıklığını artıracak ve bir görüntünün daha fazla yönünü veya alanını algılamasını sağlayacaktır. Basit bir özellikle başlayarak, sonunda görüntüyü algılayıncaya kadar nesnenin şekli ve daha büyük öğeler gibi karmaşık özellikleri algılayabilir hale gelir.

Evrişimsel Katman

Bir CNN'nin ilk katmanı, evrişim katmanıdır. Hesaplamaların çoğunun gerçekleştiği yer, CNN'nin ana yapı taşıdır. Giriş verileri, özellik haritası ve filtre gibi daha az bileşene ihtiyaç duyar.

Evrişimsel Katman

Bir CNN ayrıca ek evrişim katmanlarına sahip olabilir. Bu, CNN'lerin yapısını hiyerarşik hale getirir, çünkü sonraki katmanlar önceki katmanların alıcı alanları içindeki pikselleri görselleştirebilir. Daha sonra, evrişim katmanları verilen görüntüyü sayısal değerlere dönüştürür ve ağın değerli kalıpları anlamasına ve çıkarmasına izin verir.

Havuzlama Katmanları

Havuzlama katmanları, boyutları küçültmek için kullanılır ve altörnekleme olarak adlandırılır. Girişte kullanılan parametreleri azaltır. Havuzlama işlemi, bir filtreyi evrişim katmanı gibi tüm girdi üzerinde hareket ettirebilir, ancak ağırlıkları yoktur. Burada filtre, sonuç dizisini doldurmak için alıcı alandaki sayısal değerlere ortak bir işlev uygular.

Havuzlamanın iki türü vardır:

  • Ortalama havuzlama: Ortalama değer, denetleyicinin çıktı dizisine iletmek için girdi üzerinde taradığı alıcı alanda hesaplanır.
  • Maksimum havuzlama: Maksimum değer pikselini seçer ve filtre giriş üzerinde gezinirken bunu çıkış dizisine gönderir. Maksimum havuzlama, ortalama havuzlamadan daha fazla kullanılır.

Havuzlamada önemli veriler kaybolmasına rağmen, CNN'ye hala birçok fayda sağlıyor. Verimliliği artırırken aşırı uyum risklerini ve karmaşıklığı azaltmaya yardımcı olur. Aynı zamanda CNN'nin kararlılığını da artırır.

Tam Bağlantılı (FC) Katman

Tam Bağlantılı (FC) Katman

Adından da anlaşılacağı gibi, bir çıktı katmanındaki tüm düğümler, tam bağlantılı bir katmandaki bir önceki katmanın düğümüne doğrudan bağlıdır. Bir görüntüyü filtreleriyle birlikte önceki katmanlar aracılığıyla çıkarılan özelliklere göre sınıflandırır.

Ayrıca, FC katmanları genellikle girişleri doğru bir şekilde sınıflandırmak için ReLu işlevleri yerine (havuzlama ve evrişim katmanlarında olduğu gibi) bir softmax etkinleştirme işlevi kullanır. Bu, 0 veya 1 olasılığının üretilmesine yardımcı olur.

CNN'ler Nasıl Çalışır?

Bir evrişimsel sinir ağı, yüzlerce hatta yüzlerce katmandan oluşur. Bu katmanlar, belirli bir görüntünün çeşitli özelliklerini tanımlamayı öğrenir.

CNN'ler sinir ağları olmasına rağmen, mimarileri normal bir YSA'dan farklıdır.

CNN'ler Nasıl Çalışır?

İkincisi, onu dönüştürmek için birçok gizli katmandan bir girdi koyar, burada her katman bir dizi yapay nöronla oluşturulur ve aynı katmandaki her nörona tam olarak bağlanır. Sonunda, sonucu görüntülemek için tam bağlantılı bir katman veya çıktı katmanı var.

Öte yandan CNN, katmanları genişlik, derinlik ve yükseklik olmak üzere üç boyutta düzenler. Burada, nörondan bir katman, bir sonraki katmandaki her biriyle ilişki kurmak yerine, yalnızca küçük bir bölgedeki nöronlara bağlanır. Son olarak, nihai sonuç, olasılık puanına sahip tek bir vektörle temsil edilir ve yalnızca derinlik boyutuna sahiptir.

Şimdi, bir CNN'de "evrişim"in ne olduğunu sorabilirsiniz.

Evrişim, iki veri kümesini birleştirmek için bir matematik işlemine atıfta bulunur. CNN'de, bilgileri filtreleyerek bir özellik haritası çıkarmak için veri girişine evrişim kavramı uygulanır.

Bu bizi CNN'lerde kullanılan bazı önemli kavram ve terminolojilere getiriyor.

  • Filtre : Özellik algılayıcı veya çekirdek olarak da bilinen filtre, 3×3 gibi belirli bir boyuta sahip olabilir. Evrişim uygulamak üzere her öğe için matris çarpımı gerçekleştirmek üzere bir girdi görüntüsünün üzerinden geçer. Değişen çözünürlüklerde her eğitim görüntüsüne filtre uygulamak ve ayrıca kıvrımlı görüntünün çıktısı, sonraki katman için bir girdi olarak çalışacaktır.
  • Padding : Bir giriş matrisini sahte pikseller ekleyerek matrisin sınırlarına genişletmek için kullanılır. Evrişimin matris boyutunu küçülttüğü gerçeğine karşı koymak için yapılır. Örneğin 9×9 bir matris filtrelemeden sonra 3×3 matrise dönüşebilir.
  • Adım Atma : Girdiğiniz değerden daha küçük bir çıktı almak istiyorsanız adım adım gerçekleştirebilirsiniz. Filtre görüntü üzerinde kayarken belirli alanların atlanmasını sağlar. İki veya üç pikseli atlayarak, uzamsal çözünürlüğü azaltarak daha verimli bir ağ oluşturabilirsiniz.
  • Ağırlıklar ve Önyargılar: CNN'lerin nöronlarında ağırlıklar ve önyargılar vardır. Bir model eğitim sırasında bu değerleri öğrenebilir ve değerler tüm nöronlar için belirli bir katman boyunca aynı kalır. Bu, her bir gizli nöronun bir görüntünün farklı alanlarında aynı özellikleri algıladığı anlamına gelir. Sonuç olarak, nesneleri belirli bir görüntüye çevirirken ağ daha toleranslı hale gelir.
  • ReLU : Rectified Linear Unit (ReLu) anlamına gelir ve daha etkin ve hızlı eğitim için kullanılır. Negatif değerleri 0'a eşler ve pozitif değerleri korur. Ağ, sonraki katmana yalnızca etkinleştirilen görüntü özelliklerini taşıdığı için etkinleştirme olarak da adlandırılır.
  • Alıcı alan: Bir sinir ağında, her nöron bir önceki katmandan farklı konumlardan girdi alır. Ve evrişimli katmanlarda, her nöron, nöronun alıcı alanı olarak adlandırılan, yalnızca önceki katmanın sınırlı bir alanından girdi alır. FC katmanı durumunda, önceki katmanın tamamı alıcı alandır.

Gerçek dünyadaki hesaplama görevlerinde, genellikle, bir 3B filtre gerektiren bir 3B görüntüde evrişim gerçekleştirilir.

CNN'ye geri dönersek, farklı parçalardan veya düğüm katmanlarından oluşur. Her düğüm katmanının bir eşiği ve ağırlığı vardır ve diğerine bağlıdır. Eşik limiti aşıldığında bu ağda bir sonraki katmana veri gönderilir.

Bu katmanlar, ilgili özellikleri öğrenmek için verileri değiştirmek için işlemler gerçekleştirebilir. Ayrıca, bu işlemler, bir görüntünün diğer özelliklerini algılamayı öğrenmeye devam eden yüzlerce farklı katmanı tekrarlar.

operasyonlar

CNN'nin bölümleri şunlardır:

  • Bir girdi katmanı: Bu, bir görüntü gibi girdinin alındığı yerdir. Tanımlanmış bir yükseklik, genişlik ve derinliğe sahip bir 3B nesne olacaktır.
  • Bir/birden çok gizli katman veya özellik çıkarma aşaması: bu katmanlar bir evrişim katmanı, havuz katmanı ve tam bağlantılı katman olabilir.
  • Bir çıktı katmanı: Burada sonuç görüntülenecektir.

Görüntünün evrişim katmanından geçirilmesi, bir özellik haritasına veya aktivasyon haritasına dönüştürülür. Girdiyi katladıktan sonra, katmanlar görüntüyü sarar ve sonucu sonraki katmana iletir.

CNN, öznitelik çıkarma aşaması sırasında öznitelikleri saptamak için birçok evrişim ve havuzlama tekniği gerçekleştirecektir. Örneğin, bir kedinin görüntüsünü girerseniz, CNN onun dört ayağını, rengini, iki gözünü vb. tanıyacaktır.

Daha sonra, bir CNN'deki tamamen bağlı katmanlar, çıkarılan özellikler üzerinde bir sınıflandırıcı görevi görecektir. Derin öğrenme algoritmasının görüntü hakkında tahmin ettiği şeye dayanarak, katmanlar sonucu verir.

CNN'lerin Avantajları

CNN'lerin Avantajları

Daha Yüksek Doğruluk

CNN'ler, evrişim kullanmayan normal sinir ağlarından daha yüksek doğruluk sunar. CNN'ler, özellikle görev çok sayıda veri, video ve görüntü tanıma vb. içerdiğinde faydalıdır. Oldukça hassas sonuçlar ve tahminler üretirler; bu nedenle farklı sektörlerde kullanımları artmaktadır.

Hesaplama Verimliliği

Hesaplama Verimliliği

CNN'ler, diğer normal sinir ağlarından daha yüksek bir hesaplama verimliliği seviyesi sunar. Bunun nedeni evrişim sürecini kullanmaktır. Modelleri daha hızlı ve daha kolay dağıtmak için boyut azaltma ve parametre paylaşımını da kullanırlar. Bu teknikler, akıllı telefonunuz veya dizüstü bilgisayarınız gibi farklı cihazlarda çalışacak şekilde de optimize edilebilir.

Özellik çıkarma

CNN, manuel mühendislik gerektirmeden bir görüntünün özelliklerini kolayca öğrenebilir. Önceden eğitilmiş CNN'lerden yararlanabilir ve yeni bir görev üzerinde çalışırken onlara veri besleyerek ağırlıkları yönetebilirsiniz; CNN buna sorunsuz bir şekilde uyum sağlayacaktır.

CNN Uygulamaları

CNN'ler birçok kullanım durumu için farklı endüstrilerde kullanılmaktadır. CNN'lerin gerçek hayattaki uygulamalarından bazıları şunlardır:

Görüntü Sınıflandırma

Görüntü Sınıflandırma

CNN'ler görüntü sınıflandırmasında yaygın olarak kullanılmaktadır. Bunlar, belirli bir görüntüdeki değerli özellikleri tanıyabilir ve nesneleri tanımlayabilir. Bu nedenle sağlık gibi sektörlerde, özellikle MRI'larda kullanılmaktadır. Ayrıca bu teknoloji, CNN'lerin bilgisayarlı görü alanında en eski kullanım durumları arasında yer alan elle yazılmış rakam tanımada kullanılmaktadır.

Nesne Algılama

CNN, görüntülerdeki nesneleri gerçek zamanlı olarak algılayabilir ve ayrıca bunları etiketleyebilir ve sınıflandırabilir. Bu nedenle, bu teknik otomatik araçlarda yaygın olarak kullanılmaktadır. Ayrıca akıllı evlerin ve yayaların araç sahibinin yüzünü tanımasını sağlar. Ayrıca nesneleri algılamak ve işaretlemek için yapay zeka destekli gözetim sistemlerinde kullanılır.

Nesne Algılama

Görsel-işitsel Eşleştirme

CNN'nin görsel-işitsel eşleştirmedeki yardımı, Netflix, YouTube vb. gibi video akış platformlarının iyileştirilmesine yardımcı olur. Ayrıca “Elton John'dan aşk şarkıları” gibi kullanıcı isteklerinin karşılanmasına da yardımcı olur.

Konuşma tanıma

Konuşma tanıma

Görüntülerin yanı sıra, CNN'ler doğal dil işlemede (NLP) ve konuşma tanımada yardımcı olur. Bunun gerçek dünyadan bir örneği, konuşma tanıma sisteminde CNN'leri kullanan Google olabilir.

Nesne Yeniden İnşası

CNN'ler, dijital ortamda gerçek bir nesnenin 3D modellemesinde kullanılabilir. CNN modellerinin bir görüntü kullanarak bir 3B yüz modeli oluşturması da mümkündür. Ayrıca CNN, biyoteknoloji, üretim, biyoteknoloji ve mimaride dijital ikizlerin oluşturulmasında faydalıdır.

CNN'nin farklı sektörlerde kullanımı şunları içerir:

  • Sağlık Hizmetleri: Bilgisayarla görme, radyolojide doktorların kanserli tümörleri bir kişide daha etkili bir şekilde tespit etmesine yardımcı olmak için kullanılabilir.
  • Tarım: Ağlar, LSAT gibi yapay uydulardan gelen görüntüleri kullanabilir ve bu verileri verimli toprakları sınıflandırmak için kullanabilir. Bu aynı zamanda arazi verimliliği seviyelerini tahmin etmeye ve verimi en üst düzeye çıkarmak için etkili bir strateji geliştirmeye yardımcı olur.
  • Pazarlama: Sosyal medya uygulamaları, birinin profilinde yayınlanan bir resimde bir kişiyi önerebilir. Bu, fotoğraf albümlerinizdeki kişileri etiketlemenize yardımcı olur.
  • Perakende: E-ticaret platformları, markaların hedef müşterilerin satın almak istediği alakalı ürünleri önermesine yardımcı olmak için görsel aramayı kullanabilir.
  • Otomotiv: CNN, yolcu ve sürücü güvenliğini artırmak için otomobillerde kullanım buluyor. Bunu şerit çizgisi algılama, nesne algılama, görüntü sınıflandırma vb. özelliklerin yardımıyla yapar. Bu aynı zamanda kendi kendini süren araba dünyasının daha da gelişmesine yardımcı olur.

CNN'leri Öğrenmek için Kaynaklar

Kurs:

Coursera, CNN'de almayı düşünebileceğiniz bu kursa sahiptir. Bu ders size bilgisayar vizyonunun yıllar içinde nasıl geliştiğini ve modern dünyadaki CNN'lerin bazı uygulamalarını öğretecektir.

Amazon:

CNN hakkında daha fazla bilgi edinmek için bu kitapları ve dersleri okuyabilirsiniz:

  • Sinir Ağları ve Derin Öğrenme: Modelleri, algoritmaları ve derin öğrenme ve sinir ağları teorisini kapsar.
Ön izleme Ürün Değerlendirme Fiyat
Sinir Ağları ve Derin Öğrenme: Bir Ders Kitabı Sinir Ağları ve Derin Öğrenme: Bir Ders Kitabı Henüz derecelendirme yok $49.00
  • Bilgisayarla Görme için Evrişimli Sinir Ağları Kılavuzu: Bu kitap size CNN'lerin uygulamalarını ve kavramlarını öğretecektir.
Ön izleme Ürün Değerlendirme Fiyat
Bilgisayarla Görme için Evrişimli Sinir Ağları Kılavuzu (Bilgisayarla Görme Üzerine Sentez Dersleri) Bilgisayarla Görme için Evrişimli Sinir Ağları Kılavuzu (Bilgisayarla Görme Üzerine Sentez Dersleri) Henüz derecelendirme yok $49.26
  • Tensorflow ile Uygulamalı Evrişimli Sinir Ağları: Bu kitabın yardımıyla Python ve TensorFlow kullanarak bilgisayarla görme alanındaki çeşitli sorunları çözebilirsiniz.
Ön izleme Ürün Değerlendirme Fiyat
TensorFlow ile Uygulamalı Evrişimli Sinir Ağları: TensorFlow ve Python'da modelleme ile bilgisayarla görme sorunlarını çözün TensorFlow ile Uygulamalı Evrişimli Sinir Ağları: Bilgisayarla görme sorunlarını modelleme ile çözün... Henüz derecelendirme yok $15.24
  • Gelişmiş Uygulamalı Derin Öğrenme: Bu kitap, CNN'leri, derin öğrenmeyi ve nesne algılama dahil gelişmiş uygulamalarını anlamanıza yardımcı olacaktır.
Ön izleme Ürün Değerlendirme Fiyat
Gelişmiş Uygulamalı Derin Öğrenme: Evrişimli Sinir Ağları ve Nesne Algılama Gelişmiş Uygulamalı Derin Öğrenme: Evrişimli Sinir Ağları ve Nesne Algılama Henüz derecelendirme yok 23.74 $
  • Evrişimsel Sinir Ağları ve Tekrarlayan Sinir Ağları: Bu kitap size CNN'ler ve RNN'ler ve bu ağların nasıl kurulacağı hakkında bilgi verecektir.
Ön izleme Ürün Değerlendirme Fiyat
Evrişimli Sinir Ağları ve Tekrarlayan Sinir Ağları: Evrişimli Sinir Ağları ve Tekrarlayan Sinir Ağları Evrişimli Sinir Ağları ve Tekrarlayan Sinir Ağları: Evrişimli Sinir Ağları ve... Henüz derecelendirme yok $1,99

Çözüm

Evrişimli sinir ağları, yapay zeka, makine öğrenimi ve derin öğrenmenin ortaya çıkan alanlarından biridir. Günümüz dünyasında hemen her sektörde çeşitli uygulamalara sahiptir. Artan kullanımına bakıldığında, daha fazla genişlemesi ve gerçek dünya sorunlarının üstesinden gelmede daha faydalı olması bekleniyor.