Yapay Zekâ Nasıl çalışıyor (How AI Works)?

Geçtiğimiz gün küçük oğlumun ödevlerine bakarken gördüm aşağıdaki resmi. Almanca kelimeler ile resimlerin eşleştirilmesini isteniyordu ödevde. Hiç almanca bilmiyor olmamama rağmen biraz düşünme ile her kelimeyi doğru şekilde eşleştirebildim. Yüzde yüz doğru cevapları seçtim. Eminim siz de rahatlıkla yapabilirdiniz.

Peki bunu nasıl yaptım ya da bu konunun günümüz dünyası ile ne ilgisi var? 

İnsan beyni nasıl düşünüyor ya da düşünmek eyleminde neler gerçekleşiyor? Bilim dünyası uzunca bir süredir bu sorunun cevabını arıyor ve yapay zekâ (AI) üzerine ciddi araştırmalar yapılıyor. İkinci makine dönemi içinde (Artificial Machine) olduğumuz şu dönemde, AI üzerine, özellikle 2010’lardan sonra oldukça mesafe alındı, halen de alınıyor. Zira, gün geçmiyor ki yeni bir AI uygulaması ile karşılaşmayalım.

Şimdi konuyu başka bir perspektiften açıklamaya çalışalım. Resme yani oğlumun ödevine geri dönelim. Almanca kelimeler ile resimleri eşleştirmek…

Hiç bilmediğim almanca kelimelere bakarken bazı çıkarımlar yapmaya çalıştım. Resimlere bakarak Almanca kelimelerin İngilizce ve Türkçe karşılıklarını aklımdan geçirdim (bildiğim diller bu olduğu için).

  • Türkçe aslan kelimesine benzeyen kelime yoktu seçeneklerde ancak İngilizce aslan anlamına gelen ‘lion’ kelimesine benzeyen, onu çağrıştıran ‘Löwe’ kelimesi vardı seçeneklerde. Lion ve Löwe kelimelerinin harf sayıları eşit ve ikisi de ‘L’ harfi ile başlıyordu. Aralarında benzerlik vardı ve ‘löwe’ kelimesi bir ihtimal aslan kelimesinin Almanca karşılığı olabilirdi.
  • Yunus kelimesine benzeyen kelime de yoktu seçeneklerde. Ancak İngilizce ‘yunus’ kelimesinin karşılılığı olan ‘dolphin’ kelimesine oldukça benzeyen, harf sayıları birbirine yakın ve ilk harfi ‘d’ olan ‘delfin’ kelimesi bulunuyordu seçeneklerde. Aralarındaki benzerlik oldukça yüksekti. Büyük ihtimalle ‘delfin’ kelimesi yunusun almanca karşılığı olmalıydı. 
  • Benzer şekilde papağana benzeyen kelime ‘papagei’ olarak, zebra kelimesi ise bire bir aynısı olarak zebra olarak duruyordu seçeneklerde. Bu kelimeler de ingilizce karşılıklarına oldukça yakın ya da aynısıydı. 
  • Maymun için zaten ‘affe’ kelimesi işaretlenmişti ki ne Türkçe (maymun) ne de İngilizce (monkey) karşılığına hiç benzemiyordu.
  • Devekuşu da aynen ‘affe’ gibi Türkçe (devekuşu) ne de İngilizce (ostrich) karşılığına hiç benzemiyordu. Ancak diğer seçenekler yerini bulunca geriye bir tek bu kaldığı için devekuşunun da karşılığı ‘Strauß’ olmalıydı.

Tüm bunları beynimin içindeki ‘neuronlar’ aracılığı ile yapmıştım. Daha önce öğrendiğim kelimeler beynimin içinde yer etmiş (training) ve öğrendiklerimi ilk defa gördüğüm kelimeler (testing) ile karşılaştırarak (algorithm) aralarında benzerlik (similarities) olup olmadığını anlamaya, çıkarım yapmaya çalışmıştım. Bir kelime zaten işaretlenmişti. Dört kelime ile ilgili oldukça benzerlikler bulmuştum ve geriye kalan bir kelime hakkında benzerlik kuramasam da geriye kalan tek kelime olduğu için beş seçeneği de doğru işaretleyebilmiştim.

Peki, ben bu sonuca nasıl ulaşabilmiştim? Daha doğrusu, insan beyninin öğrenme ve karar verme dürtüsünü taklit eden yapay zekâ bu sonuca ulaşabilir mi, ulaşabilirse bunu nasıl yapar?

Cevabı birlikte arayalım. 

Beynimin için deki neuronlar bu kelimelerin İngilizce ve Türkçe karışlıklılarını daha önce defalarca görmüştü ve öğrenmişti (supervised learning). Bir başka ifadeyle makine öğrenmesinin ilk fazı olan ‘training’ session daha önceleri gerçekleşmişti. Şimdi, karşıma çıkan ve daha önce görmediğim kelimeler (unseen data) ile daha önceki öğrenme sürecini test ediyordum. Bunu yaparken yaptığım tek şey kelimeler arasında benzerlik kurmaya çalışmaktı (similarities). Bazen kelime uzunluğu, bazen harflerin benzerliği bazen ise hiç benzerlik olmaması karar verme sürecinde bana yardımcı olmuş ve kelimeler ile resimleri doğru bir şekilde eşleştirebilmiştim.

Yapay zekâ işte aynen bu şekilde çalışıyor. Büyük veri üzerinden öğreniyor ve öğrendiğini matematiksel olarak modelliyor. Öğrendikleri ile yeni gördüklerini model üzerinde karşılaştırarak sınıflandırma (classification) yapıyor (Learning – Modelling – Testing). Tek fark bunu sayılar (vektörler) üzerinden yapıyor. İşin özeti aslına bu kadar basit.

Tabi ki insan beyninin işleyişi çok daha kompleks. Ancak şunu biliyoruz ki gördüğümüz, okuduğumuz, hissettiğimiz, tattığımız ya da duyduğumuz her şey (beş duyudan gelen büyük veri) milyarlarca neuronun (processing unit) oluşturduğu bir ağ üzerinde (Neural Networks) işlenerek, filtrelenerek bir modele dönüştürülüyor ve beynimizde bu model bir süre kalıyor. Yeni bir şey (unseen data) ile karşılaşınca yeni veri beynimizin içindeki, daha önceden öğrenme sürecinde oluşturulmuş ve sayısını bilemediğimiz modellerden ilgili olan ile karşılaştırılıyor ve beyin bir cevap üretiyor. Bir şeye cevap verememenizin gerçek nedeni muhtemelen o konu ile ilgili daha önce öğrenme (training) sürecinden geçmemeniz, yeterince öğrenememeniz (under-fitting) ya da aşırı ezber yapmanız (over-fitting) olabilir. 

Yapay Zekâ uygulamaları (Regression, Classification, Clustering) geleceği şekillendirmeye çoktan başladı. Artık her şey akıllı (smart) olmak zorunda. Smart yani veri üreten ve paylaşan nesnelerden gelen verileri kullanmak fark oluşturuyor. Yapay Zekâ konusunu ivedilikle gündeminize almanızı, bu konu hakkında kendinizi geliştirmenizi öneririm. Bu konu üzerine düşünün derim.

Speak with (Big) Data | From T shape to Pi Shape

Endüstriyel proseslerde her daim problem vardır (No problem is problem). Her ne kadar süreçlerimizi standartlaştırmaya çalışsak dahi kontrol edemeyeceğimiz ya da kontrolü pek kolay olmayan unsurlar sonucunda problemlerle karşılaşırız. Rekabetçi bir işletme olabilmek için işletme içinde problem çözme yetisi yüksek iş gücüne çok fazla gereksinim vardır. Bu anlamda veriler üzerinden süreçlere bakıp, PPS gibi (Practical Problem Solving) problem çözme tekniklerin bilmek ve uygulamak endüstriyel proses problemlerinin çözümünde oldukça fayda sağlar.

Ancak şu an durum eskiye göre çok daha farklı. Eskiden sahip olmadığımız yeni imkanlara sahibiz. Bunların başında makine öğrenmesi geliyor. Bir problemi çözebilmek için artık PPS yapmak yerine büyük veriyi bir kara kutuya (Function approximator) gönderiyor ve çıkışında çözümü elde edebiliyoruz. Büyük veri, algoritmalar ve işlem yeteneğininin bir araya gelmesi bunu olanaklı kılıyor. Veri bilimi, yeni dönemde ‘moonshine’ olarak karşımıza çıkıyor ve bizim adımıza sürekli iyileştirme/problem çözme süreçlerinde rol alıyor!

Alan bilgisi (domain knowledge) süreç yönetiminde oldukça önemli. Fizik bilmeden tasarım yapılamaz, süreç bilmeden ERP kurgulanamaz… Ancak, artık sadece alan bilgisi ya da bir konuda uzmanlık tek başına yeterli gelmiyor rekabetçi olabilmek için. Süreç içinde oluşan problemleri hızlı ve doğru şekilde çözebilmek hem ‘alan bilgisine’ hem de ‘problem çözme yetisine’ bir arada sahip olmayı gerektiriyor. Bir başka ifadeyle yeni dönem, bizleri T tipi yetkinlikten Pi tipi yetkinliğe geçiş yapmaya, bunun için de ‘Makine Öğrenmesi’ konusunda kendimizi geliştirmeye zorluyor. Artık, iş disiplini ne olursa olsun hemen herkesin standart olarak veri bilimi konusunda bilgi sahibi olması gerekecek gibi görünüyor. Bunun üzerine düşünün derim…

Yapay Zeka (AI)

Bilimin özünde deney yani deneme yatar. Toeri’den kurama; kuramdan yasa ’ya geçebilmek için bilim dünyası sürekli olarak deney tasarlar, gözlem yapar ve öğrenir. Bu zamana kadar bu süreç hep bu şekilde olmuştur; ancak AI (yapay zekâ) bu metodu değiştirmeye çoktan başladı bile. Artık, deneyler çok daha hızlı, doğru ve en önemlisi algoritmalar üzerinden gerçekleşiyor…

AI sistemlerinin temel karakteristiği ‘öğrenme, adaptasyon ve yorumlama’ olarak tanımlanabilir. Bunu şöyle açıklayalım. Önceleri expert sistemler üzerinden bilgi alırdık. Look-up table dediğimiz, kısıtlı (poor data) ancak uzman bilgisine dayanan veri tablolarından elde edilen veri setleri üzerinde istatistik bilimi uygulamaları ve oldukça düşük işlem yeteneğine sahip işlemciler (low computing power) üzerinden analiz yapmaya, süreci anlamaya, yorum yapmaya, geleceği ön görmeye çalışırdık. Ancak şimdi AI ile bu konu farklı bir boyuta geçmiştir. Verilerden sadece geçmişi değil gelecekte ne olabileceğini ya da verilerin bilmediğimiz ancak bize faydası olacak başka neler içerdiğini öğrenebiliyoruz. Örneğin, AI sistemleri artık sadece bir masanın yanına sandalye konulması gerektiğini (Context) değil aynı zamanda masanın dört ayağı olduğunu, üzerine bir şeylerin konulabileceğini de yorumlayarak verinin amacı dışında farklı domainlerde de kullanılabilmesinin önünü açmaktadır (Abstraction).

AI sistemlerini genel olarak üç farklı konunun aynı amaç doğrultusunda bir araya gelmesi ile elde edilen; geçmişi açıklayan ve geleceği ön gören, insanların klasik yöntemlerle hem zaman hem de teknik açından elde edilebilmesi pek mümkün olmayan anlamlı bilgilere ulaşmasına ve kullanmasına olanak sağlayan sistemler bütünü olarak yapabiliriz. IoT ile gelen büyük veri geçmişin poor data kavramının sorunlarını ortadan kaldırırken; CPU/GPU alanındaki gelişmeler işlem yapma hızının (computing power) oldukça ötelere gitmesine olanak sağlayarak, algoritmalar üzerinden gerçekleşen öğrenme sürecinin (iterasyon) gerçekleşebilmesine olanak sağlamaktadır. Bir başka ifade ile şu dönemde AI konuşmamızın ana nedeni büyük veri, işlem hızı ve algoritma alanındaki muazzam gelişmelerdir.

AI sistemini çok genel olarak altı ana bileşen altında irdeleyebiliriz.

  1. Veri (Data): Sensorlar ya da diğer veri kaynaklarından gelen yapılandırılmış veya yapılandırılmamış veriler. Verilerin 90% si yapılandırılmamış kategoridedir. Ancak, AI uygulamalarında değer katan sonuçların 90% ‘ı hemen hemen 10% kısmı oluşturan yapılandırılmış verilerden elde edilir.
  2. Veri hazırlama (Data Preparation): AI sistemlerinde veri setleri aynen excel tabloları gibi satı ve sütunlardan oluşurlar. Veri analizinde vektör, matris ve tensorlerin kullanılması için bu düzen gereklidir. Ancak, aynı zamanda verilerin etkin/hızlı bir şekilde işlenebilmesi, matematiksel modelin doğru oluşturulabilmesi için veri setleri üzerinde hummalı çalışmaların yapılması gerekir (AI uygulamalarında en uzun zamanı bu aşama alır). Verilerin güvenilir, doğru olmasının yanı sıra veri boyutun azaltılması (PCA: Principle Component Analysis) konusu bu aşamada oldukça önemlidir. Zira, makine öğrenmesi süreci gerçekte bu aşamadan sonra başlar. Bu amaç doğrultusunda calculus ve istatistik bilimimin birçok teori ve kuramından faydalanılır. Örneğin; Covariance matrix, veri setleri arasında korelasyon olanları elimine ederek, aralarında ilişki olmayan veri setlerini dikkate alarak veri setinde boyut indirgemesi yapan bir tekniktir. Tabi bununla da iş bitmemektedir. Verilerin normalize edilmesi, outlier eliminasyonu, boş verilerin doldurulması, text verilerin rakamlara dönüştürülmesi gibi birçok şeyin bu aşamada yapılması gerekir. Zira işlem yapma hem maliyetli hem de uzun zaman alan süreçtir. AI sistemine ne girerseniz onu elde edersiniz (garbage in garbage out).
  3. Modelleme (Algorithms): Algoritmalar sürecin beynidir dersek yanılmayız. Intelligence ya da öğrenebilme süreci algoritmalar olmadan gerçekleşemez. Yapay Zekâ (AI) dediğimiz unsurun temelinde ‘deneme (iteration) & öğrenme (learning)’ unsuru yatar. Öğrenme yeteneği (Intelligence) yani birçok girdi verisi ile çıktı atasında matematiksel ilişki kurabilmek (veriyi modelleyebilmek), modellenen veri üzerinden tahminde bulunabilme yetisi AI’ın en temel karakteristiğidir (Machine Learning).  Bunun için AI’ın öncelikle verileri anlamlı bir fonksiyona dönüştürmesi (y= f {x1, x2…, xn}, AI is function aproximation); bu işi gerçekleştirebilmesi için de binlerce hatta bazen milyonlarca defa deneme (iterasyon) yapması gerekir. İterasyon yaparak, hata (error) fonksiyonunu minimize eden matematiksel modeli bulmak ve bulduğu model üzerinden tahmin gerçekleştirmek AI dan beklenen ana işlevdir. Algoritma alanında birçok yeni teknik/metot geliştirilmektedir. Ancak, Lineer cebir ve calculus bilmeden AI sistemleri için algoritma geliştirebilmek pek mümkün değildir. Bu konuda AI sistemlerine referans teşkil eden en eski algoritma perceptron learning algoritmasıdır (+backpropogation). Halen dahi neural networklerde kullanılan bu algoritma (Multi Layer Perceptron) ile support vector machine, random forest, KNN, Lineer Regression gibi birçok farklı algoritma yine farklı amaçlar için AI uygulamalarında kullanılmaktadır.
  4. Knowledge (Human & Machine Teaming). Elbette ki insan ve makine arasında temel farklılıklar vardır. Sürecin basit ve ölçeğin yüksek olması durumunda makineler avantajlı iken; kompleks ve düşük ölçekli süreçlerde insan faktörü halen en doğru çözümü sunabilmektedir. AI konusu Narrow AI ve General AI olarak iki kısımda incelenmektedir. Belirli bir amaç doğrultusunda tasarlanan (ses tanıma, görüntü tanıma, vs.,) AI sistemler narrow AI olarak tanımlanırlar. Tam otonomiye (full autonomy) olarak tanımlanan ki henüz tam mevcut değil general AI olarak tanımlanırlar. AI konusu yukarıda belirttiğimiz gibi binlerce girdi verisi ile çıktı verisi arasındaki ilişkiyi matematiksel olarak modellemek olarak da tanımlanabilir. Veri olmadan (doğru veri) AI sistemi sonuç üretemez. Bu aşamada insan/makine arasında iş bölümünün yapılması gerekir.
  5. Etkileşim (Interact with user). AI sistemleri ile verileri sınıflandırma (classification), gruplama (clustering), geleceği tahminleme (estimation/prediction), keşfetme (searching), optimizasyon ya da farklı çıkarımlar (inference) elde edebiliyoruz. Ancak, bilmek tek başına fayda sağlamıyor; bilgiyi kullanmak da gerekiyor. Etkileşim AI sistemlerinin ürettiği çıktının kullanıcılar tarafından kullanılması sürecidir.
  6. İşlem yeteneği (Computing Power). AI’ın gündemde olmasında işlem yapma hızının oldukça etkisi var. İterasyon süreci her ne kadar veri boyutu, algoritma yeteneğine bağlı olsa da işlem hızının da o denli önemi var. AI, desktop seviyesinde (CPU level) işlem hızı kısıtları nedeniyle sınırlı alanlarda yapılabiliyor. Google, Amazon, Facebook bir devler dil, görüntü, ses işleme, otonom sürüş gibi alanlarda çok güçlü ve hızlı farklı işlemciler (GPU level) kullanıyorlar. Ancak, yine de AI üzerinden istedikleri her şeye henüz ulaşamıyorlar ancak bu konuda çalışmalar üç yönlü yapılıyor: veriyi boyutunu küçültme, daha akıllı algoritmalar ve işlem hızı çok yüksek, daha düşük enerji gereksinimi olan, mevcuda göre çok daha güçlü süper bilgisayarlar. Fizik, kimya, biyoloji ve malzeme alanının ortak çalışmaları sonucu gelişecek olan Quantum Computing (super position) bu eksikliği dolduracak ve yakın bir zamanda bizi Quantum AI çağına itecek gibi duruyor…

AI konusu önümüzdeki yıllara damga vuracak gibi. Bu alanda çalışacak uzman veri bilimcilerine ve yapay zekâ mühendislerine olan gereksinim daha da artacak gibi duruyor. Genç arkadaşlara bu konuyu dikkate almalarını öneririm.

Machine Learning

Üretim Endüstrisinde dijitalleşme çalışmaları olanca hızı ile devam ediyor. Artık, IoT üzerinden veri üretebiliyor, üretilen verileri CPS (Cyber Physical Systems) üzerinden taşıyor ve büyük veriyi (Big Data) elde edebiliyoruz. Bu konuda birçok işletmenin önemli mesafeler aldığını sahada gözlemliyoruz. Bu aşamaya gelebilmek oldukça önemli, ancak asıl mesele buradan sonra başlıyor: Büyük veri içinden anlamlı sonuç çıkarabilmek. Yalın felsefede de olduğu gibi ‘ölç-kayıt altına al- analiz et – aksiyona geç’ sürecini işletebilmek için Dijital Dönüşüm sürecinde de büyük veriyi analiz etmeye; bunun içinde makine öğrenmesi (machine learning) konusuna odaklanmaya ihtiyacımız var.

Yapay zekâ (AI), makine öğrenmesi (ML) ve derin öğrenme (DL) konuları bu anlamda üzerine düşünmemiz gereken konuların başında geliyor. AI, tüm bu kavramların en üstünde yer alarak insan gibi düşünen ve hareket eden makineler/sistemler oluşturmayı amaç edinen mühendislik bilimidir. ML ise AI’ın alt dalıdır. Sistemlerin ya da makinelerin programlama yapmadan, geçmiş deneyimlerden ya da verilerden öğrenebilmesine olanak sağlar. İstatistik bilimi ve ileri seviye bilişim teknolojileri aracılığı ile verilerden bir fonksiyon üretmeye; üretilen fonksiyon aracılığı ile de geleceği tahminleme ilkesine dayanır. DL ise ML’in bir alt dalı olarak yapay sinir ağları üzerinden, makinelerin insan beynine yakınsama yapılarak düşünebilmesi üzerine çalışır.

Kobi seviyesine baktığımızda AI konusu kolayca ele alınabilecek bir konu değildir. Oldukça önemli uzmanlık, yüksek bilişim yetkinliği ve son derece büyük-büyük veri gerektirir. DL de benzer şekilde çok büyük-büyük veri gerektirir. ML ise nispeten işletme seviyesinde çok daha kısıtlı bilişim teknolojileri ve yeteri kadar büyük veri kullanılarak uygulanabilen bir kavram olduğu için işletmelerin öncelikli olarak ML ya da ‘veri bilimi’ konusunda kendilerini geliştirmelerinde yarar olduğu kanısındayım.

ML, bahsedildiği üzere geçmiş verilerden öğrenme ilkesine dayanır. Daha önceleri sistemlere ‘program ve veri’ ikilisini verir çıktı elde ederdik. Yani, sistem yaptığımız programa göre çıktı üretirdi. ML ‘de ise, sisteme önce geçmiş veri (Xs: Data) ve çıktıları (Ys: Label) eş zamanlı veriyor ve sistemin bu iki bilgi doğrultusunda bir model (program) üretmesini; üretilen modeli gerçek veri üzerinde kullanarak yeni verinin çıktısını (output) tahminlemeye çalışmak ML’in özünü temsil eder. İstatistik bilimi, yüksek matematik ve algoritmaların bilişim gücü ile birleştirilmesi sonucunda bunun bugün elde edebiliyoruz.

Veri kavramı giderek daha da önemli stratejik rekabet aracı olmaya başlıyor. Hemen her iş alanında ya da disiplinde veri manipülasyonu yapmadan karar alabilmek neredeyse olanaksız hale geliyor. Sağlıktan finansa, üretimden hizmet sektörüne kadar her alanda veriler üzerinden kararlar alınıyor ve veri bilimi/veri mühendisliği giderek artan oranlarda talep görmeye başlıyor. Yakın bir zamanda hemen her işletmede veri bilimi mühendisi göreceğimizi belirtmek sanıyorum yanlış olmaz.

Veri bilimi, ‘Domain, Computer Science, Statistics’ alanlarında uzmanlaşmayı gerektiriyor. Bugün, yurtdışında birçok üniversitede bazı istatistik, matematik bölümleri yapay zekâ mühendisliğine dönüşüyor, bilgisayar bölümlerindeki ders programlarına kapsamlı/güncel ML müfredatı ekleniyor. Ülkemizde de yapay zekâ mühendisliği bölümlerinin bazı üniversitelerde açıldığını gözlemliyoruz. Bu bölümlerin artması ve hatta belki de tüm mühendislik bölümlerinde ML_101 dersinin okutulması kanımca artık bir gereksinim.

Kısaca; ML, karar verme süreçlerinde acizliğimizi ortadan kaldırıyor. Gelecek, ML ve AI üzerine şekilleniyor ve bizim de geleceği kaçırmamak için bu konularda çalışacak, geleceği şekillendirecek veri bilimi mühendislerine çok fazla ihtiyacımız olacak gibi görünüyor.

#The purpose of computation is insight, not numbers (R. Hamming).