
Yapay sinir ağlarında (YSA) yeni olanlar muhtemelen bazı sorular soracaktır. Bu sorulardan bazıları şunlardır: Kaç tane gizli katman kullanılmalı? Her gizli katmanda kaç gizli nöron olmalı? Gizli katmanlar/nöronlar ne işe yarar? Gizli katman/nöron sayısını artırmak her zaman daha iyi sonuç verir mi? Bu tür soruları yanıtlayabileceğimizi söylemekten memnuniyet duyuyorum. Açık olmak gerekirse, çözülen problem karmaşıksa bu tür soruları yanıtlamak da oldukça karmaşık olabilir. Bu yazının sonunda, en azından bu soruların nasıl yanıtlandığına dair bir fikir edinebilir ve basit örnekler üzerinden kendinizi test edebilirsiniz.
Giriş
YSA, biyolojik sinir ağından esinlenmiştir. Basit olması için, bilgisayar bilimlerinde katmanlar kümesi olarak temsil edilir. Bu katmanlar giriş, gizli ve çıkış olmak üzere üç sınıfa ayrılır.
Giriş ve çıkış katmanlarının sayısını ve bunlardaki nöron sayısını bilmek en kolay kısımdır. Her ağın tek bir giriş ve tek bir çıkış katmanı vardır. Giriş katmanındaki nöron sayısı, işlenen verideki giriş değişkenlerinin sayısına eşittir. Çıkış katmanındaki nöron sayısı ise her bir girişle ilişkili çıktıların sayısına eşittir. Ancak zorluk, gizli katmanların sayısını ve bu katmanlardaki nöronları belirlemededir.
Bir sınıflandırma probleminde, her bir gizli katmandaki gizli katman ve nöron sayısını bilmek için bazı yönergeler şunlardır:
- Verilere dayanarak sınıfları ayıracak beklenen karar sınırını çizin.
- Karar sınırını bir dizi çizgi olarak ifade edin. Bu çizgilerin birleşiminin karar sınırını vermesi gerektiğine dikkat edin.
- Seçilen çizgi sayısı, ilk gizli katmandaki gizli nöron sayısını temsil eder.
- Önceki katman tarafından oluşturulan çizgileri birbirine bağlamak için yeni bir gizli katman eklenir. Önceki gizli katmandaki çizgiler arasında bağlantılar oluşturmanız gerektiğinde her seferinde yeni bir gizli katman eklendiğine dikkat edin.
- Her yeni gizli katmandaki gizli nöron sayısı, oluşturulacak bağlantıların sayısına eşittir.
Daha net olması için, yukarıdaki yönergeleri birkaç örnek üzerinde uygulayalım.
Örnek Bir
Aşağıdaki şekilde gösterildiği gibi iki sınıflı basit bir sınıflandırma örneğiyle başlayalım. Her örneklem iki girişe ve sınıf etiketini temsil eden bir çıkışa sahiptir. XOR problemine oldukça benzer.
İlk yanıtlanacak soru, gizli katmanların gerekip gerekmediğidir. Gizli katmanların gerekip gerekmediğini belirlemek için izlenecek kural şöyledir:
Yapay sinir ağlarında, veri yalnızca doğrusal olmayan şekilde ayrılabiliyorsa gizli katmanlara ihtiyaç vardır.
Bir sonraki şekle bakıldığında, sınıfların doğrusal olmayan şekilde ayrılması gerektiği görülüyor. Tek bir çizgi işe yaramaz. Sonuç olarak, en iyi karar sınırını elde etmek için gizli katmanlar kullanmalıyız. Bu durumda, gizli katmanlar kullanılmayabilir ancak bu sınıflandırma doğruluğunu olumsuz etkiler. Bu yüzden gizli katmanları kullanmak daha iyidir.
Gizli katmanlara ihtiyacımız olduğunu bildiğimize göre iki önemli soruyu yanıtlamamız gerekiyor. Bu sorular şunlardır:
-
Gerekli gizli katman sayısı nedir?
-
Her bir gizli katmandaki gizli nöron sayısı nedir?
Önceki yöntemi izleyerek, ilk adım iki sınıfı ayıran karar sınırını çizmektir. Aşağıdaki şekilde gösterildiği gibi veriyi doğru şekilde ayıran birden fazla olası karar sınırı vardır. Daha fazla tartışma için kullanacağımız, şeklin sağ tarafındaki (b) karardır.
Yönergeleri izleyerek bir sonraki adım, karar sınırını bir dizi çizgi ile ifade etmektir.
Karar sınırını bir dizi çizgi ile temsil etme fikri, herhangi bir YSA’nın yapı taşı olarak tek katmanlı algılayıcıdan (perceptron) oluşturulması gerçeğinden gelir. Tek katmanlı algılayıcı, sınıfları aşağıdaki denkleme göre oluşturulan bir çizgi ile ayıran doğrusal bir sınıflandırıcıdır:
y=w1x1+w2x2+ ⋯ +wixi+b
Burada xi i. giriştir, wi ağırlığıdır, b bias terimidir ve y çıktıdır. Eklenen her gizli nöron ağırlık sayısını artıracağından, görevi yerine getiren en az sayıda gizli nöron kullanılması önerilir. Gereğinden fazla gizli nöron kullanmak daha fazla karmaşıklık katar.
Örneğimize dönersek, YSA’nın birden çok algılayıcı ağ kullanılarak inşa edildiğini söylemek, ağın birden çok çizgi kullanılarak inşa edildiğini söylemekle aynıdır.
Bu örnekte karar sınırı bir dizi çizgi ile değiştirilmiştir. Çizgiler, sınır eğrisinin yön değiştirdiği noktalardan başlar. Bu noktada, her biri farklı yönde olmak üzere iki çizgi yerleştirilir.
Bir sonraki şekilde gri bir daire ile gösterildiği gibi sınır eğrisinin yön değiştirdiği yalnızca bir nokta olduğundan, sadece iki çizgi gereklidir. Başka bir deyişle, iki adet tek katmanlı algılayıcı ağı vardır. Her algılayıcı bir çizgi üretir.
Karar sınırını temsil etmek için yalnızca iki çizgi gerektiğini bilmek, ilk gizli katmanda iki gizli nöron olacağını söyler.
Bu noktaya kadar, iki gizli nöronlu tek bir gizli katmanımız var. Her gizli nöron, önceki şekildeki gibi bir çizgi ile temsil edilen doğrusal bir sınıflandırıcı olarak düşünülebilir. İki çıktı olacaktır, her sınıflandırıcıdan (yani gizli nörondan) bir tane. Ancak biz, sınıf etiketini temsil eden tek çıktılı bir sınıflandırıcı inşa etmek istiyoruz; iki sınıflandırıcı değil. Sonuç olarak, iki gizli nöronun çıktıları tek bir çıktıda birleştirilmelidir. Başka bir deyişle, iki çizgi başka bir nöron tarafından birbirine bağlanmalıdır. Sonuç bir sonraki şekilde gösterilmiştir.
Neyse ki bunu yapmak için tek nöronlu başka bir gizli katman eklememiz gerekmiyor. Çıkış katmanı nöronu bu işi yapacaktır. Bu nöron, daha önce üretilen iki çizgiyi birleştirerek ağdan yalnızca tek bir çıktı olmasını sağlar.
Gizli katmanların ve nöronlarının sayısını belirledikten sonra, ağ mimarisi aşağıdaki şekilde gösterildiği gibi tamamlanmıştır.
Örnek İki
Bir diğer sınıflandırma örneği bir sonraki şekilde gösterilmiştir. Önceki örneğe benzer şekilde, her örneklem iki girişe ve bir çıkışa sahip iki sınıf vardır. Fark karar sınırındadır. Bu örnekteki sınır, önceki örneğe göre daha karmaşıktır.
Yönergelere göre ilk adım karar sınırını çizmektir. Tartışmamızda kullanılacak karar sınırı, bir sonraki şeklin en sol kısmında (a) gösterilmiştir.
Bir sonraki adım, karar sınırını bir dizi çizgiye bölmektir; her çizgi YSA’da bir algılayıcı olarak modellenir. Çizgileri çizmeden önce, sınırın yön değiştirdiği noktalar işaretlenmelidir; bu, bir sonraki şeklin en sağ kısmında (b) gösterilmiştir.
Soru şu: Kaç çizgi gereklidir? Üst ve alt noktaların her birine ikişer çizgi karşılık gelir; toplamda 4 çizgi. Aradaki noktanın iki çizgisi, diğer noktalardan paylaştırılır. Oluşturulacak çizgiler aşağıdaki şekilde gösterilmiştir.
İlk gizli katmandaki gizli nöron sayısı çizgi sayısına eşit olacağından, ilk gizli katmanda 4 nöron olacaktır. Başka bir deyişle, her biri tek katmanlı bir algılayıcı tarafından oluşturulan 4 sınıflandırıcı vardır. Şu aşamada ağ, her sınıflandırıcıdan birer tane olmak üzere 4 çıktı üretecektir. Sonraki adım, ağın yalnızca tek bir çıktı üretmesi için bu sınıflandırıcıları birbirine bağlamaktır. Yani, çizgiler başka gizli katmanlar tarafından birbirine bağlanarak tek bir eğri oluşturulmalıdır.
Ağın yerleşimini seçmek model tasarımcısına bağlıdır. Uygulanabilir mimarilerden biri, iki gizli nöronlu ikinci bir gizli katman kurmaktır. İlk gizli nöron ilk iki çizgiyi, son gizli nöron ise son iki çizgiyi birleştirecektir. İkinci gizli katmanın sonucu. İkinci katmanın sonucu aşağıdaki şekilde gösterilmiştir.
Bu noktaya kadar iki ayrı eğri vardır. Dolayısıyla ağdan iki çıktı elde edilmektedir. Sıradaki adım, tüm ağdan yalnızca tek bir çıktı elde etmek için bu eğrileri birbirine bağlamaktır. Bu durumda, yeni bir gizli katman eklemek yerine, son bağlantıyı yapmak için çıkış katmanı nöronu kullanılabilir. Nihai sonuç aşağıdaki şekilde gösterilmiştir.
Ağ tasarımı tamamlandıktan sonra, tamamlanmış ağ mimarisi aşağıdaki şekilde gösterilmiştir.
Daha Fazla Bilgi İçin
SlideShare
YouTube
Yapay sinir ağlarında (YSA) yeni olanlar muhtemelen bazı sorular soracaktır. Bu sorulardan bazıları şunlardır: Kaç tane gizli katman kullanılmalı? Her gizli katmanda kaç gizli nöron olmalı? Gizli katmanlar/nöronlar ne işe yarar? Gizli katman/nöron sayısını artırmak her zaman daha iyi sonuç verir mi? Bu tür soruları yanıtlayabileceğimizi söylemekten memnuniyet duyuyorum. Açık olmak gerekirse, çözülen problem karmaşıksa bu tür soruları yanıtlamak da oldukça karmaşık olabilir. Bu yazının sonunda, en azından bu soruların nasıl yanıtlandığına dair bir fikir edinebilir ve basit örnekler üzerinden kendinizi test edebilirsiniz.
Giriş
YSA, biyolojik sinir ağından esinlenmiştir. Basit olması için, bilgisayar bilimlerinde katmanlar kümesi olarak temsil edilir. Bu katmanlar giriş, gizli ve çıkış olmak üzere üç sınıfa ayrılır.
Giriş ve çıkış katmanlarının sayısını ve bunlardaki nöron sayısını bilmek en kolay kısımdır. Her ağın tek bir giriş ve tek bir çıkış katmanı vardır. Giriş katmanındaki nöron sayısı, işlenen verideki giriş değişkenlerinin sayısına eşittir. Çıkış katmanındaki nöron sayısı ise her bir girişle ilişkili çıktıların sayısına eşittir. Ancak zorluk, gizli katmanların sayısını ve bu katmanlardaki nöronları belirlemededir.
Bir sınıflandırma probleminde, her bir gizli katmandaki gizli katman ve nöron sayısını bilmek için bazı yönergeler şunlardır:
Daha net olması için, yukarıdaki yönergeleri birkaç örnek üzerinde uygulayalım.
Örnek Bir
Aşağıdaki şekilde gösterildiği gibi iki sınıflı basit bir sınıflandırma örneğiyle başlayalım. Her örneklem iki girişe ve sınıf etiketini temsil eden bir çıkışa sahiptir. XOR problemine oldukça benzer.
İlk yanıtlanacak soru, gizli katmanların gerekip gerekmediğidir. Gizli katmanların gerekip gerekmediğini belirlemek için izlenecek kural şöyledir:
Bir sonraki şekle bakıldığında, sınıfların doğrusal olmayan şekilde ayrılması gerektiği görülüyor. Tek bir çizgi işe yaramaz. Sonuç olarak, en iyi karar sınırını elde etmek için gizli katmanlar kullanmalıyız. Bu durumda, gizli katmanlar kullanılmayabilir ancak bu sınıflandırma doğruluğunu olumsuz etkiler. Bu yüzden gizli katmanları kullanmak daha iyidir.
Gizli katmanlara ihtiyacımız olduğunu bildiğimize göre iki önemli soruyu yanıtlamamız gerekiyor. Bu sorular şunlardır:
Gerekli gizli katman sayısı nedir?
Her bir gizli katmandaki gizli nöron sayısı nedir?
Önceki yöntemi izleyerek, ilk adım iki sınıfı ayıran karar sınırını çizmektir. Aşağıdaki şekilde gösterildiği gibi veriyi doğru şekilde ayıran birden fazla olası karar sınırı vardır. Daha fazla tartışma için kullanacağımız, şeklin sağ tarafındaki (b) karardır.
Yönergeleri izleyerek bir sonraki adım, karar sınırını bir dizi çizgi ile ifade etmektir.
Karar sınırını bir dizi çizgi ile temsil etme fikri, herhangi bir YSA’nın yapı taşı olarak tek katmanlı algılayıcıdan (perceptron) oluşturulması gerçeğinden gelir. Tek katmanlı algılayıcı, sınıfları aşağıdaki denkleme göre oluşturulan bir çizgi ile ayıran doğrusal bir sınıflandırıcıdır:
y=w1x1+w2x2+ ⋯ +wixi+bBurada
xii. giriştir,wiağırlığıdır,bbias terimidir veyçıktıdır. Eklenen her gizli nöron ağırlık sayısını artıracağından, görevi yerine getiren en az sayıda gizli nöron kullanılması önerilir. Gereğinden fazla gizli nöron kullanmak daha fazla karmaşıklık katar.Örneğimize dönersek, YSA’nın birden çok algılayıcı ağ kullanılarak inşa edildiğini söylemek, ağın birden çok çizgi kullanılarak inşa edildiğini söylemekle aynıdır.
Bu örnekte karar sınırı bir dizi çizgi ile değiştirilmiştir. Çizgiler, sınır eğrisinin yön değiştirdiği noktalardan başlar. Bu noktada, her biri farklı yönde olmak üzere iki çizgi yerleştirilir.
Bir sonraki şekilde gri bir daire ile gösterildiği gibi sınır eğrisinin yön değiştirdiği yalnızca bir nokta olduğundan, sadece iki çizgi gereklidir. Başka bir deyişle, iki adet tek katmanlı algılayıcı ağı vardır. Her algılayıcı bir çizgi üretir.
Karar sınırını temsil etmek için yalnızca iki çizgi gerektiğini bilmek, ilk gizli katmanda iki gizli nöron olacağını söyler.
Bu noktaya kadar, iki gizli nöronlu tek bir gizli katmanımız var. Her gizli nöron, önceki şekildeki gibi bir çizgi ile temsil edilen doğrusal bir sınıflandırıcı olarak düşünülebilir. İki çıktı olacaktır, her sınıflandırıcıdan (yani gizli nörondan) bir tane. Ancak biz, sınıf etiketini temsil eden tek çıktılı bir sınıflandırıcı inşa etmek istiyoruz; iki sınıflandırıcı değil. Sonuç olarak, iki gizli nöronun çıktıları tek bir çıktıda birleştirilmelidir. Başka bir deyişle, iki çizgi başka bir nöron tarafından birbirine bağlanmalıdır. Sonuç bir sonraki şekilde gösterilmiştir.
Neyse ki bunu yapmak için tek nöronlu başka bir gizli katman eklememiz gerekmiyor. Çıkış katmanı nöronu bu işi yapacaktır. Bu nöron, daha önce üretilen iki çizgiyi birleştirerek ağdan yalnızca tek bir çıktı olmasını sağlar.
Gizli katmanların ve nöronlarının sayısını belirledikten sonra, ağ mimarisi aşağıdaki şekilde gösterildiği gibi tamamlanmıştır.
Örnek İki
Bir diğer sınıflandırma örneği bir sonraki şekilde gösterilmiştir. Önceki örneğe benzer şekilde, her örneklem iki girişe ve bir çıkışa sahip iki sınıf vardır. Fark karar sınırındadır. Bu örnekteki sınır, önceki örneğe göre daha karmaşıktır.
Yönergelere göre ilk adım karar sınırını çizmektir. Tartışmamızda kullanılacak karar sınırı, bir sonraki şeklin en sol kısmında (a) gösterilmiştir.
Bir sonraki adım, karar sınırını bir dizi çizgiye bölmektir; her çizgi YSA’da bir algılayıcı olarak modellenir. Çizgileri çizmeden önce, sınırın yön değiştirdiği noktalar işaretlenmelidir; bu, bir sonraki şeklin en sağ kısmında (b) gösterilmiştir.
Soru şu: Kaç çizgi gereklidir? Üst ve alt noktaların her birine ikişer çizgi karşılık gelir; toplamda 4 çizgi. Aradaki noktanın iki çizgisi, diğer noktalardan paylaştırılır. Oluşturulacak çizgiler aşağıdaki şekilde gösterilmiştir.
İlk gizli katmandaki gizli nöron sayısı çizgi sayısına eşit olacağından, ilk gizli katmanda 4 nöron olacaktır. Başka bir deyişle, her biri tek katmanlı bir algılayıcı tarafından oluşturulan 4 sınıflandırıcı vardır. Şu aşamada ağ, her sınıflandırıcıdan birer tane olmak üzere 4 çıktı üretecektir. Sonraki adım, ağın yalnızca tek bir çıktı üretmesi için bu sınıflandırıcıları birbirine bağlamaktır. Yani, çizgiler başka gizli katmanlar tarafından birbirine bağlanarak tek bir eğri oluşturulmalıdır.
Ağın yerleşimini seçmek model tasarımcısına bağlıdır. Uygulanabilir mimarilerden biri, iki gizli nöronlu ikinci bir gizli katman kurmaktır. İlk gizli nöron ilk iki çizgiyi, son gizli nöron ise son iki çizgiyi birleştirecektir. İkinci gizli katmanın sonucu. İkinci katmanın sonucu aşağıdaki şekilde gösterilmiştir.
Bu noktaya kadar iki ayrı eğri vardır. Dolayısıyla ağdan iki çıktı elde edilmektedir. Sıradaki adım, tüm ağdan yalnızca tek bir çıktı elde etmek için bu eğrileri birbirine bağlamaktır. Bu durumda, yeni bir gizli katman eklemek yerine, son bağlantıyı yapmak için çıkış katmanı nöronu kullanılabilir. Nihai sonuç aşağıdaki şekilde gösterilmiştir.
Ağ tasarımı tamamlandıktan sonra, tamamlanmış ağ mimarisi aşağıdaki şekilde gösterilmiştir.
Daha Fazla Bilgi İçin
Derin Öğrenme - Veri Bilimciler için Bir Eğitim
Python ile Derin Öğrenmeye Giriş kursu
SlideShare
YouTube