Yapay Zeka:
Yapay Sinir Ağları ve Tanıma Sistemleri
İnsanoğlu, mağara duvarlarına hayvan
figürleri çizerek başladığı veri işleme sürecine artık insan gözüyle
görülemeyecek küçüklükteki “chip”lerle devam etmektedir. Bu gelişim
yaklaşık 4000 yıl gibi uzun bir süreye yayılmasına karşın gerçek gelişim
son 50 yıl içinde yaşanmıştır. Günümüzde hayatımızın her alanına girmiş
ve hayatımızın bir rutini haline dönüşmüş olan bu teknolojiyi insan
oğlunun önceden tahmin etmesi bile olanaksızdı. Örneğin; bilgisayar
sektörünün önemli firmalarından IBM’in bir yöneticisi, “Bilgisayar ne
kadar küçülürse küçülsün bir odadan daha küçük olamaz” demiştir.
Sektörün önde gelen isimlerinden birinin böyle büyük bir yanılgı içinde
olması, bilgisayar teknolojisinin ne kadar hızlı geliştiğini çok güzel
açıklamaktadır. Bu gelişim sürecinde artık kendi zekasıyla yetinmeyen
insanoğlu makinelere de zeka verme uğraşı içindedir; artık amaç daha
zeki, insan davranışlarını örnekleyebilen ve karar verebilen makineler
üretmektir. Bu noktada karşımıza “Yapay Zeka” kavramı çıkmaktadır.
Günümüzde insanlığın en büyük hayallerinden biri haline gelen, üzerine
filmler çekilen, kitaplar yazılan yapay zeka konusunu iyi anlayabilmek
için felsefeden bilgisayar bilimine, elektrik-elektronikten biyoloji ve
psikolojiye kadar çok geniş bir alanda çalışma yapmak gerekir. Turing
makineleriyle temeli atılan yapay zeka üzerinde en fazla araştırma
yapılan konu “yapay sinir ağları”dır. Yapay sinir ağları, temelde
tamamen insan beyni örneklenerek geliştirilmiş bir teknolojidir.
Bilindiği gibi; öğrenme, hatırlama, düşünme gibi tüm insan
davranışlarının temelinde sinir hücreleri bulunmaktadır. İnsan beyninde
tahminen 1011 adet sinir hücresi olduğu düşünülmektedir ve bu sinir
hücreleri arasında sonsuz diyebileceğimiz sayıda sinaptik birleşme
denilen sinirler arası bağ vardır. Bu sayıdaki bir birleşimi
gerçekleştirebilecek bir bilgisayar sisteminin dünya büyüklüğünde olması
gerektiği söylenmektedir; ancak 50 yıl sonra bunun büyük bir yanılgı
olmayacağını bu günden kimse söyleyemez. İnsan beyninin bu karmaşıklığı
göz önüne alındığında, günümüz teknolojisinin 1.5 kg.lık insan beynine
oranla henüz çok geride olduğunu söylemek yanlış olmaz.
Yapay sinir ağları temelde aşağıdaki
özelliklere sahiptir:
YSA’ nın hesaplama ve bilgi işleme gücünü, paralel dağılmış yapısından,
öğrenebilme ve genelleme yeteneğinden aldığı söylenebilir. Genelleme,
eğitim ya da öğrenme sürecinde karşılaşılmayan girişler için de YSA’ nın
uygun tepkileri üretmesi olarak tanımlanır. Bu üstün özellikleri, YSA’
nın karmaşık problemleri çözebilme yeteneğini gösterir. Günümüzde birçok
bilim alanında YSA, aşağıdaki özellikleri nedeniyle etkin olmuş ve
uygulama yeri bulmuştur.
Doğrusal Olmama
YSA’ nın temel işlem elemanı olan hücre, doğrusal değildir. Dolayısıyla
hücrelerin birleşmesinden meydana gelen YSA da doğrusal değildir ve bu
özellik bütün ağa yayılmış durumdadır. Bu özelliği ile YSA, doğrusal
olmayan karmaşık problemlerin çözümünde en önemli araç olmuştur.
Öğrenme
YSA’ nın arzu edilen davranışı gösterebilmesi için amaca uygun olarak
ayarlanması gerekir. Bu, hücreler arasında doğru bağlantıların
yapılması ve bağlantıların uygun ağırlıklara sahip olması gerektiğini
ifade eder. YSA’ nın karmaşık yapısı nedeniyle bağlantılar ve ağırlıklar
önceden ayarlı olarak verilemez ya da tasarlanamaz. Bu nedenle YSA,
istenen davranışı gösterecek şekilde ilgilendiği problemden aldığı
eğitim örneklerini kullanarak problemi öğrenmelidir.
Genelleme
YSA, ilgilendiği problemi öğrendikten sonra eğitim sırasında
karşılaşmadığı test örnekleri için de arzu edilen tepkiyi üretebilir.
Örneğin, karakter tanıma amacıyla eğitilmiş bir YSA, bozuk karakter
girişlerinde de doğru karakterleri verebilir ya da bir sistemin
eğitilmiş YSA modeli, eğitim sürecinde verilmeyen giriş sinyalleri için
de sistemle aynı davranışı gösterebilir.
Uyarlanabilirlik
YSA, ilgilendiği problemdeki değişikliklere göre ağırlıklarını ayarlar.
Yani, belirli bir problemi çözmek amacıyla eğitilen YSA, problemdeki
değişimlere göre tekrar eğitilebilir ve değişimler devamlı ise gerçek
zamanda da eğitime devam edilebilir. Bu özelliği ile YSA, uyarlamalı
örnek tanıma, sinyal işleme, sistem tanılama ve denetim gibi alanlarda
etkin olarak kullanılır.
Hata Toleransı
YSA, çok sayıda hücrenin çeşitli şekillerde bağlanmasından oluştuğu için
paralel dağılmış bir yapıya sahiptir ve ağın sahip olduğu bilgi, ağdaki
bütün bağlantılar üzerine dağılmış durumdadır. Bu nedenle, eğitilmiş bir
YSA’nın bazı bağlantılarının hatta bazı hücrelerinin etkisiz hale
gelmesi, ağın doğru bilgi üretmesini önemli ölçüde etkilemez. Bu
nedenle, geleneksel yöntemlere göre hatayı tolere etme yetenekleri son
derece yüksektir.
Yapay sinir ağları; ses tanıma, yazılan karakteri tanıma, robot
kontrolleri, resim işleme ve yüz tanıma sistemlerinde çok sık olarak
kullanılmaktadır. İnsanı (özellikle insan beynini ve algı sistemlerini)
modellemenin giderek öne çıktığı son yıllarda, yüz tanıma sistemlerinin
önemi de giderek artmaktadır. Gelecekte hem de çok yakın gelecekte yüz
tanıma sistemleri havaalanlarında, ATM’lerde, güvenlik kamerası olan
yerlerde kullanılmaya başlanacaktır. Şu sıralarda birkaç havaalanında ve
şirkette deneme aşamasında olan bu sistemlerin performanslarının gerçek
zamanlı çalışmalara uygun hale getirilmesi için çalışmalar
yapılmaktadır. Bu sistemlerin en büyük zorluğu, gerçek zamanlı olarak
doğru bir şekilde çalışmasının sağlanmasıdır; çünkü gerçekleştirilecek
sistemin çok değişik görüntüleme şartlarında çalışması gerekmektedir ve
görüntü işleme algoritmalarının uygulanması için çok hızlı ve çok büyük
bellekli bilgisayarlara ihtiyaç vardır. Gerçek zamanlı çalışmaya ihtiyaç
duymayan uygulamalarda -örneğin polis sabıka kayıtlarında-, çok yüksek
doğruluk oranları ve çok hızlı ile çalışan sistemler kullanılmaktadır.
Yüz tanımada kullanılan çok çeşitli teknikler olmasına rağmen, aslında
bu tekniklerin büyük çoğunluğu insan algısı modellenmeden geliştirilmiş
tekniklerdir. Bu noktada ilk yapılması gereken iş resimleri bilgisayar
için anlamlı hale getirmektir. Bilgisayarda resimler, insan için fazla
anlamlı olmayan sayı kümeleri halinde tanımlanır ve resimler üzerinde
yapılacak her iş, bu sayı kümesi üzerindeki matris operasyonları
sayesinde yapılır. Aslında yapılan tüm bu hesaplamaların gerçekte
beynimizde elektrik sinyalleriyle yapıldığını, hatta işi biraz daha
abartarak tıpa tıp aynı şekilde gerçekleştiğini söylemiş olsak, pek de
yanılmayız. Sonuçta, bilgisayarda 1 veya 0 dediğimiz her şey, beynimizde
pozitif (+) ve negatif (-) voltaja karşılık gelmektedir. Peki nasıl
oluyor da insan gözü, gördüğü bir nesneyi yeniden gördüğünde bunun ilk
gördüğü nesne olduğunu anlayabiliyor. En basit anlamda o nesneyi bir
şekilde hafızaya kaydediyor, yeni bir görüntü aldığında ise elektrik
sinyallerinden oluşan bu görüntüyü bir şekilde hafızasındakilerle
karşılaştırıyor. Tabii ki bu karşılaştırma bildiğimiz anlamda olmaktan
öte, değişik hesaplamalarla yapılır. İşte bu işlemler, yapay sinirler
için de hemen hemen aynıdır. Yalnız burada sinyaller değil, çeşitli
matematiksel hesaplamalar söz konusudur.
Yüz tanıma işlemi, insan yüzünün tamamı kullanılarak gerçekleştirildiği
gibi, alınan bu yüze çeşitli teknikler uygulayarak da
gerçekleştirilebilmektedir. Bu teknikler, temel olarak, yüzün tanımayı
kolaylaştıran kritik bölgelerini ortaya çıkararak veya yüzün bütününü
yine değişik metotlarla sıkıştırarak öğrenmeyi kapsamaktadır.
Yaptığımız çalışmalarda, insan yüzünün çeşitli bölgelerini çıkararak da
testler gerçekleştirdik. Bunlardan biri, yüz resmi üzerinde gözlerin
tespitidir. Gözlerin tespit edilmesi, yukarıda da gösterildiği gibi
resmin yatay ve düşey izdüşümlerinin bulunması ile gerçekleştirilir.
Aslında bu işlem yüzün arka planını çıkarmakta kullanılır; ancak biz
çalışmalarımızda, izdüşümler üzerinden göz çukurunun bulunduğu bölgeyi
tespit ederek gözleri ortaya çıkardık. Bundan sonra resmin tümünün
yerine yalnızca bulunan gözler oluşturduğumuz yapay sinir ağı modeline
verilerek tanıma işlemi gerçekleştirilebilmektedir.
Resimlere uygulanan bir başka teknik ise, yüzlerin yatay ve dikey
elemanlarını bulmak için kullanılan sobel operatörleridir. Sobel
operatörleri 3x3 ’lük matrislerdir. Bu matrisler resme uygulandığında
resmin özel bölgeleri tespit edilebilir. En sık kullanılan sobel
operatörü, kenar tespit operatörüdür (Edge Detection).
Aşağıda DCT (Discrete Cosine Transform)
tekniğiyle bir yüz resminin nasıl sıkıştırıldığı görülmektedir:
Görüldüğü gibi, sıkıştırılmış resmin orijinaliyle hiçbir benzerliği
bulunmamaktadır. Hatta işin ilginç yanı, bu teknik hangi resme
uygulanırsa uygulansın, oluşan görüntü yukarıdaki ile hemen hemen aynı
olmaktadır. Yani bir çiçek resmi ile bir yüz resmine bu tekniği
uyguladığımızda, fark insan gözü ile fark edilememektedir. Her iki
resimde de bilginin sol üst köşede toplandığı görülecektir. Ancak insan
gözünün fark edemediği şey, ince detayda saklıdır. Aynı gibi görünen her
bilgi, matematiksel olarak farklı değerler içerir. Yalnız işin püf
noktası da burada yatmaktadır. Gözle görünen anlam verebildiğimiz o
küçük kısım, resmi tekrar elde edebilmemiz için yeterli olmaktadır. Bir
bakıma öğrenmeyi sağlayacak, akılda kalıcı noktaların buraya
toplandığını da söyleyebiliriz. Bu şekilde resmin çok küçük bir bölümü
alınarak da öğrenme tamamlanabilir, üstelik daha da hızlı gerçekleşir.
Yüz tanımayı gerçekleştirmenin bir başka yolu da “Özdeğer ve
özvektörleri (Eigen Faces)” nin bulunmasıdır. Bu yöntemde öncelikle yüz
resimlerinin ortalaması hesaplanır ve her resmin bu ortalamadan uzaklığı
bulunur. Bulunan bu matris, transpozu ile çarpılır, elde edilen yeni
matrisinin “Öz değer ve öz vektörleri” bulunur. Bu yöntemin en önemli
artısı, bulunan öz değer ve öz vektörlerin ortogonal olması, yani
çarpımlarının ‘0’ olmasıdır. Bu öğrenmeyi daha etkin kılar, çünkü
resimler ortogonal oldukları için hiçbir benzerlikleri bulunmaz. Bu
farklılaşma da tanıma işleminde büyük kolaylık sağlar.
Şu an üzerinde çalışılan konular, gerçek zamanlı tanıma işlemlerinin
performanslarının iyileştirilmesi yönündedir. Çok kısa bir süre
içerisinde şifre, anahtar, kredi kartı, parmak izi, imza vb. hiçbirine
ihtiyaç kalmayacaktır.
Halit Ergezer, Mehmet Dikmen ve Erkan Özdemir
Başkent Üniversitesi, Bilgisayar Mühendisliği Bölümü
Reklamlar
Robot Haberler
Yemek Yapabilen Robot
Bilim kurgu filmlerinin en büyük klişelerinden birisi olan günlük iş yapan robotlar sanırım artık gerçek oluyor. Motoman SDA10 adlı robot yemek pişirme konusunda oldukça hünerli.
[Devamı]
Tad
Alabilen Robot
Osmanlı döneminden kalma çeşnicibaşları bir
robotun içinde hayat buldu. Şaka bir yana, bu robot tad algılayıcıları
sayesinde ona verilen yiyecek ya da içeceklerin tadlarını
algılayabiliyor.
[Devamı]

