SlideShare uma empresa Scribd logo
1 de 212
Yapay Zeka
AI and Machine Learning - Today’s Implementation Realities
Cihan Özhan | Founder at DeepLab.co | Developer/Hacker, AI Engineer
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
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.
Klişe No : 85496477
Yapay Zeka
Altındaki Temel Bilim Nedir?
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.
Neuron & Neural Network
Convolutional Neural Networks
Nasıl?
Inputs to a multilayer perceptron network
Deep Learning + Computer Vision
Biyomimetik Kaynaklar
• http://www.khanacademy.org.tr/
• https://biomimicry.org/
• https://toolbox.biomimicry.org/introduction/biomimicry-film/
• https://biomimicry.net/
• https://www.learnbiomimicry.com/ (Ücretli Kurslar)
• Kitaplar : https://biomimicry.org/summer-reading-list-biomimics/
• Kitaplar : https://www.goodreads.com/shelf/show/biomimicry
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.)
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.’
Yapay Zeka Aşamaları
Stages of AI
Yapay Zeka Aşamaları
Stages of AI
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ı…
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.
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
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.
Kaynak : Geoffrey Hinton’nın Royal Society’de verdiği konuşma, 22 Mayıs 2016,
https://youtu.be/izrG86jycck
https://www.cs.toronto.edu/~hinton/absps/plautfilters.pdf
http://www.cs.toronto.edu/~hinton/papers.html
Süper Kahramanlar
Bir kısmı!
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…
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
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…
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
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
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
Computer Vision
+ Deep Learning
Image Segmentation
(Use Case)
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.
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.
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.
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.
Image Segmentation
(Example - Retail Image Recognition)
Pose Estimation
Pose Estimation
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.
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.
Optical Character Recognition
(Use Case)
Machine Learning
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…
Sesli Asistan & Chatbot
• Amazon Echo & Alexa
• Siri
• Cortana
• Google Now
• Google Duplex
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…
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
Oyun
(espor Platformları)
• AI Platformları
• Video Platformları
• İçerik Platformları
• İstatistik Platformları
• AR Platformları
• VR Platformları
• Veri Platformları
Otonom Araçlar
Türler
• Otonom Araç Türleri
– Kara Araçları
– Hava Araçları
– Deniz Araçları
– Sualtı Araçları
Otonom Araçlar
• Otonom Otomobil
• Otonom Minibüs ve Otobüs
• Otonom İş Makinesi
• Otonom Sualtı Araçları
• Otonom Uzay Araçları
Robotik
Robotik
Sağlık
Sağlık
Sağlık
Sağlık
Sağlık
Terminoloji
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…
Dataset : Training & Test
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.
Öğrenme Türleri
Supervised Learning
Öğ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…
Öğrenme Türleri
Unsupervised Learning
Öğ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.
Öğrenme Türleri
Semi-Supervised Learning
Öğ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.
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.
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?
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.
Model Lifecycle
Machine Learning Model Development Lifecycle
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.
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.
Değerlendirme?
Etiketleme
Labeling
Etiketleme Araçları
• Etiketleme araçları için GitHub kaynakları
– github.com/heartexlabs/awesome-data-labeling
– github.com/jsbroks/awesome-dataset-tools
– github.com/rodrigofay/awesome-data-labeling
Hyperlabel.com
Veri yeterli değil ise?
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.
AI Production & MLaaS
Ürünleşme Sürecine Genel Bakış
‘Machine Learning girişimlerinin %85’i hayata geçemiyor.’
Neden?
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])
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
MLaaS
Üretmek Vs. Tüketmek
Tüketim : Bir Cloud MLaaS hizmetinin kullanıcısı olmak.
Üretim : Bir MLaaS hizmetinin üreticisi olmak.
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
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
‘Biz MLaaS platformu geliştirmek için hem üretim hem de tüketim
başlıklarındaki yetenekleri kullanacağız.’
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!
‘Machine Learning girişimlerinin %85’i hayata geçemiyor.’
%15’lik dilim içerisinde nasıl olabiliriz?
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
MLaaS
MLaaS Ürünleşme Sürecine Genel Bakış
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.
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
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
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.
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.
Programlama Dilleri
• Python
– github.com/vinta/awesome-python
– slideshare.net/cihanzhan/python-programlama-dili
• C/C++
– github.com/fffaraz/awesome-cpp#machine-learning
– awesome-cpp.readthedocs.io/en/latest/README.html
– dlib.net/ml.html
– mlpack.org/
• JavaScript
– tensorflow.org/js
• C#
– scisharp.github.io/SciSharp/
• Go
– …
• Rust
– arewelearningyet.com/
Programlama Dili ve Ortamlar
(Alternatif)
• Scala
• Julia
• Octave
• MatLab
Kütüphaneler
(Genel)
• TensorFlow : tensorflow.org/
– Google’ın, karmaşık, yaygın
– TensorFlow Lite : tensorflow.org/lite
– TensorFlow.js : tensorflow.org/js
• PyTorch : pytorch.org/
– Facebook’un, sade, performanslı, yaygın, güçlü
– PyTorch Mobile : pytorch.org/mobile/home/
– PyTorch3D : github.com/facebookresearch/pytorch3d
• Keras : keras.io/
– Daha az kod, başlangıç için önerilir
• NLTK : nltk.org/
• CNTK : github.com/microsoft/CNTK
• ML.NET : dotnet.microsoft.com/apps/machinelearning-ai/ml-dotnet
• Theano : github.com/Theano/Theano
• MxNet : mxnet.apache.org/
• Torch : torch.ch/
• Caffe : caffe.berkeleyvision.org/
• Knet : github.com/denizyuret/Knet.jl
Kütüphaneler
Çeşitli
• SciKit-Learn : scikit-learn.org/
• Pandas : pandas.pydata.org/
• NumPy : numpy.org/
• H20 : h2o.ai/
• Matplotlib : matplotlib.org/
• Shogun : shogun-toolbox.org/
Kütüphaneler
Web
• TensorFlow.js : tensorflow.org/js
• Terrasect.js : github.com/naptha/tesseract.js
• OpenCV.js : docs.opencv.org/3.4/d5/d10/tutorial_js_root.html
• Brain.js : github.com/BrainJS
• ml.js : github.com/mljs/
• stdlib-js : github.com/stdlib-js/stdlib
• machinelearn.js : github.com/machinelearnjs/machinelearnjs
• math.js : github.com/josdejong/mathjs
• face-api.js : github.com/justadudewhohacks/face-api.js
• Natural : github.com/NaturalNode/natural
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/
Chatbot Araçları
• Microsoft Bot Framework : dev.botframework.com/
• Wit.ai : wit.ai/
• Dialogflow : dialogflow.com/
• IBM Watson : ibm.com/watson/how-to-build-a-chatbot
• Pardorabots : home.pandorabots.com/home.html
• Botpress : botpress.io/
• Botkit : botkit.ai/
• RASA Stack : rasa.com/
• ChatterBot : github.com/gunthercox/ChatterBot
DataSet
• Kaggle Datasets : www.kaggle.com/datasets
• Google DataSet Search : toolbox.google.com/datasetsearch
• Baidu DataSets : ai.baidu.com/broad/introduction
• UCI Machine L. Repository : archive.ics.uci.edu/ml/index.php
• MNIST : yann.lecun.com/exdb/mnist/ (Handwritten Digits)
• ImageNet : www.image-net.org/ (WordNet Hierarchy)
• CIFAR-10 & CIFAR-100 : www.cs.toronto.edu/~kriz/cifar.html (Tiny Images)
• COCO : cocodataset.org/
• Places : places.csail.mit.edu/ (Natural Scenes)
• USA Government : catalog.data.gov/dataset
• OpennEuro : openneuro.org/public/datasets
• HealthData.Gov : healthdata.gov/search/type/dataset
• RAVDESS
– The Ryerson Audio-Visual Database of Emotional Speech and Song
– https://www.kaggle.com/uwrfkaggler/ravdess-emotional-speech-audio
• DBNet (Driving Behavior DataSet)
– www.dbehavior.net / github.com/driving-behavior/DBNet
AI Production
Donanımsal Altyapı
Aksi Halde!
Sıradan Bir Donanım Üzerinde Model Eğitimi
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!
AI Production
Donanım [Development Machine]
Bu versiyondan önceki CUDA destekli GPU’lar da işe yaramaz.
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…
AI Production
Donanım [Development Machine]
‘Kendin pişir kendin ye’ ile daha ucuza geliyor.
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!
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
AI Production
Donanım [Development Machine]
Önemli olan kısım!
AI Production
Donanım [Development Machine]
Compute Capability
AI Production
Machine Learning Geliştirici Rehberi
Geliştirici Rehberi
Machine Learning
• Kişisel Bilgisayarlar
– Python, Anaconda, VSCode, PyCharm vb…
• Bulut Bilgisayar Çözümleri (Ücretsiz)
– Microsoft Azure Notebook (CPU Destekli)
• notebooks.azure.com/
– Google Colab (GPU Destekli)
• colab.research.google.com/
• Bulut Bilgisayar Çözümleri (Ücretli)
– Amazon Machine Learning
• aws.amazon.com/machine-learning
– Google Cloud
• cloud.google.com/ml-engine/
– MS Azure ML Studio
• studio.azureml.net/
– IBM Watson
• ibm.com/tr-tr/cloud/machine-learning
Başlangıç için en ideal çözüm
Machine Learning projesi
Nasıl Yayınlanır?
MartinFowler.com
MartinFowler.com
Machine Learning projesi
Nasıl Yayınlanır?
• TensorFlow Serving
– https://www.tensorflow.org/serving
– https://github.com/tensorflow/serving
– Architecture
• https://github.com/tensorflow/serving/blob/master/tensorflow_serving/g3doc/architecture.md
– Docker
• https://github.com/tensorflow/serving/blob/master/tensorflow_serving/g3doc/docker.md
– Kubernetes
• https://github.com/tensorflow/serving/blob/master/tensorflow_serving/g3doc/serving_kubernetes.md
– REST API
• https://github.com/tensorflow/serving/blob/master/tensorflow_serving/g3doc/api_rest.md
– gRPC
• https://github.com/tensorflow/serving/tree/master/tensorflow_serving/apis
• PyTorch Serve
– https://github.com/pytorch/serve
– https://github.com/pytorch/serve/blob/master/docs/README.md
– https://pytorch.org/blog/model-serving-in-pyorch/
– https://pytorch.org/serve/
Machine Learning Model Deployment
TensorFlow Serving
Machine Learning Model Deployment
TensorFlow Serving
Machine Learning Model Deployment
TensorFlow Serving
Machine Learning Model Deployment
PyTorch Serve
AI Production
Model Serving Yaklaşımı Belirlemek
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)
AI Production
Model Deployment Yaklaşımı Belirlemek
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
AI Production
Örnek İnceleme : Shadow Mode
https://alexgude.com/blog/machine-learning-deployment-shadow-mode/
Yöntem 1 Yöntem 2
AI Production
Machine Learning Model Exchange
ONNX : The Open Neural Network EXchange
AI Production
Model Exchange : ONNX
ONNX : https://github.com/onnx/onnx
ONNX Runtime : https://github.com/microsoft/onnxruntime
AI Production
Model Exchange : ONNX
ONNX : https://github.com/onnx/onnx
ONNX Runtime : https://github.com/microsoft/onnxruntime
MLaaS
Bir MLaaS hizmeti hem Batch API hem de Realtime API desteği sunmalıdır.
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.
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
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.
MLaaS
Batch API ile Yapılabilecekler(Yaptıklarımız)
• Klasik RESTful servis gereksinimlerinde.
• Log alma/toplama ve streaming vb…
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.
MLaaS
Modeli API/Web App. olarak yayına vermek yeterli mi?
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.
Nasıl Öğrenilir?
PCA: Principal Component Analysis
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.
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.
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.
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.
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.
Film
• Matrix, 1999
• Yapay Zeka, 2001
• Ex Machine, 2014
• Kartal Göz, 2008
• Azınlık Raporu, 2002
• Transcendence, 2014
• Chappie, 2015
• Blade Runner : 2049, 2017
• Ben Robot, 2014
• Ölüm Makinesi, 2013
• Automata, 2014
• Alita : Savaş Meleği, 2019
• Kill Command, 2016
• Terminator, 1984
• RoboCop, 1987
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
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
• 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/
• 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/
Cihan Özhan
Bağlantılar
• cihanozhan.com
• linkedin.com/in/cihanozhan
• medium.com/@cihanozhan
• youtube.com/cihanozhan
• twitter.com/UnmannedCode
• github.com/cihanozhan
E-Mail
• cihan@deeplab.co

Mais conteúdo relacionado

Mais procurados

Derin Öğrenme Nedir? - Akademik Bilişim 2016 Sunumu
Derin Öğrenme Nedir? - Akademik Bilişim 2016 SunumuDerin Öğrenme Nedir? - Akademik Bilişim 2016 Sunumu
Derin Öğrenme Nedir? - Akademik Bilişim 2016 SunumuFerhat Kurt
 
AI and Deep Learning
AI and Deep LearningAI and Deep Learning
AI and Deep LearningManoj Kumar
 
Artificial Intelligence
Artificial IntelligenceArtificial Intelligence
Artificial IntelligenceSaurabh Kawli
 
Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)Cihan Özhan
 
Simplified Introduction to AI
Simplified Introduction to AISimplified Introduction to AI
Simplified Introduction to AIDeepu S Nath
 
Automated Machine Learning (Auto ML)
Automated Machine Learning (Auto ML)Automated Machine Learning (Auto ML)
Automated Machine Learning (Auto ML)Hayim Makabee
 
Artificial Intelligence (Current state and future of A.I) by Mudasir Khushk
Artificial Intelligence (Current state and future of A.I) by Mudasir KhushkArtificial Intelligence (Current state and future of A.I) by Mudasir Khushk
Artificial Intelligence (Current state and future of A.I) by Mudasir KhushkMudsaraliKhushik
 
KSIT Tech Form - Introduction to artificial intelligence (AI)
KSIT Tech Form - Introduction to artificial intelligence (AI)KSIT Tech Form - Introduction to artificial intelligence (AI)
KSIT Tech Form - Introduction to artificial intelligence (AI)Santosh Kumar
 
Artificial Intelligence in cybersecurity
Artificial Intelligence in cybersecurityArtificial Intelligence in cybersecurity
Artificial Intelligence in cybersecuritySmartlearningUK
 
Intro to deep learning
Intro to deep learning Intro to deep learning
Intro to deep learning David Voyles
 
Deep learning tutorial 9/2019
Deep learning tutorial 9/2019Deep learning tutorial 9/2019
Deep learning tutorial 9/2019Amr Rashed
 
Artificial intelligence
Artificial intelligenceArtificial intelligence
Artificial intelligenceUTKARSH NATH
 
"Large-Scale Deep Learning for Building Intelligent Computer Systems," a Keyn...
"Large-Scale Deep Learning for Building Intelligent Computer Systems," a Keyn..."Large-Scale Deep Learning for Building Intelligent Computer Systems," a Keyn...
"Large-Scale Deep Learning for Building Intelligent Computer Systems," a Keyn...Edge AI and Vision Alliance
 
AI and machine learning
AI and machine learningAI and machine learning
AI and machine learningITU
 
Introduction to Deep learning
Introduction to Deep learningIntroduction to Deep learning
Introduction to Deep learningleopauly
 
Introduction to LLMs
Introduction to LLMsIntroduction to LLMs
Introduction to LLMsLoic Merckel
 

Mais procurados (20)

Yapay Zeka ve Makine Öğrenmesi
Yapay Zeka ve Makine ÖğrenmesiYapay Zeka ve Makine Öğrenmesi
Yapay Zeka ve Makine Öğrenmesi
 
Introduction to Deep learning
Introduction to Deep learningIntroduction to Deep learning
Introduction to Deep learning
 
Derin Öğrenme Nedir? - Akademik Bilişim 2016 Sunumu
Derin Öğrenme Nedir? - Akademik Bilişim 2016 SunumuDerin Öğrenme Nedir? - Akademik Bilişim 2016 Sunumu
Derin Öğrenme Nedir? - Akademik Bilişim 2016 Sunumu
 
AI and Deep Learning
AI and Deep LearningAI and Deep Learning
AI and Deep Learning
 
Artificial Intelligence
Artificial IntelligenceArtificial Intelligence
Artificial Intelligence
 
Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)
 
Simplified Introduction to AI
Simplified Introduction to AISimplified Introduction to AI
Simplified Introduction to AI
 
Automated Machine Learning (Auto ML)
Automated Machine Learning (Auto ML)Automated Machine Learning (Auto ML)
Automated Machine Learning (Auto ML)
 
Artificial Intelligence (Current state and future of A.I) by Mudasir Khushk
Artificial Intelligence (Current state and future of A.I) by Mudasir KhushkArtificial Intelligence (Current state and future of A.I) by Mudasir Khushk
Artificial Intelligence (Current state and future of A.I) by Mudasir Khushk
 
KSIT Tech Form - Introduction to artificial intelligence (AI)
KSIT Tech Form - Introduction to artificial intelligence (AI)KSIT Tech Form - Introduction to artificial intelligence (AI)
KSIT Tech Form - Introduction to artificial intelligence (AI)
 
Artificial Intelligence in cybersecurity
Artificial Intelligence in cybersecurityArtificial Intelligence in cybersecurity
Artificial Intelligence in cybersecurity
 
Intro to deep learning
Intro to deep learning Intro to deep learning
Intro to deep learning
 
Deep learning tutorial 9/2019
Deep learning tutorial 9/2019Deep learning tutorial 9/2019
Deep learning tutorial 9/2019
 
Artificial intelligence
Artificial intelligenceArtificial intelligence
Artificial intelligence
 
Blue brain
Blue brainBlue brain
Blue brain
 
"Large-Scale Deep Learning for Building Intelligent Computer Systems," a Keyn...
"Large-Scale Deep Learning for Building Intelligent Computer Systems," a Keyn..."Large-Scale Deep Learning for Building Intelligent Computer Systems," a Keyn...
"Large-Scale Deep Learning for Building Intelligent Computer Systems," a Keyn...
 
AI and machine learning
AI and machine learningAI and machine learning
AI and machine learning
 
Introduction to Deep learning
Introduction to Deep learningIntroduction to Deep learning
Introduction to Deep learning
 
Introduction to LLMs
Introduction to LLMsIntroduction to LLMs
Introduction to LLMs
 
Math of Explaining SAM
Math of Explaining SAMMath of Explaining SAM
Math of Explaining SAM
 

Semelhante a AI and Machine Learning - Today’s Implementation Realities

Derin Öğrenme (Deep Learning) Nedir?
Derin Öğrenme (Deep Learning) Nedir?Derin Öğrenme (Deep Learning) Nedir?
Derin Öğrenme (Deep Learning) Nedir?eburhan
 
Hafta 9 - e-Öğrenmede Sınırdaki Teknolojiler
Hafta 9 - e-Öğrenmede Sınırdaki TeknolojilerHafta 9 - e-Öğrenmede Sınırdaki Teknolojiler
Hafta 9 - e-Öğrenmede Sınırdaki TeknolojilerMehmet Emin Mutlu
 
Siber Güvenlikte Yapay Zeka Uygulamaları - Webinar
Siber Güvenlikte Yapay Zeka Uygulamaları - WebinarSiber Güvenlikte Yapay Zeka Uygulamaları - Webinar
Siber Güvenlikte Yapay Zeka Uygulamaları - WebinarBGA Cyber Security
 
Yapay zeka nedir .docx
Yapay zeka nedir                             .docxYapay zeka nedir                             .docx
Yapay zeka nedir .docxSEO Uzmanı
 
Veri Görselleştirme ve Grafik Datamining
Veri Görselleştirme ve Grafik DataminingVeri Görselleştirme ve Grafik Datamining
Veri Görselleştirme ve Grafik DataminingFatma ÇINAR
 
ÖNCEL AKADEMİ: ÖZEL KONULAR
ÖNCEL AKADEMİ: ÖZEL KONULARÖNCEL AKADEMİ: ÖZEL KONULAR
ÖNCEL AKADEMİ: ÖZEL KONULARAli Osman Öncel
 
Veri Madenciliği ve Makine Öğrenmesi Konularına Giriş
Veri Madenciliği ve Makine Öğrenmesi Konularına GirişVeri Madenciliği ve Makine Öğrenmesi Konularına Giriş
Veri Madenciliği ve Makine Öğrenmesi Konularına GirişŞadi Evren ŞEKER
 
Bugün Yarınların için Ne Yapacaksın?
Bugün Yarınların için Ne Yapacaksın?Bugün Yarınların için Ne Yapacaksın?
Bugün Yarınların için Ne Yapacaksın?Burak Selim Şenyurt
 
Ünal (2019) doktora tez sunumu
Ünal (2019) doktora tez sunumuÜnal (2019) doktora tez sunumu
Ünal (2019) doktora tez sunumuAslhannal3
 
Bilişim teknolojileri dersnotu
Bilişim teknolojileri dersnotuBilişim teknolojileri dersnotu
Bilişim teknolojileri dersnotugulmer23
 
Eğitimde Teknoloji Kullanımı - 11. Eğitimde İÖK - Sabancı Üniversitesi - 3 Ma...
Eğitimde Teknoloji Kullanımı - 11. Eğitimde İÖK - Sabancı Üniversitesi - 3 Ma...Eğitimde Teknoloji Kullanımı - 11. Eğitimde İÖK - Sabancı Üniversitesi - 3 Ma...
Eğitimde Teknoloji Kullanımı - 11. Eğitimde İÖK - Sabancı Üniversitesi - 3 Ma...oguzcanyavas
 
Gartner Tr2009 Istanbul May27 Qvbi Tech Summary
Gartner Tr2009 Istanbul May27 Qvbi Tech SummaryGartner Tr2009 Istanbul May27 Qvbi Tech Summary
Gartner Tr2009 Istanbul May27 Qvbi Tech SummaryMUZAFFER YONTEM
 
Web İçin Teknoloji Geliştirmek
Web İçin Teknoloji GeliştirmekWeb İçin Teknoloji Geliştirmek
Web İçin Teknoloji GeliştirmekVolkan Özçelik
 
Göğüs Kanseri Verilerinin Yapay Sinir Ağları ile Sınıflandırılması (Classific...
Göğüs Kanseri Verilerinin Yapay Sinir Ağları ile Sınıflandırılması (Classific...Göğüs Kanseri Verilerinin Yapay Sinir Ağları ile Sınıflandırılması (Classific...
Göğüs Kanseri Verilerinin Yapay Sinir Ağları ile Sınıflandırılması (Classific...Metin Uslu
 
Öğrenme Deneyimlerinin Yönetiminde Yaşam Deneyimlerini Yakalamak İçin Çok Kat...
Öğrenme Deneyimlerinin Yönetiminde Yaşam Deneyimlerini Yakalamak İçin Çok Kat...Öğrenme Deneyimlerinin Yönetiminde Yaşam Deneyimlerini Yakalamak İçin Çok Kat...
Öğrenme Deneyimlerinin Yönetiminde Yaşam Deneyimlerini Yakalamak İçin Çok Kat...Mehmet Emin Mutlu
 
Acik ve uzaktan ogrenme alani
Acik ve uzaktan ogrenme alaniAcik ve uzaktan ogrenme alani
Acik ve uzaktan ogrenme alanihasangunaydin
 

Semelhante a AI and Machine Learning - Today’s Implementation Realities (20)

Derin Öğrenme (Deep Learning) Nedir?
Derin Öğrenme (Deep Learning) Nedir?Derin Öğrenme (Deep Learning) Nedir?
Derin Öğrenme (Deep Learning) Nedir?
 
Hafta 9 - e-Öğrenmede Sınırdaki Teknolojiler
Hafta 9 - e-Öğrenmede Sınırdaki TeknolojilerHafta 9 - e-Öğrenmede Sınırdaki Teknolojiler
Hafta 9 - e-Öğrenmede Sınırdaki Teknolojiler
 
Siber Güvenlikte Yapay Zeka Uygulamaları - Webinar
Siber Güvenlikte Yapay Zeka Uygulamaları - WebinarSiber Güvenlikte Yapay Zeka Uygulamaları - Webinar
Siber Güvenlikte Yapay Zeka Uygulamaları - Webinar
 
Yapay zeka nedir .docx
Yapay zeka nedir                             .docxYapay zeka nedir                             .docx
Yapay zeka nedir .docx
 
Dijital trendler
Dijital trendlerDijital trendler
Dijital trendler
 
Veri Görselleştirme ve Grafik Datamining
Veri Görselleştirme ve Grafik DataminingVeri Görselleştirme ve Grafik Datamining
Veri Görselleştirme ve Grafik Datamining
 
Visual analysis
Visual analysisVisual analysis
Visual analysis
 
ÖNCEL AKADEMİ: ÖZEL KONULAR
ÖNCEL AKADEMİ: ÖZEL KONULARÖNCEL AKADEMİ: ÖZEL KONULAR
ÖNCEL AKADEMİ: ÖZEL KONULAR
 
yapay zeka.pdf
yapay zeka.pdfyapay zeka.pdf
yapay zeka.pdf
 
Veri Madenciliği ve Makine Öğrenmesi Konularına Giriş
Veri Madenciliği ve Makine Öğrenmesi Konularına GirişVeri Madenciliği ve Makine Öğrenmesi Konularına Giriş
Veri Madenciliği ve Makine Öğrenmesi Konularına Giriş
 
Bugün Yarınların için Ne Yapacaksın?
Bugün Yarınların için Ne Yapacaksın?Bugün Yarınların için Ne Yapacaksın?
Bugün Yarınların için Ne Yapacaksın?
 
Ünal (2019) doktora tez sunumu
Ünal (2019) doktora tez sunumuÜnal (2019) doktora tez sunumu
Ünal (2019) doktora tez sunumu
 
Bilişim teknolojileri dersnotu
Bilişim teknolojileri dersnotuBilişim teknolojileri dersnotu
Bilişim teknolojileri dersnotu
 
Eğitimde Teknoloji Kullanımı - 11. Eğitimde İÖK - Sabancı Üniversitesi - 3 Ma...
Eğitimde Teknoloji Kullanımı - 11. Eğitimde İÖK - Sabancı Üniversitesi - 3 Ma...Eğitimde Teknoloji Kullanımı - 11. Eğitimde İÖK - Sabancı Üniversitesi - 3 Ma...
Eğitimde Teknoloji Kullanımı - 11. Eğitimde İÖK - Sabancı Üniversitesi - 3 Ma...
 
Gartner Tr2009 Istanbul May27 Qvbi Tech Summary
Gartner Tr2009 Istanbul May27 Qvbi Tech SummaryGartner Tr2009 Istanbul May27 Qvbi Tech Summary
Gartner Tr2009 Istanbul May27 Qvbi Tech Summary
 
Web İçin Teknoloji Geliştirmek
Web İçin Teknoloji GeliştirmekWeb İçin Teknoloji Geliştirmek
Web İçin Teknoloji Geliştirmek
 
Göğüs Kanseri Verilerinin Yapay Sinir Ağları ile Sınıflandırılması (Classific...
Göğüs Kanseri Verilerinin Yapay Sinir Ağları ile Sınıflandırılması (Classific...Göğüs Kanseri Verilerinin Yapay Sinir Ağları ile Sınıflandırılması (Classific...
Göğüs Kanseri Verilerinin Yapay Sinir Ağları ile Sınıflandırılması (Classific...
 
Öğrenme Deneyimlerinin Yönetiminde Yaşam Deneyimlerini Yakalamak İçin Çok Kat...
Öğrenme Deneyimlerinin Yönetiminde Yaşam Deneyimlerini Yakalamak İçin Çok Kat...Öğrenme Deneyimlerinin Yönetiminde Yaşam Deneyimlerini Yakalamak İçin Çok Kat...
Öğrenme Deneyimlerinin Yönetiminde Yaşam Deneyimlerini Yakalamak İçin Çok Kat...
 
Yapay Zeka
Yapay ZekaYapay Zeka
Yapay Zeka
 
Acik ve uzaktan ogrenme alani
Acik ve uzaktan ogrenme alaniAcik ve uzaktan ogrenme alani
Acik ve uzaktan ogrenme alani
 

Mais de Cihan Özhan

MongoDB - NoSQL Overview
MongoDB - NoSQL OverviewMongoDB - NoSQL Overview
MongoDB - NoSQL OverviewCihan Özhan
 
MongoDB - JSON'a Genel Bakış
MongoDB - JSON'a Genel BakışMongoDB - JSON'a Genel Bakış
MongoDB - JSON'a Genel BakışCihan Özhan
 
Blockchain : Decentralized Application Development (Turkish)
Blockchain : Decentralized Application Development (Turkish)Blockchain : Decentralized Application Development (Turkish)
Blockchain : Decentralized Application Development (Turkish)Cihan Özhan
 
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve Yapılar
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve YapılarGo Book - Fonksiyonlar, Metotlar, Arayüzler ve Yapılar
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve YapılarCihan Özhan
 
Golang Book - Go Programlama Dili Temelleri
Golang Book - Go Programlama Dili TemelleriGolang Book - Go Programlama Dili Temelleri
Golang Book - Go Programlama Dili TemelleriCihan Özhan
 
Golang Book - Genel Bakış
Golang Book - Genel BakışGolang Book - Genel Bakış
Golang Book - Genel BakışCihan Özhan
 
Golang Book - Giriş
Golang Book - GirişGolang Book - Giriş
Golang Book - GirişCihan Özhan
 
MLaaS - Presenting & Scaling Machine Learning Models as Microservices
MLaaS - Presenting & Scaling Machine Learning Models as MicroservicesMLaaS - Presenting & Scaling Machine Learning Models as Microservices
MLaaS - Presenting & Scaling Machine Learning Models as MicroservicesCihan Özhan
 
Python Programlama Dili
Python Programlama DiliPython Programlama Dili
Python Programlama DiliCihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 17
İleri Seviye T-SQL Programlama - Chapter 17İleri Seviye T-SQL Programlama - Chapter 17
İleri Seviye T-SQL Programlama - Chapter 17Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 16
İleri Seviye T-SQL Programlama - Chapter 16İleri Seviye T-SQL Programlama - Chapter 16
İleri Seviye T-SQL Programlama - Chapter 16Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 12
İleri Seviye T-SQL Programlama - Chapter 12İleri Seviye T-SQL Programlama - Chapter 12
İleri Seviye T-SQL Programlama - Chapter 12Cihan Özhan
 

Mais de Cihan Özhan (20)

MongoDB Overview
MongoDB OverviewMongoDB Overview
MongoDB Overview
 
MongoDB - NoSQL Overview
MongoDB - NoSQL OverviewMongoDB - NoSQL Overview
MongoDB - NoSQL Overview
 
MongoDB - JSON'a Genel Bakış
MongoDB - JSON'a Genel BakışMongoDB - JSON'a Genel Bakış
MongoDB - JSON'a Genel Bakış
 
Blockchain : Decentralized Application Development (Turkish)
Blockchain : Decentralized Application Development (Turkish)Blockchain : Decentralized Application Development (Turkish)
Blockchain : Decentralized Application Development (Turkish)
 
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve Yapılar
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve YapılarGo Book - Fonksiyonlar, Metotlar, Arayüzler ve Yapılar
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve Yapılar
 
Golang Book - Go Programlama Dili Temelleri
Golang Book - Go Programlama Dili TemelleriGolang Book - Go Programlama Dili Temelleri
Golang Book - Go Programlama Dili Temelleri
 
Golang Book - Genel Bakış
Golang Book - Genel BakışGolang Book - Genel Bakış
Golang Book - Genel Bakış
 
Golang Book - Giriş
Golang Book - GirişGolang Book - Giriş
Golang Book - Giriş
 
MLaaS - Presenting & Scaling Machine Learning Models as Microservices
MLaaS - Presenting & Scaling Machine Learning Models as MicroservicesMLaaS - Presenting & Scaling Machine Learning Models as Microservices
MLaaS - Presenting & Scaling Machine Learning Models as Microservices
 
Python Programlama Dili
Python Programlama DiliPython Programlama Dili
Python Programlama Dili
 
İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21
 
İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20
 
İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19
 
İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18
 
İleri Seviye T-SQL Programlama - Chapter 17
İleri Seviye T-SQL Programlama - Chapter 17İleri Seviye T-SQL Programlama - Chapter 17
İleri Seviye T-SQL Programlama - Chapter 17
 
İleri Seviye T-SQL Programlama - Chapter 16
İleri Seviye T-SQL Programlama - Chapter 16İleri Seviye T-SQL Programlama - Chapter 16
İleri Seviye T-SQL Programlama - Chapter 16
 
İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15
 
İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14
 
İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13
 
İleri Seviye T-SQL Programlama - Chapter 12
İleri Seviye T-SQL Programlama - Chapter 12İleri Seviye T-SQL Programlama - Chapter 12
İleri Seviye T-SQL Programlama - Chapter 12
 

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.
  • 4. Klişe No : 85496477
  • 5.
  • 6.
  • 7.
  • 8.
  • 10.
  • 11.
  • 12.
  • 13.
  • 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.
  • 15. Neuron & Neural Network
  • 17.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24. Inputs to a multilayer perceptron network
  • 25.
  • 26.
  • 27. Deep Learning + Computer Vision
  • 28. Biyomimetik Kaynaklar • http://www.khanacademy.org.tr/ • https://biomimicry.org/ • https://toolbox.biomimicry.org/introduction/biomimicry-film/ • https://biomimicry.net/ • https://www.learnbiomimicry.com/ (Ücretli Kurslar) • Kitaplar : https://biomimicry.org/summer-reading-list-biomimics/ • Kitaplar : https://www.goodreads.com/shelf/show/biomimicry
  • 29.
  • 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
  • 42.
  • 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
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 63.
  • 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.
  • 68. Image Segmentation (Example - Retail Image Recognition)
  • 69.
  • 70.
  • 71.
  • 72.
  • 75.
  • 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.
  • 79.
  • 80.
  • 81.
  • 82.
  • 84.
  • 85.
  • 86.
  • 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ı
  • 94. Otonom Araçlar Türler • Otonom Araç Türleri – Kara Araçları – Hava Araçları – Deniz Araçları – Sualtı Araçları
  • 95. Otonom Araçlar • Otonom Otomobil • Otonom Minibüs ve Otobüs • Otonom İş Makinesi • Otonom Sualtı Araçları • Otonom Uzay Araçları
  • 96.
  • 97.
  • 105.
  • 106.
  • 107.
  • 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.
  • 112.
  • 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.
  • 122. Model Lifecycle Machine Learning Model Development Lifecycle
  • 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.
  • 126.
  • 128.
  • 129.
  • 130. Etiketleme Araçları • Etiketleme araçları için GitHub kaynakları – github.com/heartexlabs/awesome-data-labeling – github.com/jsbroks/awesome-dataset-tools – github.com/rodrigofay/awesome-data-labeling
  • 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.
  • 134.
  • 135.
  • 136.
  • 137. AI Production & MLaaS Ürünleşme Sürecine Genel Bakış
  • 138. ‘Machine Learning girişimlerinin %85’i hayata geçemiyor.’ Neden?
  • 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
  • 141. MLaaS Üretmek Vs. Tüketmek Tüketim : Bir Cloud MLaaS hizmetinin kullanıcısı olmak. Üretim : Bir MLaaS hizmetinin üreticisi olmak.
  • 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!
  • 146. ‘Machine Learning girişimlerinin %85’i hayata geçemiyor.’ %15’lik dilim içerisinde nasıl olabiliriz?
  • 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.
  • 154. Programlama Dilleri • Python – github.com/vinta/awesome-python – slideshare.net/cihanzhan/python-programlama-dili • C/C++ – github.com/fffaraz/awesome-cpp#machine-learning – awesome-cpp.readthedocs.io/en/latest/README.html – dlib.net/ml.html – mlpack.org/ • JavaScript – tensorflow.org/js • C# – scisharp.github.io/SciSharp/ • Go – … • Rust – arewelearningyet.com/
  • 155. Programlama Dili ve Ortamlar (Alternatif) • Scala • Julia • Octave • MatLab
  • 156. Kütüphaneler (Genel) • TensorFlow : tensorflow.org/ – Google’ın, karmaşık, yaygın – TensorFlow Lite : tensorflow.org/lite – TensorFlow.js : tensorflow.org/js • PyTorch : pytorch.org/ – Facebook’un, sade, performanslı, yaygın, güçlü – PyTorch Mobile : pytorch.org/mobile/home/ – PyTorch3D : github.com/facebookresearch/pytorch3d • Keras : keras.io/ – Daha az kod, başlangıç için önerilir • NLTK : nltk.org/ • CNTK : github.com/microsoft/CNTK • ML.NET : dotnet.microsoft.com/apps/machinelearning-ai/ml-dotnet • Theano : github.com/Theano/Theano • MxNet : mxnet.apache.org/ • Torch : torch.ch/ • Caffe : caffe.berkeleyvision.org/ • Knet : github.com/denizyuret/Knet.jl
  • 157. Kütüphaneler Çeşitli • SciKit-Learn : scikit-learn.org/ • Pandas : pandas.pydata.org/ • NumPy : numpy.org/ • H20 : h2o.ai/ • Matplotlib : matplotlib.org/ • Shogun : shogun-toolbox.org/
  • 158. Kütüphaneler Web • TensorFlow.js : tensorflow.org/js • Terrasect.js : github.com/naptha/tesseract.js • OpenCV.js : docs.opencv.org/3.4/d5/d10/tutorial_js_root.html • Brain.js : github.com/BrainJS • ml.js : github.com/mljs/ • stdlib-js : github.com/stdlib-js/stdlib • machinelearn.js : github.com/machinelearnjs/machinelearnjs • math.js : github.com/josdejong/mathjs • face-api.js : github.com/justadudewhohacks/face-api.js • Natural : github.com/NaturalNode/natural
  • 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/
  • 160. Chatbot Araçları • Microsoft Bot Framework : dev.botframework.com/ • Wit.ai : wit.ai/ • Dialogflow : dialogflow.com/ • IBM Watson : ibm.com/watson/how-to-build-a-chatbot • Pardorabots : home.pandorabots.com/home.html • Botpress : botpress.io/ • Botkit : botkit.ai/ • RASA Stack : rasa.com/ • ChatterBot : github.com/gunthercox/ChatterBot
  • 161. DataSet • Kaggle Datasets : www.kaggle.com/datasets • Google DataSet Search : toolbox.google.com/datasetsearch • Baidu DataSets : ai.baidu.com/broad/introduction • UCI Machine L. Repository : archive.ics.uci.edu/ml/index.php • MNIST : yann.lecun.com/exdb/mnist/ (Handwritten Digits) • ImageNet : www.image-net.org/ (WordNet Hierarchy) • CIFAR-10 & CIFAR-100 : www.cs.toronto.edu/~kriz/cifar.html (Tiny Images) • COCO : cocodataset.org/ • Places : places.csail.mit.edu/ (Natural Scenes) • USA Government : catalog.data.gov/dataset • OpennEuro : openneuro.org/public/datasets • HealthData.Gov : healthdata.gov/search/type/dataset • RAVDESS – The Ryerson Audio-Visual Database of Emotional Speech and Song – https://www.kaggle.com/uwrfkaggler/ravdess-emotional-speech-audio • DBNet (Driving Behavior DataSet) – www.dbehavior.net / github.com/driving-behavior/DBNet
  • 163. Aksi Halde! Sıradan Bir Donanım Üzerinde Model Eğitimi
  • 164.
  • 165.
  • 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!
  • 167. AI Production Donanım [Development Machine] Bu versiyondan önceki CUDA destekli GPU’lar da işe yaramaz.
  • 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…
  • 169. AI Production Donanım [Development Machine] ‘Kendin pişir kendin ye’ ile daha ucuza geliyor.
  • 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
  • 172. AI Production Donanım [Development Machine] Önemli olan kısım!
  • 173. AI Production Donanım [Development Machine] Compute Capability
  • 174. AI Production Machine Learning Geliştirici Rehberi
  • 175. Geliştirici Rehberi Machine Learning • Kişisel Bilgisayarlar – Python, Anaconda, VSCode, PyCharm vb… • Bulut Bilgisayar Çözümleri (Ücretsiz) – Microsoft Azure Notebook (CPU Destekli) • notebooks.azure.com/ – Google Colab (GPU Destekli) • colab.research.google.com/ • Bulut Bilgisayar Çözümleri (Ücretli) – Amazon Machine Learning • aws.amazon.com/machine-learning – Google Cloud • cloud.google.com/ml-engine/ – MS Azure ML Studio • studio.azureml.net/ – IBM Watson • ibm.com/tr-tr/cloud/machine-learning Başlangıç için en ideal çözüm
  • 176.
  • 180. Machine Learning projesi Nasıl Yayınlanır? • TensorFlow Serving – https://www.tensorflow.org/serving – https://github.com/tensorflow/serving – Architecture • https://github.com/tensorflow/serving/blob/master/tensorflow_serving/g3doc/architecture.md – Docker • https://github.com/tensorflow/serving/blob/master/tensorflow_serving/g3doc/docker.md – Kubernetes • https://github.com/tensorflow/serving/blob/master/tensorflow_serving/g3doc/serving_kubernetes.md – REST API • https://github.com/tensorflow/serving/blob/master/tensorflow_serving/g3doc/api_rest.md – gRPC • https://github.com/tensorflow/serving/tree/master/tensorflow_serving/apis • PyTorch Serve – https://github.com/pytorch/serve – https://github.com/pytorch/serve/blob/master/docs/README.md – https://pytorch.org/blog/model-serving-in-pyorch/ – https://pytorch.org/serve/
  • 181. Machine Learning Model Deployment TensorFlow Serving
  • 182. Machine Learning Model Deployment TensorFlow Serving
  • 183. Machine Learning Model Deployment TensorFlow Serving
  • 184. Machine Learning Model Deployment PyTorch Serve
  • 185. AI Production Model Serving Yaklaşımı Belirlemek
  • 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)
  • 187. AI Production Model Deployment Yaklaşımı Belirlemek
  • 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
  • 190. AI Production Machine Learning Model Exchange ONNX : The Open Neural Network EXchange
  • 191. AI Production Model Exchange : ONNX ONNX : https://github.com/onnx/onnx ONNX Runtime : https://github.com/microsoft/onnxruntime
  • 192. AI Production Model Exchange : ONNX ONNX : https://github.com/onnx/onnx ONNX Runtime : https://github.com/microsoft/onnxruntime
  • 193. MLaaS Bir MLaaS hizmeti hem Batch API hem de Realtime API desteği sunmalıdır.
  • 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.
  • 199. MLaaS Modeli API/Web App. olarak yayına vermek yeterli mi?
  • 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.
  • 201. Nasıl Öğrenilir? PCA: Principal Component Analysis
  • 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.
  • 207. Film • Matrix, 1999 • Yapay Zeka, 2001 • Ex Machine, 2014 • Kartal Göz, 2008 • Azınlık Raporu, 2002 • Transcendence, 2014 • Chappie, 2015 • Blade Runner : 2049, 2017 • Ben Robot, 2014 • Ölüm Makinesi, 2013 • Automata, 2014 • Alita : Savaş Meleği, 2019 • Kill Command, 2016 • Terminator, 1984 • RoboCop, 1987
  • 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/
  • 212. Cihan Özhan Bağlantılar • cihanozhan.com • linkedin.com/in/cihanozhan • medium.com/@cihanozhan • youtube.com/cihanozhan • twitter.com/UnmannedCode • github.com/cihanozhan E-Mail • cihan@deeplab.co

Notas do Editor

  1. - medium.com/@zxr.nju/what-is-the-kernel-trick-why-is-it-important-98a98db0961d
  2. https://enterprisersproject.com/article/2017/12/8-emerging-ai-jobs-it-pros
  3. Mask R-CNN
  4. Mask R-CNN : Detecting Empty Parking Lots
  5. Google Dublex https://www.youtube.com/watch?v=znNe4pMCsD4
  6. 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)
  7. - https://christophergs.com/machine%20learning/2019/03/17/how-to-deploy-machine-learning-models/
  8. - Realtime Vs Near-Realtime : https://www.skylinetechnologies.com/Blog/Skyline-Blog/November_2019/realtime-vs-near-realtime-data-pros-cons
  9. 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
  10. - https://opendatascience.com/tutorial-accelerate-and-productionize-ml-model-inferencing-using-open-source-tools/