YAPAY ZEKA: Makineler Ne Öğrenir Nasıl Öğrenir?

Yunus Bulut
Datajarlabs
Published in
10 min readJan 31, 2019

Yakın zamanda tanık olduğumuz sürücüsüz araçlardan ve ustaları zor bilinen oyunlarda yenen bilgisayarlara kadar bir sürü başarılı uygulama, insanların dikkatini kaçınılmaz olarak yapay zekaya ve yapay zekanın geleceğine çekti. “Yapay zeka yeni elektriktir” diyenler mi dersiniz, “yapay zeka insan hayatını ateşten daha fazla değiştirecektir” diyenler mi dersiniz, “robotlar hepimizi işinden edecek” diyenler mi dersiniz; herkes ama herkes insanoğlunun bu son başarısının ihtişamına kendini kaptırmış görünüyor.

Bu yazımızda, yapay zekanın neler yapabileceğinden ya da yapay zeka ekseninde kurulan popüler gelecek senaryolarından bahsetmeyeceğiz. Bilakis daha temel birşeyden, yani makinelerin ne ve nasıl öğrendiklerinden ve zeka dediğimiz “şeyi” bilgisayarlara nasıl atfedebileceğimizden bahsedeceğiz. 1’ler ve 0’lar üzerine kurgulanmış bu elektronik aletler gerçekten nasıl öğrenebiliyorlar? Makinelerin öğrenmesi nasıl bir öğrenme, zekaları nasıl bir zeka? İşte bunlar üzerinde duracağız?

Merak ediyorsanız, buyrun okumaya!

Not: Yazıyı https://datajarlabs.com/yapay-zeka-makineler-ne-ogrenir-nasil-ogrenir/ adresinden de okuyabilirsiniz.

İnsanlar Neyi Öğrenir?

Vahşi kedi türlerini fotoğraflarına bakarak nasıl ayırt ediyoruz? Örneğin çok büyük, sarı ve düz bir kürke sahipse aslan; çok büyük, turuncuya yakın renkli ve siyah çizgili bir kürkü varsa kaplan; orta büyüklükte, sarı renkli ve yuvarlak siyah desenli ise leopar diyoruz değil mi?

Ya da ev kedisi ve köpeği nasıl ayırt ettiğimizi bir düşünün. Kulak yapısı, çene şekli, patilerinin şekli gibi özellikleri ayırt etmede kullandığınızı farkedeceksiniz. Mandalina ve portakalı ayırt ederken de büyüklüğüne, şekline ve renk tonuna bakarız.

Bu örnekler maksadımızı anlatmaya yeter. İnsanoğlu bir nesnenin ne olduğunu öğrenirken, o nesneye ait herşeyi değil ama onu diğerlerinden ayırt etmesine yarayacak bazı yararlıözellikleri öğrenir. Ne gibi özellikler? Şekil, büyüklük, renk, tat, koku, desen, sertlik ve daha nicesi.

Yararlı kelimesinin altını çizmekte fayda var. Çünkü nesnelere ya da olgulara ait özelliklerin sayısı saymakla bitmez. Ayrıca, amaçlara göre bir nesnenin yararlı özellikleri de değişir. Çünkü bir özelliğin yararlı olması, amacımıza ulaşmada bize ne kadar yardım ettiğiyle alakalıdır. Örneğin, bir resimden meyve türlerini ayırt etmeye çalışıyorsak meyvelerin kokusu pek işe yaramaz, fakat dokunup temas kurarak meyveleri belirlemeye çalışıyorsak koku yararlı bir özelliktir.

Bir örnek daha verelim. Bir haftalık bir gezi için dünyanın en karmaşık metro ağlarından birine sahip olan Tokyo’ya gittiğinizi hayal edin. Gezi boyunca ulaşım için Tokyo metrosunu kullanacaksınız. Fakat gitmeden önce, geziniz sırasında bir problem yaşamamak için Tokyo metro hattını tanımak istiyorsunuz. Bulabildiğiniz tüm metro haritalarını incelediniz diyelim. Peki günün sonunda ne öğrendiniz?

Yukarıdaki resmin ilk sütununda, Tokyo metro hatlarının 3 boyutlu bir maketi, ikinci sütununda 2 boyutlu bir haritası, üçüncü sütununda ise 2 boyutlu haritanın basitleştirilmiş hali var. İsterseniz kendinizi sınayın. Eğer Tokyo metro hattı üzerinde uzun okumalar yaptıysanız, kafanızda tutacağınız harita üçüncü sütundaki gibi olacaktır. İnsanoğlu, gerçek hayatın basitleştirilmiş fakat yine de yararlı gösterimlerini öğrenir.

İnsanlar Nasıl Öğrenir?

Resim yapmayı nasıl öğrendiniz? Henüz ilkokula başlamadan, aileniz ya da bir yakınınız size kafanın yuvarlak çizilmesi gerektiğini, gövdenin köşeleri yuvarlanmış dikdörtgenle çizilebileceğini vs. öğretmiştir. Siz ilk denemelerinizi yaptığınızda, “hayır, bak şu şekilde çizeceksin” diyen birileri olmuştur. Ya da ilkokul öğretmeninizin size toplama çıkarmayı nasıl öğrettiğini hatırlayabilirsiniz. Yani bir öğretici size öğrenmeye çalıştığınız şeyle ilgili yararlı özellikleri göstermiştir.

İki yaşındaki çocuğunuza yeni koyduğunuz demli bir çayın sıcak olduğunu nasıl öğretirsiniz? Sık yapılan birşey çocuğa bardağı uzatıp dokunmasını istemek ve dokunur dokunmaz “cısss” demek. Bu çocuğa hem bardağın sıcak olduğunu hissetme imkanı verir hem de bunun ona zarar vereceğini uyarıcı bir sesle ihtar eder. Bunu birkaç kere yapmanız, çocuğun sizin içtiğiniz çaya yaklaşmaması gerektiğini öğretmeye yeter. Çocuk, bir bardağın içinde çay rengine benzer birşey varsa ve dumanı üstünde buram buram tütüyorsa; bunun sıcak birşey olduğunu ve kendisine zarar vereceğini öğrenmiş olur.

Ama hikaye burada bitmez. Zaman içinde çocuğunuzun deneysel içgüdüleri, ona yavaş yavaş sıcağı tolere edebileceğini ve sıcak içeceklerden de keyif alabileceğini öğretecektir.

Konuşarak nasıl iletişim kurduğumuzu da bir düşünün. Ağzımızdan bazı sesler çıkıyor ve karşımızdaki kişi hangi kavramlardan bahsettiğimizi anlıyor. Hatta bazen bizimle konuşana dikkatimizi vermemiş olsak bile neyden bahsettiğini anlayabiliyoruz. Seslerdeki kalıplar, bizi kavramlara rahatlıkla götürüyor.

Bu kısmı uzattıkça uzatabiliriz. Fakat yerimiz buna müsait değil. Üstelik, insanoğlunun tam olarak nasıl öğrendiği hala gizemini koruyor ve insan beyninin nasıl çalıştığı hakkında gerçekten çok az bilgiye sahibiz. O yüzden, buraya kadar işaretlerini verdiğimiz öğrenme tarzlarına odaklanalım ve makinelerin ne öğrendiğine ve nasıl öğrendiğine geçelim. İsterseniz, işe yapay zekanın kısaca tanımı yaparak başlayalım.

Zekanın Yapayı Nasıl Olur?

Akıllı mı zeki mi tartışması bizim toplumumuzun köklü tartışmalarından birisidir. Yani, geleneksel olarak zeka tartışmalarına aşinayız. İnsanda zekayı nasıl tanımladığımız tartışmasına girmeyeceğiz fakat zekanın yapayı nasıl olur, onu biraz açmaya çalışalım:

Yapay zekayı tanımlarken referansımız insan olacak. Bir makinenin zeki olmasını kabaca 4 farklı yaklaşım altında inceleyebiliriz. Aşağıdaki yaklaşımlar hakkında biraz detaylı bir perspektif yakalamak isterseniz Russel ve Norvig’in 2009 basımlı “Artificial Intelligence: A Modern Approach” isimli kitabına bakabilirsiniz.

  1. İnsan gibi davranma: Daha önce “Turing Testi”ni duymuşsanız, bu tanımın bu yaklaşımı ifade ettiğini anlamışsınızdır. Örneğin, iki perde arkasında, biri makine diğeri insan iki “kişi”yle konuşuyorsunuz. Diyaloglarınız sonunda, hangisinin insan hangisinin makine olduğunu ayırt edemiyorsanız zeki bir makineyle görüştünüz demektir!
  2. İnsan gibi düşünme: Karar verme, problem çözme gibi bilişsel yetenek gerektiren işlerde insandan ayırt edemediğimiz çıktılar üretmeyi referans alan bir yapay zeka tanımı. Dikkat ederseniz, bu ve ilk tanımın kesiştiği birçok durum tespit edebilirsiniz.
  3. Rasyonel davranma: “İnsan gibi davranan” makinelerin daha idealize edilmiş bir halini referans alan bir yapay zeka tanımı bu. İnsanın irrasyonel davrandığı yerlerde bile rasyonel davranabilen makinelerden bahsediyoruz.
  4. Rasyonel düşünme: Bu yaklaşım, bir öncekine benzer şekilde, tüm bilişsel aktiviteleri ile rasyonel makineler ve sistemleri tanımlamak istiyor. Google DeepMind’ın geliştirdiği AlphaGo isimli modelin Go oyununda dünyanın en iyilerini yendiğini ya da AlphaStar’ın 2019’un başında Starcraft 2’de benzer başarılar elde ettiğini hatırlıyorsunuz değil mi?

Yukarıdaki 4 farklı tanımın detaylı incelemesine burada girmeyeceğiz. İnsanın her zaman rasyonel davranmadığını ve düşünmediğini de biliyoruz. Dolayısıyla, rasyonel düşünme ve davranma ile insan gibi düşünme ve davranmanın farklı kategoriler olduğunu not edelim. Dört yaklaşıma birden göz kırpan bir tanım yapmaya kalkarsak şöyle diyebiliriz:

Yapay zeka, karşılaşılan durumlar/gözlemler/olaylar karşısında insanlara benzer hatta daha rasyonel tepkiler/çıktılar/kararlar verebilen bilgi işleme mekanizmasıdır. Bilgi işlemeyi gerçekleştirebilecek işlemci ve hafıza taşıyan, bilgi işlemeye girdi sağlayabilecek kanalları (sensör, kamera, mikrofon vs.) olan her cihaz yapay zeka sahibi olabilir. İfade kolaylığı açısından gelin yazının geri kalanında böyle cihazları ifade etmek için makine tabirini kullanalım ve makinelerin ne öğrendiklerine geçelim.

Makineler Neyi Öğrenir?

Herşeyden önce ilk bilmemiz gereken nokta şu: makineler ancak sayılarla ifade edilen kavramları anlayabilirler. Bahsettiğimiz kavramlar soyut da olsa, somut da olsa; ancak sayılara dökülebildiği anda makinelerin anlayabileceği bir hale geliyor. Kafanız karışmasın. Diyebilirsiniz ki “Google Çeviri yazılı cümleleri bir dilden bir başkasına çeviriyor, Amazon Alexa konuşmamızı anlayıp bize yardımcı olabiliyor. Sonuçta ortada sayı falan yok.” İşin aslı, Google Translate’i ya da Amazon Alexa’yı kullanırken hissetmesek de arka planda kelimeler ve sesler sayılara çevriliyor. Kelimeleri ve sesleri sayılara nasıl döktüğümüz konusuna burada girmeyeceğiz. Fakat bilin ki bunun birçok yolu var ve bu konu aktif bir araştırma konusu olmaya devam ediyor.

İnsanların ne öğrendiklerinden bahsederken, hatırlarsanız yararlı özelliklerden bahsetmiştik. Bunu bir adım öteye taşıyalım. Eşyaların ve kavramların yararlı özelliklerini öğrenirken aslında o eşyaları ve kavramları temsil eden basitleştirilmiş formları öğreniyoruz. Kafamızdaki bu basit formlar, bizim aslanı kaplandan, elmayı armuttan ayırmamızı sağlıyor. Makinelerin öğrendikleri de işte bu: eşyaların ve kavramların basit formları.

Örneğin, eğer fotoğraflara bakarak ne olduğunu öğrendiğimiz nesneler aslan, kaplan ve leoparsa; bu üç hayvanı bir resme bakarak tanımamız için üç tane özelliği (renk, desen ve desen şekli) kafamızda tutmamız yeterli olacaktır. Oysa, bu hayvanlar için Wikipedia’ya bakarsanız birçok özellikleri olduğunu göreceksiniz.

Son 10 yılda, yapay zeka teknolojilerinin arkasındaki gerçek kahramanla tanıştınız işte! Yıllardır dedikodusunu çok yaptığımız derin öğrenme modellerinin başardığı tam da bu. Karmaşık gerçek dünya nesnelerinin yararlı özelliklerini keşfetmek. Örnek olarak, nesne tanımadaki başarılarıyla ünlenen ve kendine birçok yapay zeka uygulamasında “özellik keşfedici” olarak yer bulan CNN modellerinin kabaca ne öğrendiğine bir bakalım.

Nesne tanımada oldukça başarılı bir CNN uygulaması olan VGG-16 modeli üzerinden ilerleyelim. Bu modeli, binlerce öğrenciden oluşan bir sınıf gibi düşünelim. Herbir öğrenci, nesneler hakkında bir yararlı özelliği öğrenmiş olsun. Yine her öğrenci öğrendiği özelliği bir resimde gördüğünde el kaldırıyor olsun.

Yukarıdaki resmin üst sırasında, 3 tane öğrencinin ne öğrendiğini görüyoruz. Birinci öğrenci, kuş kanadına benzeyen birşey gördüğünde el kaldıracak. İkinci öğrenci ise tavuk ya da kuş başına benzer bir parça gördüğünde el kaldıracak. Üçüncü ise, zincire benzer birşey gördüğünde aynı tepkiyi verecek. Ve model, bir sınıf başkanı gibi, el kaldıran öğrencilerin bilgilerini yoğurarak resimde ne olduğuna karar verecek. Mesela, bu modele tavuk resmi gösterildiğinde birinci ve ikinci öğrenciler gürültülü bir şekilde el kaldıracaklardır. Sınıf başkanı ise, madem bu kadar kendinizden eminsiniz, o halde bu resimde bir tavuk olmalı diyecektir.

Makineler Nasıl Öğrenir?

Gelelim, makinelerin tüm bu yararlı özellikleri nasıl öğrendiğine. Hatırlarsanız, makinelerin ancak sayılar ile çalışabileceğine değinmiştik. Dolayısıyla, makinelerin tüm öğrenim çabaları sayılar aleminde gerçekleşir. Onların evreni sayılardan oluşur ki bu evrenin yasalarına matematik diyoruz. Makinelerin öğrenmesinin tamamen ama tamamen matematiksel işlemlerden ve yöntemlerden oluştuğunu bilmemiz lazım.

Yapay zeka özelinde, matematiksel kavramların en önemlisi fonksiyonlardır. Hepimizin bildiği f(x) = y’den bahsediyoruz. Örneğin bir makinenin resimdeki hayvanın aslan olduğunu öğrenmesi demek f(resim) = aslan eşitliğindeki f() fonksiyonunu bilmesi demek oluyor. Bu da sayılara çevirdiğimiz resmimizi bu f() fonksiyonuna girdi olarak vererek, sonucunda çıkan sayının aslana mı, kaplana mı yoksa leopara mı karşılık geldiğine bakmak demek.

Tahmin edeceğiniz gibi, f() gibi fonksiyonlar çok karmaşık olmak zorunda. Yani f(x) = 2x + 1 gibi basit fonksiyonlar, makineleri yapay zeka (insan gibi düşünme, insan gibi davranma, rasyonel düşünme ya da rasyonel davranma) sahibi yapamıyor.

Makinelerin nasıl öğrendiğini, kavramların basitliğini koruyacak şekilde anlatmaya devam edelim ve makinelerin öğrendiği fonksiyonların aslında neyi öğrendiğine bakalım. Herhangi bir yapay zeka algoritmasını fonksiyonlardan oluşan bir fonksiyon gibi düşünebilirsiniz. Daha önce aktardığımız sınıf ve öğrenci benzetmesini hatırlayın. Herbir öğrenciyi şimdi fonksiyonların yerine koyun. Sınıf başkanı ise bu fonksiyonların fonksiyonu olacaktır.

Dolayısıyla, makinelerin fonksiyonları öğrenmesi demek aslında nesnelere ve kavramlara ait yararlı özellikleri temsil eden öğrencileri bulması demek. Aşağıdaki grafiği inceleyelim:

Makinemize sayılara çevrilmiş aslan resmini girdi olarak verdiğimizde, hayvanın yeleli olup olmadığını öğrenen öğrenci parmak kaldıracak ve “Evet, yeleli.” diyecektir. Benzer şekilde, sarı kürklü olup olmadığını ve çok büyük olup olmadığını öğrenen öğrenciler de aynı cevabı verecektir. Siyah deseni öğrenen ve desenlerin yuvarlak olup olmadığını öğrenen öğrenciler ise “Hayır” cevabını vereceklerdir. Tüm bu cevapları değerlendiren sınıf başkanı, ilk üç öğrenciye dönerek “Sizlerin cevabındaki kararlılık, beni bu resmin aslan olduğuna ikna etti.” diyecek ve makinemiz resimde bir aslan olduğunu anlayacaktır.

Buraya kadar iyi hoş da, makinelere bu yararlı özellikleri nasıl öğretiyoruz? Temelde yapay zekanın nihai hedefi, insanlar nasıl öğreniyorsa makinelerin de öyle öğrenebilmelerini sağlamak çünkü insanoğlunun beyni bilebildiğimiz en etkili ve verimli öğrenme aracı. Fakat ne yazık ki, hala insanın nasıl öğrendiği tam manasıyla aydınlatılamamış bir soru ve çok aktif bir araştırma konusu. Yine de, insan beyninin nasıl öğrendiğine dair bildiğimiz bazı yöntemler var ve makinelere birşey öğretirken bu yöntemleri kullanıyoruz. Yazının geri kalanında, bu yöntemlerin birkaçından kısaca bahsedelim.

İlk olarak şunu belirtelim ki yazı boyunca vurguladığımız nesnelere ve kavramlara ait yararlı özellikleri keşfetme temsil öğrenmesi (representation learning) dediğimiz paradigmanın amaçladığı birşey. Temsil öğrenmesinde hedef yararlı özellikleri keşfederek “herşey”i öğrenmenin işlemsel, zamansal ve kavramsal maliyetlerinden kurtulabilmek. Günümüzde derin öğrenme diye bildiğimiz modellerin başarıyla yapabildiği öğrenme tarzı da bu. Özellik öğrenme (feature learning) ya da öğrenmeyi öğrenme (learn to learn) olarak da tanımlayabileceğimiz bu paradigma ile nesnelerin ve kavramların yararlı özelliklerini makinelerin kendilerinin keşfetmelerini amaçlıyoruz.

Konu buraya gelmişken, MIT araştırmacılarından Lex Fridman’ın güzel bir ifadesini alıntılamadan geçmeyelim: “Bilim, insanlarca yapılan bir temsil öğrenmesidir; derin öğrenme ise makinelerce yapılan.”

İnsanın nasıl öğrendiğinden bahsederken resim yapmaktan bahsetmiştik. Bilen bir kişinin bize “Bak! Kafanın şekli budur, parmak şöyle çizilir.” diye yönlendirerek resim öğretmesi, gözetimli öğrenme (supervised learning) dediğimiz öğrenme metodunun bir örneğiydi. Günümüzde, makinelerin öğrenme yolları içinde en çok mesafe aldığımız da bu yöntem. Bu aslan resmidir, bu kaplan resmidir, bu leopar resmidir diye etiketleyerek on binlerce resmi makinemize girdi olarak vererek; makinelerin aslan, kaplan ve leoparın yararlı özelliklerini keşfetmesini sağlayabiliyoruz. İnsanlar aynı öğrenmeyi üç beş resimle yapabilirken, ne yazık ki makineler bunu henüz on binlerce resimle yapabiliyorlar.

İki yaşındaki çocuğa bardağa yeni koyduğumuz çayın sıcak ve tehlikeli olduğunu öğretirken kullandığımız yöntemi ise pekiştirmeli öğrenme (reinforcement learning) olarak adlandırıyoruz. Deneme yanılma yöntemi olarak düşünebileceğimiz bu yöntemle, çocuğun etrafıyla etkileşim kurup karşılaştığı sonuçları sevip sevmemesiyle öğrenmesini hedefliyoruz. Makineleri eğitmek için bu yöntemi kullandığımızda, makinelere bir çevre (environment) sağlamamız gerekiyor. Örneğin, makinemize Atari oyunlarından bir tanesine erişim sağlayarak, oyunu defalarca (binlerce, onbinlerce kere) oynamasını istiyoruz ve her oyun sonunda alabildiği puanlara göre makinemiz oyunda karşılaştığı durumlar karşısında ne yapması gerektiğini öğreniyor. AlphaGo, AlphaStar ya da sürücüsüz otomobil teknolojilerinde kullanılan ana öğrenme yöntemi işte bu yöntem.

Son olarak, gözetimsiz öğrenmeden (unsupervised learning) bahsedeceğiz. Yapay zeka için nihai bir öğrenme yöntemi varsa o da bu yöntem. Hiçbir öğretici veya deneme yanılma olmadan (ya da çok az miktarda diyelim); nesneleri, kavramları ve bunların yararlı özelliklerini ve ilişkilerini öğrenme olarak adlandırabileceğimiz bu yöntem, uygulaması ve tasarımı en zor öğrenme metodu. Oysa ki insan birkaç gözlem ve intiba (perception) ile neler neler öğrenebiliyor.

Öğrenme tarzlarının otonom yapay zekaya giden yoldaki rollerini yukarıdaki grafikte görebilirsiniz. İnsan müdahalesinin en aza indiği ve kendi kendine öğrenebilen, kendi kendine değerlendirme yapabilen sistemlere doğru yol alabilmek için hala gidilecek çok yol var. Fakat yine de son yıllarda yapay zeka alanında alınan mesafe insanoğlunun önemli başarılarından sayılmalıdır.

Yazıyı Sonlandırırken

Bu yazıda, yapay zekayı tanıtmak adına makinelerin neyi öğrendiklerini ve öğrenmeyi nasıl yaptıklarını basit örneklerle anlatmaya çalıştık. Elbette, anlaşılırlık adına konuyla alakalı birçok şeyden bahsetmedik. Umarız ki yapay zekanın ne olduğunun anlaşılmasına biraz olsun katkımız olmuş olur.

--

--

Yunus Bulut
Datajarlabs

AI Hacker @Validaitor. Researcher @KIT. Co-author of the books "AI for Data Science" and “Data Scientist Bedside Manner”.