Yapay zeka nedir?
Yapay zeka nedir?
Bu soruya cevap vere bilmek için öncelikle zeka nedir sorusunu sormamız gerek. Zekaya birçok tanım vere biliriz. Zeka beynimizin öğrenme, algılama, öğrendiklerinden yarararlanabilme, yeni durumlara uyabilme, farklı çözümler bulabilme yeteneğidir. Peki yapay ne demek? Yapay insan eliyle yapılan ve doğal şeylere benzetilmesi planlanan yapma şeylerdir. Yapay ve zeka tanımlarını yaptığımıza göre artık yavaş yavaş bunları birleştirme zamanı geldi :) . Aslında insanoğlu varolduğu günden bugüne kadar hayatı kolaylaştırmak adına doğadaki bazı şeyleri taklit ederek birçok icatlar ve bulgular yarattı. Ancak bunlara zeka verme konusu olaya tamamen başka bir boyut kazandırdı. Peki bu yapay olarak düzeltdiğimiz makinelere nasıl zeka vericektik? Bu konuda ilk en büyük adımı atan kişi Alan Turingdir. Alan Turing matematiksel bir problemin çözümü hakkında düşünüyordu. Ve kendine “Matematiksel problemler basit kuralların bir birini takip etmesi şeklinde çözülürse ne olur?” sorusunu sordu. İşte bu soru bilgisayarların ortaya çıkması demekti. Aslında bu soru tamda algoritma tanımını ortaya koymuş oldu. Karmaşık problemleri algoritmalar yardımıyla basite indirgemek mümkündü. Alan Turing algoritmalar yardımıyla bir bilgisayara düşünme becerisi kazandırmıştı. Turing aritmetik işlemleri makinelerin anlayacağı bir dile çevirmeyi başardı. Turingin bunu nasıl başardığını açıklamayacağım. Çünki bu konu başlı başına ayrı bir yazının konusu. Ama merak edenler arama motorlarında “Automata theory“ yazarak arata bilirler. Aslinda günümüzde yazdığımız her kod bir Turing makinesidir. Turingin bu başarısı sonrası alanda hızla gelişmeler yaşanmaya başladı. Artık “Bilgisayarlar düşüne bilirmi?” sorusunun yerini “Bilgisayarlara nasıl düşünme becerisi kazandıra biliriz” sorusu sorulmaya başlandı. İşte bu noktada bu soruyu soranlar için insan beyninin düşünme sistemi daha önemli bir konu haline geldi. Çünkü insan beyninin nasıl çalıştığını anlaya bilirsek bu çalışma prensiplerini bilgisayarlara kodlayarak onlara düşünme becerisi kazandıra biliriz.
Hiçbir disiplin birden bire kendiliğinden ortaya çıkmaz. Yapay zekanında altinda yatan birçok disiplin vardır. Burda konunun biraz içine girmem gerekiyor çünki yazının konu hakkında hiçbir bilgisi olmayan insanlara hitaben yazıldığını düşününce yüzeysel bir anlatım konuyu dahada karmaşık hale getirir. Şimdi konuyu anlamak için sizlerle çok basit bir yapay zeka algoritması yapalım. Sadece toplama, çıkarma, çarpma ve bölme kullanarak bir algoritma geliştireceğiz. Örneğin elimizde 4 tane x ve ona karşılık gelen y değerleri olsun. X değerlerimiz =>3,5,7,11. Ve Y değerlerimiz => 10,11,12,15. Burdaki x ve y değerlerinin bir birlerine bağımlı olduğu unutulmasin. Örneğin x değerleri bir semtde bulunan evin oda sayısını y değerleri ise ona karşılık gelen fiyatlar olabilir. Herkes y=kx+b şeklinde bir ifadeyi çokca duymuştur.
Matematikte basit bir doğrusal bağlantı denklemidir.
Bu ifadenin grafiği düz bir cizgiden ibaretdir. b ifadesi ise o düz çizginin nerden geçmesi gerektiğini açıklayan ifadedir. Şimdi bu formülü biz kendi x ve y değerlerimize atarsak neler olucak hep birlikte hesaplayalım.
1.durum=> 10=3k+b
2.durum=> 11=5k+b
3.durum=> 12=7k+b
4.durum=> 15=11k+b
Bizim yapmak istediğimiz yeni bir x değeri gelirse y değerini nasıl tahmin ede biliriz? Bu soruyu en basit haliyle çözerek konu hakkında hiçbir düşüncesi olmayanlarında anlamasını sağlamaya çalışacağım. Elimizdeki örnekte eğer tek bir y=kx+b formülü olsaydı bize verilen x değerini formülde yazarak rahatca Y-nin değerini bula bilirdik. Ancak 4 tane ayrı formül var. Biz bu formülleri tek tek çözüp ortalamasını alarak yeni bir formül oluşturursak neler olacak? Ne demek istediğimi birazdan daha iyi anlayacaksınız. Elimizdeki birinci ve ikinci denklemi birlikte ele alarak taraf tarafa çıkarırsak yani (5k+b)-(3k+b)=11-10 => k=1/2 gelir. Ardından 2ci ve 3cü denklemide birlikte ele alalım. (7k+b)-(5k+b)=12-11 => k=1/2. Aynı şeyi 3cü ve 4cü denklem içinde yapalım. (11k+b)-(7k+b)=15-12 => k=3/4. Görüldüğü gibi 3 tane k değeri bulduk. Şimdi bu k değerlerinin ortalamasını alalım ve denklemlerin her birinde bu ortalama k değerini kullanarak b değerlerini bulalım. Yani 3 tane bulduğumuz k değerlerini toplayarak 3e böldüğümüzde elimizdeki sonuç 7/12 olur. K ortalama değerimiz 7/12 oldu. Şimdi bu k değerini birinci denklemde k gördüğümüz yere yazdığımızda b değerini bula biliriz. İşlemi 4 denklemin hepsinde yaparsak 4 tane b değeri buluruz. Ve bunların ortlamasını alarak ortalama b değerini 8,2 olarak buluruz. Artık denklemimiz hazır. y=kx+b denkleminde k değerleri yerine 7/12 ve b değerleri yerinede 8,2 yazarsak y=7/12x+8,2 denklemini elde ederiz. Şimdi ortaya koyduğumuz bu denklemi elimizdeki verilerle testden geçirelim. Bizim elimizdeki veride 3 değerine karşılık 10 geliyordu. Bulduğumuz denklemde x yerine 3 yazalım. (7/12)x3+8,2 = 9,95. Görüldüğü gibi gerçek veriyle çok yakın bir değer bulduk. Şimdi ikinci değer için testden geçirelim. İkinci değerlerimiz 5 ve 11di. x yerine 5 yazalım. (7/12)x5+8,2= 11,11 ve yine yakın bir değer elde ettik. 3cü ve 4cü değerleride aynı şekilde hesaplarsak gerçek değere yakın bir değer çıktığını görürüz. (Bu noktada istatistikçilerin itirazlarini duyar gibiyim). Bize yeni bir x değeri verildiğinde bu denklemi kullanarak y değerini tahmin ede biliriz. O zaman yaptıklarımızı bir bilgisayara öğretelim. Bunun için yaptığımız işlemleri adimlar haline getirelim. Yani algoritmasını yazalım. Birinci adimda y=kx+b denklemine göre elimizdeki verileri denklemde yerine koyduk ve ne kadar verimiz varsa o kadar denklem bulduk. İkinci adimda denklemleri çözdük ve çıkan k sonuçlarının ortalamasını bulduk. Üçüncü adimda ise ikinci adımda bulduğumuz k değerlerini denklemde yerine yazdık ve b değerlerini bulduk. Ve bulduğumuz b değerlerininde ortalamasını aldık. Sonuçta elimizde k ve b değişkenleri belli olan y=kx+b şeklinde bir denklem geldi. Adımları alt alta daha anlaşılır şekilde yazalım. Algoritmamiz (adımlarımız) aşağıdaki gibi oldu
- Adım: verilere y=kx+b denklemini uygula
- Adım: denklemleri çöz ve k değerlerinin ortalamasını alıb y=kx+b denklemindeki k değerinin yerine ata
- Adım: k-nin belli olduğu denkleme göre her denklemi çöz ve b değerlerini bulup ortalamalarını al. Daha sonra belli olan k ve b değerlerini y=kx+b denkleminde yerine koy
- Adım: yeni gelecek verilerde bu denklemi kullan ve sonucu söyle
Geriye sadece bunu bir bilgisayara kodlamak kaldı. İşte yapay zeka dediğimiz şey bu sorunun bilgisayara kodlanmış halidir. Yaptığım örnek probleme çok ilkel bir yaklaşım metodudur. Günümüzde kesinlikle bu tür problemlere bu şekilde bir yaklaşım sergilenmez. Sadece siz okuyucuları terim ve hesaplamalarla sıkmamak için bu tür ilkel bir yaklaşım sergiledim. Tabiki gerçek yapay zeka algoritmaları çok daha komplike ve zordur. Aslinda burda yaptığım şey akıllı bir sistemin karar vermeden önce öğrenmeye olan gereksinimini ortaya koymaktı.
Problemin türüne göre farklı algoritmalar oluşturulmuştur. Yani sadece tahmine dayalı algoritmalarla sınırlı değil. Hatta bazı algoritmaların nasıl çalıştığı konusunda hiçbir fikrimiz yok. Çalışıyor ve doğru sonuçlar veriyor.(Bu algoritmaları anlatmakta diğer yazılara kalsın) Bunu nasıl yaptığını anlamıyoruz. Yapay sinir ağları algoritmaları bunlara bir örnek ola bilir. Burda aklınıza “Bu algoritmalari biz yazıyorsak nasıl çalıştığını neden anlamıyoruz?” sorusu gelmiş olabilir. Nasıl çalıştığını anlamıyoruzdan kastım matematiksel temellerinin büyük ölçüde eksik olmasıdır. Yani bir istatistikçi bu problemi çözmedeki nedensellik nerde diye sorarsa kesinlikle ona cevabınız ‘Bilmiyorum’ olacaktır. Günümüzde kullandığımız teknolojilerin çoğu yapay zekanın ürünüdür. Örneğin shazam uygulaması yüzlerce katmanlı bir yapay sinir ağı algoritması kullanılarak oluşturulmuştur. Yapay zeka araştırmaları ve uygulamarı arttıkça artık hayatımızda birçok şey çok kolay olmaya başladı. Bu alanın hayatımıza getirdiği kolaylıklardan korkan bilim adamlarıda mevcut. Bazı bilim adamları yapay zekayı tehlikeli bulurken bazıları kesinlikle insanoğlunun kurtuluşu olarak görmektedir. Peki sizce yapay zeka tehlikeli ola bilirmi?