Yapay Zeka Geliştirme Rehberi
Uzun zamandır yapay zeka üzerine yaptığım çalışmalardan genel bazı temel bilgi ve tavsiyeleri toparlayıp, eğitimlerim ve internetten de gelen soruları toparlayarak bir sunum hazırlayıp yayınladım.
Bu sunumun amacı teknik kişilere yapay zeka hakkında genel bir bilgi kazandırmayı sağlamak ve sektöre yeni atılacak arkadaşlara da hızlı bir bakış atıp başlangıç yapabilmelerini sağlamaktır.
Makalenin 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
Biyomimetik Nedir?
Taklit Nedir?
Biyomimetik / Biyotaklit
Biyomimetik / Biyotaklit
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 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.
Yapay Zeka Nedir?
- Bazen “Hesaplamaya Dayalı Zeka – Computational Intelligence” 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’ (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 Türleri
- Yapay Zeka temelde ikiye ayrılır:
- Dar Zeka ya da Yapay Zeka
- Güçlü Zeka ya da Yapay Genel Zeka
Yapay Genel Zeka (Artificial General Intelligence)
- İ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.
Yapay Sinir Ağlarının Dirilişi!
- Son diriliş 2009 ve 2012 yıllarında başladı.
- 2009’da G. Hinton ve öğrencileri 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.
- G. 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.
Kim bu kişiler?
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 Model.
- Sinir Bilimi : İnsanın Aşağı Seviyede Beyin Faaliyet Model.
- Biyoloji : Taklit Bilimi
- Dilbilim : Temel Bilgisayar Bilimi
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’nın Alt Kavramları
- Artificial Intelligence (AI)
- Machine Learning (ML)
- Deep Learning (DL)
- Data Science (DC)
- Machine Learning + Deep Learning + Domain
- Computer Vision (CV)
- Natural Language Processing (NLP)
- Data Engineering
- DevOps + Machine Learning
Human Neuron Vs Neural Network
Human Neuron Vs Neural Network
Machine Learning Vs Deep Learning
Bir Neural Network’ün Çalışma Mantığı
Neural Network Algoritma Örnekleri
Yapay Zeka Terminolojileri
- 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…
Yapay Zeka’da Training & Test (DataSet)
Yapay Zeka Terminolojileri (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.
Makine Öğrenmesi Türleri
Makine Öğrenmesi Türleri
Makine Öğrenmesi Türleri (Supervised Learning)
Makine Öğrenmesi 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…
- Etiketlenmiş ne demektir : Örn. bir spam modelini eğitmek için ipuçları vermelisin.
- 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)
- 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.
- 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…
- Her bir gözlem için öğrenilen verilere bakarak değer tahmini yapmaya denir.
Makine Öğrenmesi Türleri (UnsupervisedLearning)
Makine Öğrenmesi 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 öğ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ı (Dimensionality Reduction)
- Gözlemlerin özellik sayısını sadeleştirir(az/öz) ve en iyi öğrenme imkanını sunmayı hedefler.
Makine Öğrenmesi Türleri(Semi-Supervised Learning)
Makine Öğrenmesi 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.
Yapay Zeka Modelinin 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.
Etiketleme (Labeling)
Etiketleme Araçları
- Etiketleme araçları için GitHub kaynakları
Data Augmentation
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
- 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…
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) (Deep Neural Network library)
- CUPTI (CUDA Profiling Tools Interface)
- Ö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.
Hangi Model?
- 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.
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 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
- C/C++
- JavaScript
- C#
- Go
- Rust
- Julia
- Octave
- MatLab
- Scala
Başlangıç Rehberi (Geliştiriciler İçin)
- Kişisel Bilgisayarlar
- Python, Anaconda, VSCode(Önerilir), PyCharm vb…
- Bulut Bilgisayar Çözümleri (Ücretsiz)
- Microsoft Azure Notebook (CPU Destekli)
- Google Colab (GPU Destekli)
- Bulut Bilgisayar Çözümleri (Ücretli)
- Amazon Machine Learning
- Google Cloud
- MS Azure ML Studio
- IBM Watson
Kütüphaneler (Genel)
- TensorFlow
- TensorFlow Lite : tensorflow.org/lite
- TensorFlow.js : tensorflow.org/js
- PyTorch
- PyTorch Mobile : pytorch.org/mobile/home/
- PyTorch3D : github.com/facebookresearch/pytorch3d
- Keras
- NLTK
- CNTK
- ML.NET
- Theano
- MxNet
- Torch
- Caffe
- Knet
Kütüphaneler (Çeşitli)
- SciKit-Learn
- Pandas
- NumPy
- H20
- Matplotlib
- Shogun
Kütüphaneler (Web)
- TensorFlow.js
- Terrasect.js
- OpenCV.js
- Brain.js
- ml.js
- stdlib-js
- machinelearn.js
- math.js
- face-api.js
- Natural
Kütüphaneler (Mobile)
- TensorFlow Lite
- PyTorch Mobile
- Google ML Kit for Mobile
- CoreML
- OpenCV Mobile (Deneysel)
Kütüphaneler (Chatbot)
- Microsoft Bot Framework
- Wit.ai
- Dialogflow
- IBM Watson
- Pardorabots
- Botpress
- Botkit
- RASA Stack
- ChatterBot
DataSet
- Kaggle Datasets
- Google DataSet Search
- Baidu DataSets
- UCI Machine L. Repository
- 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
- Places
- places.csail.mit.edu/ (Natural Scenes)
- USA Government
- OpennEuro
- HealthData.Gov
- RAVDESS
- The Ryerson Audio-Visual Database of Emotional Speech and Song
- DBNet (Driving Behavior DataSet)
S.S.S
- 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.
- 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.
- 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.
- 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 önemlidir. Önemli olan 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
- Gelecek Yapay Zeka Dahi Robotlar
- The Rise of Artificial Intelligence
- Artificial intelligence and its ethics
- Artificial intelligence & algorithms: pros & cons
- True Artificial Intelligence will change everything
- Lo And Behold: Reveries Of The Connected World
- AlphaGo
- The Future of Artificial Intelligence
- AI
- Road to AI
- Artificial Intelligence and Robotics
- Singularity Or Bust
- The Smartest Machine on Earth
- Humans Need not Apply
- The Human Robot – VPRO
- Will robots steal our jobs? – The future of work (1/2)
- Will robots steal our jobs? – The future of work (2/2)
Kaynaklar
- CS 229 — Makine Öğrenmesi El Kitabı
- Gözetimli Öğrenme El Kitabı
- Gözetimsiz Öğrenme El Kitabı
- Derin Öğrenme El Kitabı
- Makine Öğrenmesi İpuçları ve Püf Noktaları El Kitabı
- 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ı
- Derin Öğrenme Püf Noktaları ve İpuç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 Kurs 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:
- CMP784 – Deep Learning
- Online Kaynaklar
- Derin Öğrenme Kitabı –Deep Learning Book
- Cihan Özhan Blog
Makalenin Sunum Hali: https://www.linkedin.com/embed/feed/update/urn:li:ugcPost:6635573658658054144?compact=1
Kaynak : http://www.cihanozhan.com/yapay-zeka-gelistirme-rehberi-v1/