İçerik
1. Yapay Zeka Kısaca Nedir?
Yapay zekâ, insanlar tarafından zeki davranış olarak nitelendirilen bir takım faaliyetlerin makineler tarafından yapılmasını inceleyen bir bilgisayar bilimleri dalıdır.
Yapay zeka, “bir bilgisayarın ya da bilgisayar denetimli bir makinenin, genellikle insana özgü nitelikler olduğu varsayılan akıl yürütme, anlam çıkartma, genelleme ve geçmiş deneyimlerden öğrenme gibi yüksek zihinsel süreçlere ilişkin görevleri yerine getirme yeteneği” şeklinde de tanımlamabilmektedir. Bu tanıma göre yapay zekânın kullanım alanını, düşünsel yetenek gerektiren işleri birtakım veriler ile birlikte makinelere yaptırması olarak düşünmek mümkündür. Örneğin 1966 yılında Joseph Weizenbaum tarafından MIT Yapay Zekâ laboratuvarında oluşturulmuş bir doğal dil işleme bilgisayar programı olan Eliza Programı kullanıcıların verdiği cevaplara göre yeni sorular sormakta veya cevaplamaktadır. Programın çalışma kurgusu, kullanıcının girdiği cümlelerin içinde bulunan anahtar kelimeleri saptayarak, önceden tanımlanmış olan cümlelerden birini konuşmanın devamına ekler ve kullanıcı ile etkileşime girer. Güncel bir örnek olan Apple Bilgisayar Teknolojileri Şirketinin ürünlerinde bulunan Siri Asistanı yazılımı, temel olarak Eliza ile aynı mantıkta çalışmaktadır. Kullanıcı tarafından gelen birtakım verileri analiz ederek ortaya insan davranışına benzeyen bir biçimde sonuçları yansıtır.
Yapay zekânın çalışma alanları aşağıdaki şekilde görülmektedir;
Yapay zekânın tanımı kısaca, insanlar gibi düşünen ve hareket eden aynı zamanda akıllı davranışların otomasyonu ile ilgilenen teknolojidir. Yapay zekâ hakkındaki tanımlamalar dört gruba ayrılmaktadır. Bunlar;
- İnsan gibi düşünen makineler (thinking humanly),
- İnsan gibi davranan makineler (acting humanly),
- Rasyonel düşünen makineler (thinking rationally),
- Rasyonel davranan makinelerdir (acting rationally).
1.1. İnsan Gibi Davranan Makineler
İnsan gibi davranan makineler fikrinin temeli, sorulan sorulara makine tarafındanverilen cevapların insanlar tarafından ayırt edilememesi olarak özetlenebilir. İnsan gibi davranan makineler kavramı ilk olarak 1950 yılında John McCarthy ve arkadaşları tarafından bir akademik konferansta önerilmiştir. Bu fikir matematikçi Alan Turing tarafından test edilmiştir. Bu testin adı literatürde “Turing Testi” olarak bilinmektedir. Testin sonucunda makinelerin insanlar gibi düşünmesini ve öğrenmesini sağlamanın mümkün olduğu ortaya çıkmıştır. Turing testinde, makinelerin insan olarak tepki gösterip gösteremediğini tespit edebilmek için pragmatik bir yaklaşım kullanılmıştır.
Turing testi iki oyuncu ve bir hakemden oluşan deneysel bir soru cevap oyunudur. Oyunculardan biri bilgisayardır. Diğer oyuncu ve hakem ise insandır. Hakem, ekran ve klavye kullanarak oyunculara birtakım sorular yöneltir. Oyuncular tarafından verilen yanıtlara göre hakem, bilgisayar olan oyuncuyu bulmaya çalışır. Cevaplar insanlara sorulduğunda insanların vereceği türdendir. Örneğin oyunculara bir toplama işlemi sorulduğunda, makine cevabı vermeden önce beklemektedir; ya da makineden bir şiir yazması istenildiğinde, “şiir yazmayı beceremem” şeklinde cevaplar vererek bir insan profili ortaya koymaktadır.
1.2. Rasyonel Düşünen Makineler (Düşünce Yasaları Yaklaşımı)
Yapay zekâ çalışmalarında düşünce yasaları yaklaşımının temeli Aristoteles’e kadar geri götürülmektedir. Bu yaklaşıma göre, Aristoteles “doğru düşünceyi”, yani reddedilemez akıl yürütme süreçlerini kodlamaya çalışan ilk kişilerden biridir.
Aristoteles’in tasımları, doğru önermeler verildiğinde daima doğru sonuçlar veren argüman yapıları için şablonlar sağlamıştır. Örneğin “Sokrates bir insandır; bütün insanlar ölümlüdür; o halde, Sokrates ölümlüdür.” Bu düşünce sistemi “mantık” denilen çalışma alanının da temeli oldu ve daha sonra 19. yy mantıkçıları dünyada var olan tüm nesnelerle ilgili ifadeleri ve nesnelerin arasındaki ilişkilere yönelik formüller oluşturmaya çabaladılar. 1965 yılından sonra, mantık (matematik) dili ile formüle edilebilen çözülebilir her problemi ilke olarak çözebilen yapay zekâ programlar ortaya çıkmaya başlamıştır. Ancak bu yaklaşımın, giren bilgi doğruluğunun kesin olmaması, değişkenlerin mantık dilinde formüle edilmesinin kolay olmaması ve bir problemin ilke olarak çözülebilir olması ile pratikte (uygulamada) çözülmesinin arasında büyük fark olması gibi birtakım sorunlu yönleri vardır.
1.3. İnsan Gibi Düşünen Makineler (Bilişsel Modelleme Yaklaşımı)
Bilişsel modelleme yaklaşımı temelde insanın nasıl düşündüğünün anlaşılması üzerinde yoğunlaşır. Bu nedenle bu yaklaşım yapay zekâ uzmanları ile psikoloji alanının bilim insanlarının bir arada çalışmasını gerektiren bir yaklaşımdır. Eğer bir programın insan gibi düşündüğü söylenecekse, öncelikle insanların nasıl düşündüğünün belirlenmesi gerekir. İnsanların nasıl düşündüğünü ve insan zihninin yapısını kapsayıcı bir teori ile ortaya koyduktan sonra ise, zihnin çalışma sistemini bir bilgisayar programı olarak ifade edebilmek mümkün hale gelebilir. Bu yaklaşıma göre programın girdi-çıktı davranışına karşılık gelen davranışları, insan davranışları ile eşleşirse, bu programın bazı mekanizmalarının insanlarınki gibi çalışabileceği söylenmektedir.
1.4. Rasyonel Davranan Makineler (Rasyonel Etmen Yaklaşımı)
Rasyonel davranan sistemler yaklaşımının temel olgusu etmendir (İng. agent). Etmen kavramı Latincede eylemde bulunmak anlamına gelen “agere” kelimesinden türemiştir ve “bir şeyi yapan, eyleyen” anlamındadır. Buna karşılık “rasyonel etmen” ise, davranışlarında rasyonel olabilen anlamındadır. Bir başka ifade ile, belirli durumlarda en iyi sonuca ulaşmak için eyleyen ya da belirsiz durumlarda mümkün olan en iyi sonuca ulaşmak için eyleyen anlamına gelmektedir. Bu yaklaşım insan gibi düşünen makineler yaklaşımındaki doğru sonuç çıkarmaya benzemekle birlikte ondan daha farklıdır. Bazı durumlarda rasyonel davranmak, düşünüp karar vererek doğru sonuç çıkartmayı içermez. Sıcak bir nesneye elimiz değdiğinde refleks ile elimizi oradan çekmemiz, rasyonel bir eylem olmasına karşılık, sonuç çıkartılarak yapılan bir eylem değildir. Bu nedenle rasyonel davranan makineler yaklaşımı daha olumlu kabul edilmektedir. Bu kategoriye giren bilgisayarlar, otonom kontrole sahip olarak kendi kendilerini yönetmeli, çevreyi algılamalı, varlığını sürdürmeli, değişen koşullara uyum sağlamalı ve bunlar ile birlikte hedefleri gerçekleştirebilmelidir. Rasyonel etmen mevcut durumdan en iyi performansı sağlayabilecek şekilde davranan sistemlerdir.
2. Makine Öğrenimi
Makine öğrenimini tanımlayabilmek için öncelikle büyük verinin ne olduğunu ve makine öğreniminde nasıl kullanıldığını belirmek önemlidir. Büyük veri, toplanan ve depolanan verilerdeki artışın bir sonucu olarak ortaya çıkan bir terimdir. Bu verilerin nasıl toplandığını bir örnek ile ifade etmek gerekirse, kameralardan alınan görüntüler, sensörler, internet ortamındaki yazılı ve görsel bütün veriler, sosyal amaçlı oluşturulmuş kişisel paylaşımlar ve öz veriler büyük veriyi oluşturmaktadır.
Makine öğrenimi (machine learning), bilgisayar sistemlerinin kullanıcı tarafından açık bir emir veya talimat belirtmeksizin önceden tanımlanmış belli bir görevi yerine getirmek için istatistiksel modellerin bilimsel bir çalışmasıdır. 1980’li yıllarda ilk kez ortaya çıkan bu tanım belli veri kalıplarına ve istatistiki çıkarımlara dayanarak çalışan bir yapay zekâ sistemini anlatır. Örneğin, bir e-posta sürekli olarak kullanıcı tarafından istenmeyen posta olarak işaretlenir ise makine belli bir veri bütününe eriştiğinde aynı adresten gelen e-postalar kullanıcıya danışmadan otomatik olarak istenmeyen kutusuna ayrılacaktır.
Makine öğrenimi yapay zekâ araştırma alanının bir alt dalı olarak görülmektedir. Makine öğrenim algoritmaları, verilen bir görevi gerçekleştirmek üzere açıkça programlanmamış olsa da karar vermek için öngörülere dayanarak istatistik temelli bir mantık oluşturur. Bu mantığı kurabilmek için “eğitim verisi” olarak bilinen kullanıcı tarafından oluşturulmuş örnek veri yığınına dayanan matematiksel bir model oluşturmak gerekir. Büyük bir veri yığınından yararlı bilgiyi çekip çıkarabilmek için ihtiyacı karşılayacak değerli verilerin elde edilmesi işlemine “veri madenciliği” denilmektedir. Veri madenciliği, makine öğrenmesi içindeki bir çalışma alanıdır ve denetimsiz öğrenme yolu ile keşifsel veri analizine odaklanmaktadır.
Makine öğrenimi alanında yapılan ve uygulanan en çok çalışma görüntü tanıma işlemidir. Görüntünün makineye tanıtılması için binlerce aynı özelliklere sahip görüntülerin ve bunların motiflerin tanıtılması gerekir. Makine motifleri ve görüntüyü temsil eden piksellerin konumlarını ve değerlerini öğrenerek, sunulan görüntünün ne olduğunu anlar. Makine öğrenimi, bulanık mantık, yapay sinir ağları, derin öğrenme başlıkları altında incelenmektedir. Makine öğrenimi stratejileri üç gruba ayrılır. Bunlar, denetimli öğrenme, denetimsiz öğrenme ve pekiştirmeli öğrenmedir. Aşağıdaki şekil’de makine öğrenim modelleri gösterilmiştir;
Denetimli öğrenmede makine, sunulan girdiyi daha önceki çıktılar ile karşılaştırarak öğrenmektedir. Her bir girdi giderek iyileşen çıktı sonuçlarına göre öğretilir. Denetimsiz öğrenme ise çıkış değerleri ile olan bağlantıyı keserek yalnızca girdi değerlerini dikkate alır. Buradaki amaç girdi değerlerini birbiri ile karşılaştırarak aralarındaki ilişkiyi saptamaktır. Bu sayede birbirine yakın değere sahip girdiler otomatik olarak kümelenir ve girdi, oluşturulan kümeye göre tespit edilmiş olur. Pekiştirmeli öğrenmedeki amaç ise elde edilen çıktının girişe göre karşılaştırarak iyi veya kötü olarak ölçüt sunmasıdır.
2.1. Bulanık Mantık
1965 yılında Zadeh tarafından ileri sürülen bulanık mantık, 100% doğru veya 100% yanlış gibi kesin sonuç çıkartmak yerine biraz doğru, biraz yanlış şeklinde gruplar arası benzerlikleri ifade eden bir sistemdir. Bulanık mantık küme teorisinde üyelik derecesi kavramını ele alır. Örneğin, gençler kümesine 25 yaşındaki bir insan %100 üye iken, 60 yaşındaki bir insan %30 üyedir şeklinde ifadeleri vardır. Bulanık mantığın gerçek hayat olaylarına daha iyi çözüm önerilerinde bulunabileceği düşünülmektedir.
2.2. Yapay Sinir Ağları (Artificial Neural Network)
Yapay sinir ağları, yapısal ve kavramsal olarak insan biyolojik sinir hücresinden ilham alarak birbirlerine bağlı yapay sinirlerden oluşmaktadır. Doğrusal olmayan bir modeldir ve bir girdi seti ve tek bir çıktı içermektedir. Beynimizde yer alan sinir ağları karmaşık öğrenme ve yorumlama yeteneğine sahiptir. 1943’te McCulloch ve Pitts bu karmaşık sistemi matematiksel olarak taklit ederek yapay zekânın ve makine öğreniminin temelini oluşturmuşlardır. Yapay sinir ağları, kontrol ve sistem tanımlama, görüntü ve ses tanıma, tahmin ve kestirim, arıza tespiti gibi alanlarda kullanılmaktadır. Özetle, yapay sinir ağları, bir insan beyninin işleyişini ve basit gözlemlerle yeni kurallar oluşturma yeteneğini taklit etme. Aksonlar gelen bilgiyi (sinapsis) de işlemden geçirerek diğer sinir hücrelerinin dentritlerine iletir Bu prensip ile birlikte çok katmanlı sinir ağlarını açıklamak gerekirse, sinir hücreleri akson uçları (sinapsis) ve dentrit ile birbirine bağlıdır. Bu yapay sinir ağında f(x) fonksiyonun sonucunda çıkardığı y değeridir.
Aşağıda yapay sinir hücresi görülmektedir. Buradaki fonksiyonları inceleyecek olursak, sinyalin girişi x(i) vektörü ile gösterilmiştir. w(i) ise girdinin ağırlığını göstermektedir. Girdi değeri, diğer adı ile sinyal değeri, w ile belirtilmiş olan ağırlıklar ile çarpılarak veri akışı gerçekleşir
Aşağıda tek katmanlı bir yapay sinir ağının temel yapısı görülmektedir. Daireler YSA’nın düğümlerini diğer adı ile nöronlarını göstermektedir. Basit sinir ağı modelinde, 3 katman bulunmaktadır. Bunlar giriş katmanı, gizli katman ve çıkış katmanıdır. Giriş katmanında girdinin piksel değerleri belirlenir. Gizli katmanda imajın renk ve piksel dağılımları incelenir. Çıkış katmanında ise modele daha önce öğretilmiş olan imajların özellikleri ile karşılaştırma yaparak sonuç vermektedir.
2.4. Derin Yapay Sinir Ağları ve Derin Öğrenme
Derin öğrenmenin temelini oluşturan yapay sinir ağları 2010’lu yıllarda kullanılmaya başlayan derin yapay sinir ağları veya hiyerarşik sıralı öğrenme kavramı, bir makine öğrenim metodudur. Temelde derin öğrenme makine öğreniminin bir alt kümesidir. Ancak derin öğrenmenin makine öğrenimine göre yetenekleri farklılaşmaktadır. İnsan düzeyine yakın görüntü sınıflandırması (insan kadar hassas görüntü tanıma ve sınıflandırma), insan düzeyinde konuşma tanıma, insan düzeyinde metin okuma ve seslendirme gibi konuları kapsamaktadır.
Derin öğrenme, makine algısı ve biçimsel akıl yürütme gibi doğal dil anlayışı dışında çok çeşitli sorunlarda uygulanmaya başlanmıştır. Hakkında hala araştırmaların yapıldığı deneysel bir alan olan derin öğrenmenin birçok bilim alanında ve yazılım geliştirmede etkili olduğu görülmektedir. Derin öğrenme yapıları, çok katmanlı yapay sinir ağlarıdır. Derin terimi ise çok katmanlı olan sinir ağını ifade etmektedir. Yukarıdaki şekilde gösterildiği üzere klasik yapay sinir ağları sadece iki veya üç katmandan oluşmaktadır. Derin ağlar ise yüzlerce katmana kadar çıkabilirler.
Yeni bir derin öğrenme yapısı oluşturmak için verilerin sınıflandırılabilir bir biçimde ayrılması gerekmektedir. Oluşturulacak yeni derin öğrenme yapısı bir veriyi nasıl öğreneceğini bilmediğinden bu yöntem milyonlarca veri ve yüzlerce sınıfa ihtiyacı olan özel uygulamalarda kullanılır. Veri boyutunun büyük olmasından dolayı, sıfırdan başlayarak bir derin öğrenme yapısı oluşturulamaz. Bunun yerine GoogLeNet, InceptionV3, DensNet, Microsoft ResNet gibi var olan derin öğrenme modelleri kullanılır. Bu modellere daha önceden eğitilmiş pre-trained modeller denir. Son bir veya iki katman çıkartılarak üzerine yeni model kurulur. En büyük avantajı ise modelin, zaten bir veriyi nasıl öğreneceğini bildiği için az veri ile tutarlı sonuçlar verebilmesidir.
DK-Asistanının oluşturulmasında model olarak görüntü işlemede daha etkili olan ResNet modeli kullanılmıştır. ResNet modeli diğer hazır model yapılarından daha derin ve tutarlı sonuç vermektedir. ResNet, 2015 yılında ImageNet yarışmasını kazanan 34 katmanlı ilk derin yapay sinir ağı yapısıdır.
2.5. Derin Öğrenme Mimarileri
Derin öğrenme mimarileri hibrit, ayırıcı ve üretken olmak üzere 3 grupta incelenir.
Hibrit mimariler, ayırıcı ve üretken mimarilerin birleşmesinden oluşan mimaridir. Nesneleri sınıflandırma işleminin yanı sıra optimizasyonu da hedefler.
Üretken mimariler, nesnenin analizini ve sentezini gerçekleştiren, verilerin birbirleri ile alakalı özelliklerini bulan mimaridir. Ayırıcı mimariler ise, yalnızca nesnelerin kategorilendirilmesi amacı ile kullanılmaktadır. Derin öğrenme mimarileri arasında en çok kullanılan mimariler, derin ileribeslemeli ağlar (Deep Feed-Forward Networks), tekrarlayan ağlar (Recurrent Networks) ve ileri beslemeli konveksiyonel sinir ağıdır (CNN). Bu çalışmada bilgisayarlı görmede etkili olan CNN mimarisi dolaylı olarak ImageAI yapısı altında kullanılmıştır.
2.6. Konveksiyonel Sinir Ağı Sınıfı ve Görüntü işleme
Konveksiyonel sinir ağı, derin öğrenmede evrişik sinir ağları olarak bilinen (CNN veya ConvNet), derin öğrenmenin en popüler algoritmalarından biridir. CNN’ler sınıflandırma işini doğrudan görüntü, video, metinden veya ses üzerinden yapabilmektedir. Bu CNN sınıfı görüntü ve video tanıma, öneri sistemleri ve görüntülerin analiz gibi uygulamalarda kullanılmaktadır.
CNN’ler özellikle nesneler, yüzler ve sahneleri analiz etmek ve desen bulmak için kullanılır. Bu model, görüntüleri sınıflandırmak ve sınıflandırma sürecini otomatikleştirmek için hazır kalıplar kullanır. Doğrudan görüntü verileri ile CNN eğitilebilmektedir. Çalışma alanlarına örnek vermek gerekirse, kendi kendini süren araçlar ve yüz tanıma uygulamaları gibi nesne tanıma ve bilgisayarla görme gerektiren uygulamalar için CNN’ler kullanılır.
Derin yapay sinir ağları, görüntünün farklı özelliklerini tespit etmeyi öğrenen yüzlerce katmana sahip olur. Girdi olarak sunulan görüntü bir dizi filtreleme işleminden geçirilir. Filtreler, parlaklık ve kenarlar gibi çok basit özellikler olarak başlayabilir ve nesneyi benzersiz bir şekilde tanımlayan özelliklerin karmaşıklığını artırarak daha detaylı bir öğrenim gerçekleştirirler.
CNN’lerin diğer görüntü sınıflandırma algoritmalarına göre en büyük avantajlarından biri, ön işlemden veya insanlar tarafından sağlanan önceki bilgilerde bağımsız olarak, büyük görüntü veri tabanları ve büyük miktarlarda etiketlenmiş bilgiyi işleyerek, girdilerini en doğru ve etkili bir şekilde nasıl değerlendireceklerini kendi başlarına öğrenmeleridir.
En baştan başlayarak bir CNN modeli oluşturmak çok maliyetli bir işlemdir. Çalışmalarda ve araştırmalarda daha önceden eğitilmiş olan modeller kullanılır. Bu modellerin geniş özellik kümesi bir sonraki modele aktarılarak yeni bir model oluşturulur. Bu yönteme öğrenme aktarması (Transfer Learning) denilmektedir. Öğrenme aktarması daha önceden eğitilmiş bir ağın üzerine eğitilmesidir. Örneğin, milyonlarca görüntü üzerinde eğitilmiş bir ağı alabilir ve yalnızca yüzlerce görüntü kullanarak yeni nesne sınıflandırması için yeniden eğitilebilmektedir. Söz gelimi CNN zaten bir görüntüyü nasıl öğreneceğini saptamış ve milyonlarca görüntü işleyerek özellik kümesini genişletmiştir.
Kaynaklar:
Nabiyev, V. V. (2016). Yapay Zeka – İnsan Bilgisayar Etkileşimi. Ankara: Sözkesen Matbaacılık
McCarthy, J. (2007). WHAT IS ARTIFICIAL INTELLIGENCE? Erişim tarihi: 01 Ocak 2020. formal.stanford.edu
Mathworks. (2020). Deep Learning. Mathworks. Erişim Tarihi: 01 Ocak 2020. https://www.mathworks.com/discovery/deep-learning.html
Russell, S., & Norvig, P. (2010). Artificial Intelligence: A Modern Approach (3rd ed.). Upper Saddle River, New Jersey: Prentice Hal.
Smith, C., McGuire, B., Huang, T., & Yang, G. (2006). The history of artificial Intelligence. University of Washington, 27.Sonka, M., Hlavac , V., & Boyle, R. (2014). Image processing, analysis, and machine vision. Thomson.
Atalay, M., & Çelik, E. (2017). Büyük Veri Analizinde Yapay Zeka ve Makine Öğrenmesi Uygulamaları. Mehmet Akif Ersoy Üniversitesi Sosyal Bilimler Enstitüsü Dergisi, 155-172.