AI and Machine Learning - Today’s Implementation Realities
1. Yapay Zeka
AI and Machine Learning - Today’s Implementation Realities
Cihan Özhan | Founder at DeepLab.co | Developer/Hacker, AI Engineer
2. DeepLab : Teknolojiler
ML/DL/CV Odaklı
• Teknolojiler
– Go, Python, C/C++, Rust, C#
– PyTorch, TensorFlow, Keras, scikit-learn
• Web, Mobile, IoT/Edge ve Back-End olarak…
– OpenCV
– … ve farklı onlarca araç-gereç…
• Cloud Computing
– AWS Machine Learning
– Google Cloud Machine Learning
– IBM Watson Machine Learning
– Microsoft Azure Machine Learning
– … ve farklı birçok Cloud çözüm…
• Distributed Systems
– Distributed Databases
– Distributed Systems & Distributed ML/DL
3. Sunum Hedefi
• Yapay zekanın temel felsefesine genel bir bakış atmak.
• Yapay zekanın bilimsel altyapısına genel bir bakış atmak.
• Machine Learning hakkında temel bir bakış açısı kazanmak.
• Yazılım geliştiricilere yapay zeka ile ilgili temel algoritmik bakış açısını kazanmak.
• Machine Learning geliştirmek için kullanılabilecek açık kaynaklı çözümleri tanıtmak.
• Machine Learning sektörüne girmek için hızlı bir danışmanlık sağlamak.
• Machine Learning ile ilgili sektörel bilgiler vermek.
14. Biyomimetik & Yapay Zeka
• Yapay zeka da temel olarak bir biyomimetik ürünüdür.
• İnsan beynindeki nöronların çalışma mekanizması ve çiziminin ortaya çıkarılmasıyla birlikte bilgisayar
bilimciler tarafından ilgili çalışma yönteminin dijital bir taklidinin oluşturulması fikriyle yapay zeka
ortaya çıktı.
• Halen daha eğer Computer Vision’u anlamak isterseniz insan/canlı görme yeteneğini incelemeniz, yapay
zekayı anlamak için de sinir bilimi alanında en azından temel bilgilere sahip olmanız gerekir.
30. Yapay Zeka Nedir?
• Bazen “Hesaplamaya Dayalı Zeka - Computational Intelligence” de adlandırılır.
• Yapay Zeka kavramı John McCarthy öncülüğünde 1956 yılında New Hampshire’de yapılan Dartmouth
College Artificial Intelligence konferansında ortaya atılmıştır.
• Türkiye’de ise 1959 yılında Ord. Prof. Dr. Cahit ARF tarafından bu alanda bir konferans verilmiştir.
– Konferans Adı : Makineler Düşünebilir mi ve Nasıl Düşünebilir?
• Bu konferansta insan zekasının benzetişiminin oluşturulması ve düşünen bilgisayarlar sorunları tartışılırdı.
• ‘Düşünme ve akıllı davranış mekanizmasının bilimsel anlatımı ve bu mekanizmanın makinelerde
somutlandırılmasıdır’ (The American Association for Artificial Intelligence)
• ‘Yapay Zeka, insanın zekasını kullanarak yapabildiği işleri yapabilen makinenin oluşturulması hakkında
bilimdir.‘ (Marvin Minsky.)
31. Yapay Zeka Tehlikeli mi?
Andrew Ng der ki ‘Bugün yapay zekanın kötü bir süper zeka olmasından
endişelenmek, Mars’taki aşırı nüfus artışından endişelenmek gibidir.’
34. Yapay Zeka’nın
Bilimsel Temelleri
• Bilgisayar Bilimleri ve Müh. : Donanım ve Yazılım
• Felsefe : Muhakeme Kuralları
• Matematik : Mantık, Algoritma ve Optimizasyon
• Kavram Bilimi ve Psikoloji : İnsanın Düşünce Sürecinin Modellenmesi
• Sinir Bilimi : İnsanın Aşağı Seviyede Beyin Faaliyet Model.
• Biyoloji : Taklit Bilimi
• Dilbilim : Temel Bilgisayar Bilimi
Ve çok daha fazlası…
35. Yapay Genel Zeka
AGI
• İnsan biyolojisinin birçok gelişmiş fonksiyonunu tam olarak taşıyabilen zeka
türüdür.
• Matematiksel(hesaplama) zeka, görsel algılama, konuşma ve ses tanıma,
hareket, muhakeme gibi kabiliyetlerinin yanında kendi kendine öğrenebilen
yazılımsal ve donanımsal sistemler bütünüdür.
36.
37.
38. YSA Neden Yıllarca Ölü Kaldı?
YSA: Yapay Sinir Ağları
• (-) 1960’lı yıllarda bazı gelişmeler oldu ancak YSA uygulanabilir olamadı…
• (+) 1980’lerin sonunda back-propagation(geriyayılım) yönteminin bulunması
ve iyi sonuçlar verdiğinin ispatlanmasıyla birlikte YSA tekrar popüler oldu.
• (+) Birçok yapay zeka donanımı geliştirildi ve yatırımlar aldı.
• (-) 90’ların başında Support Vector Machines ve Kernel Trick ortaya çıkana
kadar. Ve YSA tekrar öldü…
https://en.wikipedia.org/wiki/Support_vector_machine
39.
40. YSA’nın Dirilişi!
• Son diriliş 2009 ve 2012 yıllarında başladı.
• Geoffrey Hinton ve öğrencileri 2009’da konuşma tanıma problemi(speech
recognition) için yeni bir eğitme yöntemi geliştirdi.
– Eğitmensiz(unsupervised) öğrenme ile ağı ilklediler.
– Ağın sonuna eğitmenli(supervised) katmanı ekleyip geriyayılım(back-propagation) kullandılar.
– Ve en iyi sonuç veren model bu sayede geçildi!
– Bu yöntem Android telefonlarda 2012’den beri kullanılıyor.
• Yeni düzenlileştirme yöntem fix : Dropout
– Overfitting dediğimiz ezberlemeyi önleyen yeni bir yöntem.
• Tartışmasız en güçlü yapay zeka çalışma alanı Computer Vision
– ILSVRC 2012 yarışmasında işlenebilecek 1.2 milyon görüntü ve 1000 sınıf vardı.
– Problem : Verilen görüntüdeki baskın nesneyi tahmin etmeye çalışarak 5 tahmin üretmek. Bu
tahminlerden biri doğru ise model başarılı sayılır.
• Geoffrey Hinton ve öğrencisi Alex Krizhevsky, 2009’daki yöntemi kullanarak 7
katmanlı bir evrişimsel sinir ağı eğitti(CNN, Convolutional Neural Network)
– Günümüzde bu ağa AlexNet diyoruz.
41. Kaynak : Geoffrey Hinton’nın Royal Society’de verdiği konuşma, 22 Mayıs 2016,
https://youtu.be/izrG86jycck
45. Tehditler & Fırsatlar
• Yapay zekanın birçok iş kolunu rahatlıkla ele alabilecek olması
– Endüstri, Tıp, Hukuk, Hizmet Robotları, Otomobiller vb…
• Yapay zekanın yaratıcılık gerektiren işlerde henüz hazır olmayışı
– Yaratıcılık sezgisellik gerektirir.
• Güçlü yapay zekanın sezgisel beyne sahip olması
– İnsan = Yüksek Sezgisel Beyin
– Bilgisayar = Yüksek Hesaplamalı Beyin
– Sezgisel Beyin + Hesaplamalı Beyin = ?
• Güçlü yapay zekanın bedene ve bedensizliğe sahip olması
– IoT, Super Bilgisayarlar, 5G İnternet, Robotlar, Otomobiller vb…
46. Google AI
IQ Analizi
• Cornell Üniversitesi’nin araştırmasına göre Google AI en yüksek IQ’ya
sahip(2017).
• Google AI’ın IQ’su : 47.28 puan
• 18 yaşındaki bir insanın ortalama IQ puanı 96, altı yaşındaki bir insanın puanı
ise ortalama 55.5’dir.
• Google AI’ın rakipleri
– Baidu : 32.92
– Bing : 31.98
– Siri : 23.9
• 2014 yılı verilerine göre ise…
– Google AI : 26.5
– Baidu AI : 23.5
47.
48. YSA Neden Yıllarca Ölü Kaldı?
YSA : Yapay Sinir Ağları
• (+) 90’larda SVM’ler daha iyi sonuç veriyordu.
• (-) YSA’ların katman sayısını artırmanın sonuç üzerinde bir etkisi yoktu.
• (-) Bazı modellerde(recurrent networks) geri yayılım hiç iyi sonuç vermedi.
• (-) Bugün üzerinde çalışılan devasa verisetleri o zamanlar yoktu.
• (-) Bilgisayar teknolojisi YSA/YZ için yetersizdi. GPU, CPU, RAM, HDD vb…
• vb…
49. Yapay Zekanın Kapsamı
• İnsan Modeli Üzerinden Yapay Zeka
– Beyin(Algı ve Öğrenme) : Machine Learning / Deep Learning
– Görü : Computer Vision
– Hafıza : BigData
– İletişim : NLP & Speech Recognition
– Fiziksel Beden : Robotics & IoT
50.
51. Yapay Zeka
Alt Kavramlar
• Artificial Intelligence (AI)
• Machine Learning (ML)
• Deep Learning (DL)
• Data Science
– Machine Learning[+Deep Learning] + Domain
• Computer Vision (CV)
• Natural Language Processing (NLP)
• Data Engineering
– DevOps + Machine Learning
• ML Engineer
52. Yapay Zeka
Job Titles
• Machine Learning Engineer
• Deep Learning Engineer
• Data Scientist
• Computer Vision Expert
• NLP Expert
• MLOps
• Data Engineer
– DevOps + Machine Learning
• AI Games Engineer
• AI Research Scientist
• Data Annotation Expert
• AI Project Manager
• Intelligence Designer
• Data Curator
• Data Evangelist
• Robotics Process Analyst
• Digital Knowledge Manager
• AI Interaction Designer
• Cognitive Copywriter
64. Image Segmentation
(Alt Başlıklar)
• Classification
– Görüntüdeki nesneleri sınıflara ayırır.
– Örn: İnsanlar, hayvanlar, sokak lambası vb.
• Detection
– Görüntüdeki nesneleri tespit edip etrafında bir dikdörtgen çizmek.
– Örn: Bir gökyüzü görüntüsündeki uçak ya da kuşlar.
• Segmentation
– Görüntüdeki nesneyi tanımlayıp neye ait olduğunu anlar.
65. Semantic vs. Instance
• Semantic Segmentation
– Bir görüntünün tüm piksellerini anlamlı nesne sınıfları olarak sınıflandırır. Bu sınıflar "anlamsal olarak
yorumlanabilir(semanticaly interpretable)" ve gerçek dünya kategorilerine karşılık gelir. Örneğin, bir
kediyle ilişkili tüm pikselleri izole edebilir ve onları yeşile boyayabilirsiniz. Bu aynı zamanda yoğun
tahmin(dense prediction) olarak da bilinir çünkü her pikselin anlamını tahmin eder.
• Instance Segmentation
– Bir görüntüdeki her nesnenin her bir örneğini tanımlar. Her pikseli kategorize etmemesi
bakımından anlamsal bölümlemeden farklıdır. Bir görüntüde üç araba varsa, anlamsal
bölümleme(semantic segmentation) tüm arabaları tek bir örnek olarak sınıflandırırken, örnek
bölümleme(instance segmentation) her bir arabayı tanımlar.
66. Image Segmentation
(Object Detection & Face Detection)
• Face Detection
– Algoritmaların yüz özelliklerini tanımlaması ve doğrulamasını yapıldığı uygulamalar.
• Medical Imaging
– Medikal görsellerden klinik veriler çıkarımlandığı uygulamalar.
• Machine Vision
– Cihazlara görüntü yakalama ve işleme sayesinde operasyonel rehberlik yapmak için kullanılır.
– Bu endüstriyel ya da endüstriyel olmayan uygulamalar olabilir.
67. Image Segmentation
(Video Surveillance)
• Self-Driving Vehicles
– Otonom araçlar güvenli sürüş için çevre ortamlarını anlamak zorundadır.
– Semantic Segmentation otonom araçların çevreyi anlayarak hangi yol-bölgenin güvenli olduğunu bulmayı
sağlar.
• Iris Recognition
– İnsan gözündeki karmaşık desenleri bulunan IRIS’ten kimlik tanıma-tanımlama gibi işlemler gerçekleştirir.
• Face Recognition
– Yüzlerin bulunduğu bir veritabanı ile karşılaştırılmak üzere yüzün desenlerini(patterns) çıkarır ve tanımlama
gerçekleşir.
76. Image Segmentation Methods
(Old-School)
• Thresholding
– Bir görüntüyü ön plana ve arka plana böler. Belirtilen bir eşik değeri, nesneleri izole etmek için
pikselleri iki seviyeden birine ayırır. Eşik, gri tonlamalı görüntüleri ikili görüntülere dönüştürür veya
renkli bir görüntünün daha açık ve koyu piksellerini ayırt eder.
• K-Means Clustering
– Verilerdeki grupları tanımlar, K değişkeni grup sayısını temsil eder. Algoritma, özellik benzerliğine göre her veri
noktasını(veya pikseli) gruplardan birine atar. Önceden tanımlanmış grupları analiz etmek yerine, kümeleme
organik olarak gruplar oluşturmak için yinelemeli olarak çalışır.
• Histogram-Based Image Segmentation
– Pikselleri "gri seviyelerine" göre gruplamak için bir histogram kullanır. Basit görüntüler bir nesneden ve bir
arka plandan oluşur. Arka plan genellikle bir gri seviyedir ve daha büyük bir varlıktır. Bu nedenle, büyük bir
tepe histogramdaki arka plan gri seviyesini temsil eder. Daha küçük bir tepe, başka bir gri seviye olan
nesneyi temsil eder.
• Edge Detection
– Parlaklıktaki keskin değişiklikleri veya süreksizlikleri tanımlar. Kenar tespiti genellikle süreksizlik noktalarının eğri
çizgi parçaları veya kenarlar halinde düzenlenmesini içerir. Örneğin, bir kırmızı blok ile bir mavi blok arasındaki
sınır.
77. Image Segmentation
(Deep Learning)
• Convolutional Neural Networks (CNNs)
– CNN ile görüntü segmentasyonu, bir görüntünün segmentlerini, pikselleri etiketleyen
evrişimli bir sinir ağına girdi olarak beslemeyi içerir. CNN tüm görüntüyü aynı anda
işleyemez. Görüntüyü tarar, görüntünün tamamını eşleyene kadar her seferinde birkaç
pikselden oluşan küçük bir "filtreye" bakar.
• Fully Convolutional Networks (FCNs)
– Geleneksel CNN'ler, farklı giriş boyutlarını yönetemeyen Fully Connected Layers sahiptir.
FCN'ler, değişen giriş boyutlarını işlemek için evrişimli katmanlar(Convolutional Layers)
kullanır ve daha hızlı çalışabilir. Nihai çıktı katmanı, geniş bir alıcı alana sahiptir ve
görüntünün yüksekliğine ve genişliğine karşılık gelirken, kanal sayısı sınıfların sayısına karşılık
gelir. Evrişimli katmanlar, nesnelerin konumu da dahil olmak üzere görüntünün bağlamını
belirlemek için her pikseli sınıflandırır.
• Ensemble learning
– İki veya daha fazla ilgili analitik modelin sonuçlarını tek bir yayılma halinde sentezler. Toplu
öğrenme, tahmin doğruluğunu artırabilir ve genelleme hatasını azaltabilir. Bu, görüntülerin
doğru sınıflandırılmasını ve bölümlendirilmesini sağlar. Toplu öğrenme yoluyla bölümleme,
tek bir optimal öğrenci oluşturmaya çalışmak yerine görüntünün bölümlerini sınıflandıran ve
çıktılarını birleştiren bir dizi zayıf temel öğrenen üretmeye çalışır.
87. Sektörler
• Sesli Asistan ve Chatbot
• Oyun
• Otonom Araçlar
• Robotik
• Siber Güvenlik
• Finans
• Sağlık
• Eğitim
• Endüstri / Üretim
• Sanat
• Sigortacılık
• Pazarlama
• Savunma Sanayi
• Lojistik
• Ve daha birçok…
88. Sesli Asistan & Chatbot
• Amazon Echo & Alexa
• Siri
• Cortana
• Google Now
• Google Duplex
89.
90.
91. Oyun
Sektör
• Video oyun oynayan 2.6 milyar insan
• 495 milyon e-spor meraklısı
• 9 milyar saat e-spor ile ilgili video izleme süresi
• 1.1 milyar dolar 2020 yılındaki oyun sektörü büyüklüğü
• Her yıl %15 büyüyen bir sektör…
92. Oyun
• Akıllı Oyuncu Geliştirmek
• Gerçek Zamanlı Churn Prevention
• Better Matching
• Automated QA ve GamePlay Test Botu
• Oyuncu Yerine Oynayan Bot
– Bir insan oyuncu oyunu terk ettikten sonra onun yerine kalınan yerden devam eden AI bot.
• Fraud/Cheat Detection
• Diller Arası Oyuncu İletişimi
• Tavsiye Motoru: Card/Character/Equipment
• IAP(In-App Purchase)
• Otomatik Oyun Testi Yapan Bot
• Doğal Dil İşleme: Hakaret ve istenmeyen sesli/metinsel iletişim tespiti
93. Oyun
(espor Platformları)
• AI Platformları
• Video Platformları
• İçerik Platformları
• İstatistik Platformları
• AR Platformları
• VR Platformları
• Veri Platformları
109. Terminoloji
• Gözlem (Observation)
– Öğrenme ve değerlendirme süreçlerinde kullanılan veri parçalarına denir.
– Örn : Spam tespit modeli için her bir e-posta birer gözlemdir.
• Özellik (Feature)
– Gözlemi temsil eden verilere denir. Bunlar genellikle sayısal değerlerden oluşur.
– Örn : Spam tespiti için kullanılan her bir e-postanın seçilmiş kelimeleri, gönderim tarihi,
uzunluğu, başlık uzunluğu vb…
• Etiket (Label)
– Gözlemler için hazırlanmış kategorilerdir.
– Örn : Spam tespiti için spam ya da spam-degil
– Örn : Nesne tespiti için insan, hayvan ya da bunların da alt kırılımı olarak erkek, kadın,
çocuk, yaşlı, genç vb…
111. Terminoloji
Training & Test DataSets
• Training DataSet
– Algoritmanın(modelin) öğrenmesi için sunulan gözlem verisine denir. Model bu sunulan veri
üzerinden çeşitli çıkarımlarda bulunur.
– Örn : Spam tespiti örneğinde çok sayıda spam ya da spam-degil etiketlerine sahip e-postalar.
• Test DataSet
– Gözlemler ile eğitilen algoritmanın(modelin) ne kadar doğru karar verebildiğini test etmek için
kullanılan veri setidir.
– Modelin eğitilmesinden sonra modele sunulur.
– Eğitim setinden tamamen farklı ve modele sunulmamış verilerden oluşmalıdır.
– Eğitim bittikten sonra etiketsiz olarak modele sunulur ve modelin tahminlerde
bulunması(etiketlerin) beklenir.
– Örn : Spam tespitinde spam olup olmadığı bilinen ama modele etiketlenmiş olarak verilmemiş e-
posta gözlemleridir.
114. Öğrenme Türleri
Supervised Learning
• Bu yöntemde sistem farklı veriler ile beslenerek oluşturulan modelin sonuçları hedef çıktılar ile
karşılaştırılır. Oluşan hatalar sistem tarafından minimize edilmeye çalışılır.
• Etiketlenmiş gözlemlerden oluşan öğrenme sürecidir.
– Etiketlenmiş ne demektir : Örn. bir spam modelini eğitmek için ipuçları vermelisin.
• Hediye kazandınız, para kazan, 1.234.567 dolar kazandınız gibi…
• Sınıflandırma (Classification)
– Her bir gözlem için bir kategori/sınıf atamasının yapılarak verinin sınıflandırılmasının sağlandığı
yöntemdir.
• Örn : bu otomobil kiralanabilecek en kötü araba (negatif)
• Örn : güzel hizmet, memnun kaldım, makine akıyor (pozitif)
• Regresyon (Regression)
– Her bir gözlem için öğrenilen verilere bakarak değer tahmini yapmaya denir.
• Örn : 2010 yılında inşa edilen, İstanbul’un X semtindeki 5. kattaki bir evin fiyatı 1.500.000 TL’dir.
• Evin balkonu, oda /banyo sayısı, denizi görüyor mu?, deprem bölgesinde mi vb ek bilgiler…
116. Öğrenme Türleri
Unsupervised Learning
• Bu yöntemde hedef çıktılar verilmez, modelin kendi içinde verilen girdilerden bir şablon oluşturması
beklenir.
• Etiketsiz gözlemlerden yapılan öğrenme sürecidir.
• Algoritmanın(model) örüntü keşifleriyle kendi kendine öğrenmesinin beklendiği bir yöntemdir.
• Kümeleme (Clustering)
– Gözlemlerin homojen bölgelere ayrıldığı algoritmadır.
– Örn : Bir şehir ya da ülkedeki sosyolojik insan gruplarını gruplamak.
• Boyut Azaltımı (Dimensionality Reduction)
– Gözlemlerin özellik sayısını sadeleştirir(az/öz) ve en iyi öğrenme imkanını sunmayı hedefler.
118. Öğrenme Türleri
Reinforcement Learning
• Pekiştirmeli öğrenme, gözetmeli öğrenmenin özel bir halidir. Modele
hedef çıktılar verilmez, onun yerine modelin çıktılarını ne ölçüde doğru
olduğunu belirten dereceler verilir.
119. Yapay Zeka Projesine Hazırlık
• Sorun nedir?
– Soruna göre yapay zeka alt başlığına odaklanılacak. Bu nedenle önemli.
– Örn : Bir görüntü üzerine bir sorun çözülecek ise ilgili algoritmalar, teknolojiler ve kurallar belirlenir.
• Yapay zeka ile çözülecek sorun üzerine bir domain uzmanı var mı?
– Finans alanındaki yapay zeka sorununu sadece en iyi yazılımcılara sahip olarak çözemezsiniz. Aynı
zamanda finans alanında iyi ve teknik süreçlerden de anlayan finansçılar da gerekir.
• Başarı hedefi nedir?
– Yapay zeka ile çözülecek sorun belirlenmiş olabilir ancak hedeflenen başarı oranı nedir? Eğer başarı
oranı belirlenmediyse modelin testi sonrasında elde edilen başarı oranının bir anlamı olmayacaktır.
Karşılaştırma yapabilmek ve testin başarı oranını ölçebilmek için başarı oranı hedefi belirlenmelidir.
• Sorunu çözmek için yeterli veriye sahip misin?
– Eğer yeterli veri yok ise veri çoğaltmak için çeşitli yollar bulunmalı ve teknikler uygulanmalıdır.
• Doğru teknolojileri seçtiğine emin misin?
– Her sorunu çözmek için farklı bakış açıları ve teknolojiler gerekebilir. Çeşitli performans ve yeterlilik
karşılaştırmalarını inceleyip daha sonra karşılaşılacak sorunlar bertaraf edilebilir.
120. Yapay Zeka Projesine Hazırlık
• Maliyet hesabı yapıldı mı?
– Yapay zeka da göreceli olarak en yüksek maliyet kalemlerinden biri donanımsal hesaplama gücüdür.
Özellikle resim, video, ses gibi veriler üzerinde yapılacak çalışmalarda yüksek GPU, CPU, RAM, HDD
vb. gibi birçok temel gider oluşur. Bunlar hesaplandı mı? Cloud’da yaparız diyebilirsin! Cloud
maliyetleri hesaplandı mı? Cloud daha tuzlu da olabilir…
– Yapay zeka projelerinin çoğunda geliştirme süresini tahmin etmek pek mümkün değildir. Genellikle
ve muhtemelen geliştirme sırasında ciddi ertelemeler olacak. Buna hazır mısın?
– Bir dedicated server kurup bir verimerkezine koyup yayın yaparım diyebilirsin! Ancak yüksek
hesaplama yapan bilgisayarlarda yüksek ısı oluşur ve yüksek elektrik enerjisi harcar. Bu durumda
ilgili verimerkezi senin sunucunu kendi ağına dahil etmek istemeyebilir. Alternatifin var mı?
– API olarak sunulacak görüntü analizi yapan bir yapay zeka projesinde sunucu maliyetleri yüksek
olacaktır. Müşterinin/istemcinin client ve mobil cihazlarını kullanarak maliyeti düşürme yöntemine
gidebilirsin ancak bu sefer de birden fazla platform için ayrı ayrı geliştirme maliyetini hesaplaman
gerekir.
– Özel bir sorunu çözeceksen verisetini kendin oluşturmak zorundasın. Mesela 500 bin resimden
oluşacak bir verisetini hazırlamak için yeterli eleman kaynağın var mı? Her bir resim üzerinde
çalışılması gerekir. Ve bunun standartları belli… Süreçleri bilen ekibin var mı? Olmak zorunda!
Stratejin nedir?
121. Yapay Zeka Projesine Hazırlık
• Yapay zeka uygulamasını geliştirdin. Ya DevOps süreçleri?
– Yapay zeka yazılımlarının ölçeklenmesi, yüksek trafik altında optimize edilmesi ve tüm sunucu
yönetimleri diğer yazılım projelerinden epey farklıdır. Bu süreçler için tecrübeli DevOps
uzmanı/larına ihtiyacın olacak. Bunlara Data Engineer diyoruz.
123. Model Lifecycle
Machine Learning Model Development Lifecycle
Biz buradan başlıyoruz!
ML model hazırlık süreci
Angarya ama mecburi görev:
Veriyi hazırlamak!
Modeli hazırlamışız!
Modeli veri ile eğitiyoruz.
Cloud ya da On-Premise
Eğitilmiş modeli test verisi ile test ettik!
Eğitilen model programsal
ortam için paketlenir.
Yayın sonrası:
Model sürekli izlenir.
124. Model Hazırlık Süreci
• Veri Bulma & Oluşturma (VeriSeti/DataSet)
– Metin, görüntü(araç, insan, tümör vb.), sayısal ölçümler, sosyal ağlar, genetik verisi vb…
• Veri Temizleme
– Hatalı, geçersiz ve gereksiz verilerin temizlenerek verinin kullanışlı hale getirilmesi.
• Veri Bölümlendirme
– Hazırlanan verinin eğitim ve test olmak üzere ikiye ayrılması.
– Genellikle %80-20 ya da %70-30 oranlarıyla bölünmesi önerilir.
• Özellik Çıkarımı (Feature Extraction)
– Ham veriden özellik çıkarımı yapmak
– Çıkarılan özelliklerden özellik seçimi(feature selection) yapmak
– Bu süreçte domain bilgisi önemli…
• Model Oluşturma
– Özellik çıkarımından sonra model bu matris üzerinde çalışmaya başlar ve çeşitli kurallar çıkarır.
• Değerlendirme
– Bu süreçte eğitilmiş modeli test verisiyle test ederiz.
• İyileştirme
– Bu süreç sonunda model yeterince başarılı değilse sorunlar tespit edilir ve model güncellenir.
– Veri -> Temizleme -> Özellik Çıkarımı -> Öğrenme Algoritması -> Model -> Değerlendirme -> İyileştirme ->
Temizleme -> …
• Tahmin
– Eğer eğitilen model test verisi üzerinde başarıyla çalıştıysa uygulama ortamına hazır demektir.
133. Data Augmentation
• Data Augmentation temel olarak iki amaçla kullanılabilmektedir.
– Yapay zeka uygulamalarındaki ezberleme sorununu çözme tekniklerinden biri
– Modeli eğitmek için gerekenden daha az veriye sahip olunduğu durumda veri çoğaltmak.
139. MLaaS?
Machine Learning as a Service
ML/DL algoritma ve yazılımlarının, bulut bilişim hizmetlerinin bir
bileşeni olarak sunulması modeline denir.
MLaaS = (SaaS + [ML/DL/CV])
140. Ne Zaman MLaaS Kullanmalı?
• Yazılım BigData ile çalışıyorsa
• Yazılımın sürekli iyileştiriliyorsa
• Yazılım yeterince güvenli ise…
• Gerçek-Zamanlı anlamlandırma varsa
• Anlık karar alma süreçleri
• Yüksek boyutlu veriler üzerinde çalışılıyorsa
• Yazılım küçük ise
• Kaynaklar sınırlı ise
• Finans
• Donanım
• İnternet Hızı
• Ekip
• Basit özelliklere sahip bir yazılım ise
MLaaS için uygun şartlar MLaaS için uygun olmayabilir
142. MLaaS
MLaaS Cloud Service Providers (Örnekler)
• AWS Machine Learning : aws.amazon.com/tr/machine-learning
• Speech &Text Processing APIs
– Amazon Lex
– Amazon Transcribe
– Amazon Polly
– Amazon Comprehend
– Amazon Translate
• Google Cloud ML Services : cloud.google.com/ai-platform
– Cloud Vision API : https://cloud.google.com/video-intelligence/
• Cloud Vision Intelligence
• AutoML Vision API
• AutoML Video Intelligene Classification API
– Speech & Text Processing APIs
• Dialogflow
• Cloud Natural Language APIs
• Cloud Speech API
• Cloud Translation API
• AutoML Natural Language API
• AutoML Translation API
143. MLaaS
MLaaS Cloud Service Providers (Örnekler)
• Microsoft Azure ML Studio : studio.azureml.net
• Cognitive Services
– Speech
– Language
• Image & Video Processing
• IBM Watson ML : ibm.com/cloud/machine-learning
• Speech to Text
• Text to Speech
• Language Translator
• Natural Language Classifier
• Natural Language Understanding
• Personality Insights
• Tone Analyzer
144. ‘Biz MLaaS platformu geliştirmek için hem üretim hem de tüketim
başlıklarındaki yetenekleri kullanacağız.’
145. Hidden Technical Debt in Machine Learning Systems
https://papers.nips.cc/paper/2015/file/86df7dcfd896fcaf2674f757a2463eba-Paper.pdf
Genellikle tüm ekip, odak
ve kaynakların yönlendirildiği alan!
147. Başarı İçin Neler Gerekli?
Süper Özet!
• Herşeyden önce yetenekli ve tecrübeli bir geliştirici ekibe sahip olmak!
• ML/DL/CV geliştirme ortamına, süreçlerine hakim ve tecrübe sahibi olmak.
• Donanımsal gereksinimleri doğru anlamak ve karşılamak.
– Ekibe donanım(GPU vb.) konusunda destek olacak birinin olması harika olurdu!
• MLaaS mimarisini çok iyi anlamak.
• Paralel Programlama ve Distributed Systems konularına hakim olmak.
– Hem programlama hem de altyapı çözümlerini içerir.
• BigData, Data Engineering, MLOps araç-gereçlerine(çok geniş) hakim olmak.
– Bu seviyede artık model geliştirme ile değil, o modeli battle-tested hale getirmeye odaklıyız!
• Realtime Systems konularına hakim ve tecrübe sahibi olmak
– Genellikle modern uygulamalarda kullandığımız tekniğe Near-Realtime denir.
– Realtime Vs Near-Realtime
149. AI Production
Ürünleşme Sürecine Genel Bakış
• Donanım
– CPU
• Sadece alıştırma/araştırma kodları için kullanılabilir.
• Bazen de metinsel ML projelerinin ürün ortamında tercih edilebilir.
• Ses, Görüntü ve Video işleyecek projelerin ürün ortamında tavsiye edilmez.
– GPU
• Ürün ortamı için mecburi! Geliştirme ortamı için de tavsiye edilir.
• Ürün ortamı için: özellikle Ses, Görüntü ve Video veri projelerinde…
– HDD
• Yüksek depolama alanı ve hızlı disk okuma-yazma kapasitesi…
• Yazılım
– Büyük ihtimalle projeniz planladığınız sürede bitmeyecek…
• Cloud Computing
– Depolama hizmetleri, metinsel, görüntü ve ses gibi verilerin depolanması ve işlenmesi.
– Cloud tabanlı hazır yapay zeka servislerinin kullanılması.
• Zaman!
– Doğru algoritma seçimi, model geliştirme, model eğitme… Tecrübeli bile olsanız deneme/yanılma
yapacaksınız.
150. AI Production
Ürünleşme Sürecine Genel Bakış
• Python
– HPC in Python : Python’ı yüksek performanslı kullanmak için gereken birçok ileri seviye konu!
– Python’ın paralel programlama yeteneklerini kullanmak.
– Python ile geliştirilmiş birçok yüksek performanslı distributed computing altyapısını kullanmak
• C++
– Çekirdek ML/DL/CV algoritmalarını library/framework’ler ile model geliştirmek için kullanmak!
– TensorFlow ve PyTorch gibi library/platform’lar C++ ile geliştiriliyor ve siz de C++ yazabilirsiniz.
• Çok daha performanslı modeller oluşturulabilir.
• Go
– MLaaS’in microservice mimarisini Go ile yüksek performanslı hale getirmek…
• Rust
– MLaaS’in back-end/sistem tarafındaki işlemlerini daha performanslı hale getirmek…
– Rust’ı sistem seviyeli hesaplama ya da I/O işlemlerinde tercih edebilirsiniz
• JavaScript
– Bazı projelerde hesaplama işlemini client’e yaptırabiliriz. Örnek: TensorFlow.js
151. AI Production
MLaaS Ürünleşme Sürecine Genel Bakış
PyTorch pytorch.org
TensorFlow tensorflow.org
Keras keras.io
scikit-learn scikit-learn.org
OpenCV opencv.org
*Ürün ortamında genellikle bunları kullanırız
152. Model Seçimi!
• CNN (Convolutional Neural Networks - Evrişimli Sinir Ağları):
– Nesne tanıma ve takip etme, stil transferi, kanser tespiti vb.
• LSTM (Long Short Term Memory – Uzun/Kısa Süreli Bellek):
– Doğal dil işleme, çeviri, chatbot, finans uygulamaları vb.
• GAN (Generative Adversarial Networks - Çekişmeli Üretici Ağlar):
– Sentetik veri üretme, sahte yüz üretme, stil transferi vb.
• RL (Reinforcement Learning - Pekiştirmeli Öğrenme):
– Kendi kendine ve az veriyle öğrenen yapay zeka sistemleri vb.
153. Programlama Dilleri
• Python
– ML çalışmalarında kullanılan en yaygın dildir. Başlangıç, hızlı proje üretmek ve start-up projeleri için önerilir.
• C/C++
– İleri seviye, yapay zeka altyapı/library gibi yüksek performans gereken projelerde önerilir.
• Java
– Eğer ‘Biz Java biliyorum, hızlı bir şekilde nasıl öğrenebilirim’ diyorsan sınırlı da olsa kaynak var.
– Ancak çok tecrübeli Java ekibi yoksa önerilmez.
• R
– ‘Ben uygulama geliştirici değilim, istatistik temelim var ve bu tür uygulamalarda çalışıyorum’ diyorsan önerilir ve
çok yaygındır. Yapay zeka uygulama geliştirici girişim ya da bir yazılım odaklı girişim için faydası sınırlıdır.
• JavaScript
– Machine Learning ve Deep Learning odaklı web projelerinde bazı hesaplama yüklerini client’a yıkmak için önerilir.
Ayrıca cross-platform mobil uygulamalar için de entegre edilebilen çözümlere sahiptir.
• C#
– Performans ve dil gücü olarak yapay zeka da etkili olabilecekse de açık kaynakta amiral gemisi olmaktan şuan için
uzak. Ancak bir C# geliştiricisi olarak herhangi başka bir dil öğrenmeden machine learning, deep learning,
computer vision projeleri geliştirilebilecek kadar kaynak ve proje mevcuttur.
• Go
– Güç ve performans olarak çok iyidir. Şahsen yapay zeka uygulamalarında gelecek vadettiğini düşünsem de bu tür
projelerde kod yazma maliyeti yüksektir. Sınırlı open-source proje nedeniyle iyi bir Go geliştirici olmak ve ciddi bir
proje geliştirme süresine ihtiyaç vardır.
• Rust
– Bu listedeki en performanslı dillerden biridir. Sistem ve işletim sistemi seviyesinde çalışmalarda kullanılabilecek
kadar güçlüdür. Hesaplama gücü nedeniyle henüz ürün ortamında olmasa da AR-GE amacıyla araştırmalar
yapılması tavsiye edilir.
159. Kütüphaneler
Mobile
• TensorFlow Lite
– tensorflow.org/lite/
– tensorflow.org/lite/examples/
• PyTorch Mobile
– pytorch.org/mobile/home/
• Google ML Kit for Mobile
– developers.google.com/ml-kit/
• CoreML
– developer.apple.com/machine-learning/
– developer.apple.com/documentation/coreml
• OpenCV Mobile (Deneysel)
– opencv.org/android/
– opencv.org/opencv4android-samples/
166. AI Production
Donanımsal Altyapı
• NVIDIA CUDA GPUs
– developer.nvidia.com/cuda-gpus
– CUDA Toolkit
• developer.nvidia.com/cuda-downloads
• PyTorch : 9.2
• TensorFlow : 10.1
– cuDNN SDK (>= 7.6) (Deep Neural Network library)
• developer.nvidia.com/cudnn
– CUPTI (CUDA Profiling Tools Interface)
• docs.nvidia.com/cuda/cupti/
• Özel ML/DL Bilgisayarı(Örnek) : lambdalabs.com
– Bu örnek bir ML geliştiricisi için gereken bilgisayar özelliklerini anlatmak amacıyla verilmiştir.
– Bu tür bilgisayar konfigürasyonlarını inceleyerek kendiniz de toplayabilirsiniz.
– Ancak ürün ortamında yayın hizmeti verecek bir sunucuyu hazırlamanın çook daha fazla
detayı bulunmaktadır.
– Not : Aynı donanımlara sahip sunucuları kendiniz toplayarak %20 kar edebilirsiniz!
168. AI Production
Donanım [Production Server]
LambdaLabs ile hiçbir ticari bağım olmamakla birlikte, yapılandırmalar hakkında kopya çekmeniz için paylaşıyorum.
Aynı özelliklerdeki
donanımları
toplayarak %20-25’lik
oranda maliyeti
azaltabilirsiniz.
ya da…
170. AI Production
Donanım [Development Machine]
Büyük indirimden de yararlanabilirsiniz!
MonsterNotebook ile de ticari bir bağlantım yok.
En önemli kısım sadece şu!
171. AI Production
Donanım [Performance/Benchmark/Ranking]
• Donanım seçimi önemli. Benchmark’lar detaylı incelenmeli…
– http://ai-benchmark.com/ranking_deeplearning.html
– http://ai-benchmark.com/ranking.html
– http://ai-benchmark.com/tests.html
– https://developer.nvidia.com/deep-learning-performance-training-inference
• … ve diğer şeyler için birkaç örnek:
– https://mlbench.github.io/
– https://dawn.cs.stanford.edu/benchmark/
– https://mlperf.org/
• https://mlperf.org/inference-overview
Paper : Benchmarking Contemporary Deep Learning Hardware and Frameworks: A Survey of Qualitative Metrics
https://hal.archives-ouvertes.fr/hal-02501736/document
186. AI Production
Model Serving Yaklaşımı Belirlemek
• Embedded Model
– Yaygın ve en kolay yol. Model uygulamanın doğrudan içine gömülür.
– Bu yaklaşımın avantajı ML geliştiricinin modeli kendi aşina olduğu dil ile eğitmesini kolaylaştırır.
• Model Deployed as a Separate Service
– Model uygulamadan bağımsız bir servis halinde sunulur.
– Örnek: Web Service, Microservice, GraphQL vb…
• Model Published as Data
– Model uygulamadan bağımsız sunulur. Farkı, uygulama modeli veri olarak alır. Genellikle
streaming/real-time mimarilerde kullanılan veri akış ve işleme mimarisine uygundur.
– Software Release Pattern : Canary Release ya da Blue Green Deployment
Tool : Pickle File, MLeap, PMML, PFA, ONNX,
Tool : H20 (export model as a POJO in a JAR Java Library)
188. AI Production
Model Deployment Yaklaşımı Belirlemek
• Multiple Model
– Bir görevi gerçekleştirmek için birden fazla modelin kullanılması yöntemidir.
– Tek bir API çağrısı ile arka planda birden fazla modelin işletilmesini sağlar.
• Shadow Model
– Ürün ortamı için uygun desenlerden biridir.
– Yeni modeli mevcut ile birlikte dağıtabilir ve ürün ortamındaki modele gönderilen ürün
trafiğini shadow model’a da göndererek performansı takip edilebilir.
• Competing Model
– Çok modelli senaryolarda hangi modelin daha performanslı olduğunu bulmak için kullanılır.
– Trafiği doğru modele yönlendirmek için routing ve altyapının çalışma mantığı değiştiği için
biraz karmaşıktır.
– Bu tür işlemlerde doğru karar alabilmek için yeterince veri toplanmış olmalıdır.
– Diğer yöntem : Multi-Armed Bandits (Refer : Seldon Core, Azure Personalizer)
• Online Learning Model
– Önceki modeller offline olarak eğitilir, online olarak sunulur idi. Bu yöntemle ise model kendi
performansını yeni veriler ile sürekli artırır. Ancak, bazı zorlukları mevut…
– Aynı verilerle beslenmeyen ve statik olarak versiyonlanmış bir model aynı sonuçları veremez.
– Bu nedenle model hem eğitim hem de ürün(production) ortamındaki verilerle beslenmelidir.
– Online Methods in Machine Learning : Teori ve Uygulama
189. AI Production
Örnek İnceleme : Shadow Mode
https://alexgude.com/blog/machine-learning-deployment-shadow-mode/
Yöntem 1 Yöntem 2
194. MLaaS
Ne zaman Realtime API Kullanmalı?
• Tahminler talep üzerine sunuluyorsa…
• Tahminlerin, bir request anında yapılması gerekiyorsa. (Near-Realtime)
• Tahminlerin doğrudan istemciye sunulması gerektiğinde.
195. MLaaS
Realtime API ile Yapılabilecekler(Yaptıklarımız)
• Request-Based Autoscaling
• Downtime olmadan model güncellemeleri
• Log Streaming
• Server-Side Batching
• Multi-Model Serving
• Traffic Splitting
• Realtime Metrics
196. MLaaS
Ne zaman Batch API Kullanmalı?
• Büyük bir veriseti ve çoklu worker’lar ile dağıtık çalışması gereken süreçler.
• İş sürecinin ve durumunun izlenmesi gereken süreçler.
• Karmaşık ve birbirine zincirlenmiş şekilde çalışan/çalışması gereken süreçler.
• İstek sayısı az ama her isteğin dakikalar/saatler sürdüğü süreçler.
197. MLaaS
Batch API ile Yapılabilecekler(Yaptıklarımız)
• Klasik RESTful servis gereksinimlerinde.
• Log alma/toplama ve streaming vb…
198. MLaaS
Server-Side Batching?
• Birden fazla gerçek zamanlı request’i tek bir toplu çıkarımda toplama işlemidir.
• Bu yöntem gecikme oluşturur ancak performansı artırır.
• Hangi request önce gelirse, maksimum sayıda istek alındığında veya ilk isteği
aldıktan belirli bir süre sonra süreç tetiklenir.
• Belirlenen eşiğe ulaşıldığında, alınan talepler üzerinde anlamladırma/tahmin
yapılır ve tahmin sonuçları istemciye ayrı ayrı gönderilir.
• Tüm bu süreçler istemciler için izlenebilir/gözlenebilirdir.
200. MLaaS
Request Başına Düşen Kaynak!
• Her request türünün tüketeceği sistem kaynağı çok farklı olacak.
– Request-Based Autoscaling
• Metinsel veri üzerinde çalışan ML servisi 0.3s’de cevap üretebilir. Fakat aynı
response time’ı bir resim ya da video üzerinde almak isterseniz çok daha fazla
donanımsal kaynak gerekir.
– Request başına CPU, GPU, RAM ve Donanımı kullandıracak kaynak yönetimi gerekiyor.
• Her ML request’i GPU gerektirmeyebilir. CPU’da kullanmalı…
– Biz genellikle düşük hesaplama gerektiren request’leri GPU’ya değil CPU’ya yönlendiririz.
• Ayrıca dakikada birkaç request için bu süreler yakalanabilir. Fakat saatte 2000
görsel veri request’i alıyorsanız işiniz çok daha zor olacaktır.
– Distributed Task Queue
• Request başına düşen disk veri kullanımı ve okuma-yazma oranları her request
tipine göre yönetilmelidir.
202. S.S.S
• Cihan Özhan kimdir?
– Ben bir araştırmacıyım! Blockchain, yapay zeka(ML, DL, CV vb.) dahil birçok ileri seviye yazılım ve
teknoloji alanlarında girişimler/projeler geliştiriyorum ve birçok farklı konuda tecrübeye sahibim.
Öğrenmeyi ve bildiğim kadarını da doğru şekilde anlatmaya çalışan bir teknoloji geliştiricisi,
girişimcisi ve yapay zekayı sektörel olarak uygulayan bir yapay zeka uygulayıcısıyım.
• Yapay zeka sadece bir yazılım/programlama konusu mudur?
– Kesinlikle hayır! Bazı uzmanlıklar çok disiplinli araştırma, bilgi ve tecrübe gerektirir. Yapay zeka da
tartışmasız bunlardan biridir. Bu nedenle bu sunum biyoloji ve taklitin birleşimi olan biyomimetik’ten
başlatılmıştır. Ve bundan çok daha ötesidir. Şahsi yorumuma göre yapay zeka gibi konularda
‘uzmanlık’ tanımını kullanmak çok ciddi zaman ve bu zaman ile çok derinlemesine ilgili konulara
odaklanmayı ve disiplinli çalışmayı gerektirir. Şahsen uzmanlaşmaya değil, sorunlar bulup bunları
teknoloji kullanarak çözmeye odaklanmayı tercih ediyorum. Bunu yaptığınızda belli bir tecrübeden
sonra uzmanlıklar peşinden gelecektir.
• Yazılım/yapay zeka gibi konularda iyi bir üniversite eğitimi zorunlu mudur?
– Yapabiliyorsanız yapın, aksi halde zorunlu ve mahkum değilsiniz diye özetlenebilir. Matematik,
İngilizce ve yazılım öğrenme, internete erişim gibi konularda kimse sizden üniversite diploması
beklemiyor. Eğer tüm bunları yapabiliyorsanız herhangi bir alanda uzmanlaşabilirsiniz. Ucuz bir
bilgisayarda kod yazmayı öğrenip Tesla ya da SpaceX’de çalışabilirsiniz. SpaceX’de çalışmak için iyi
seviyede matematik bilgisi ve bunu C/C++, Rust ve Go gibi dillere dökebilecek algoritmik ve
programlama bilgisine sahip olmanız ve çook büyük bir artı olarak da uzay ve uzay teknolojileri
alanında iyi seviyede ilgi ve bilgi sahibi olmanız beklenir. Dikkat ederseniz üniversite diplomasını
saymadık! Ama bunların yanında bir de en iyi eğitim veren yerlerden eğitim aldıysanız tabi ki
değerinizi artırmış olursunuz. Sektör için önemli olan şey: motivasyon, ilgi, bilgi ve tecrübedir. Gerisi
gereksiz tartışmadır. Sadece sınırlı sayıda ve şuan konumuz olmayan sebeplerden dolayı mühendislik
mezuniyetini şart koşmak zorunda olan kurumsal firmalar var. Ancak bunlar çok azınlıktadır ve
üniversite sorma nedeninin teknik bilgiyle ilgisi yoktur.
203. S.S.S
• Yapay zeka geliştiricisi olmak için üstün matematik bilgisi gerekli midir?
– Cevap göreceli, buna örnek olarak oyun geliştirmeyi gösterebiliriz. Eğer oyun sektöründe
uygulama geliştiricisi olacaksanız Unity gibi oyun motorlarıyla hızlı ve matematikle pek
ilgilenmeden oyun geliştirebilirsiniz. Halbuki, gerçek anlamda oyun geliştirme tamamen
matematikle ilgilidir. Ancak sizin yerinize library, framework, platformlar geliştirerek bu
uygulamaların geliştirilmesini kolaylaştıran binlerce çözüm üretilmektedir. Onları
geliştirenler çok iyi derecede matematik, fizik vb. bilgilere sahip olmalıdır, ki öyleler. Eğer
hedef yapay zeka alanında akademik bir kariyer yapmak ise ‘evet, işin matematik teorisini
çok iyi bilmelisiniz’. Ancak hedef uygulama geliştirici olmak ise ‘hayır, gerekli araç-gereçler ve
onların programsal çalışmaları üzerinde tecrübeli olmalısınız’. Yapay zeka uygulama
geliştiricisi olmak için lise seviyesindeki matematik yeterlidir. Hepimiz yapay zeka üstadı
olmayacağız, normal geliştiriciler de gerekiyor. Ancak derinlere dalmak için matematik şart!
• Yapay zeka’dan neden korkuluyor?
– Genel olarak yapay zeka’dan değil, AGI dediğimiz Artificial General Intelligence’dan
korkuluyor. AGI’da muhakeme yeteneğinin yapay zekaya kazandırılmış olması gibi birçok
insana özgü ve henüz matematiğini çıkaramadığımız yetenekler ile yapay zeka kendi kendine
özgün ve üstün karar verme yeteneğine sahip olabilecek. AGI yeteneklerine sahip bir yapay
zeka oluşturma ilgili öngörüler 2040-2050 yıllarına kadar atılıyor. Kimileri de AGI’ı insanın
değil, başka bir güçlü yapay zekanın geliştireceğine inanıyor.
204. S.S.S
• Yapay zeka tarafında uzmanlaşmak için iyi bir yazılım geliştirici olmalı mıyım?
– Kesinlikle evet! Eğer akademisyenlik yani işin teorisi tarafında bir kariyer planınız yoksa iyi bir
yazılımcı olmadan yapay zeka tarafında ne bilgili, ne tecrübeli ne de değerli olamazsınız. Çünkü
yapay zeka her ne kadar çoklu disiplinlerarası bir alan olsa da nihayetinde bu bilgilerin gerçek
hayata aktarılması için yazılım kullanılmaktadır. İster robotikle ilgilenip uçan bir Iron Man yapın
isterseniz NLP ile bir chatbot geliştirin, sonuç değişmez! Bunların hepsinde yazılım en temel
ihtiyaçtır.
• Yapay zeka için hangi programlama dilinde uzmanlaşmalıyım?
– Özet olarak, her programlama diliyle yapay zeka uygulaması geliştirilebilir diyebiliriz. Ancak her
dilin geliştirilme hedefi, çözdüğü sorun, güç, performans, hız, güvenlik, kolay öğrenilebilirlik,
open-source tarafındaki cezbediciliği gibi birçok farklılıkları ve avantaj ile dezavantajları var.
Uzun bir makale konusu olmakla birlikte özet olarak Python yapay zeka alanında özellikle yeni
başlayanlar için önerilebilecek en optimum dildir diyebiliriz.
• Python yapay zeka uygulamaları için mi geliştirildi?
– Hayır, maalesef sektöre yeni girenleri yanlış yönlendiren yanlış kişiler nedeniyle Python’a
mahkum olunduğunu düşünen çook(!) tecrübeli geliştirici ve mühendisler bile mevcut.
Herhangi bir programlama diliyle yapay zeka uygulamaları geliştirilebilir. Ancak Python kolay
öğrenilebilir, open-source camiasındaki yaygınlığı ve daha birçok sebep nedeniyle yapay zeka
uygulama ve eğitim kaynaklarında en çok tercih edilen dil oldu.
205. S.S.S
• Yapay zekanın tüm alt dallarında uzmanlaşmalı mıyım?
– Hayır, eğer metiksel işlemlerle ilgilenmeyi seviyorsanız NLP üzerine çalışmanız ve bu alandaki
algoritmaları incelemeniz daha doğru olabilir. Ancak örüntüler üzerinde çalışmayı daha çok
seviyorsanız CNN, OpenCV ve ilgili deep learning algoritmalarına odaklanmanız daha doğru
olacaktır. Ancak zihninizi sınırlamaya gerek yok, bir alanda uzmanlaşırken boş zamanlarınızda
diğer konuları da incelemeniz ve küçük çaplı da olsa uygulamalar geliştirmeniz size yeni bakış
açıları ve uzmanlıklar kazandıracaktır.
• Computer Vision bir yapay zeka alt dalı mıdır?
– Teknik olarak hayır, görüntü işleme çalışmalarıyla yapay zeka çalışmaları birbirinden tamamen
bağımsız olarak başladı ve gelişti. Yıllar önce de görüntü işleme çözümleri üretilebiliyordu(örn
OpenCV). Ancak günümüzde yapay zekanın çözmesi gereken sorunların başında görüntü
üzerinden anlamlar çıkartmak yer alıyor. Bunu ister yüz tanıma olarak düşünün ister bir
endüstri problemi ya da insansız otomobil ile insansız savaş uçakları… Hepsinde görüntülerden
anlam çıkarma problemi var. Bu nedenle zamanla Deep Learning ile Computer Vision iç içe
kullanılır hale geldi ve artık CV’yi yapay zeka eğitimlerinden ayırmada anlatıyoruz ve
problemleri de bu şekilde çözüyoruz.
• Computer Vision’u ayrı olarak mı çalışmalıyım?
– Eğer derinlemesine konuyu anlamak isterseniz cevabım evet, bu apayrı ve çok derin bir konu.
Bu alanda ayrı çalışmalar yapıp daha sonrasında deep learning ile birleştirebilirsiniz.
206. Genel Kültür
Herhangi bir konuyu anlayabilmek ve
derinlemesine kavrayabilmek için o konunun
genel kültürüne hakim olmalısınız. Bu nedenle
belgesel, film, diziler ve hatta çizgi romanlar dahi
faydalı olabilir. Önemli olan bir konuya nasıl ve
hangi derinlikte baktığınızdır.
208. Dizi
• Person of Interest, 2011
• NUMB3RS, 2005-2010
• HUMANS, 2015
• Intelligence, 2014
• Minority Report, 2015
• Almost Human, 2013-2014
• Battlestar Galactica, 2004-2009
• Caprica, 2009-2010
• Black Mirror, 2011
• Mr. Robot, 2015
209. Belgesel
• İşte Yapay Zeka : youtube.com/watch?v=PIj3zLplukI
• Gelecek Yapay Zeka Dahi Robotlar : youtube.com/watch?v=cSNECkHJ_oo
• The Rise of Artificial Intelligence : youtube.com/watch?v=2EWDDUGNhKM
• Artificial intelligence and its ethics : youtube.com/watch?v=Izd2qOgOGQI
• Artificial intelligence & algorithms: pros & cons : youtube.com/watch?v=s0dMTAQM4cw
• True Artificial Intelligence will change everything : youtube.com/watch?v=-Y7PLaxXUrs
• Lo And Behold: Reveries Of The Connected World : vimeo.com/198891818
• AlphaGo : youtube.com/watch?v=jGyCsVhtW0M
• The Future of Artificial Intelligence : youtube.com/watch?v=UzT3Tkwx17A
• AI : youtube.com/watch?v=XvjYfVF5vjA
• Road to AI : youtube.com/watch?v=_sNNSEP-P7A
• Artificial Intelligence and Robotics : youtube.com/watch?v=e78Cwf7lGr8
• Singularity Or Bust : youtube.com/watch?v=owppju3jwPE
• The Smartest Machine on Earth : youtube.com/watch?v=X0JZMHhupTs
• Humans Need not Apply : youtube.com/watch?v=7Pq-S557XQU
• The Human Robot – VPRO : youtube.com/watch?v=sXz0boNmwak
• Will robots steal our jobs? - The future of work (1/2) : youtube.com/watch?v=6IOH7b68byk
• Will robots steal our jobs? - The future of work (2/2) : youtube.com/watch?v=NGUbboTjT18
210. • CS 229 — Makine Öğrenmesi El Kitabı
– Gözetimli Öğrenme El Kitabı
• stanford.edu/~shervine/l/tr/teaching/cs-229/cheatsheet-supervised-learning
– Gözetimsiz Öğrenme El Kitabı
• stanford.edu/~shervine/l/tr/teaching/cs-229/cheatsheet-unsupervised-learning
– Derin Öğrenme El Kitabı
• stanford.edu/~shervine/l/tr/teaching/cs-229/cheatsheet-deep-learning
– Makine Öğrenmesi İpuçları ve Püf Noktaları El Kitabı
• stanford.edu/~shervine/l/tr/teaching/cs-229/cheatsheet-machine-learning-tips-and-tricks
• CS 230 — Derin Öğrenme El Kitabı
– Evrişimli Sinir Ağları El Kitabı
• stanford.edu/~shervine/l/tr/teaching/cs-230/cheatsheet-convolutional-neural-networks
– Tekrarlayan Yapay Sinir Ağları El Kitabı
• stanford.edu/~shervine/l/tr/teaching/cs-230/cheatsheet-recurrent-neural-networks
– Derin Öğrenme Püf Noktaları ve İpuçları El Kitabı
• stanford.edu/~shervine/l/tr/teaching/cs-230/cheatsheet-deep-learning-tips-and-tricks
• Stanford Üniversitesi:
– CS221 : Artificial Intelligence: Principles and Techniques
• web.stanford.edu/class/cs221/
– CS229 - Machine Learning
• scpd.stanford.edu/search/publicCourseSearchDetails.do;jsessionid=D675581FB0E42483186744CEFEDAB61C?method=load&courseId=11763&showInternal=true
– CS224n - Natural Language Processing with Deep Learning
• web.stanford.edu/class/cs224n/
– CS231n - Convolutional Neural Networks for Visual Recognition
• vision.stanford.edu/teaching/cs231n/
– deeplearnin.ai Kurs Sunumları
• cs230.stanford.edu/syllabus/
• MIT (Massachusetts Teknoloji Enstitüsü):
– 6.034-Artificial Intelligence
• ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-034-artificial-intelligence-fall-2010/
– 6.867 - Machine Learning
• ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-867-machine-learning-fall-2006/
– 6.S191 - Introduction to Deep Learning
• introtodeeplearning.com/
– 6.S099 - Artificial General Intelligence
• agi.mit.edu/
– MIT Deep Learning (Lex Fridman)
• deeplearning.mit.edu/
211. • Hacettepe Üniversitesi:
– CMP784-Deep Learning : https://web.cs.hacettepe.edu.tr/~aykut/classes/spring2018/cmp784/
• Diğer Online Kaynaklar
– Coursera
• coursera.org/courses?languages=en&query=artificial+intelligence
– Udacity
• udacity.com/course/intro-to-artificial-intelligence--cs271
– edX
• edx.org/course?search_query=artifical+intelligence
– fast.ai
• fast.ai/
– Udemy
• udemy.com/courses/search/?q=derin%20%C3%B6%C4%9Frenme&src=sac&kw=derin%20%C3%B6%C4%9Frenme
– Google
• https://ai.google/education/#?modal_active=none
• Derin Öğrenme Kitabı
– Deep Learning Book - Ian Goodfellow and Yoshua Bengio and Aaron Courville
• deeplearningbook.org/
Google Dublex
https://www.youtube.com/watch?v=znNe4pMCsD4
https://medium.com/analytics-vidhya/machine-learning-models-to-production-72280c3cb479
Packaging and Sharing Machine Learning Models via the Acumos AI Open Platform (https://arxiv.org/ftp/arxiv/papers/1810/1810.07159.pdf)
- Realtime Vs Near-Realtime : https://www.skylinetechnologies.com/Blog/Skyline-Blog/November_2019/realtime-vs-near-realtime-data-pros-cons
Multi-Aarmed Bandits :
Another popular approach for evaluating multiple competing models is Multi-Armed Bandits, which also requires you to define a way to calculate and monitor the reward associated with using each model. Applying this to ML is an active area of research, and we are starting to see some tools and services appear, such as Seldon core and Azure Personalizer .
- https://www2.slideshare.net/turi-inc/machine-learning-in-production