Derin Öğrenme Algoritması [Örneklerle Kapsamlı Kılavuz]
Yayınlanan: 2020-10-28İçindekiler
Tanıtım
Derin Öğrenme, beynin düzenlenmesi ve işleyişinden ilham alan algoritmaları içeren bir makine öğrenimi alt kümesidir. İnsan beynindeki nöronlar bilgi ilettiği ve vücudumuzdaki reaktörlerden öğrenmeye yardımcı olduğu için, benzer şekilde derin öğrenme algoritmaları da çeşitli sinir ağları algoritması katmanlarından geçer ve onların tepkilerinden öğrenir.
Başka bir deyişle, Derin öğrenme, ham girdi verilerine bağlı olarak daha önemli düzeydeki verileri keşfetmek için sinir ağı algoritmalarının katmanlarını kullanır. Sinir ağı algoritmaları, insan beyninin nasıl çalıştığını simüle eden bir süreç aracılığıyla veri kalıplarını keşfeder.
Sinir ağları, özelliklerin benzerliklerine dayalı olarak geniş bir veri noktasından veri noktalarının kümelenmesine yardımcı olur. Bu sistemler Yapay Sinir Ağları olarak bilinir.
Modellere giderek daha fazla veri beslendikçe, derin öğrenme algoritmalarının diğer algoritmalardan daha üretken olduğu ve daha iyi sonuçlar sağladığı ortaya çıktı. Derin Öğrenme algoritmaları, görüntü tanıma, konuşma tanıma, dolandırıcılık tespiti, bilgisayarla görme gibi çeşitli problemler için kullanılmaktadır.
Sinir Ağı Bileşenleri
1. Ağ Topolojisi – Ağ Topolojisi, sinir ağının yapısını ifade eder. Ağdaki gizli katmanların sayısını, giriş ve çıkış katmanı dahil her katmandaki nöron sayısını vb. içerir.
2. Giriş Katmanı – Giriş Katmanı, sinir ağının giriş noktasıdır. Girdi katmanındaki nöron sayısı, girdi verisindeki özniteliklerin sayısına eşit olmalıdır.

3. Çıktı Katmanı – Çıktı Katmanı, sinir ağının çıkış noktasıdır. Çıkış katmanındaki nöron sayısı hedef değişkendeki sınıf sayısına eşit olmalıdır (Sınıflandırma problemi için). Regresyon problemi için, çıktı sayısal bir değişken olacağından çıktı katmanındaki nöron sayısı 1 olacaktır.
4. Aktivasyon fonksiyonları – Aktivasyon fonksiyonları, bir nöronun ağırlıklı girdilerinin toplamına uygulanan matematiksel denklemlerdir. Nöronun tetiklenip tetiklenmeyeceğine karar vermede yardımcı olur. Sigmoid fonksiyonu, Rektifiye Doğrusal Birim (ReLU), Leaky ReLU, Hiperbolik Tanjant, Softmax fonksiyonu vb. gibi birçok aktivasyon fonksiyonu vardır.
5. Ağırlıklar – Ardışık katmanlardaki nöronlar arasındaki her bağlantının kendisiyle ilişkili bir ağırlığı vardır. Sinir ağının sonucunu tahmin etmeye yardımcı olan bazı veri modellerini keşfetmede nöronlar arasındaki bağlantının önemini gösterir. Ağırlık değerleri ne kadar yüksekse, anlamlılık da o kadar yüksek olur. Ağın eğitim aşamasında öğrendiği parametrelerden biridir.
6. Önyargılar – Önyargı, daha iyi karar verme için kritik olabilecek etkinleştirme işlevini sola veya sağa kaydırmaya yardımcı olur. Rolü, lineer denklemdeki bir kesişimin rolüne benzer. Ağırlıklar, etkinleştirme işlevinin dikliğini artırabilir, yani, etkinleştirme işlevinin ne kadar hızlı tetikleneceğini gösterirken, önyargı, etkinleştirme işlevinin tetiklenmesini geciktirmek için kullanılır. Ağın eğitim aşamasında öğrendiği ikinci parametredir.
İlgili Makale: En İyi Derin Öğrenme Teknikleri
Bir Nöronun Genel Çalışması
Derin Öğrenme, insan beyninin çalışmasını taklit etmek ve insanın yaptığı şekilde öğrenmek için Yapay Sinir Ağları (YSA) ile çalışır. Yapay sinir ağlarında nöronlar katmanlar halinde düzenlenmiştir. İlk ve son katmana giriş ve çıkış katmanları denir. Bu iki katman arasındaki katmanlara gizli katmanlar denir.
Katmandaki her nöron kendi önyargısından oluşur ve bir önceki katmandan bir sonraki katmana nöronlar arasındaki her ara bağlantı için bir ağırlık vardır. Her giriş, ara bağlantıyla ilişkili ağırlıkla çarpılır.
Katmanlardaki her bir nöron için girdilerin ağırlıklı toplamı hesaplanır. Bu ağırlıklı girdi toplamına bir aktivasyon fonksiyonu uygulanır ve nöronun çıktısını üretmek için nöronun yanlılığı ile eklenir. Bu çıktı, bir sonraki katmandaki o nöronun bağlantılarına girdi görevi görür ve bu böyle devam eder.
Bu işleme feedforwarding denir. Çıktı katmanının sonucu, model tarafından verilen nihai karar olarak hizmet eder. Sinir ağlarının eğitimi, nöronlar arasındaki her bağlantının ağırlığı ve her nöronun önyargısı temelinde yapılır. Nihai sonuç model tarafından tahmin edildikten sonra, ağırlıkların ve sapmaların bir fonksiyonu olan toplam kaybı hesaplar.
Toplam Kayıp, temel olarak tüm nöronların maruz kaldığı kayıpların toplamıdır. Nihai hedef, maliyet fonksiyonunu en aza indirmek olduğundan, algoritma, ağırlıkları ve önyargıları buna göre geri alır ve değiştirir. Maliyet fonksiyonunun optimizasyonu, gradyan iniş yöntemi kullanılarak yapılabilir. Bu süreç geri yayılım olarak bilinir.
Sinir Ağlarında Varsayımlar
- Nöronlar katmanlar şeklinde düzenlenir ve bu katmanlar sıralı bir şekilde düzenlenir.
- Aynı katmanda bulunan nöronlar arasında iletişim yoktur.
- Yapay sinir ağlarının giriş noktası giriş katmanıdır (birinci katman), çıkış noktası ise çıkış katmanıdır (son katman).
- Sinir ağındaki her ara bağlantının kendisiyle ilişkili bir ağırlığı vardır ve her nöronun onunla ilişkili bir önyargısı vardır.
- Belirli bir katmandaki tüm nöronlara aynı aktivasyon fonksiyonu uygulanır.
Okuyun: Derin Öğrenme Projesi Fikirleri
Farklı Derin Öğrenme Algoritmaları
1. Tam Bağlantılı Sinir Ağı
Tam Bağlantılı Sinir Ağı'nda (FCNN'ler), bir katmandaki her nöron, bir sonraki katmandaki diğer nöronlara bağlanır. Bu katmanlara aynı nedenle Yoğun katmanlar denir. Bu katmanlar, her nöron diğer tüm nöronlarla bağlantı kurduğundan, hesaplama açısından çok pahalıdır.
Katmanlardaki nöron sayısı az olduğunda bu algoritmanın kullanılması tercih edilir, aksi takdirde işlemleri gerçekleştirmek için çok fazla hesaplama gücü ve zaman gerekir. Tam bağlanabilirliği nedeniyle fazla takılmaya da yol açabilir.
Tam Bağlantılı Sinir Ağı (Kaynak: Researchgate.net)
2. Evrişimli Sinir Ağı (CNN'ler)
Evrişimli Sinir Ağı (CNN'ler), görsel verilerle çalışmak üzere tasarlanmış bir sinir ağları sınıfıdır. yani resimler ve videolar. Bu nedenle Optik Karakter Tanıma (OCR), Nesne Yerelleştirme gibi birçok görüntü işleme görevi için kullanılır. CNN'ler video, metin ve ses tanıma için de kullanılabilir.
Görüntüler, görüntüdeki beyazlığın yoğunluğunu belirleyen piksellerden oluşur. Bir görüntünün her pikseli, sinir ağına beslenecek bir özelliktir. Örneğin, 128×128 görüntü, görüntünün 16384 pikselden veya özelliklerden oluştuğunu gösterir. Sinir ağına 16384 boyutunda bir vektör olarak beslenecektir. Renkli görüntüler için 3 kanal vardır (her biri için bir tane – Kırmızı, Mavi, Yeşil). Bu durumda, aynı renkli görüntü 128x128x3 pikselden oluşacaktır.
CNN'nin katmanlarında hiyerarşi vardır. İlk katman, görüntülerin yatay veya dikey kenarlar gibi ham özelliklerini çıkarmaya çalışır. İkinci katmanlar, birinci katman tarafından çıkarılan özelliklerden daha fazla içgörü elde eder. Sonraki katmanlar daha sonra bir görüntünün saç, cilt, burun vb. gibi belirli kısımlarını tanımlamak için ayrıntılara daha derine iner. Son olarak, son katman girdi görüntüsünü insan, kedi, köpek vb. olarak sınıflandırır.
Kaynak
VGGNet Mimarisi – Yaygın olarak kullanılan CNN'lerden biri
CNN'lerde üç önemli terminoloji vardır:
- Evrişimler – Evrişimler, iki matrisin eleman bilge ürününün toplamıdır. Bir matris, girdi verilerinin bir parçasıdır ve diğer matris, görüntüden özellikleri çıkarmak için kullanılan bir filtredir.
- Havuzlama Katmanları – Çıkarılan özelliklerin toplanması, Havuzlama Katmanları tarafından yapılır. Bu katmanlar genellikle bir toplu istatistik (maks, ortalama vb.) hesaplar ve ağı yerel dönüşümlere göre değişmez kılar.
- Özellik Haritaları – Bir nöron, temel olarak ağırlıkları eğitimi sırasında öğrenilen bir filtredir. Her nöron, girdideki alıcı alanı olarak bilinen belirli bir bölgeye bakar. Bir Özellik Haritası, görüntünün farklı bölgelerine aynı ağırlıkta bakan bu tür nöronların bir koleksiyonudur. Bir özellik haritasındaki tüm nöronlar, görüntünün farklı bölgelerinden aynı özelliği çıkarmaya çalışır.
3. Tekrarlayan Sinir Ağları (RNN'ler)
Tekrarlayan Sinir Ağları, sıralı verilerle başa çıkmak için tasarlanmıştır. Sıralı veriler, metin (kelime dizisi, cümle vb.) veya videolar (görüntü dizisi), konuşma vb. gibi önceki verilerle bir bağlantısı olan veriler anlamına gelir.

Bu ardışık varlıklar arasındaki bağlantıyı anlamak çok önemlidir, aksi takdirde tüm paragrafı karıştırmak ve ondan bir anlam çıkarmaya çalışmak mantıklı olmaz. RNN'ler bu sıralı varlıkları işlemek için tasarlanmıştır. Kullanılan RNN'lere iyi bir örnek, YouTube'da altyazıların otomatik olarak oluşturulmasıdır. RNN'ler kullanılarak uygulanan Otomatik Konuşma Tanıma'dan başka bir şey değildir.
Normal sinir ağları ve tekrarlayan sinir ağları arasındaki temel fark, girdi verilerinin iki boyut boyunca akmasıdır - zaman (özellikleri çıkarmak için dizinin uzunluğu boyunca) ve derinlik (normal sinir katmanları). Farklı RNN türleri vardır ve yapıları buna göre değişir.
- Çoktan Bire RNN: – Bu mimaride, ağa beslenen girdi bir dizidir ve çıktı tek bir varlıktır. Bu mimari, duyarlılık sınıflandırması gibi sorunların üstesinden gelmek veya girdi verilerinin duyarlılık puanını tahmin etmek için kullanılır (Regresyon sorunu). Videoları belirli kategorilere ayırmak için de kullanılabilir.
- Çoktan Çoka RNN: – Bu mimaride hem girdi hem de çıktı dizilerdir. Girdi ve çıktının uzunluğuna göre ayrıca sınıflandırılabilir.
- Aynı uzunluk: – Ağ, her zaman adımında bir çıktı üretir. Her zaman adımında giriş ve çıkış arasında bire bir yazışma vardır. Bu mimari, girişteki dizinin her bir kelimesinin, her zaman adımında çıktı olarak konuşmanın kendi kısmı ile etiketlendiği konuşma etiketleyicinin bir parçası olarak kullanılabilir.
- Farklı uzunluk: – Bu durumda girdinin uzunluğu, çıktının uzunluğuna eşit değildir. Bu mimarinin kullanımlarından biri de dil çevirisidir. İngilizce bir cümlenin uzunluğu, karşılık gelen Hintçe cümleden farklı olabilir.
- Bire Çok RNN: – Buradaki girdi tek bir varlıkken çıktı bir dizidir. Bu tür sinir ağları, müzik, görüntü vb. oluşturma gibi görevler için kullanılır.
- Bire Bir RNN: – Giriş ve çıkışın tekil varlıklar olduğu geleneksel bir sinir ağıdır.
RNN Türleri (Kaynak: iq.opengenus.org)
4. Uzun – Kısa Süreli Bellek Ağları (LSTM)
Tekrarlayan Sinir Ağlarının dezavantajlarından biri, kaybolan gradyan problemidir. Bu sorunla, sinir ağlarını Stokastik gradyan inişi ve geri yayılım gibi gradyan tabanlı öğrenme yöntemleriyle eğitirken karşılaşıyoruz. Aktivasyon fonksiyonunun gradyanları, ağların ağırlıklarının güncellenmesinden sorumludur.
O kadar küçülürler ki, değişen sinir ağlarının ağırlıklarını pek etkilemezler. Bu, sinir ağlarının eğitimini engeller. RNN'ler, uzun vadeli bağımlılıkları öğrenmekte zorlandıklarında bu sorunla karşılaşırlar.
Uzun – Kısa Süreli Bellek Ağları (LSTM) tam da bu sorunla yüzleşmek için tasarlandı. LSTM, önceki bilgilerle ilgili bilgileri depolayabilen bir bellek biriminden oluşur. Kapılı Tekrarlayan Birimler (GRU'lar), aynı zamanda, gradyan problemlerinin kaybolmasına yardımcı olan bir RNN çeşididir.
Her ikisi de bu sorunu çözmek için geçit mekanizması kullanır. GRU, daha az eğitim parametresi kullanır ve bu nedenle LSTM'den daha az bellek kullanır. Bu, GRU'ların daha hızlı eğitilmesini sağlar, ancak LSTM, giriş dizilerinin uzun olduğu durumlarda daha doğru sonuçlar sağlar.
5. Üretken Düşman Ağları (GAN)
Generative Adversarial Networks (GAN), verilerden kalıpları otomatik olarak keşfeden ve öğrenen denetimsiz bir öğrenme algoritmasıdır. Bu kalıpları öğrendikten sonra çıktı olarak girdi ile aynı özelliklere sahip yeni veriler üretir. Oluşturucu ve ayırıcı olmak üzere iki alt modele bölünmüş bir model oluşturur.
Jeneratör modeli girdiden yeni görüntüler üretmeye çalışırken, ayırıcı modelin rolü, verilerin veri kümesinden gerçek bir görüntü mü yoksa yapay olarak oluşturulmuş görüntülerden mi (oluşturulan modelden görüntüler) olduğunu sınıflandırmaktır.
Diskriminatör modeli genellikle evrişimli sinir ağı biçiminde ikili bir sınıflandırıcı olarak işlev görür. Her yinelemede, her iki model de sonuçlarını iyileştirmeye çalışır, çünkü üreteç modelinin amacı, görüntüyü tanımlamada ayrımcı modeli kandırmaktır ve ayrımcının amacı, sahte görüntüleri doğru bir şekilde tanımlamaktır.
6. Kısıtlı Boltzmann Makinesi (RBM)
Kısıtlı Boltzmann Makinesi (RBM), üretken yeteneklere sahip deterministik olmayan sinir ağlarıdır ve girdi üzerinden olasılık dağılımını öğrenir. Katmandaki düğümler arasındaki ara bağlantılar açısından sınırlandırılmış, Boltzmann Makinesi'nin kısıtlı biçimidir.
Bunlar sadece iki katman içerir, yani görünür katman ve gizli katman. RBM'de çıktı katmanı yoktur ve katmanlar birbirine tam olarak bağlıdır. RBM'ler, GAN'lar tarafından değiştirildikleri için artık ciddi bir şekilde kullanılmaktadır. Diğer sinir ağları gibi gradyan iniş ve geri yayılım kullanılarak ayarlanabilen yeni bir ağ oluşturmak için birden fazla RBM bir araya getirilebilir. Bu tür ağlara Derin İnanç Ağları denir.
Kısıtlı Boltzmann Makinesi (Kaynak: Medium)
7. Transformatörler
Transformatörler, sinirsel makine çevirisi için tasarlanmış bir tür sinir ağı mimarisidir. Ağa sağlanan bilgilerin bir kısmına odaklanan bir dikkat mekanizması içerirler. İki bölümden oluşur: Kodlayıcılar ve Kod Çözücüler.
Transformatör Mimarisi (Kaynak: arxiv.org)
Şeklin sol kısmı Enkoder, sağ kısmı ise Dekoderdir. Kodlayıcı ve kod çözücü, üst üste istiflenebilen birden fazla modülden oluşabilir. Aynısı şekilde Nx tarafından iletilir. Her bir kodlayıcı katmanının işlevi, girdinin hangi bölümlerinin kodlama olarak adlandırılan birbiriyle alakalı olduğunu bulmaktır.

Bu kodlamalar daha sonra girdi olarak bir sonraki kodlayıcı katmanına iletilir. Kod çözücü katmanı bu kodlamaları alır ve çıktı dizisini oluşturmak için bunları işler. Dikkatli mekanizma, diğer tüm girdilerin önemini tartar ve çıktı sırasını tahmin etmek için bu ilişkilerden bilgi çıkarır. Kodlayıcı ve kod çözücü katmanları ayrıca çıktıların daha fazla işlenmesi için kullanılan ileri besleme katmanlarından oluşur.
Ayrıca Okuyun: Derin Öğrenme ve Sinir Ağları
Çözüm
Makale, Derin Öğrenme alanı, sinir ağlarında kullanılan bileşenler, derin öğrenme algoritmaları fikri, sinir ağlarını basitleştirmek için yapılan varsayımlar vb. hakkında kısa bir giriş yaptı. Bu makale, derin öğrenme algoritmalarının sınırlı bir listesini sağlar. mevcut algoritmaların sınırlamalarının üstesinden gelmek için sürekli olarak oluşturulan birçok farklı algoritma.
Derin Öğrenme algoritmaları video, resim, metin vb. işleme yöntemlerinde devrim yaratmıştır ve gerekli paketleri içe aktararak kolayca uygulanabilirler. Son olarak, tüm Derin Öğrenenler için sınır Sonsuzluktur.
Derin öğrenme teknikleri , makine öğrenimi hakkında daha fazla bilgi edinmek istiyorsanız, IIIT-B & upGrad'ın çalışan profesyoneller için tasarlanmış ve 240+ saatlik zorlu eğitim, 5+ vaka çalışması sunan Makine Öğrenimi ve Derin Öğrenmede PG Sertifikasına göz atın & atamalar, IIIT-B Mezunları durumu ve en iyi firmalarla iş yardımı.
CNN ve ANN arasındaki fark?
Yapay Sinir Ağları (YSA), insan sinir katmanlarına paralel ağ katmanları oluşturur: girdi, gizli ve çıktı karar katmanları. YSA'lar hataları algılar ve bir eksiklikten sonra kendilerini yeniden yapılandırarak kendilerini güncellerler. Evrişimli Sinir Ağları (CNN'ler) esas olarak görüntü girdisine odaklıdır. CNN'lerde, ilk katman ham görüntüyü çıkarır. Sonraki katman, önceki katmanda bulunan bilgilere bakar. Üçüncü katman görüntünün özelliklerini tanımlar ve son katman görüntüyü tanır. CNN'ler açık girdi açıklamaları gerektirmez; Uzamsal özellikleri kullanarak verileri tanırlar. Görsel tanıma görevleri için oldukça tercih edilirler.
Derin Öğrenme, Yapay Zekada bir avantaj sağlıyor mu?
Yapay Zeka (AI), teknolojiyi daha doğru ve dünyayı temsil eden hale getirdi. Yapay Zeka'da Makine Öğreniminin bir parçası olarak Derin Öğrenme, büyük miktarda veriyi verimli bir şekilde işleyebilir. Sorunları çözmek için noktadan noktaya yaklaşımı vardır. Derin Öğrenme, verimli ve hızlı sistemler oluştururken, Makine Öğrenimi sistemlerinin başlamak için birkaç adımı vardır. Derin Öğrenme çok fazla eğitim süresi gerektirse de, test karşılıklılığı anlıktır. Derin Öğrenme, inkar edilemez bir şekilde Yapay Zekanın ayrılmaz bir parçasıdır ve işitsel ve görsel verilerin tespit edilmesine katkıda bulunmuştur. Otomatik sesli yardımcı cihazları, araçları ve diğer birçok teknolojiyi mümkün kılmıştır.
Derin Öğrenmenin sınırlamaları nelerdir?
Derin Öğrenme, makine-insan etkileşiminde ilerlemeler kaydetti ve teknolojiyi birçok yönden insanlık için kullanılabilir hale getirdi. Kapsamlı eğitim engelleri, pahalı ekipman gereksinimleri ve büyük veri ön koşulları vardır. Otomatik çözümler sağlar, ancak çok sayıda algoritma ve sinir ağının hesaplanması gerçekleştirilinceye kadar net olmayan kararlar verir. Yol, neredeyse imkansız olan belirli düğümlere kadar izlenir; Makine Öğrenimi, düz bir süreç izleme yoluna sahiptir ve tercih edilir. Derin Öğrenmenin birçok sınırlaması vardır, ancak avantajları hepsinden daha ağır basar.