Derin Öğrenme , Yapay Zeka Serisi – 1 –

Mucitler uzun zamandır düşünen makineler yapmayı hayal ediyorlardı. Bu arzu, en azından eski Yunanistan zamanına kadar uzanıyor. Mitolojik figürler Pygmalion, Daedalus ve Hephaestus hepsi efsanevi mucitler olarak yorumlanabilir ve Galatea, Talos ve Pandora hepsi yapay yaşam olarak kabul edilebilir.

Günümüzde, yapay zeka (AI) birçok pratik uygulama ve aktif araştırma konularına sahip gelişen bir alandır. Rutin çalışmaları otomatikleştirmek, konuşma veya görüntüleri anlamak, tıpta teşhis yapmak ve temel bilimsel araştırmaları desteklemek için akıllı yazılımlara bakıyoruz. Yapay zekanın ilk günlerinde saha, insanlar için entelektüel açıdan büyük, ancak bilgisayarlar için nispeten açık olan, resmi, matematiksel kuralların bir listesi ile tanımlanabilen problemleri hızla ele aldı ve çözdü. Yapay zekaya karşı gerçek meydan okuma, insanların gerçekleştirmesi kolay, ancak resmi olarak – sezgisel olarak çözdüğümüz sorunları, örneğin konuşulan kelimeleri veya görüntülerdeki yüzleri tanımak gibi otomatik olarak kendini tanımlaması zor olan görevleri çözmekte olduğunu kanıtladı. Bu yazı serisi, daha sezgisel olan bu problemlere bir çözüm hakkındadır. Bu çözüm, bilgisayarların tecrübelerinden ders almasına ve dünyayı kavramların hiyerarşisi açısından anlamasına olanak tanır; her kavram daha basit kavramlarla ilişkili olarak tanımlanır.

Tecrübelerden bilgi toplamak suretiyle, bu yaklaşım insan operatörlerinin bilgisayarın ihtiyaç duyduğu tüm bilgileri resmi olarak belirtmelerine olan ihtiyacı ortadan kaldırır. Kavram hiyerarşisi, bilgisayarın daha basit olanlardan başlayarak karmaşık kavramları öğrenmesini sağlar. Bu kavramların birbiri üzerine nasıl inşa edildiğini gösteren bir grafik çizersek, grafikler çok katmanlı ve derin olur. Bu nedenle, bu yaklaşımı AI derin öğrenme olarak adlandırılıyor. Derin öğrenmenin ilk başarılarının çoğu nispeten steril ve resmi ortamlarda gerçekleşti ve bilgisayarların dünya hakkında fazla bilgi sahibi olmasını gerektirmedi. Örneğin, IBM’in Deep Blue satranç oynuyan sistemi 1997’de dünya şampiyonu Garry Kasparov’u yendi. Satranç, tabii ki yalnızca basit şekilde sınırlanmış şekilde hareket edebilen sadece altmış dört yer ve otuz iki parça içeren çok basit bir dünya. Başarılı bir satranç stratejisi tasarlamak muazzam bir başarıdır ancak meydan okuma, satranç parçalarını ve bilgisayara izin verilen hamleleri açıklamaktan ibaret değildir. Satranç, programcının vaktinden önce kolayca sağladığı tamamen resmi kuralların çok kısa bir listesiyle tamamen tanımlanabilir. İronik bir şekilde, insan için en zeki zihinsel girişimlerden biri olan soyut ve resmi görevler bir bilgisayar için en kolay seçenekler arasındadır. Bilgisayarlar, en iyi insan satranç oyuncusunu uzun zamandır yenebilirler, ancak sadece yakın geçmişte ortalama insanların bazı nesneleri veya konuşmaları tanıması yetenekleriyle eşleştirilmektedir. Bir kişinin gündelik hayatı dünyayla ilgili muazzam miktarda bilgi gerektirir. Bu bilginin çoğu sübjektif ve sezgiseldir ve bu nedenle resmi bir şekilde ifade etmek gerekir. Bilgisayarlar akıllı bir şekilde davranmak için bu bilgiyi yakalamalılar.

Yapay zekada karşılaşılan başlıca zorluklardan biri de bu gayrı resmi bilginin bilgisayara nasıl taşınacağıdır. Çeşitli yapay istihbarat projeleri, resmi dillerde dünyayla ilgili bilgiyi sabit kodlamaya çalıştı. Bir bilgisayar mantıksal çıkarım kurallarını kullanarak bu biçimsel dildeki ifadeleri otomatik olarak kullanabilir. Bu, yapay zeka için bilgi tabanı yaklaşımı olarak bilinir. Bu projelerin hiçbiri önemli bir başarıya yol açmadı. En ünlü projelerden biri Cyc. Cyc, bir çıkarım motorudur ve CycL adlı bir dilde ifadelerin bir veri tabanıdır. Bu zahmetsiz bir süreçtir. İnsanlar, dünyayı doğru bir şekilde tanımlamak için yeterli karmaşıklıkla resmi kurallar üretmek için mücadele ediyorlar. Örneğin, Cyc Fred adlı bir kişinin sabah tıraşı hikayesini anlamadı. Inexpression Linde 1992 motoru hikayede bir tutarsızlık tespit etti: insanların elektrikli parçaları olmadığını biliyordu, ancak Fred’in elektrikli traş makinesi tutması nedeniyle “FredWhileShaving” adlı kişinin elektrikli parçaları içerdiğine inanıyordu. Bu nedenle, traş olurken Fred’in hâlâ bir kişi olup olmadığını sordu. Zor kodlanmış bilgiye dayanan sistemlerin karşılaştığı sorunlar, AI sistemlerinin ham veriden kalıp çıkartarak kendi bilgilerini elde etme kabiliyetine ihtiyaç duyduklarını ortaya koymaktadır. Bu yetenek, makine öğrenimi olarak bilinir. Makine öğrenimi, bilgisayarların gerçek dünyadaki bilgileri içeren sorunları çözmesini ve öznel olarak görünen kararlar almasını sağladı. Adı geçen basit bir makine öğrenme algoritması, meşru e-postaları spam e-postadan ayırabilir.

Bu basit makine öğrenme algoritmalarının performansı datalarına kaydedilen verilerin eğitimine bağlıdır. Örneğin, sezaryen doğum önermek için lojistik regresyon kullanıldığında, AI sistemi hastayı doğrudan incelememektedir. Bunun yerine, doktor sisteme bir uterus skarının varlığı veya yokluğu gibi ilgili birkaç bilgiyi söyler. Hastanın temsilinde yer alan her bilgi bir özellik olarak bilinir. Lojistik regresyon, hastanın bu özelliklerinin her birinin çeşitli sonuçlar ile nasıl korele olduğunu öğrenir. Bununla birlikte, özelliklerin herhangi bir şekilde tanımlanma biçimine etki edemez. Lojistik regresyona, doktorun resmi raporundan ziyade hastanın MR taraması verilirse, yararlı öngörülerde bulunamaz. MRI taramasındaki bireysel pikseller, doğum sırasında ortaya çıkabilecek herhangi bir komplikasyonla çok az korelasyon gösterir. Temsillere olan bu bağımlılık, bilgisayar bilimleri ve hatta günlük yaşam boyunca ortaya çıkan genel bir olgudur. İnsanlar kolayca farklı gösterimde ki rakamlar veya harfler üzerinde aritmetik işlem yapabilir, ancak Roma rakamlarında aritmetiği aramak çok daha fazla zaman alır. Temsil seçiminin makine öğrenme algoritmalarının performansı üzerinde muazzam bir etkiye sahip olması şaşırtıcı değildir. Basit bir görsel örnek için bakınız aşağıda ki şekle bakabilirsiniz.

Bir çok yapay zeka görevi, bu görevi çıkarmak için doğru özellik setini tasarlayarak çözebilir ve daha sonra bu özellikleri basit bir makine öğrenme algoritmasına sunar. Örneğin, sesli hoparlör tanımlama için kullanışlı bir özellik, hoparlörün ses yolunun boyutunun tahminidir. Bu nedenle konuşmacının bir erkek, kadın veya çocuk olup olmadığı konusunda güçlü bir ipucu verir. Bununla birlikte, birçok görev için hangi özelliklerin çıkartılması gerektiğini bilmek çok önemlidir. Örneğin, fotoğraflarda araba tespiti için bir program yazmak istediğimizi varsayalım. Arabaların tekerlekleri olduğunu biliyoruz, bu nedenle tekerleklerin varlığını bir özellik olarak kullanmak isteyebiliriz. Maalesef, bir tekerleğin piksel değerleri açısından tam olarak neye benzediğini açıklamak büyük bir önem taşıyor. Bir tekerlek basit bir geometrik şekle sahiptir, ancak görüntü tekerleğe düşen gölgeler, tekerleğin metal kısımlarına bakan güneş, araba çamurluğu veya tekerleğin ön plana çıkmış bir nesnesi gibi karmaşık olabilir.

1

Şekilde, iki veri kategorisini, dağılma çizgisi içerisinde aralarında bir çizgi çizerek ayırmak istediğimizi varsayalım. Soldaki grafikte, bazı verileri Kartezyen koordinatları kullanarak temsil ediyoruz ve sonuca ulaşmak imkansız diyebiliriz. Sağdaki çizimde, kutupsal koordinatlarla veriyi temsil ediyoruz ve görev dikey çizgi ile çözülmesi basitleşiyor.

Bu sorunun bir çözümü, yalnızca temsilin çıktıya eşlemeyi değil, temsilin kendisini de keşfetmek için makine öğrenimini kullanmaktır. Bu yaklaşım, temsil öğrenme olarak bilinir. Öğrenilen tasvirler genellikle elle tasarlanmış gösterimlerden elde edilebileceklerden daha iyi performansa neden olur. Ayrıca, AI sistemlerinin en azından insan müdahalesi ile yeni görevlere hızla adapte olmasına izin veriyorlar. Bir temsil öğrenme algoritması, basit bir görev için birkaç dakika içinde iyi bir özellikler kümesini veya saatler içinde karmaşık bir görevi keşfedebilir. Karmaşık bir görev için özellikleri elle tasarlamak, çok fazla insan zamanı ve efor gerektirir. Temsili öğrenme algoritmasının özünde yer alan örnek, otomatik kod çözücü kodlayıcıdır. Bir otomatik kodlayıcı, girdi verisini farklı bir gösterime dönüştüren bir işlevin birleşimidir ve yeni gösterimi orijinal biçimine dönüştüren bir kod çözücü işlevidir. Otomatik oluşturucular, bir kodlayıcı ve ardından dekoder tarafından bir girdi çalıştırıldığında mümkün olduğunca çok bilgiyi korumak üzere eğitilirler, ancak yeni gösterimin çeşitli güzel özelliklere sahip olması için eğitilirler. Farklı otomatik tanımlayıcı türleri, farklı özellik türleri elde etmeyi amaçlar. Öğrenme özellikleri için özellikler veya algoritmalar tasarlarken, amacımız genellikle gözlemlenen verileri açıklayanları ayırmaktır. Bu gibi faktörler genellikle doğrudan gözlemlenen miktar değildir. Bunun yerine, fiziksel dünyada gözlemlenemeyen nesneler veya gözlemlenemeyen kuvvetlerden biri olabilir; bunlar gözlemlenebilir miktarlardır. Gözlemlenen verilerin yararlı basitleştirici açıklamalarını veya sebeplerini sağlayan yapıları insan zihninde de var olabilirler. Verilerdeki zengin değişkenliği anlamamıza yardımcı olan kavramlar veya soyutlamalar olarak düşünülebilirler.

Bir konuşma kayıt analizinde, varyasyon faktörleri, konuşmacı yaşını, cinsiyetlerini, vurgularını ve konuştukları kelimeleri içerir. Bir otomobilin görüntüsünü analiz ederken, değişim faktörleri otomobilin yerini, rengini ve güneşin açısını ve parlaklığını içerir. Birçok gerçek dünyadaki yapay zeka uygulamalarında önemli bir kültür kaynağı, varyasyon faktörlerinin çoğunun gözlemleyebildiğimiz her bir veri parçası üzerinde etkili olmasıdır. Kırmızı bir otomobilin görüntüsündeki tek tek pikseller geceleri çok siyah olabilir. Otomobilin siluetinin şekli görüş açısına bağlı. Çoğu uygulama, varyasyon faktörlerine ihtiyaç duyar ve umursamadığımız ayrışmayı ortadan kaldırır. Tabii ki, ham verilerden bu kadar üst düzey, soyut özellikler çıkarmak çok felsefi olabilir. Konuşmacının aksanı gibi bu değişken faktörlerin birçoğu yalnızca bilginin sofistike, neredeyse insan düzeyinde anlaşılmasını kullanarak tanımlanabilir. Özgün sorunun çözümü için bir temsil elde etmek neredeyse imkansız olduğunda, temsil öğrenimi, ilk bakışta bize yardımcı olmuyor gibi görünmektedir. Derin öğrenme, sunumda diğer basit ifadelerle ifade edilen tasvirleri sunarak temsil etme öğrenmedeki bu merkezi sorunu çözer. Derin öğrenme, bilgisayarın basit kavramlardan karmaşık kavramlar oluşturmasını sağlar. Köşeler ve konturlar gibi basit kavramları bir araya getirerek derin bir öğrenme sisteminin bir kişinin görüntü kavramını nasıl temsil edebildiğini gösterir. Aşağıda ki resim bununla ilgilidir.

 

2

 

Derin bir öğrenme modelinin illüstrasyonudur. Derin öğrenme, bu karmaşık haritalamayı modelin farklı bir katmanı tarafından tanımlanan iç içe geçmiş basit eşlemeler dizisine bölerek çözer. Giriş, görünür tabakanın gözlemleyebileceği değişkenleri içerdiği için adlandırılmıştır. Ardından görüntüdeki gizli katmanları gittikçe artan bir şekilde özetler. Değerleri veride verilmediğinden bu katmanlara “gizli” denir; Bunun yerine model gözlemlenen verilerdeki ilişkileri açıklamak için hangi kavramların yararlı olduğunu belirlemelidir. Buradaki görüntüler, her gizli birim tarafından temsil edilen özellik türünün görselleştirilmesidir. Piksel göz önüne alındığında, birinci katman komşu piksellerin parlaklığını karşılaştırarak kenarları kolayca tanımlayabilir. İlk gizli katmanın kenarları tanımlaması göz önüne alındığında, ikinci gizli katman kenarların koleksiyonları olarak tanınabilen köşeleri ve genişletilmiş konturları kolayca arayabilir. Köşeler ve konturlar açısından görüntünün ikinci gizli katmanın tanımlaması göz önüne alındığında, üçüncü gizli katman, belirli kontur ve köşe koleksiyonlarını bularak belirli nesnelerin tüm parçalarını algılayabilir. Son olarak, içerdiği nesne parçaları açısından görüntünün bu açıklaması, imgede bulunan nesneleri tanımak için kullanılabilir.

Derin bir öğrenme modelinin tam örneği feedforward derin ağ veya çok tabakalı algılayıcı (MLP) ‘dir. Çok katmanlı bir algılayıcı, bir takım girdi değerlerini çıkış değerlerine eşleyen basit bir matematiksel işlevdir. Fonksiyon birçok basit fonksiyonu oluşturarak oluşturulmuştur. Girişin yeni bir gösterimini sunmak gibi, farklı bir matematiksel fonksiyonun her bir uygulaması için düşünebiliriz. Veriler için doğru temsil öğrenme fikri, derin öğrenme üzerinde bir perspektif sunar. Derin öğrenme üzerine bir başka bakış açısı, derinlik bilgisayarın çok aşamalı bir bilgisayar programı öğrenmesini sağlar. Temsilin her katmanı, paralel olarak başka bir talimat seti uyguladıktan sonra bilgisayarın belleği durumu olarak düşünülebilir. Derinlikleri daha yüksek olan ağlar, daha fazla talimat sırasıyla yürütebilir. Sıralı talimatlar o kadar güçlüdür ki daha sonraki talimatlar daha önceki talimatların sonuçlarına bakabilir. Bu derin öğrenme görüşüne göre, bir katmanın etkinleşmesindeki bilgilerin tamamı, girişi açıklayan varyasyon faktörlerini kodlamaz. Temsil, ayrıca, girişin mantıklı olmasını sağlayan bir programın yürütülmesine yardımcı olan durum bilgisini de depolar. Bu durum bilgisi, geleneksel bir bilgisayar programındaki bir sayaç veya işaretçiye benzeyebilir. Girişin içeriğiyle kesinlikle ilgisi yoktur, ancak modelin işleme biçimini düzenlemesine yardımcı olur. Modelin derinliğini ölçmenin iki temel yolu vardır. İlk bakış, mimariyi değerlendirmek için uygulanması gereken ardışık talimatların sayısına dayanır. Bunu, girdileri verilen model çıktılarının her birinin nasıl hesaplanacağını açıklayan akış çizelgesi aracılığıyla en uzun yolun uzunluğu olarak düşünebiliriz. İki eşdeğer bilgisayar programı programın hangi dile yazılmış olmasına bağlı olarak farklı uzunluklara sahip olacakları gibi, aynı fonksiyon da çizelgedeki bireysel adımlar olarak hangi işlevlere izin verildiğine bağlı olarak farklı derinlikli bir çizelge olarak çizilebilir. Aşağıda ki resimde bu seçimin aynı mimari için nasıl iki farklı ölçüm verdiğini göstermektedir.

 

3

 

Her bir düğümün bir işlem gerçekleştirdiği bir çıktıyı bir çıktıya eşleyen hesaplama grafiklerinden örnektir. Derinlik, girişten çıkışa uzanan en uzun yolun uzunluğudur fakat olası bir hesaplama adımını oluşturan tanımlamaya bağlıdır. Bu grafiklerdeki hesaplama, logistic sigmoid fonksiyonu olan bir lojistik regresyon modelidir. Bilgisayar dili unsurları olarak toplama, çarpma ve lojistik sigmoid kullanırsak, bu modelin derinliği üç olur.

Derin olasılık modelleri tarafından kullanılan bir diğer yaklaşım, bir modelin derinliğini hesaplama grafiğinin derinliği değil, kavramların birbirleri ile nasıl ilişkili olduğunu açıklayan grafik derinliği olarak görür. Bu durumda, her bir kavramın gösterimini hesaplamak için gereken hesaplamaların akış çizelgesi, kavramların kendisinin grafiğinden daha derin olabilir. Bunun nedeni, sistemin daha basit kavramları anlaması, daha karmaşık kavramlar hakkında bilgi verildiğinde telafi edilmesidir. Örneğin, bir yüzün bir resmini bir gözü gölgede gözlemleyen bir AI sistemi başlangıçta sadece bir göz görebilir. Bir yüzün mevcut olduğunu saptadıktan sonra, ikinci bir gözün muhtemelen de bulunduğu anlamına gelir. Bu durumda, kavramlar grafiği, yalnızca gözler için bir tabaka ve yüzler için bir katman olmak üzere iki katman içeriyor; ancak hesaplamalara ilişkin grafik, diğer zamanlarda verilen her konseptin tahminimizi tekrar edersek, 2n katmanları içerir.

Özetlemek gerekirse, bu yazının konusu olan derin öğrenme AI’ya bir yaklaşımdır. Özellikle, bir tür makine öğrenimi, bilgisayar sistemlerinin deneyim ve veriyle gelişmesine olanak tanıyan bir tekniktir. Makine öğrenimi, karmaşık, gerçek dünya ortamlarında çalışabilen AI sistemleri oluşturmak için uygulanabilir tek yaklaşımdır. Derin öğrenme, dünyayı, daha basit kavramlarla ilişkili olarak tanımlanan iç içe geçmiş bir hiyerarşi dizisi olarak göstermeyi öğrenerek, daha az soyut kavramlarla hesaplanan daha soyut temsillerle büyük güç ve esneklik kazandıran belirli bir makine öğrenmedir.

Derin öğrenme mantığına değindiğimiz bir yazı oldu. İlerleyen makalelerde, uygulamalara girerek, daha detaylı yazılar yayınlayacağım. Umarım, derin öğrenme konusunda çok rastlanmadığından dolayı, sizler için faydalı olur. Derin öğrenme seri olarak devam edecektir.

Takipte kalınız.

Yorum yapın