Yapay Zeka ve Derin Öğrenmeye Başlama Rehberi
“Yapay zeka ve derin öğrenme alanında çalışma yapmak istiyorum ancak nereden ve nasıl başlayacağımı bilemiyorum!” diyenlerdenseniz bu yazı, en çok karşılaşılan sorulardan yola çıkarak hazırlanmış, bazen de güncellenen bir rehber niteliğindedir.
1. Yapay zeka nedir?
Yapay zeka, dar zeka ve yapay genel zeka olarak ikiye ayrılmaktadır.
Yapay genel zeka; biyolojik olarak insan sinir sisteminden esinlenerek matematiksel olarak tasarlanan görsel algılama, konuşma ve ses tanıma, hareket, muhasebe ve muhakeme yeteneğine sahip, kendi kendine öğrenme işlemlerini sürdürebilen yazılımsal ve donanımsal sistemler bütünüdür.
Yapay dar zeka ise belirli bir problemin çözümü için geliştirilen ve veriden öğrenen dar kapsamlı yapay zeka sistemleridir.
2. Yapay zeka öğrenmek zor mu? Kendi kendime öğrenebilir miyim?
Hayır, zor değil. Ancak yapay zeka, ciddi anlamda zaman ayırıp çalışmayı gerektiren bir alandır. Üniversitelerde, bilimsel konferanslarda, online eğitim platformlarında, bloglarda ve Youtube’da yer alan
- dokümanları,
- videoları,
- açık kaynaklı uygulamaları,
- akademik makaleleri
takip ederek seviyenize uygun şekilde kendi kendinize de öğrenmeniz mümkündür.
3. Yapay zeka algoritmalarını ve matematiğini nereden öğrenebilirim?
Yapay zekanın temelini öğrenmek önemlidir. Aksi halde geliştirici değil uyarlayıcı olursunuz. Bu yüzden yapay sinir ağları (artificial neural networks), makine öğrenmesi (machine learning), işlemsel zeka (computational intelligence), derin öğrenme (deep learning) gibi temel dersleri mutlaka takip etmelisiniz. Aşağıdaki uzun liste bu kaynakların bir kısmını sıralamaktadır.
Birçok değerli kaynağı kullanarak kendi hazırlamış olduğum Udemy’de yayınlanan Deep Learning A-Z™| Python ile Derin Öğrenme dersini de elbette tavsiye ederim!
Hazırladığım bir diğer video eğitim olan “Keras ile Derin Öğrenmeye Giriş” BTK Akademi — 1 Milyon İstihdam Projesi kapsamında çevrimiçi olarak yayınlanmaya başlandı. YouTube sohbeti ise hemen burada 👇🏻
Stanford Üniversitesi (Türkçe):
Başak Buluz, Yavuz Kömeçoğlu ve Cemal Gürpınar ile birlikte Türkçeleştirdiğimiz CS 221 ― Yapay Zekâ, CS 229 — Machine Learning ve CS 230 — Deep Learning ders içeriklerinden oluşturulmuş el kitaplarını da takip edebilirsiniz!
yz-ai: Yapay Zeka Araştırma İnisiyatifi
Yapay Öğrenme, Derin Öğrenme, Bilgisayarlı Görü, Doğal Dil İşleme ve Pekiştirmeli Öğrenme alanlarındaki projeler, akademik yayınlar, eğitici kaynaklar ve blog yazılarını bulacağınız yapay öğrenme platformu.
CS 229 — Makine Öğrenmesi El Kitabı
- Gözetimli Öğrenme El Kitabı
- Gözetimsiz Öğrenme El Kitabı
- Derin Öğrenme El Kitabı
- Makine Öğrenmesi ipuçları ve püf noktaları el kitabı
CS 230 — Derin Öğrenme El Kitabı
- Evrişimli Sinir Ağları el kitabı
- Tekrarlayan Yapay Sinir Ağları el kitabı
- Derin Öğrenme püf noktaları ve ipuçları el kitabı
Stanford Üniversitesi:
- CS221: Artificial Intelligence: Principles and Techniques
- CS229-Machine Learning
- CS224n-Natural Language Processing with Deep Learning
- CS231n-Convolutional Neural Networks for Visual Recognition
- deeplearnin.ai Kurslarının Sunumları
MIT (Massachusetts Teknoloji Enstitüsü):
- 6.034-Artificial Intelligence
- 6.867-Machine Learning
- 6.S191-Introduction to Deep Learning
- 6.S099-Artificial General Intelligence
- MIT Deep Learning (Lex Fridman)
Hacettepe Üniversitesi:
👽 Kapsamlı Derin Öğrenme Rehberi: Bu not defterine neden ihtiyacınız olabilir? 🕵
Derin Öğrenmede birçok parametre, hiperparametre ve konsept vardır. Bu alanda yeni olanlar için bazı temel konular üzerinden hızlıca geçmek için bu not defteri oluşturulmuştur.
Özellikle derin öğrenme terimleriyle karşılaştığınızda ne anlama geldiğini bilmeniz cümle içinde ne anlatıldığını doğru şekilde anlamanız için kritik önem arz etmektedir. Bu yüzden bu not defteri bir sözlük gibi de kullanabileceğiniz bir kaynak olma niteliğinde.
Online Eğitim Platformları:
Yapay zeka, makine öğrenmesi, derin öğrenme vb. online derslerin sertifikalı eğitimlerine ulaşabileceğiniz online eğitim platformları:
Coursera, Udacity, edX, fast.ai, Udemy, Google
Derin Öğrenme Kitabı:
Deep Learning Book-Ian Goodfellow and Yoshua Bengio and Aaron Courville
Tüm bunların yanında 2016 yılında ODTÜ, 2017 yılında Hacettepe Üniversitesi’nde gerçekleşmiş ve bu yıl Boğaziçi Üniversitesi’nde düzenlenen yapay öğrenme yaz okulları da gelişiminiz için faydalıdır.
Kuzeybatıda Yapay Öğrenme Yaz Okulu da 2019 yılında Koç Üniversitesi’nde gerçekleşti ve video içeriklerine de buradan ulaşabilirsiniz!
4. Yapay zeka için hangi programlama dillerini tercih etmeliyim?
Veri biliminde en çok kullanılan 5 programlama dili*:
- Python (%57),
- C/C++ (%44),
- Java (%41),
- R (%37), ve
- JavaScript (%28) dir.
Özellikle Python birçok derin öğrenme kütüphanesinin arka planında kullanılmasından dolayı en çok tercih edilen programlama dili iken veri görselleştirme içinse en tercih edilen dil R’dır. Python programlama dilinin bir diğer avantajı da hem akademik hem ticari uygulamalar için kullanılabilmesidir.
IEEE Spectrum’un 2018 için hazırladığı programlama dillerinin kullanımıyla ilgili araştırmanın sonuçları da şöyle:
5. Makine öğrenmesi ve Optimizasyon için kullanılabilecek diğer alternatifler nelerdir?
Elbette sadece 4. sorudaki programlama dilleri kullanılmamaktadır. En popüler 5 dilden sonra tercih edilen diğer ortamlar aşağıdaki gibidir:
- Scala
- Julia
- Ruby
- Octave
- MatLab
- SAS
6. Yapay zeka uygulaması geliştirmek için hangi araçları kullanmalıyım?
Kendi bilgisayarınızda:
Kullandığınız programlama diline göre uygun IDE (Integrated Development Environment-Tümleşik Geliştirme Ortamı) seçimi yapmalısınız. Örneğin en çok kullanılan Python dilinde çalışıyorsanız Anaconda (Package Management Tool-Paket Yönetim Servisi) ve/veya Visual Studio Code, Java için Eclipse tercih edebilirsiniz.
Ücretsiz bulut ortamında:
Microsoft Azure Notebook (sadece CPU) ve Google Colab (GPU desteği var) herhangi bir kurulum gerektirmeksizin uygulamanızı geliştirmenizi sağlamaktadır.
📺Google Colab kullanımı için anlatım videosu!
7. Derin öğrenme için GPU’ya ihtiyaç var diyorlar, doğru mu?
Doğru, ancak şart değil. Çünkü GPU’ya ihtiyacınız olup olmadığı çalışacağınız veri setine, modelinizin karmaşıklığına ve zaman kısıtınıza bağlıdır.
8. Peki TPU (Tensor İşlem Birimi) nedir ve ne denli ihtiyaç vardır?
Google’ın sunduğu bu teknolojinin arkasındaki ekibe göre, “Yapay sinir ağları temelinden faydalanan üretilen yapay zeka uygulamalarını eğitmek için kullanılan TPU’lar, CPU ve GPU’lara göre 15 ila 30 kat daha hızlıdır!”
✏️ Google Colab üzerine Adım Adım Google Colab Ücretsiz TPU Kullanımı için hazırladığım rehber yazıya buradan ulaşabilirsiniz!
TPU ile Yapay Sinir Ağlarınızı Çok Daha Hızlı Eğitin
🏋 Derin öğrenme modellerini bir de TPU kullanarak eğitmek ister misiniz?!
🍭 Çalışmaya bu bağlantıdan ulaşabilirsiniz!!!
Biyolojik beyinlerimizden daha hızlı işlem yapabildiğini söyleyen Martin Görner tarafından, Google I/O 2019 Konferansında, GoogleCodeLabs altında sunulan çalışmayı Türkçe olarak yayınlamamıza izin verdiği için teşekkür ederiz! 😎 Bu çalışmayı Başak Buluz ve Yavuz Kömeçoğlu ile birlikte çevirdik ve düzenledik. 💁🏻 👨🏻 🙋🏻
9. Hangi problem için hangi modelleri tercih etmeliyim/öğrenmeliyim?
Bunun için daha önce benzer problemlere nasıl yöntemler uygulanmış incelemeniz gerekir. Literatür taraması yapmanız şart ancak Andrew Ng’in Geoffrey Hinton ile yapmış olduğu “Derin Öğrenmenin Kahramanları” isimli röportajda Hinton’ın da söylediği gibi literatürde boğulmadan uygulamaları inceleyip yolunuza bakmalısınız. Teoriye hakim olmanız uygun modeli tasarlayabilmeniz için size gerekli bilgi birikimini sağlayacaktır. Çevrenizle fikir alışverişi yapmayı unutmayın!
- 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.
10. Python hiç bilmiyorum, nereden öğrenmeliyim?
Online eğitim platformlarında ilgili dersleri takip ederek ve yapılmış uygulamaları inceleyerek sıfırdan öğrenebilir ya da kendinizi geliştirebilirsiniz. Öğrenmesi kolay bir programlama dilidir.
Python ile derin öğrenme uygulamaları geliştirebilmek için Keras kütüphanesinin yaratıcısı ve Google AI araştırmacısı François Chollet’in Deep Learning with Python kitabına göz atmalısınız.
11. Makine öğrenmesi, derin öğrenme ve optimizasyon uygulamaları geliştirmek için hangi kütüphaneleri (frameworks) kullanmalıyım?
Yapay zeka yani makine öğrenmesi ve derin öğrenme için çeşitli üniversiteler ve şirketlerce geliştirilmiş farklı özelliklere sahip birçok kütüphane ve API’lar (Application Programming Interface-Uygulama Programlama Arayüzü) bulunmaktadır.
Kullanım yoğunluğuna göre bu kütüphaneler aşağıdaki tablodaki gibidir:
Tüm bunlara alternatif olarak aşağıdaki kütüphaneler de kullanılabilir;
12. Yapay zeka çalışırken neden ve ne kadar veriye ihtiyaç var?
Yapay zeka veriden öğrenen ve veriye ihtiyaç duyan bir araştırma alanıdır. Verinin hacmi, çeşitliliği ve sayıca fazlalığı büyüklüğünü gösteren 3 temel kavramdır. Verinin üretim hızı da bugün yapay zeka uygulamalarının iyileşmesi ve gerçekçi sonuçlar üretmesine destek ve itici bir güçtür.
13. Veri setlerine nereden ulaşabilirim?
Ücretsiz olarak ulaşabileceğiniz bir çok veri seti sağlayıcıları vardır. Bunların en bilinenleri:
14. Akademik ve/veya ticari çalışmalar için destek programları var mıdır?
Evet, tabi ki var. Akademik çalışmalar için Bilimsel Araştırma Projesi desteği yüksek lisans ve doktora öğrencilerine üniversitelerinde başvuru ile alınabilmektedir. TUBİTAK destekleri hem akademik hem ticari projeleri destekleyecek şekilde sınıflandırılmıştır. Bunların yanında GPU gibi donanım ihtiyacı için NVIDIA GPU Grant Programı ile projeniz için uygun donanımı talep edebilirsiniz.
15. Türkçe Doğal Dil İşleme konusunda çalışmak istiyorum, yola nasıl çıkmalıyım?
Kemal Oflazer ve Murat Saraçlar hocamızın yazdığı Turkish Natural Language Processing şahane eseri edinme şansınız varsa sağlam bir başlangıç olacaktır.
🌈 Ayrıca dil modelleme ve güncel modeller hakkında size mükemmel hap bilgiler veren Başak Buluz’un Susam Sokağı’ndan Doğal Dil İşlemeye araştırma yazısını da okursanız kendi yolunuzu bulmanız için ışık tutacaktır.
🌟Sebastian Ruder NLP konusunda takip edebileceğiniz kişilerdendir!
🔖 NLP Newsletter da sizi NLP konusunda güncel tutacak güzel bir kaynak!
16. Sürücüsüz araçlar için yapay zeka uygulaması geliştirmeye nereden başlamalıyım? *
Öncelikle yapay zeka nedir, nasıl geliştirebilirim sorularının yanıtlarını takip ederek temel bilgileri edinmelisiniz. Ardından bu dönem ilk kez MIT’de açılan “Deep Learning for Self-Driving Cars” ve Udacity’de açılan “Introduction to Self-Driving Cars” derslerini takip etmek size değer katacaktır.
17. Hayatın içinde yapay zeka uygulamaları nasıl karşımıza çıkıyor?
Günlük hayatımızda karar alma süreçlerimizi iyileştiren, hızlandıran onlarca örnek verilebilir. Bankacılık hizmetlerinden, öneri sistemleri, görüntü temelli çözümler, ses ve metin çözümleri gerek eğitim, sağlık, hukuk, otomotiv gibi çok çeşitli uygulama alanlarına entegre edilmiş durumdadır.
🚩 Yapay Zeka Kullanım Alanları ve Uygulamalarına Derinlemesine Bir Bakış yazımda uygulama alanlarına farklı örnekler bulabilirsiniz.
18. Finans alanında yapay zeka uygulamaları nelerdir? *
Yapay zekanın etki ettiği sektörlerden biri de finanstır. Finans alanında özellikle geleceğe yönelik tahminlerin yapılması ve kar marjının yüksek tutulması önem arz etmektedir. Borsa portföy yönetimi, algoritmik alım-satım işlemleri, sahtekarlık/dolandırıcılık (fraud) tespiti, kredi/sigorta taahhütleri, kullanıcı servisleri, güvenlik 2.0, sosyal medya ve basın kuruluşlarından alınan yazılı bilgilerden yola çıkarak duygu ve haber analizi, satış için ilgili tavsiyeler üretmek gibi çalışmalar makine öğrenmesi yöntemleriyle yapılabilmekte ve gelecekte de popülerliğini sürdürecek olan konulardandır.
19. Bitcoin tahmini yapmak için yapay zeka kullanabilir miyim? *
Makine öğrenmesi veya derin öğrenme modelleri ile kripto para tahmini yapmak da mümkündür. Henüz çok umut vadeden çalışmalar olmasa da makine öğrenmesiyle bitcoin fiyat tahmini yapılmasıyla ilgili çalışmalar bulunmaktadır. [1], [2], [3].
20. Derin öğrenme modeli tasarlamak için gereken donanımlar nelerdir?
Aslında sadece bir bilgisayar ve internet bağlantınızın olması temelde yeterlidir. Yani herkes evinde derin öğrenme modeli tasarlayabilir :) Ancak model tasarlamak bilimsel değerlere sahip olmakla mümkün olabilir. Bu yüzden bir model tasarımını temelden incelemiş olmanız gerekir. Özellikle öğrenciler için maddi kaynak sorun olacağından ücretsiz bulut servislerini çalışmalarınızda kullanmanızı tavsiye ederim. (Microsoft Azure Notebook, Google Colab kullanımı için Fuat’ın yazısı ve bu yazıyı özetlemek için hazırladığım anlatım videosuna buradan ulaşabilirsiniz.)
21. Yapay zeka eline silah alıp insanlığı yok edecek mi? *
Yapay zeka diğer bir çok gelişmeye devam eden bilim alanında olduğu gibi güvenlik ve açıklanabilirlik temellerine dayandırılmalıdır.
🔹 Yapay zeka çalışmalarında açıklanabilirlik hakkında daha fazla bilgi endinmek için “Açıklanabilir Yapay Zeka Nedir ve İhtiyaç Mıdır?” başlıklı yazımı inceleyebilirsiniz.
Andrew Ng’in de söylediği gibi “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!” Ancak bu demek değildir ki Mars’a iniş yapmaya çok zaman var. Bu yüzden çeşitli ülkelerde yapay zeka konusunun üzerine etik değerlerin ve hukuksal kuralların düzenlenmesi için çalışmalar yürütülmektedir. Henüz insanların yabancı olduğu bu alanda dikkati dağıtmadan konuyu anlayıp pozitif yönlü çalışmalar yapılmasını tavsiye ederim. Ülkemizde de yapay zeka bilinci ve etiği konusunda çalışmalar AI Ethics Lab kuruluşu ve İstanbul Barolar Birliği’nde düzenlenen seminerler ve çalışma grupları ile başlamıştır.
- Yapay Zeka Çağında Hukuk Çalıştayı da Türkiye’nin üç büyük barosu olan İstanbul, Ankara ve İzmir barolarınca desteklenen ilk raporunu oluşturmak için çalıştık. Kaynaklara buradan ulaşabilirsiniz.
22. Yapay zekanın cinsiyeti nedir? *
Bugün konu yapay zekanın cinsiyetini sorgulamaya bile gelebilmektedir. Ancak bugünün ve geleceğin alanı olan yapay zeka için üretilen bu tip spekülasyon ve manipülasyonlar ile vakit kaybetmek ülke insanının gelişimine herhangi bir katkı sağlamamaktadır. Yapay zekanın cinsiyetini sorgulamak yerine yapay zeka uygulaması üretmek sizi daha çok heyecanlandırmıyor mu?
23. Elon Musk yapay zekaya karşıysa neden yapay zeka üretmeye çalışıyor? *
Elon Musk’ın karşı olduğu ve tehdit olarak algıladığı şey yapay genel zekadır.
24. Yapay zeka algoritmalarının eksiklikleri ve fazlalıkları nelerdir?
Özellikle derin öğrenme özelinde konuşacak olursak; nesne tanıma, yüz tanıma, anomali tespiti, doğal dil işleme, çeviri vb. problem sahalarında çok fazla veri ihtiyacı bulunmaktadır. Veriye çok fazla ihtiyaç olmayan, sıfırdan kendi kendine öğrenmeye çalışan modellerle (Reinforcement Learning vb.) ise henüz bilgisayar oyunları dışında gündelik problemlere çözümler bulunamamaktadır. Bu süreçte, gelişimine yapay zeka alt dallarında eksiklikler olacaktır, bu da yeni çalışma alanları yaratacaktır.
25. Günümüzde mevcut olan yöntemlerle insan gibi davranan bir yapay zeka tasarlanabilir mi?
İnsanın sahip olduğu bütün özelliklerin, özellikle de muhakeme yeteneğinin, bir makineye kazandırılması için bir vakit söylemek için henüz çok erken.
26. Yapay zekalarda kullanılan nöronların insan gibi davranabilmesi için eksiklikler yok mu?
Evet, kesinlikle var. İnsan beyninin nasıl çalıştığının henüz tam olarak anlaşılamadığı için matematiksel olarak modellenmesi de tam anlamıyla mümkün olmamıştır. İnsan sinir sistemi ve beyin fonksiyonlarının açıklanmasıyla ilgili gelişmeler gerçekleştikçe beraberinde yapay zeka konularına da yeni çözümler üretilmesi mümkün olacaktır.
27. Nöronlar insan beyninde yüzlerce çeşit yapı ve görevle işlerken, en gelişmiş yapay zekada sadece birkaç yapı ve görev ile insan davranışı oluşturulamaz. Değil mi?
Haklısınız. Günümüzde genel olarak belirli problemlere rasyonel çözümler üretmek için yapay zeka sistemleri kullanılmaktadır. Bir bütünlük sağlanması için öğrenmenin az veriyle ve kendi kendine olması gerekiyor.
28. Veri görselleştirme gerekli midir ve bunu nasıl yapabilirim?
Önemli konulardan biri de veri görselleştirmedir. Çünkü bazen problemin anlaşılması noktasında en belirleyici konulardan biri olabilir. Bir problemi anlamak yola nasıl çıkmanız gerektiğini gösterir. Peki veri görselleştirme hakkında fikriniz yoksa nasıl öğrenebilirim diyorsanız bu ders sizin için güzel bir başlangıç olabilir.
29. Yapay Zeka ile sanat arasında bir bağ yaratılabilir mi?
Bunun için evet ya da hayır demek mümkün değil, oldukça göreceli bir konu olsa bile ben bilim ve sanat arasında mutlak bir bağ olduğunu düşünüyorum. Dolayısıyla sanat olarak algılanacak ürünler ortaya çıkabilir. Bunun için bir kaç örnek verebilirim: Müzik üretimi, görsel üretimi, veri görselleştirme ile hem görsel hem işitsel üretim, yenilikçi ürün tasarımları vb.
📺Artistik Stil Transferi Uygulaması anlatım videosu!
📺Bu tasarımları insan mı yaptı yoksa yapay zeka mı!
😎Katkı veren herkese teşekkür ederim.
*: Bu spesifik ve geniş konular ilgili detaylı içerikler üretilecektir.
Son güncelleme:25 .07.2020