You are on page 1of 12

4/22/23, 12:39 AM Evrişim Çekirdeği Türleri : Basitleştirilmiş | yazan Prakhar Ganesh | Veri Bilimine Doğru

Uygulamada aç Sınırsız erişim elde edin

Arama Aracı

Yayınlanan Veri Bilimine Doğru

Bu, bu ay üyelere özel son ücretsiz hikayeniz. Sınırsız erişim için yükseltin.

Prakhar Ganesh Takip etmek

18 Ekim 2019 · 7 dakika okuma · · Dinlemek

Kaydetmek

Konvolüsyon Çekirdeği Türleri: Basitleştirilmiş


Göz alıcı CNN katmanının farklı varyasyonlarına sezgisel bir giriş

Sadece kısa bir giriş


Evrişim, bir girdi görüntüsünden belirli 'özellikleri' çıkarmak için bir 'çekirdek' kullanıyor .
Açıklamama izin ver. Çekirdek, görüntü boyunca kaydırılan ve çıktının belirli bir arzu
edilen şekilde geliştirileceği şekilde girdi ile çarpılan bir matristir. Bunu aşağıda
çalışırken izleyin.

848 4

https://towardsdatascience.com/types-of-convolution-kernels-simplified-f040cb307c37#:~:text=Convolution is using a 'kernel,in a certain desirable ma… 1/12


4/22/23, 12:39 AM Evrişim Çekirdeği Türleri : Basitleştirilmiş | yazan Prakhar Ganesh | Veri Bilimine Doğru

Örneğin, yukarıda kullanılan çekirdek, görüntüyü keskinleştirmek için kullanışlıdır.


Ama bu çekirdek hakkında bu kadar özel olan ne? Aşağıdaki örnekte gösterildiği gibi
iki giriş görüntüsü düzenlemesini göz önünde bulundurun. İlk görüntü için orta değer
3*5 + 2*-1 + 2*-1 + 2*-1 + 2*-1 = 7'dir. 3 değeri 7'ye çıkarılmıştır. İkinci görüntü için çıktı
1*5+ 2*-1 + 2*-1 + 2*-1 + 2*-1 = -3'tür. 1'in aldığı değer -3'e düşürülmüştür. Açıkçası, 3 ve
1 arasındaki kontrast 7 ve -3'e çıkar, bu da görüntüyü keskinleştirir.

https://towardsdatascience.com/types-of-convolution-kernels-simplified-f040cb307c37#:~:text=Convolution is using a 'kernel,in a certain desirable ma… 2/12


4/22/23, 12:39 AM Evrişim Çekirdeği Türleri : Basitleştirilmiş | yazan Prakhar Ganesh | Veri Bilimine Doğru

Özellik çıkarımı için elle yapılmış çekirdekler kullanmak yerine, Derin CNN'ler
aracılığıyla gizli özellikleri çıkarabilen bu çekirdek değerlerini öğrenebiliriz.
Geleneksel CNN'lerin çalışmasını daha fazla okumak için bu blogu öneririm.

Derin Öğrenme İçin Konvolüsyonları Sezgisel Olarak Anlamak


Çalışmalarını sağlayan güçlü görsel hiyerarşileri keşfetme
doğrudatascience.com

Çekirdek ve Filtre
Bu konuya girmeden önce, 'çekirdek' ve 'filtre' terimleri arasındaki ayrımı netleştirmek
istiyorum çünkü birçok insanın bunları birbirinin yerine kullandığını gördüm. Bir
çekirdek, daha önce açıklandığı gibi, ilgili özellikleri çıkarmak için girdi ile çarpılan
bir ağırlıklar matrisidir. Çekirdek matrisinin boyutları, evrişimin adını nasıl aldığıdır .
Örneğin, 2B konvolüsyonlarda, çekirdek matrisi bir 2B matristir.

Bununla birlikte, bir filtre, her bir çekirdek belirli bir giriş kanalına atanan birden çok
çekirdeğin bir birleşimidir. Filtreler her zaman çekirdeklerden bir boyut daha fazladır.
Örneğin, 2B konvolüsyonlarda, filtreler 3B matrislerdir (bu, esas olarak 2B matrislerin,
yani çekirdeklerin bir birleşimidir).Çekirdek boyutları h*w ve giriş kanalları k olan bir
CNN katmanı için filtre boyutları k*h*w'dir.

Ortak bir evrişim katmanı aslında birden fazla bu tür filtreden oluşur. Aşağıdaki
tartışmada basitlik adına, aynı davranış tüm filtrelerde tekrarlandığından, belirtilmediği
sürece yalnızca bir filtrenin var olduğunu varsayalım.

1D, 2D ve 3D Evrişimler
1B konvolüsyonlar genellikle zaman serisi veri analizi için kullanılır (çünkü bu tür
durumlarda girdi 1B'dir). Daha önce bahsedildiği gibi, 1D veri girişi birden fazla kanala
sahip olabilir. Filtre yalnızca bir yönde hareket edebilir ve dolayısıyla çıktı 1D'dir.
Aşağıdaki tek kanallı 1B evrişim örneğine bakın.

https://towardsdatascience.com/types-of-convolution-kernels-simplified-f040cb307c37#:~:text=Convolution is using a 'kernel,in a certain desirable ma… 3/12


4/22/23, 12:39 AM Evrişim Çekirdeği Türleri : Basitleştirilmiş | yazan Prakhar Ganesh | Veri Bilimine Doğru

Yazının başında zaten tek kanallı 2B evrişim örneğini görmüştük, bu yüzden çok
kanallı bir 2B evrişimi görselleştirelim ve kafa yormaya çalışalım. Aşağıdaki şemada,
çekirdek boyutları 3*3'tür ve filtrede (sarı ile işaretlenmiş) birden çok bu tür çekirdek
vardır. Bunun nedeni, girişte (mavi işaretli) birden fazla kanal bulunması ve girişteki
her kanala karşılık gelen bir çekirdeğin bulunmasıdır. Açıkçası, burada filtre 2 yönde
hareket edebilir ve bu nedenle nihai çıktı 2B'dir. 2D evrişimler en yaygın evrişimlerdir
ve Bilgisayarla Görüşte yoğun olarak kullanılırlar.

https://towardsdatascience.com/types-of-convolution-kernels-simplified-f040cb307c37#:~:text=Convolution is using a 'kernel,in a certain desirable ma… 4/12


4/22/23, 12:39 AM Evrişim Çekirdeği Türleri : Basitleştirilmiş | yazan Prakhar Ganesh | Veri Bilimine Doğru

Bir 3B filtreyi görselleştirmek zordur (çünkü bu bir 4B boyutlu matristir), dolayısıyla


burada tek kanallı 3B konvolüsyonu tartışacağız. Aşağıdaki görselden de
görebileceğiniz gibi 3D konvolüsyonlarda bir kernel 3 yönde hareket edebilmektedir ve
bu sayede elde edilen çıktı da 3D olmaktadır.

CNN katmanlarını değiştirmek ve özelleştirmek için yapılan işlerin çoğu yalnızca 2B


kıvrımlara odaklanmıştır ve bu nedenle bu noktadan itibaren bu varyasyonları
yalnızca 2B kıvrımlar bağlamında tartışacağım.

Transpoze Evrişim (Dekonvolüsyon)


Aşağıdaki GIF, 2B kıvrımın girdi boyutlarını nasıl azalttığını güzel bir şekilde yakalar.
Ancak bazen boyutlarını artırmak gibi girdi işlemeleri yapmamız gerekir ("yukarı
örnekleme" olarak da adlandırılır).

https://towardsdatascience.com/types-of-convolution-kernels-simplified-f040cb307c37#:~:text=Convolution is using a 'kernel,in a certain desirable ma… 5/12


4/22/23, 12:39 AM Evrişim Çekirdeği Türleri : Basitleştirilmiş | yazan Prakhar Ganesh | Veri Bilimine Doğru

Evrişimleri kullanarak bunu başarmak için, devrik evrişim veya ters evrişim olarak
bilinen bir değişiklik kullanırız (gerçi bu, bir evrişim işlemini gerçekten "tersine
çevirmiyor", dolayısıyla pek çok insan bu terimi kullanmayı tercih etmiyor). Aşağıdaki
GIF'teki noktalı bloklar dolguyu temsil eder.

Bence bu animasyonlar, dolgu modeline bağlı olarak aynı girdiden farklı yukarı-
örneklenmiş çıktıların nasıl oluşturulabileceğine dair iyi bir sezgi veriyor. Bu tür
evrişimler, özellikle görüntü boyutlarını artırma yeteneklerinden dolayı, modern CNN
ağlarında çok yaygın olarak kullanılmaktadır.

https://towardsdatascience.com/types-of-convolution-kernels-simplified-f040cb307c37#:~:text=Convolution is using a 'kernel,in a certain desirable ma… 6/12


4/22/23, 12:39 AM Evrişim Çekirdeği Türleri : Basitleştirilmiş | yazan Prakhar Ganesh | Veri Bilimine Doğru

Ayrılabilir Evrişim
Ayrılabilir Evrişim, evrişim çekirdeğini daha düşük boyutlu çekirdeklere ayırmayı
ifade eder. Ayrılabilir konvolüsyonlar 2 ana tiptedir. Birincisi, uzamsal olarak
ayrılabilir evrişimlerdir, örneğin aşağıya bakınız.

Standart bir 2B evrişim çekirdeği

https://towardsdatascience.com/types-of-convolution-kernels-simplified-f040cb307c37#:~:text=Convolution is using a 'kernel,in a certain desirable ma… 7/12


4/22/23, 12:39 AM Evrişim Çekirdeği Türleri : Basitleştirilmiş | yazan Prakhar Ganesh | Veri Bilimine Doğru

Mekansal olarak ayrılabilir 2B evrişim

Ancak, uzamsal olarak ayrılabilir evrişimler, Derin Öğrenmede o kadar yaygın değildir.
Öte yandan, Derinlemesine ayrılabilir evrişimler, hafif CNN modellerinde yaygın
olarak kullanılır ve gerçekten iyi performans sağlar. Örneğin aşağıya bakın.

3 giriş kanalı ve 128 filtre ile standart bir 2D evrişim

Önce her bir kanalı ayrı ayrı işleyen ve ardından kanallar arası kıvrımları uygulayan derinlemesine ayrılabilir 2D
evrişim

Ama neden ayrılabilir evrişimler var? Yeterlik!! Ayrılabilir evrişimlerin kullanılması,


gereken parametre sayısını önemli ölçüde azaltabilir. Bugün sahip olduğumuz Derin

https://towardsdatascience.com/types-of-convolution-kernels-simplified-f040cb307c37#:~:text=Convolution is using a 'kernel,in a certain desirable ma… 8/12


4/22/23, 12:39 AM Evrişim Çekirdeği Türleri : Basitleştirilmiş | yazan Prakhar Ganesh | Veri Bilimine Doğru

Öğrenme ağlarının artan karmaşıklığı ve muazzam boyutu ile benzer performansları


daha az sayıda parametre ile sağlayabilmek kesinlikle bir gerekliliktir.

Dilate (Atroöz) Evrişim


Yukarıdaki tüm evrişim katmanlarında (istisnasız olarak) gördüğünüz gibi, tüm komşu
değerleri birlikte işlerler. Bununla birlikte, bazen belirli giriş değerlerini atlamak
ardışık düzenin çıkarına olabilir ve genişlemiş kıvrımlar (aynı zamanda korkunç
kıvrımlar olarak da adlandırılır) bu şekilde tanıtılmıştır. Böyle bir değişiklik,
çekirdeğin parametre sayısını artırmadan görüş alanını artırmasına izin verir.

Açıkça yukarıdaki animasyondan, çekirdeğin öncekiyle aynı 9 parametreyle daha geniş


bir komşuluğu işleyebildiği fark edilebilir. Bu da ince taneli bilgiyi işleyememek (belirli
değerleri atladığı için) nedeniyle bilgi kaybı anlamına gelmektedir. Bununla birlikte,
bazı uygulamalarda genel etki olumlu görünmektedir.

deforme olabilir evrişim


Konvolüsyonlar, özellik çıkarımının şekli açısından çok katıdır. Yani, çekirdek şekilleri
sadece kare/dikdörtgendir (veya elle karar verilmesi gereken başka bir şekil) ve
dolayısıyla sadece bu tür kalıplar üzerinde çalışabilirler. Ya evrişimin şekli kendi içinde

https://towardsdatascience.com/types-of-convolution-kernels-simplified-f040cb307c37#:~:text=Convolution is using a 'kernel,in a certain desirable ma… 9/12


4/22/23, 12:39 AM Evrişim Çekirdeği Türleri : Basitleştirilmiş | yazan Prakhar Ganesh | Veri Bilimine Doğru

öğrenilebilirse? Bu, deforme olabilen konvolüsyonların tanıtılmasının arkasındaki temel


fikirdir.

Bir Deforme Evrişimin uygulanması aslında çok basittir. Her çekirdek aslında iki farklı
matrisle temsil edilir. İlk dal orijinden 'uzaklığı' tahmin etmeyi öğrenir. Bu ofset, orijin
etrafındaki hangi girdilerin işleneceğinin bir göstergesidir. Her ofset bağımsız olarak
tahmin edildiğinden, kendi aralarında herhangi bir katı şekil oluşturmaları gerekmez,
böylece deforme olabilir yapıya izin verilir. İkinci dal, girdisi artık bu ofsetlerdeki
değerler olan evrişim dalıdır.

Sıradaki ne?

https://towardsdatascience.com/types-of-convolution-kernels-simplified-f040cb307c37#:~:text=Convolution is using a 'kernel,in a certain desirable m… 10/12


4/22/23, 12:39 AM Evrişim Çekirdeği Türleri : Basitleştirilmiş | yazan Prakhar Ganesh | Veri Bilimine Doğru

Başarılı ve karmaşık mimariler oluşturmak için bağımsız olarak veya birbirleriyle


kombinasyon halinde kullanılan birden fazla CNN katmanı varyasyonu olmuştur. Her
varyasyon, özellik çıkarmanın nasıl çalışması gerektiğine dair bir sezgiden doğdu. Bu
nedenle, bu Derin CNN ağlarının açıklayamadığımız ağırlıkları öğrenirken, onları
oluşturan sezgilerin performansları için çok önemli olduğuna ve bu yönde daha fazla
çalışmanın oldukça karmaşık CNN'lerin başarısı için önemli olduğuna inanıyorum.

Bu blog, Makine Öğrenimi alanına basitleştirilmiş tanıtımlar oluşturma çabasının bir


parçasıdır. Serinin tamamını buradan takip edin

Makine Öğrenimi : Basitleştirilmiş


Dalmadan önce bunu bilin
doğrudatascience.com

Ya da serideki bir sonraki blogu okuyun

Dağıtılmış Vektör Temsili: Basitleştirilmiş


Makine Öğrenimindeki tartışmasız en temel özellik temsil yöntemi
doğrudatascience.com

Referanslar
[1] Krizhevsky, Alex, Ilya Sutskever ve Geoffrey E. Hinton. "Derin evrişimli sinir ağları ile
Imagenet sınıflandırması." Sinirsel bilgi işleme sistemlerindeki gelişmeler. 2012.
[2] Dumoulin, Vincent ve Francesco Visin. "Derin öğrenme için evrişim aritmetiği kılavuzu."

https://towardsdatascience.com/types-of-convolution-kernels-simplified-f040cb307c37#:~:text=Convolution is using a 'kernel,in a certain desirable m… 11/12


4/22/23, 12:39 AM Evrişim Çekirdeği Türleri : Basitleştirilmiş | yazan Prakhar Ganesh | Veri Bilimine Doğru

arXiv ön baskısı arXiv:1603.07285 (2016).


[3] Chen, Liang-Chieh ve ark. "Deeplab: Derin evrişim ağları, korkunç evrişim ve tamamen
bağlantılı crf'ler ile semantik görüntü segmentasyonu." Model analizi ve makine zekası
üzerine IEEE işlemleri 40.4 (2017): 834–848.
[4] Dai, Jifeng ve ark. "Deforme olabilen evrişimli ağlar." IEEE uluslararası bilgisayarla
görme konferansı bildirileri. 2017.
[5] Howard, Andrew G., et al. "Mobilenets: Mobil görüş uygulamaları için verimli evrişimli
sinir ağları." arXiv ön baskısı arXiv:1704.04861 (2017).
[6] https://github.com/vdumoulin/conv_arithmetic

Makine öğrenme Veri Bilimi Yapay zeka Cnn Derin Öğrenme

The Variable'a Kaydolun


Veri Bilimine Doğru

Her Perşembe, Değişken Veri Bilimine Doğru'nun en iyilerini sunar: uygulamalı eğitimler ve en son araştırmalardan
kaçırmak istemediğiniz orijinal özelliklere kadar. Bir göz at.

E-postalar patihrahmen@gmail.com adresine gönderilecektir . Sen değil?

Bu bülteni al

https://towardsdatascience.com/types-of-convolution-kernels-simplified-f040cb307c37#:~:text=Convolution is using a 'kernel,in a certain desirable m… 12/12

You might also like