Perceptronlar

Buraya kadar perceptronların basitçe nasıl çalıştığını anlatmaya çalıştım. Bu birimlerin nasıl öğrendiği konusuna henüz girmedim. Perceptronların girdi sayısına göre belirlenen boyuttaki bir uzayı iki parçaya ayırdığını gördük. Tek girdili bir perceptron tek boyutlu sayı doğrusunu iki parçaya ayırıyor. İki girdili bir perceptron da iki boyutlu koordinat sisteminin bir doğru ile iki parçaya ayırıyor. Eğer simulasyonu yapsaydık üç girdili bir perceptronun da üç boyutlu uzayı bir düzlem ile iki parçaya ayırdığını görecektik. İspatlamadan genel olarak N girdili bir perceptronun N boyutlu uzayı N-1 boyutlu bir düzlemle iki parçaya ayıracağını söyleyebiliriz. Eğer bias kullanmazsak ayırmak için kullanılan doğru ya da düzlem her zaman orijinden geçecek ama bias ile bu ayraç bu noktayla kısıtlı kalmayacaktır.

Şimdi bu basit perceptronları yanyana kullanarak ne tür problemleri çözebileceğimize bakmak istiyorum.

Tek bir perceptron ile verilen uzayı doğrusal bir şekilde iki parçaya ayırabildiğimizi gördük. Görsel açıdan kolaylık olsun diye aşağıdaki örneklerde iki boyutlu koordinat sistemini örnek olarak kullanacağım. Aynı fikirler çok daha yüksek boyutlu uzaylar için de geçerli olacak.

Birden fazla perceptron ile istediğimiz şekilde kapalı bir alanı tanımlayabiliriz. Örneğin üç tane perceptron ile aşağıdaki gibi yeşil alanı tanımlayabiliriz.

Açık yeşil alan üç perceptron tarafından tanımlanabilir.

Tanımlanabilen alanların orijinde olması gerekmemektedir. Ayrıca birden fazla alan da tanımlanabilir.

Yukarıdaki alanı üç perceptron ile şu şekilde elde ederiz.

Birinci perceptron düzlemi şu şekilde ikiye ayırmakta:

Birinci perceptron

Bu perceptron yeşil alandaki girdilerde aktifleşiyor ve kırmızı alandaki girdilerde aktifleşmiyor. Perceptronun ağırlık ve bias değerlerini grafikten okumak mümkün ama buna burada girmeyeceğim.

İkinci perceptronun grafiği de aşağıdaki şekilde.

İkinci perceptron

Bu perceptron da sadece yeşil alandaki girdilerde aktifleşiyor.

Son olarak da üçüncü perceptron:

Üçüncü perceptron

Bu perceptron da diğer ikisi gibi yeşil alandaki girdilerde aktifleşiyor. Sonuçta üç grafiği üstüste koyduğumuzda en üstteki grafiği elde ederiz. Yani üç perceptronun da aktifleştiği girdiler en üstteki grafikteki yeşil alandaki girdiler olacak. Böylece bu bölgeyi programda tanıma yöntemimiz de belli olmuş bulunuyor. Üç perceptronun da aktifleşmiş olması.

Bu mantığı istediğimiz kadar geliştirebiliriz ama kısa süre sonra bir problemle karşılaşırız. Oldukça karmaşık alanlar için çok fazla perceptrona ihtiyacımız olacak, çünkü tek bir perceptron sadece doğrusal bir parçalamaya imkan veriyor ve aranan alan çok kıvrımlı bir sınıra sahip olabilir. Ayrıca bu şekilde sadece sınıflama türü problemleri çözebileceğiz. Yani verilen girdi hangi sınıfa ait? Yeşil bölgeye mi yoksa kırmızı bölgeye mi?

İlerideki yazılarda perceptronlarımızda ufak değişiklikler yaparak daha başka problemleri de nasıl çözebileceğimize değineceğim.