40 Günde Yapay Zeka
Selamlar herkese yeni bir seri ile karşınızdayım bu sefer linkedln camiasında yapay zeka alanında popüler olan
Steve Nouri 40 günlük bir yapay zeka serisi çıkarmıştı bende bu seriyi hem öğrenmek, öğrenirken de bildiklerimi yazmak adına bir seri başlattım. 10 Günde 4 seri ile biteceğim bu seride tüm süreci sizlere baştan sonra aktaracağım.
Gelin başlayalım;
GÜN-1
- Gün kendisi linkedln üzerinden bir canlı yayın yapıp yaklaşık olarak 35 dakika genel bir bilgilendirici bir sohbet yaptı. Yapay zekanın geleceği, alan seçimi, popülerliği ve birazda projelerden bahsetti burada vurgu yapmak istediğim bir kısım şu dur. Kendisi yeri geldiğinde bazen bir kaç kere söyledi, şu an popülerlikten dolayı herkes bir yapay zeka sevdalısı fakat ileri düzey çıkabilen, değişik efektif projeler/fikirler üretebilen ve uygulamaya alabilen kişi sayısı çok çok az durum böyle olunca da yapay zeka alanında daha spesifik projeler gelişmiyor. Genel haliyle birinci günü böyle bitiriyoruz.
Yukarıda ki resim ile saatlerce konuşur ve tartışabiliriz lakin hiç gerek yok kişi kendini bilmeli ve önüne çıkan fırsatları değerlendirmeli.
GÜN-2
2. günde ise bazı önemli şeylere başlayacağını bir post olarak belirten Steve abimiz burada bizlere bazı dokümanlar paylaşmaktadır. Gelin bu dokümanlara yakın göz atalım.
Python is Fun (For beginners): https://lnkd.in/gQEGEe5
Python ile ilgili giriş seviyesinde 42 sayfalık bir doküman linkidir. Burada temel konuları ele almış ve bir kaç örnek vermiştir. Doküman dili ingilizcedir.
Hands-on Python Tutorial https://lnkd.in/gGjw5uN
Bu linkte ise bir tık üst seviye çıkıp el kitabı olacak nitelikte bir doküman paylaşımı yapıyor 207 sayfadan oluşan bu dokümanda başta python olmak üzere veri bilimi ilgili kütüphaneleri de ele alıyor.
A Great Python Cheatsheet: https://lnkd.in/ge62nYN
Türkçe anlamı kopya kağıdı olarak dilimize geçen cheatsheet bir hatırlatma kağıdı olarak da düşünebiliriz. Burada ki linkte ise bu mevcuttur çıktı alıp tekrar etmeniz çok önemlidir.
Free Python Course: https://lnkd.in/gJmnJsz
freecodecamp sitesi dünyaca ünlü yazılım geliştiricilerin kullandığı ücretiz bir sitedir. Bu sitede ki linkte videolu şekilde sizlere anlatmış olup örnekleri ile hareket ediyor.
And finally some Q&As about Python: https://lnkd.in/gQf_uYs
Bu linkte ise soru-cevap tarzı bir doküman paylaşmıştır. Bu, temel anlayışlarınızı daha iyi anlamanıza ve daha ciddi bir iş görüşmesine hazırlanmanıza yardımcı olacaktır diyor ve sorduğu tüm soruları entegre etmiş.
GÜN-3
3. Günde ise veri yapılarına değinmek ve bunun öneminden bahsediyor kendisi bu alanda şu yorumu yapmıştır. “From a coder to a software (AI) engineer you need to know more than the Syntax. Data structure and Algorithms are crucial down the line. They will give you a deeper understanding of problem-solving in the computer world.” demek oluyor ki veri yapıları ve algoritmaları bilmemiz lazımmış bunun üzerinde kendisi bir kurs paylaşıyor.
Kurs = https://lnkd.in/g4Hhfpn
GÜN-4
Geldik 4. güne bu günde ise biraz daha detaylara ineceğiz burada ki paylaştığı linkler ve dokümantasyonları anlamamız ve yorumlamamız biraz zaman ve emek alacaktır o yüzden verimli bir şekilde öğrenmeye bakalım.
Numpy: https://numpy.org/
Pandas: https://pandas.pydata.org/ Pandas kütüphanesi veri işleme, analiz ve temizleme için kullanılır. Aşağıdakiler gibi farklı veri türleri için çok uygundur:
Scipy: https://www.scipy.org/
Matplotlib: https://matplotlib.org/
Yukarıda python’un en önemli 4 kütüphanesi yer almaktadır. Bu kütüphaneleri öğrenmek ve pekiştirmek biraz zaman alacaktır onun dışında sizi bir üst seviyeye taşıyacaktır yapay zeka kariyerinizde.
Aşağıda ki github linkinde özet şeklinde bir görsel verilmiştir.
GÜN-5
Geldik 5.güne bu günde yine çok çok önemli bir konuya değinir Steve amcamız Object-Oriented Programming (OOP) relies on the concept of classes and objects. Python için çok önemli olan OOP yi burada bir kaç link verip geçmek çok ayıp olacaktır.
Şimdiye kadar Python programlama dili ile ilgili olarak gördüğümüz konulardan öğrendiğimiz çok önemli bir bilgi var: Aslına bakarsak, bu programlama dilinin bütün felsefesi, ‘bir kez yazılan kodların en verimli şekilde tekrar tekrar kullanılabilmesi,’ fikrine dayanıyor.
Şimdi bir geriye dönüp baktığımızda, esasında bu fikrin izlerini ta ilk derslerimize kadar sürebiliyoruz. Mesela değişkenleri ele alalım. Değişkenleri kullanmamızdaki temel gerekçe, bir kez yazdığımız bir kodu başka yerlerde rahatça kullanabilmek. Örneğin, isim = 'Uzun İhsan Efendi'
gibi bir tanımlama yaptıktan sonra, bu isim değişkeni aracılığıyla ‘Uzun İhsan Efendi’ adlı karakter dizisini her defasında tekrar tekrar yazmak zorunda kalmadan, kodlarımızın her yanında kullanabiliyoruz.
Aynı fikrin fonksiyonlar ve geçen bölümde incelediğimiz modüller için de geçerli olduğunu bariz bir şekilde görebilirsiniz. Gömülü fonksiyonlar, kendi tanımladığımız fonksiyonlar, hazır modüller, üçüncü şahıs modülleri hep belli bir karmaşık süreci basitleştirme, bir kez tanımlanan bir prosedürün tekrar tekrar kullanılabilmesini sağlama amacı güdüyor.
İşte bu fikir nesne tabanlı programlama ve dolayısıyla ‘sınıf’ (class) adı verilen özel bir veri tipi için de geçerlidir. Bu bölümde, bunun neden ve nasıl böyle olduğunu bütün ayrıntılarıyla ele almaya çalışacağız.
Bu arada, İngilizcede Object Oriented Programming olarak ifade edilen programlama yaklaşımı, Türkçede ‘Nesne Tabanlı Programlama’, ‘Nesne Yönelimli Programlama’ ya da ‘Nesneye Yönelik Programlama’ olarak karşılık bulur. Biz bu karşılıklardan, adı ‘Nesne Tabanlı Programlama’ olanı tercih edeceğiz.
Unutmadan, nesne tabanlı programlamaya girmeden önce değinmemiz gereken bir şey daha var. Eğer öğrendiğiniz ilk programlama dili Python ise, nesne tabanlı programlamayı öğrenmenin (aslında öyle olmadığı halde) zor olduğunu düşünebilir, bu konuyu biraz karmaşık bulabilirsiniz. Bu durumda da kaçınılmaz olarak kendi kendinize şu soruyu sorarsınız: Acaba ben nesne tabanlı programlamayı öğrenmek zorunda mıyım?
Bu sorunun kısa cevabı, eğer iyi bir programcı olmak istiyorsanız nesne tabanlı programlamayı öğrenmek zorundasınız, olacaktır.
Steve amcamız 5. gün için verdiği linkleri aşağıya ekliyorum 🙂
This is a free course ( Audit only ) available on Coursera: https://lnkd.in/gB9i36A
Direct link to the book: https://lnkd.in/gB4EmHx
GÜN-6
Geldik 6.güne çok değerli bilgiler öğrendikten sonra bugün bir önceki gün gibi önemsiz görülen fakat 5.gün gibi önemli olan matematik ve istatistik’ten bahsedeceğiz. Hazırsanız başlayalım.
Sert bir matematik aşığıysanız, ihtiyacınız olan tek şey “Mathematics for Machine Learning” kitabıdır. Değilse okumaya devam edin 🙂 = https://lnkd.in/gYGABwu (Zordur ve öğrenildikten sonra işlerin yüzde 95 bitirmiş olursunuz kafanızda başka bir şeye ihtiyacınız kalmak sadece uygulama ve kod kısmına geçerseniz.
Makine öğrenimini/derin öğrenmeyi anlamak için ele almanız gereken en temel konular, bu gerçekten görsel kurslarda yer almaktadır:
🔹Calculus: https://lnkd.in/g5djHUs
🔹Linear algebra:https://lnkd.in/gijPA8y
🔹Statistics and probability: https://lnkd.in/gfw38Zi
🔹Optimization: https://lnkd.in/gr2DVeH
Yukarıda 4 başlığı bir endüstri mühendisi öğrencisi olarak söylüyorum öğrendikten sonra sadece işin temel mantığını ve felsefesini anlıyorsunuz ben bizzat tecrübe edip garantiledim. Gayemiz bu işi öğrenmek ve sorunları çözmek eninde sonunda bunlar aracı bir basamak oluyor günümüzde bir çok bulut bilişim sistemi bunları hizmet haline getirdiği için bizlere tek tıkla servisi kurup verileri yüklemek düşüyor bunu bizzat tecrübe edindiğim için uzun uzun yazıyorum buraya.
GÜN-7
Yukarıda 5. ve 6. Günün verdiği yoğun çalışma en az aylar alacaktır arkadaşlar örnek vermek gerekirse lineer cebir dediğimiz kısmı 1 ayda anca bitirir pratik yaparsanız o yüzden hızlandırılmış ve sınav öncesi tekrar niyetinde görün bu yazılarımı. Bugün ise biraz github’da ki projelerden ve önemli bazı linklerden bahsedeceğiz hazırsanız başlayalım.
Steve amcamız yaptığı piyasa araştırması sonucu bazı önemli bulduğu linkleri bize vermiş bizde değerlendirelim hemen.
1. All algorithms implemented in Python
By: The Algorithms
https://lnkd.in/guaDFtA
2. Playground and Cheatsheet for Learning Python
By: Oleksii Trekhleb
https://lnkd.in/gT_QueF
3. Learn Python 3
By: Jerry Pussinen
https://lnkd.in/gRm8xYs
GÜN-8
Yapay zekanın 8. günü ve Veriler hakkında daha fazla bilgi edinme zamanı!
Yakıt olarak veriye ihtiyaç duyan Makine Öğrenimini ele alacağım, ancak önce verilere erişmeniz gerekiyor.
Python’da veri yüklemenize ve manipüle etmenize yardımcı olacak Pandalar ve Numpy hakkında çoktan konuştum, ancak veriler birçok farklı kaynak ve formatta bulunabilir, 40 gün boyunca onlar hakkında daha fazla kaynak paylaşacağım.
Uygulama gereksinimlerine göre yaklaşık 10 tür veritabanı vardır. En az iki ana veritabanı türünü (İlişkisel ve NoSQL) kullanarak öğrenmenizi ve pratik yapmanızı tavsiye ederim.
Bunlar ilişkisel veritabanlarını öğrenmek için kaynaklar ve bir veritabanıyla iletişim kurmak için kullanılan bir dil olan “SQL” dir:
Bu arada SQL demişken bazı kişilere atıfta bulunmak istiyorum çok sevdiğim Çağlar ve Baki abilerimin SQL ‘de yeteneklerine hayranım bunuda buradan belirtmiş bulunayım diyorum ve tam gaz devam ediyorum.
Steve amcamız bizi yine linksiz bırakmıyor ve piyasada ki bazı önemli faydalı linkleri ekliyor burada ki mantığı iyi algılamamız lazım herşeyin başı Data ve Datanın kaydedildiği yerdir.
🟩E-kitaplar:
1-Öğrenme SQL ebook: https://lnkd.in/gCuAa8J
2-SQL Notları: https://lnkd.in/gCngZ35
MySQLMySQL hile sayfası: https://lnkd.in/gc2YnSb
✔ Etkileşimli Web Siteleri:
- Bu, SQL öğrenmek için internette en iyi yer olmayı amaçlayan etkileşimli bir kitaptır. Ücretsizdir, reklamlar ve kayıt veya indirme yoktur. https://selectstarsql.com/
- Öğrenmenin Yeni bir Yolu olan LeetCode, becerilerinizi geliştirmenize, bilginizi genişletmenize ve teknik görüşmelere hazırlanmanıza yardımcı olacak en iyi platformdur.
https://lnkd.in/g3c5JGC - CodeAcademy, kodlamayı öğrenmek için en iyi sistem.
Yedi yıl ve 45 milyon öğrenci sonra mükemmelleştirdik.
https://lnkd.in/gT5xmpN - Sqlzoo’nun mahkumları SQL motorlarıdır (MySQL, Oracle, SQL Server ve diğerleri). İnsan soyu, kafesli edilmiştir, ve bu yüzden halktan evcil hayvanı olabilir ya poke ya da onlara aval aval o korkma, dişleri söküldü. https://sqlzoo.net/
- SQLBolt, tarayıcınızda sql’i hızlı bir şekilde öğrenmenize yardımcı olmak için tasarlanmış bir dizi etkileşimli ders ve alıştırmadır. https://sqlbolt.com/
GÜN-9
Yapay zekanın 9. günü ve veriler hakkında daha fazla bilgi edinmeye devam ediyoruz!
Önceki günlerde Python’u, özellikle de veri manipülasyonları için Pandas kütüphanesini öğrendik.
Dün ilişkisel veritabanlarına ve sql’e giriş yaptım. Bugün veri görselleştirme hakkında konuşacağım.
Veri görselleştirme stratejik iletişim için gerekli olabilir: mevcut verileri yorumlamamıza, kalıpları, eğilimleri ve anormallikleri tespit etmemize, kararlar vermemize ve doğal süreçleri analiz etmemize yardımcı olur.
Bütün bunlar, iş dünyası üzerinde güçlü bir etkiye sahip olabileceğini söyledi.
Veri görselleştirme için birçok araç ve kitaplık vardır. En pahalı ama kapsamlı olanlardan biri
Tableau:
https://lnkd.in/gc6r-hg
Matplotlib harika bir ücretsiz python kütüphanesidir: https://lnkd.in/gQc4Dmj
Yarın python kütüphaneleri hakkında daha fazla konuşacağım.
Bu, IBM’in bir veri görselleştirme kursudur: https://lnkd.in/gwNVExx
GÜN-10
- Gün, hala Veri Görselleştirme ve Hikaye Anlatımı ile ilgili,
2009 Yılında Google’ın Baş Ekonomisti Dr. Hal R.Varian: “Verileri anlayabilmek, işleyebilmek, ondan değer çıkarmak, görselleştirmek, iletmek için veri alabilme yeteneği, önümüzdeki yıllarda son derece önemli bir beceri olacak.”
Veri hikaye görüşler, tartışmalar ve anlayışlar bir veritabanında nötr alanlardan veri döner.
Veri görselleştirme için birçok araç ve kitaplık vardır. Bunlar 4 harika python kütüphanesi:
1.En ünlü kütüphanelerden biri, hemen hemen her şeyi çizebilen Matplotlib’dir, ancak bazen yeni başlayanlar için çalışmak zor olabilir. Ekli e-kitabı buradan indirin: https://lnkd.in/gRWEKW3
2-Seaborn Matplotlib’e dayanıyor. Kütüphanede kullanımı kolaylaştıran daha üst düzey bir sarıcı sağlar.
Buradan başlayın: https://lnkd.in/gUt5qmK
Öğretici: https://lnkd.in/g6pAUJE
3- Plotly, Matplotlib ve seaborn’a benzer etkileşimli, yayın kalitesinde grafikler oluşturmayı kolaylaştıran bir grafik kütüphanesidir.
Buradan başlayın: https://lnkd.in/gSib68q
Öğretici: https://lnkd.in/gMNRRWu
4- Bokeh, web arayüzleri ve tarayıcılar için uygun etkileşimli görselleştirmeler üretir.
https://lnkd.in/g-wxQHb
Bunları Yan Yana karşılaştırarak daha iyi anlamak için bu Jüpiter defterini deneyin: https://lnkd.in/g-sn7kt
Yoğun geçen 10 günün sonunda bildiklerimi ve yaşadığım tecrübeyi tam anlamıyla yazdım sonraki 10 günde bir yazıp bu seriyi 4 + 1 seferde bitirmek istiyorum vakit ayırıp okuduğunuz için teşekkür ederim sonraki yazılarımızda görüşmek dileğiyle.