CNN vs RNN: CNN ve RNN Arasındaki Fark
Yayınlanan: 2021-02-25İçindekiler
Tanıtım
Yapay Zeka alanında, insan beyninden ilham alan Sinir Ağları, çeşitli verilerden karmaşık bilgilerin çıkarılması ve işlenmesinde yaygın olarak kullanılmaktadır ve bu tür uygulamalarda hem Evrişimli Sinir Ağları (CNN) hem de Tekrarlayan Sinir Ağları (RNN) kullanılmaktadır. faydalı olduklarını kanıtlıyorlar.
Bu makalede, hem Evrişimli Sinir Ağlarının hem de Tekrarlayan Sinir Ağlarının arkasındaki kavramları anlayacağız, uygulamalarını göreceğiz ve her iki popüler Sinir Ağı türü arasındaki farkları ayırt edeceğiz.
Dünyanın En İyi Üniversitelerinden Makine Öğrenimi Eğitimi Öğrenin . Kariyerinizi hızlandırmak için Master, Executive PGP veya Advanced Certificate Programları kazanın.
Sinir Ağları ve Derin Öğrenme
Hem Evrişimli Sinir Ağları hem de Tekrarlayan Sinir Ağları kavramlarına girmeden önce, Sinir Ağlarının arkasındaki kavramları ve bunun Derin Öğrenme ile nasıl bağlantılı olduğunu anlayalım.
Son zamanlarda, Derin Öğrenme bir zamanlar birçok alanda yaygın olarak kullanılan bir kavramdır ve bu nedenle bugünlerde sıcak bir konudur. Ama bu kadar çok konuşulmasının sebebi nedir? Bu soruyu cevaplamak için Sinir Ağları kavramını öğreneceğiz.
Kısacası, Sinir Ağları Derin Öğrenmenin bel kemiğidir. Bunlar, veriler üzerinde bir dizi dönüşüm gerçekleştiren ve bu veriler üzerinde kendi anlayışını oluşturan ve bu terim, özellikler olarak adlandırdığımız, yüksek düzeyde birbirine bağlı öğelerden oluşan ve nöronlar olarak bilinen bir dizi katmandır.
Sinir Ağları nedir?
Başa çıkmamız gereken ilk kavram Sinir Ağları kavramıdır. İnsan Beyninin şimdiye kadar çalışılmış karmaşık yapılardan biri olduğunu biliyoruz. Karmaşıklığı nedeniyle iç işleyişini çözmede büyük bir zorluk olmuştur, ancak günümüzde sırlarını ortaya çıkarmak için çeşitli araştırmalar yapılmaktadır. Bu İnsan Beyni, Sinir Ağı modellerinin ardındaki ilham kaynağı olarak hizmet eder.
Tanım olarak, Sinir Ağları, beyin aktivitesini taklit etmek ve karmaşık sorunları çözmek için bu Sinir Ağlarını kullanan Derin Öğrenmenin işlevsel birimleridir. Girdi verileri Sinir Ağı'na beslendiğinde, algılayıcı katmanları aracılığıyla işlenir ve son olarak çıktıyı verir.
Bir Sinir Ağı temel olarak 3 katmandan oluşur -
- Giriş Katmanı
- Gizli Katmanlar
- Çıktı Katmanı
Girdi Katmanı, sonraki yapay nöron katmanları tarafından daha fazla ön işleme için Sinir Ağı sistemine beslenen girdi verilerini okur. Girdi Katmanı ile Çıktı Katmanı arasında bulunan tüm katmanlar Gizli Katmanlar olarak adlandırılır.
Bu Gizli Katmanlarda, içlerinde bulunan nöronlar ağırlıklı girdileri ve önyargıları kullanır ve aktivasyon fonksiyonlarını kullanarak bir çıktı üretir. Çıktı Katmanı, bize verilen programın çıktısını veren son nöron katmanıdır.
Kaynak
Sinir Ağları Nasıl Çalışır?
Artık Sinir Ağlarının temel yapısı hakkında bir fikre sahip olduğumuza göre, nasıl çalıştıklarını anlayacağız. Çalışmasını anlamak için önce Perceptron olarak bilinen Sinir Ağlarının temel yapılarından birini öğrenmeliyiz.
Perceptron , formda en temel olan bir Sinir Ağı türüdür. Sadece bir gizli katmana sahip basit bir ileri beslemeli yapay sinir ağıdır. Perceptron ağında, her nöron ileri yönde diğer nöronlara bağlanır.
Bu nöronlar arasındaki bağlantılar ağırlıklıdır, çünkü iki nöron arasında aktarılan bilgiler bu ağırlıklar tarafından güçlendirilir veya zayıflatılır. Yapay Sinir Ağlarının eğitim sürecinde doğru değeri alacak şekilde ayarlanan bu ağırlıklardır.
Perceptron, doğası gereği ikili olan bir değişken vektörünü tek bir ikili çıktıya eşleyen bir ikili sınıflandırıcı işlevi kullanır. Bu, Denetimli Öğrenmede de kullanılabilir. Perceptron Öğrenme Algoritmasındaki adımlar şunlardır:
- Tüm girdileri ağırlıkları w ile çarpın; burada w, başlangıçta sabitlenebilen veya rastgele ayarlanabilen gerçek sayılardır.
- Ağırlıklı toplamı elde etmek için ürünü bir araya getirin, ∑ wj xj
- Girdilerin ağırlıklı toplamı elde edildikten sonra, uygulanan aktivasyon fonksiyonuna bağlı olarak ağırlıklı toplamın belirli bir eşik değerinden büyük olup olmadığını belirlemek için Aktivasyon Fonksiyonu uygulanır. Çıkış, eşik durumuna bağlı olarak 1 veya 0 olarak atanır. Burada “-eşik” değeri aynı zamanda yanlılık terimine de atıfta bulunur, b.
Bu sayede günümüzde tasarlanan ve geliştirilen Sinir Ağlarında bulunan nöronları ateşlemek (değer=1) için Perceptron Learning algoritması kullanılabilir. Perceptron Öğrenme Algoritmasının başka bir temsili:
f(x) = 1, eğer ∑ wj xj + b ≥ 0 ise
0, eğer ∑ wj xj + b < 0 ise
Algılayıcılar günümüzde yaygın olarak kullanılmasa da, Sinir Ağlarındaki temel kavramlardan biri olmaya devam etmektedir. Daha ileri araştırmalarda, bir algılayıcıda bile ağırlıklardaki veya önyargıdaki küçük değişikliklerin çıktıyı 1'den 0'a veya tam tersi şekilde büyük ölçüde değiştirebileceği anlaşıldı. Bu, Perceptron'un önemli bir dezavantajıydı. Bu nedenle, yapay nöronların ağırlıklarında ve yanlılığında yalnızca ılımlı değişiklikler getiren ReLU, Sigmoid işlevleri gibi daha karmaşık aktivasyon işlevleri geliştirildi.
Kaynak
Evrişimli Sinir Ağları
Bir Evrişimli Sinir Ağı, bir görüntüyü girdi olarak alan, görüntünün çeşitli bölümlerine birbirinden ayırt edilebilecek şekilde çeşitli ağırlıklar ve önyargılar atayan bir Derin Öğrenme Algoritmasıdır. Türevlenebilir hale geldiklerinde, çeşitli aktivasyon fonksiyonlarını kullanarak Evrişimli Sinir Ağı Modeli, Görüntü Tanıma, Görüntü Sınıflandırma, Nesne ve Yüz Algılama vb. dahil olmak üzere Görüntü İşleme alanında çeşitli görevleri gerçekleştirebilir.
Bir Evrişimli Sinir Ağı Modelinin temeli, bir girdi görüntüsü almasıdır. Giriş görüntüsü etiketli (kedi, köpek, aslan vb.) veya etiketsiz olabilir. Buna bağlı olarak, Derin Öğrenme algoritmaları, görüntülerin etiketlendiği Denetimli Algoritmalar ve görüntülere belirli bir etiket verilmediği Denetimsiz Algoritmalar olmak üzere iki türe ayrılır.
Bilgisayar makinesine, giriş görüntüsü, daha sık olarak bir matris biçiminde bir piksel dizisi olarak görülür. Görüntüler çoğunlukla hxwxd biçimindedir (burada h = Yükseklik, w = Genişlik, d = Boyut). Örneğin, 16 x 16 x 3 matris dizisi boyutundaki bir görüntü, bir RGB Görüntüsünü belirtir (3, RGB değerleri anlamına gelir). Öte yandan, 14 x 14 x 1 matris dizisi bir görüntü gri tonlamalı bir görüntüyü temsil eder.
Kaynak
Evrişimsel Sinir Ağı Katmanları
Bir Evrişimli Sinir Ağının yukarıdaki temel Mimarisinde gösterildiği gibi, bir CNN Modeli, çıktıyı almak için girdi görüntülerinin ön işleme tabi tutulduğu birkaç katmandan oluşur. Temel olarak, bu katmanlar iki kısma ayrılır -
- Giriş Katmanı, Evrişim Katmanı ve modele beslenen görüntülerden temel düzey özellikleri türetmek için özellik çıkarma aracı olarak işlev gören Havuzlama katmanını içeren ilk üç katman.
- Son Tam Bağlantılı Katman ve Çıktı Katmanı, özellik çıkarma katmanlarının çıktısını kullanır ve çıkarılan özelliklere bağlı olarak görüntü için bir sınıf tahmin eder.
İlk katman, görüntünün bir matris dizisi şeklinde Evrişimli Sinir Ağı Modeline beslendiği, yani 32 x 32 x 3 olduğu Giriş Katmanıdır; burada 3, görüntünün eşit yükseklik ve genişliğe sahip bir RGB görüntüsü olduğunu gösterir. 32 piksel. Daha sonra bu girdi görüntüleri, Evrişimin matematiksel işleminin gerçekleştirildiği Evrişim Katmanından geçer .
Giriş görüntüsü, çekirdek veya filtre olarak bilinen başka bir kare matris ile kıvrılır. Çekirdeği giriş görüntüsünün pikselleri üzerinde tek tek kaydırarak, görüntünün kenarlar ve çizgiler gibi temel düzey özellikleri hakkında bilgi sağlayan özellik haritası olarak bilinen çıkış görüntüsünü elde ederiz.
Evrişimsel Katmanı, hesaplama maliyetini azaltmak için özellik haritasının boyutunu küçültmeyi amaçlayan Havuzlama katmanı izler. Bu, Maksimum Havuzlama, Ortalama Havuzlama ve Toplam Havuzlama gibi çeşitli havuzlama türleri ile yapılır.
Tam Bağlı (FC) Katmanı, katmanların düzleştirildiği ve FC katmanına beslendiği Evrişimsel Sinir Ağı Modelinin sondan bir önceki katmanıdır. Burada Sigmoid, ReLU ve tanH fonksiyonları gibi aktivasyon fonksiyonları kullanılarak etiket tahmini yapılır ve son Çıktı Katmanında verilir .
CNN'lerin Yetersiz Kaldığı Yer
Görsel görüntü verilerinde Evrişimsel Sinir Ağının pek çok kullanışlı uygulamasıyla, CNN'lerin küçük bir dezavantajı vardır, çünkü bir dizi görüntü (video) ile iyi çalışmazlar ve geçici bilgi ve metin bloklarını yorumlamakta başarısız olurlar.
Cümleler gibi zamansal veya sıralı verilerle başa çıkmak için geçmiş verilerden ve ayrıca sıradaki gelecek verilerden öğrenen algoritmalara ihtiyacımız var. Neyse ki, Tekrarlayan Sinir Ağları tam da bunu yapıyor.
Tekrarlayan Sinir Ağları
Tekrarlayan Sinir Ağları, zamansal veya sıralı bilgileri yorumlamak için tasarlanmış ağlardır. RNN'ler, daha iyi tahminler yapmak için sırayla diğer veri noktalarını kullanır. Bunu, girdiyi alarak ve çıktıyı etkilemek için dizideki önceki düğümlerin veya sonraki düğümlerin aktivasyonlarını yeniden kullanarak yaparlar.
Kaynak
Dahili hafızalarının bir sonucu olarak, Tekrarlayan Sinir ağları, aldıkları girdiler gibi hayati detayları hatırlayabilir, bu da bir sonraki adımı tahmin etmede onları çok hassas hale getirir. Bu nedenle, zaman serisi, konuşma, metin, ses, video ve daha pek çok sıralı veri için en çok tercih edilen algoritmadır. Tekrarlayan Sinir Ağları, diğer algoritmalara kıyasla bir dizi ve bağlamı hakkında çok daha derin bir anlayış oluşturabilir.
Tekrarlayan Sinir Ağları Nasıl Çalışır?
Tekrarlayan Sinir ağları üzerinde çalışmayı anlamanın temeli, Perceptron olarak da bilinen basit ileri beslemeli Sinir Ağları olan Evrişimli Sinir ağları için olanla aynıdır. Ek olarak, Tekrarlayan Sinir ağlarında, önceki adımın Çıktısı, mevcut adıma girdi olarak beslenir. Çoğu Sinir Ağında, çıkış genellikle girişlerden bağımsızdır ve bunun tersi de, RNN ve diğer Sinir Ağları arasındaki temel farktır.
Kaynak
Bu nedenle, bir RNN'nin iki girişi vardır: şimdiki zaman ve yakın geçmiş. Bu önemlidir, çünkü veri dizisi, sırada ne olduğu hakkında çok önemli bilgiler içerir, bu nedenle bir RNN, diğer algoritmaların yapamadığı şeyleri yapabilir. Tekrarlayan Sinir Ağlarının ana ve en önemli özelliği, bir dizi hakkında bazı bilgileri hatırlayan Gizli durumdur.
Tekrarlayan Sinir Ağları, hesaplananlarla ilgili tüm bilgileri saklayan bir belleğe sahiptir. Her girdi için aynı parametreleri kullanarak ve tüm girdilerde veya gizli katmanlarda aynı görevi gerçekleştirerek, parametrelerin karmaşıklığı azaltılır.
CNN ve RNN Arasındaki Fark
Evrişimli Sinir Ağları | Tekrarlayan Sinir Ağları |
Derin öğrenmede, evrişimli bir sinir ağı (CNN veya ConvNet), en yaygın olarak görsel görüntüleri analiz etmek için uygulanan bir derin sinir ağları sınıfıdır. | Tekrarlayan bir sinir ağı (RNN), düğümler arasındaki bağlantıların zamansal bir dizi boyunca yönlendirilmiş bir grafik oluşturduğu bir yapay sinir ağları sınıfıdır. |
Görüntüler gibi uzamsal veriler için uygundur. | RNN, sıralı veriler olarak da adlandırılan geçici veriler için kullanılır. |
CNN, minimum miktarda ön işleme kullanmak için tasarlanmış çok katmanlı algılayıcının varyasyonlarına sahip bir tür ileri beslemeli yapay sinir ağıdır. | RNN, ileri beslemeli sinir ağlarından farklı olarak, isteğe bağlı girdi dizilerini işlemek için dahili belleklerini kullanabilir. |
CNN, RNN'den daha güçlü olarak kabul edilir. | RNN, CNN ile karşılaştırıldığında daha az özellik uyumluluğu içerir. |
Bu CNN, sabit boyutlu girdileri alır ve sabit boyutlu çıktılar üretir. | RNN, isteğe bağlı giriş/çıkış uzunluklarını işleyebilir. |
CNN'ler, görüntü ve video işleme için idealdir. | RNN'ler metin ve konuşma analizi için idealdir. |
Uygulamalar arasında Görüntü Tanıma, Görüntü Sınıflandırma, Tıbbi Görüntü Analizi, Yüz Algılama ve Bilgisayarla Görme bulunur. | Uygulamalar Metin Çevirisi, Doğal Dil İşleme, Dil Çevirisi, Duygu Analizi ve Konuşma Analizini içerir. |
Çözüm
Bu nedenle, en popüler iki Sinir Ağı türü, Evrişimli Sinir Ağları ve Tekrarlayan Sinir Ağları arasındaki farklar hakkındaki bu makalede, bir Sinir Ağının temel yapısını, hem CNN hem de RNN'nin temellerini öğrendik ve sonunda özetledik. gerçek dünyadaki uygulamaları ile ikisi arasında kısa bir karşılaştırma.
Makine öğrenimi hakkında daha fazla bilgi edinmek istiyorsanız, çalışan profesyoneller için tasarlanmış ve 450+ saat zorlu eğitim, 30'dan fazla vaka çalışması ve ödev, IIIT sunan IIIT-B & upGrad'ın Makine Öğrenimi ve Yapay Zeka alanında Yönetici PG Programına göz atın. -B Mezunu statüsü, 5'ten fazla pratik uygulamalı bitirme projesi ve en iyi firmalarla iş yardımı.
CNN neden RNN'den daha hızlı?
CNN'ler RNN'lerden daha hızlıdır çünkü görüntüleri işlemek için tasarlanırken, RNN'ler metni işlemek için tasarlanmıştır. RNN'ler görüntüleri işlemek için eğitilebilse de, birbirine daha yakın zıt özellikleri ayırmaları onlar için hala zor. Örneğin, gözleri, burnu ve ağzı olan bir yüz resminiz varsa, RNN'ler ilk önce hangi özelliği göstereceklerini bulmakta zorlanırlar. CNN'ler bir nokta ızgarası kullanır ve bir algoritma kullanarak şekilleri ve kalıpları tanımak için eğitilebilirler. CNN'ler, görüntüleri sıralamada RNN'lerden daha iyidir; RNN'lerden daha hızlıdırlar çünkü hesaplamaları kolaydır ve görüntüleri sıralamada daha iyidirler.
RNN ne için kullanılır?
Tekrarlayan sinir ağları (RNN'ler), birimler arasındaki bağlantıların yönlendirilmiş bir döngü oluşturduğu bir yapay sinir ağları sınıfıdır. Bir birimin çıktısı başka bir birimin girdisi olur ve bu böyle devam eder, tıpkı bir nöronun çıktısının diğerinin girdisi olması gibi. RNN'ler, standart yöntemlerle gerçekleştirilmesi zor olan konuşma tanıma ve makine çevirisi gibi karmaşık görevleri üstlenmek için başarıyla kullanılmıştır.
RNN nedir ve Feedforward Sinir Ağlarından farkı nedir?
Tekrarlayan Sinir Ağları (RNN'ler), sıralı verileri işlemek için kullanılan bir tür Sinir Ağlarıdır. Tekrarlayan bir sinir ağı, bir girdi katmanından, bir veya daha fazla gizli katmandan ve bir çıktı katmanından oluşur. Gizli katman(lar), daha sonra çıkış katmanına harici bir temsil olarak sunulan girdi verilerinin dahili temsillerini öğrenmek için tasarlanmıştır. RNN, geri yayılım yardımıyla eğitilir. RNN'ler genellikle ileri beslemeli sinir ağları (FNN'ler) ile karşılaştırılır. Hem RNN'ler hem de FNN'ler, verilerin dahili temsillerini öğrenebilirken, RNN'ler, FNN'lerin yapamayacağı uzun vadeli bağımlılıkları öğrenme yeteneğine sahiptir.