Buradasın
Yazılımcılar İçin Makine Öğrenmesi ve Yapay Zeka Eğitim Sunumu
youtube.com/watch?v=XkS1Se9A3BkYapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, Softtech'te yapay zeka bölümünde görev yapan ve Galatasaray Üniversitesi Bilgisayar Mühendisliği yüksek lisans mezunu bir yazılım mühendisinin sunduğu eğitim sunumudur. Konuşmacı aynı zamanda İş Bankası Grubu'nda çalışan bir yapay zeka ve makine öğrenmesi uzmanıdır.
- Sunum, yazılım kökenli kişiler için makine öğrenmesi ve yapay zeka konularını kapsamlı şekilde ele almaktadır. İçerikte kural bazlı sistemlerden yapay zeka sistemlerine geçiş, Python programlama dilinde kullanılan kütüphaneler (Numpy, TensorFlow), matris çarpımlarının makine öğrenmesindeki rolü, yapay zeka takımlarının yapısı ve temel makine öğrenmesi türleri (sınıflandırma, regresyon, kümeleme) detaylı olarak anlatılmaktadır.
- Sunumda ayrıca Steve Jobs ve Apple'ın tarihçesi, GPU ve TPU gibi özel donanımların geliştirilmesi, data scientist ve data engineer rolleri, veri bilimi için gerekli yetenekler ve Caggle gibi veri seti kaynakları hakkında bilgiler verilmektedir. Video, soru-cevap bölümüyle devam ederek makine öğrenmesi araçları, gerçek hayattaki uygulamalar ve yapay zeka takımlarının kurulması konularında bilgiler paylaşılmaktadır.
- 00:06Sunumun Tanıtımı
- Sunum, yazılımcıların perspektifinden makine öğrenmesi konusunu anlatmayı amaçlıyor.
- Konuşmacı, 2010 yılından beri Softtech'te yazılım mühendisi olarak çalışmakta ve son iki yılda yapay zeka ile ilgili bir bölümde görev yapmaktadır.
- Konuşmacı, Galatasaray Üniversitesi Bilgisayar Mühendisliği Yüksek Lisans Bölümü'nden mezun olup, Paralelleri ve Udemy'de makine öğrenmesi ve kriptografi konularında dersler yayınlamıştır.
- 01:50Kural Bazlı Sistemlerden Yapay Zekaya
- Her şeyin başlangıcı kural bazlı sistemlerdir, ancak günümüzde sıfır kurallı yapay zeka sistemlerine ulaşmaya çalışıyoruz.
- Kural bazlı sistemler PLC'ler gibi düşünülebilirken, yapay zeka sistemleri sıfır kurallı bir yapıya sahiptir.
- Sunum, makine öğrenmesi ve yapay zeka ile ilgili bir fiille uğraşan yazılımcılar için hazırlanmıştır.
- 02:49Kural Bazlı Sistemlerin Sınırları
- Elma ve portakal ayırt etmek için renk, şekil gibi özellikler kullanılabilir, ancak yeni meyveler (örneğin mango) bu kuralları bozabilir.
- Köpek ve çörek gibi birbiriyle alakasız iki örneği ayırt etmek için iç içe if döngüleri kullanmak gerekir, ancak bu sonsuza kadar gider ve yazılımcılar için çıkmaz bir problem haline gelir.
- İç içe if döngüleriyle işin içinden çıkamaz hale gelmek yerine, makine öğrenmesi kullanarak daha etkili çözümler sağlayabiliriz.
- 05:38Makine Öğrenmesi ve Sinir Ağları
- Makine öğrenmesi, makineye veri ve etiketlenmiş örnekler vererek kendi programını yazmasını sağlar.
- Konuşmacı en yaygın olarak kullandığı makine öğrenmesi algoritmasının sinir ağları olduğunu belirtiyor.
- Derin öğrenme, çok fazla sayıda matris çarpımı olarak tanımlanabilir.
- 07:17Sinir Ağlarının Çalışma Prensibi
- Sinir ağı hücresinde girdiler duyu organlarıyla alınır ve bu girdiler ağırlıklar ile çarpılıp toplanır.
- Ağırlıklar, girdilerin önemini belirtir; örneğin elin iç yüzeyi elin dış yüzeyine göre daha hassas olduğu için daha yüksek ağırlığa sahiptir.
- Girdiler ağırlıktan çarpılıp toplanır, belli bir eşiğin üzerinde olup olmadığı kontrol edilir ve eşiğin üzerindeyse mesaja gönderilir.
- 08:54Makine Öğrenmesi ve Performans
- Makine öğrenmesi, yazılımcıların kod yazımını değiştirmesini gerektirir; örneğin üç satırda çözülen bir problem tek satırda çözülebilir.
- Sinir ağının oluşturulması için çok sayıda sinir ağı hücrelerinin bir araya gelmesi gerekir ve bu durum işi daha da kompleks hale getirir.
- Matris çarpımları, for döngülerine göre daha temiz ve performans açısından daha avantajlıdır; özellikle karmaşık sinir ağları için vektörize yöntemler daha hızlı sonuçlar verir.
- 12:44Tensorflow ve Matris İşlemleri
- Tensorflow gibi kütüphaneler, for döngülerine göre çok daha hızlı matris çarpımı yapmayı sağlar.
- Tensor yapıları, her elemanı bir matris olan vektörleri ifade eder ve bu yapılar günümüzde kullanılmaktadır.
- Nesneye dayalı programlama ilk olarak Smart Talk tarafından ortaya atılmış, Steve Jobs ise grafik kullanıcı arayüzünü (GUI) geliştirmiştir.
- 14:46Makine Öğrenmesi İçin Donanım
- Makine öğrenmesi problemlerini çözmek için tasarlanmış donanımlar geliştirilmektedir.
- GPU'lar başlangıçta oyunlar için tasarlanmışken, matris işlemlerinin hızlı yapılması sayesinde makine öğrenmesi için de kullanılmaya başlanmıştır.
- Google'ın kendi tasarladığı TPU (Tensor Processing Unit) işlemcileri, sadece matris çarpımını hedefleyen makine öğrenmesi konularında kullanılan özel donanımlardır.
- 15:55Test Yaklaşımı ve Makine Öğrenmesi
- Yazılımcı bakış açısıyla test odaklı yaklaşım benimsenirken, makine öğrenmesi için bu yaklaşım yeterli değildir.
- Makine öğrenmesi çözümlerinde hata yapmak istenilen bir şey değildir, optimum noktada hata yapmak gerekir.
- Örneğin, bir salonda yüz kişiden altmış erkek, kırk kadın olduğunda, erkek-kadın sınıflandırma modelinde yüzde yüz doğruluk elde etmek yerine, daha geniş bir kümede daha yüksek başarı elde etmek daha önemlidir.
- 17:57Yapay Zeka Takımları ve Roller
- Yapay zeka takımlarında en baskın rol data scientist ve data engineer'lardır.
- Data scientist'in görevi, sinir ağının en optimum modelini tasarlamak ve en yüksek başarı elde ettirmektir.
- Data engineer'ın görevi ise big data ortamlarından data science'ın kullanımına nasıl aktarılacağıdır.
- 19:26Veri Bilimi İçin Gerekli Yetenekler
- Veri bilimi takımlarında veri bilimcisi olmak için kod geliştirme yeteneği ve yazılım mühendisi olması beklenir.
- Veri bilimcisi, ilgilendiği konuyu (örneğin finans, ATM nakit optimizasyonu) iyi bilmeli ve doğru kişilerle iletişim kurarak bu konuyu öğrenmelidir.
- Veri bilimi alanında ayrı bir yönetici rolü (örneğin veri sorumlu genel müdür yardımcısı) söz konusudur çünkü klasik yazılım ekiplerinin yöneticileri bu alanın gereksinimlerini doğru değerlendiremeyebilir.
- 21:20Yapay Zeka Kaynakları ve ODA Loop
- Yapay zeka konularında çalışanlar için prestijli olan şeylerden biri Kaggle'dır, burada çok fazla veri seti ve challenge bulunmaktadır.
- Kaggle'da insan yüz ifadelerini sınıflandırmak gibi çeşitli veri setleri ve challenge'lar bulunmaktadır.
- ODA Loop (Observation, Decision, Action) kavramı, gözlemlemek, konumlanmak, karar almak ve aksiyona çevirmek olmak üzere dört aşamadan oluşur.
- 23:12Makine Öğrenmesi Problemleri
- Çinli araştırmacılar sosisli ve pizzalı resimleri sınıflandırmak için iki sınıflı bir model geliştirmişler ve bu model başarılı sonuçlar vermiş.
- Sınıflandırma problemi, verileri doğru sınıflara ayırmak için kullanılan bir yöntemdir ve sınıf sayısı bir veya daha fazla olabilir.
- Regresyon problemi, sürekli değerler arasındaki ilişkiyi bulmak için kullanılır, örneğin ev fiyatları veya dolar kurları gibi.
- 26:00Gözetimsiz Öğrenme ve Algoritmalar
- Kümeleme (clustering) problemi, verileri hangi grupta olduğunu belirlemek için kullanılır ve bu tür problemlerde doğru cevap test edilemez.
- Sınıflandırma için support vector machine, karar ağaçları, en yakın komşu gibi algoritmalar kullanılabilir.
- Regresyon için linear regresyon ve lojistik regresyon, kümeleme için K-means gibi algoritmalar tercih edilebilir.
- 28:35Sinir Ağları ve Yapay Zeka
- Sinir ağları (neural networks) sınıflandırma, regresyon ve kümeleme problemlerini çözmek için kullanılabilir.
- Google'ın yapay zeka araştırma takımında yer alan Franchett, favori makine öğrenmesi yöntemlerinin neural networks ve SVD olduğunu belirtmiştir.
- Sinir ağları, resim tanıma, yüz tanıma gibi çeşitli problemleri çözmek için kullanılabilir.
- 31:16Makine Öğrenmesi Araçları ve Uygulamalar
- TensorFlow ve Keras gibi framework'ler makine öğrenmesi için yaygın olarak kullanılır ve topluluk desteği sunar.
- Yapay zeka ve makine öğrenmesi takımları kurarken matematik bilen kişiler ve yüksek lisans/doktora yapmış kişiler tercih edilir.
- Yapay zeka, ATM nakit optimizasyonu ve dil tanıma gibi gerçek hayattaki problemleri çözmek için kullanılmaktadır.