yapay zeka ba lang rehberi machine learning deep learning computer vision nlp n.
Skip this Video
Loading SlideShow in 5 Seconds..
Yapay Zeka Başlangıç Rehberi - v1 PowerPoint Presentation
Yapay Zeka Başlangıç Rehberi - v1

Yapay Zeka Başlangıç Rehberi - v1

112 Views
- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Yapay Zeka Başlangıç RehberiMachine Learning, Deep Learning, ComputerVision, NLP www.cihanozhan.com Version : 02/2020

  2. Sunumun Hedefi • Yapay zekanın temel felsefesine genel bir bakış atmak. • Yapay zeka hakkında temel bir bakış açısı kazandırmak. • Yazılım geliştiricilere yapay zeka ile ilgili temel algoritmik bakış açısını kazandırmak. • Yapay zeka geliştirmek için kullanılabilecek açık kaynaklı çözümleri tanıtmak. • Düzenli güncellemeler ile genel ve hızlı bir başlangıç kaynağı oluşturmak.

  3. Taklit Nedir?Biyomimetik

  4. Biyotaklit & Yapay Zeka • Yapay zeka da temel olarak bir biyotaklit ü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 computervision’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.

  5. Yapay Zeka Nedir? • Bazen “Hesaplamaya Dayalı Zeka - ComputationalIntelligence” de adlandırılır. • Yapay Zeka kavramı 1957 yılında Dartmouth New Hampshire’de yapılan bir konferansta ortaya atılmıştır. • 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’ (TheAmericanAssociationforArtificialIntelligence) • ‘Yapay Zeka, insanın zekasını kullanarak yapabildiği işleri yapabilen makinenin oluşturulması hakkında bilimdir.‘ (MarvinMinsky.)

  6. Yapay Zeka Türleri • Yapay Zeka temelde ikiye ayrılır: • Dar Zeka ya da Yapay Zeka • Güçlü Zeka ya daYapay Genel Zeka

  7. 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 öğrenebilenyazılımsal ve donanımsal sistemler bütünüdür.

  8. YSA’nınDirilişi! • Son diriliş 2009 ve 2012 yıllarında başladı. • 2009’da G. Hinton ve öğrencileri konuşma tanıma problemi(speechrecognition) 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ı ComputerVision • 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. • G. Hinton ve öğrencisi AlexKrizhevsky, 2009’daki yöntemi kullanarak 7 katmanlı bir evrişimsel sinir ağı eğitti(CNN, ConvolutionalNeural Network) • Günümüzde bu ağa AlexNet diyoruz.

  9. Kaynak : G. Hinton’nınRoyalSociety’de verdiği konuşma, 22 Mayıs 2016, https://youtu.be/izrG86jycck

  10. Yapay ZekaBilimsel 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 Model. • Sinir Bilimi : İnsanın Aşağı Seviyede Beyin Faaliyet Model. • Biyoloji : Taklit Bilimi • Dilbilim : Temel Bilgisayar Bilimi

  11. Yapay Zekanın Kapsamı • İnsan Modeli ÜzerindenYapay Zeka • Beyin(Algı ve Öğrenme) : Machine Learning / Deep Learning • Görü : ComputerVision • Hafıza : BigData • İletişim : NLP & Speech Recognition • Fiziksel Beden : Robotics & IoT

  12. Yapay ZekaAlt Kavramlar • ArtificialIntelligence (AI) • Machine Learning (ML) • DeepLearning (DL) • Data Science (DC) • Machine Learning + Deep Learning + Domain • ComputerVision (CV) • Natural Language Processing (NLP) • Data Engineering • DevOps + Machine Learning

  13. NeuronVsNeural Network

  14. 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…

  15. Training & Test(DataSet)

  16. 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-degiletiketlerine 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.

  17. Öğrenme Türleri(Supervised Learning)

  18. Öğ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…

  19. Öğrenme Türleri(UnsupervisedLearning)

  20. Öğrenme Türleri(Unsupervised Learning) • Bu yöntemde hedef çıktılar verilmez, modelin kendi içinde verilen girdilerden bir şablonoluşturması beklenir. • Etiketsiz gözlemlerden öğrenme yapılan süreçtir. • 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ı (DimensionalityReduction) • Gözlemlerin özellik sayısını sadeleştirir(az/öz) ve en iyi öğrenme imkanını sunmayı hedefler.

  21. Öğrenme Türleri(Semi-Supervised Learning)

  22. Öğ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çüdedoğruolduğunu belirten dereceler verilir.

  23. 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.

  24. 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ı? Clouddaha 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?

  25. 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 DevOpsuzmanı/larına ihtiyacın olacak. Bunlara Data Engineer diyoruz.

  26. 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ı (FeatureExtraction) • Ham veriden özellik çıkarımı yapmak • Çıkarılan özelliklerden özellik seçimi(featureselection) 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.

  27. Etiketleme(Labeling)

  28. Etiketleme(Labeling)

  29. 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

  30. 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.

  31. Data Augmentation

  32. AI Ortamı(Özet) • Donanım • CPU • Sadece alıştırma kodları için… • GPU • Ürün ortamı için mecburi • HDD • Yüksek depolama alanı ve hızlı disk okuma-yazma kapasitesi • Yazılım • CloudComputing • 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…

  33. Donanımsal Bakış • 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) (DeepNeural 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.

  34. Hangi Model? • CNN (ConvolutionalNeural Networks - Evrişimli Sinir Ağları): • Nesne tanıma ve takip etme, stil transferi, kanser tespiti vb. • LSTM (LongShortTerm Memory – Uzun/Kısa Süreli Bellek): • Doğal dil işleme, çeviri, chatbot, finans uygulamaları vb. • GAN (GenerativeAdversarial 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.

  35. Hangi Programlama Dilleri? • Python • ML çalışmalarında kullanılan en yaygın dildir. Başlangıç, hızlı proje üretme amacıyla 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 machinelearning, deeplearning, computervision 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.