Derin Öğrenme Yol Haritası

Python ile 7 adımda yapay zekaya giriş yapın

Tirendaz Akademi
9 min readMar 13, 2023
Freepik

Derin öğrenme özellikle son 10 yılda çok popüler oldu. Son zamanlarda geliştirilen ChatGPT gibi yapay zeka araçları derin öğrenme teknikleri ile inşa edildi

Bu blog yazımda, derin öğrenmeye giriş yapacağız ve bir yol haritası çizeceğiz. Hadi bu makalede işleyeceğimiz konulara hızlıca bakalım.

  • Derin öğrenme nedir?
  • Derin öğrenme vs makine öğrenmesi
  • Derin öğrenme algoritmaları
  • Derin öğrenmenin uygulama alanları
  • Derin öğrenme için kütüphaneler
  • Derin öğrenme nasıl öğrenilir?
  • Tavsiye kaynaklar

Hadi konulara dalalım.

Derin Öğrenme Nedir?

Derin öğrenme aslında bir makine öğrenmesi tekniği olan yapay sinir ağları algoritmasının genişletilmiş halidir. Yapay sinir ağları, bir gizli katmandan oluşurken, derin sinir ağları birden fazla gizli katmandan oluşur.

Kısaca derin öğrenme, bir makine öğrenmesi tekniğidir ve büyük verilerdeki gizli kalıpları bulmak için kullanılır. Daha önce klasik makine öğrenmesi teknikleri ile çözülemeyen resim sınıflandırma, dilden dile çeviri ve sürücüsüz arabalar gibi problemler, derin öğrenme teknikleri ile çözülebildi.

Yapay zekaya ilginiz varsa TensorFlow ve Keras ile derin öğrenme Udemy kursumuzu inceleyebilirsiniz.

Derin Öğrenme vs Makine Öğrenmesi

Derin öğrenme, makine öğrenmesinin bir alt alanı olarak görülse de arasında bazı farkları vardır. Hadi bu farklara hızlıca bakalım.

Machine Learning vs Deep Learning

Veri Özellikleri

Makine öğrenmesi, çoğunlukla tablo şeklindeki yapısal veriler için kullanılırken, derin öğrenme genellikle resim, video ve metin gibi yapısal olmayan veriler için kullanılır.

Veri Boyutu

Makine öğrenmesi, küçük ve orta hacimli veriler için kullanılırken, derin öğrenme büyük verileri analiz etmek için kullanılır.

Eğitim Süresi

Makine öğrenmesi, analizleri kısa sürerken, derin öğrenme analizleri bazen günler bazen haftalar sürebilir.

Uygulama Alanları

Makine öğrenmesi, genellikle sınıflandırma, regresyon ve kümeleme gibi görevleri için kullanılırken, derin öğrenme çoğunlukla görüntü, ses ve doğal dil işleme gibi alanlarda kullanılır.

İşlem gücü

Makine öğrenmesi projeleri basit bir bilgisayar ile yapılabilirken, derin öğrenme projeleri için güçlü bilgisayarlar gereklidir.

Derin Öğrenme Algoritmaları

Derin öğrenme aslında bilimden çok sanat gibidir. Projeniz için doğru mimariyi oluşturursanız harika modeller kurabilirsiniz. Hadi derin öğrenmede kullanılan bazı algoritmalara bakalım.

Convolutional Neural Networks (CNNs)

CNN

Bahsedeceğim ilk algoritma CNN’dir. Bu mimari, görüntü işleme alanında çığır açtı. Bu algoritmanın sayesinde, bilgisayarlar insan seviyesinde görme kabiliyeti kazandı. Bu mimari, görüntülerin içindeki desenleri algılamak ve kalıpları çıkarmak için filtreler ve katmanlar kullanır. Bu çalışma biçiminden dolayı, resimlerin sınıflandırılması, nesnelerin tanınması, yüz tanıma ve benzeri uygulamalar için genellikle bu mimari kullanılır.

Recurrent Neural Networks (RNNs)

CNN’ler, görüntü işlemede iyi sonuçlar verdi ama çeviri gibi doğal dil işleme analizleri için iyi performans göstermedi. Doğal dil işleme ve zaman serisi gibi örüntülerin zamanla değiştiği uygulamalar için RNN mimarisi geliştirildi. RNN’ler, geçmiş verileri hafızasında sakladı ve gelecekteki verileri tahmin etmek için bu verileri kullandı. Bu mimarinin de çeşitli handikapları vardı. Daha sonra bu handikapların üstesinden gelmek için yeni modern mimariler geliştirildi.

Generative Adversarial Networks (GANs):

Özellikle sanat, tasarım ve video oyunları gibi alanlarda üretimi arttırmak için çığır açan bir başka derin öğrenme algoritması GAN’lardır. GAN’lar görüntü ve doğal dil işleme gibi alanlarda veri üretmek için sık sık kullanılır. Örneğin, bir GAN, fotoğrafların benzerlerini üretebilir veya gerçekçi insan konuşması oluşturabilir. Ancak, GAN’ların bazı etik sorunları da bulunmaktadır. Sahte veriler ile insanları manipüle etmek için kullanılabilir. Tabii bu sahte verileri tespit etmek için de algoritmalar geliştiriliyor.

Autoencoders:

Artık günümüzde devasa boyutta veri var. Bu verileri bir bütün olarak anlamlandırmak takdir ederseniz ki çok zor. Veriyi anlamak için en iyi yöntemlerden biri boyut indirgemedir. Boyut indirgeme için Autoencoders mimarisi kullanılır. Autoencoder’lar, verilerin sıkıştırılmış bir temsilini öğrenir ve daha az boyutlu veriler üzerinde işlem yapmayı sağlar. Örneğin kalın bir kitap düşünün. Bu kitabı sadece birkaç cümleyle tanımlamak istiyorsunuz. İşte Autoencoders bu özetlemeyi yaparlar.

Transformers

Transformers, doğal dil işleme uygulamaları için tasarlanmış bir derin öğrenme mimarisidir. Bu mimari, matematiksel hesaplamalar yaparak, metnin anlamını ortaya çıkarır ve birçok dikkat mekanizması kullanarak metnin farklı yönlerini ele alır. Bu mimari çeviri görevlerinde harika sonuçlar verdi. Zaten son senelerde google translate ya da ChatGPT’nin nasıl insan seviyesinde çeviriler yaptığını görüyorsunuz.

Transformers ile Bir Çeviri Örneği

Transformers, bir cümleyi çevirirken, önce cümleyi küçük parçalara ayırır ve ardından her bir parçanın anlamını belirlemek için birçok matematiksel hesaplamalar yapar. Vee sonra bu parçaları bir araya getirerek, tam bir cümle oluşturur ve çeviri gerçekleşir. Son zamanlarda geliştirilen ChatGPT gibi yapay zeka araçları Transformers mimari kullanılarak geliştirildi.

Derin Öğrenme Uygulama Alanları

Derin öğrenme, bilgisayarların öğrenme ve karar verme yeteneğini arttıran bir tekniktir. Bu tekniğin, birçok farklı uygulama alanı vardır. Hadi bu alanlardan bazılarına bakalım.

Görüntü İşleme

Bir bilgisayar, derin öğrenme teknikleri sayesinde bir resimdeki nesneleri tanıyabilir ve bu nesneleri doğru şekilde sınıflandırabilir. Örneğin, derin öğrenmeyi, resim sınıflandırma, nesne tespiti yapma, yüz tanıma, ve görüntü restorasyonu gibi projelerde kullanabilirsiniz.

Doğal Dil İşleme

Derin öğrenmenin çok fazla kullanıldığı diğer bir alan doğal dil işlemedir. Örneğin, derin öğrenmeyi, çeviri, metin sınıflandırma, metin üretme, duygu analizi ve diyalog sistemleri gibi projeleride kullanılabilirsiniz. Derin öğrenmenin doğal dil işlemede son zamanlardaki en popüler uygulaması ChatGPT’ dir. ChatGPT, yapay zeka araçlarının neler yapabileceğini herkese gösterdi.

Ses İşleme

Derin öğrenme ile yapabileceklerinizin sınırı yok. Özellikle son zamanlarda ses işleme için derin öğrenme teknikleri çok sık kullanılıyor. Artık sizin 3 saniyelik sesinizden bir çok ses üretilebiliyor. Ses üretmenin dışında, derin öğrenmeyi, konuşma tanıma, konuşmayı sentez etme ve müzik analizi yapma gibi birçok ses işleme projesinde kullanabilirsiniz.

Sağlık

Derin öğrenmenin, sağlık alanında da birçok uygulaması var. Örneğin, hastalıklara tanı koyma, ilaç üretme ve sağlık analitiği yapma gibi konularda derin öğrenmeyi kullanabilirsiniz.

Otomasyon

Derin öğrenmenin bir diğer kullanım alanı otomasyondur. Bu teknik ile robotik ve otomatik kontrol sistemleri gibi alanlarda projeler yapabilirsiniz.

Finans

Derin öğrenmeyi finans alanında da kullanabilirsiniz. Örneğin, bu tekniği, finansal risk analizi, portföy yönetimi ve kredi riski tahminleme gibi konularda kullanabilirsiniz.

Tarım

Derin öğrenmenin bir çok kullanım alanı var ama son olarak tarım alanına bakalım. Derin öğrenmeyi, bitki hastalıklarını tespit etme, ürünleri sınıflandırma ve tahminleme gibi projeler için kullanabilirsiniz.

Burada bahsettiğim kullanımlar derin öğrenmenin sadece bir kaç uygulaması. Bu yaklaşım, birçok farklı alanlarda kullanılabilir ve gelecekte daha da fazla alanda kullanım potansiyeli var.

Derin Öğrenme Frameworkleri

Biraz önce bahsettiğim gibi derin öğrenme analizleri yoğun matematiksel işlemler gerektirir. Bu işlemleri elle bilgisayara yaptırmak oldukça zordur. Şanslıyız ki derin öğrenme projeleri yapmak için son zamanlarda harika kütüphaneler geliştirildi.

Aslında bunlara, kütüphaneden ziyade kompleks oldukları için framework demek daha doğru. Bu frameworkler ile harika derin öğrenme modelleri eğitebilir ve bu modellerin performansını izleyebilirsiniz. Hadi derin öğrenme için kullanabileceğiniz frameworklere bakalım.

TensorFlow

En çok kullanılan framework Google tarafından geliştirilen TensorFlow’ dur. TensorFlow ile uçtan uca derin öğrenme projelerinizi yapabilirsiniz. Bunun anlamı bu framework ile veri ön işleme, model eğitme ve modeli canlıya alma adımlarını yapabilirsiniz. TensorFlow, Python, C++ ve Java gibi farklı programlama dilleri ile kullanılabilir. Bu frameworkun, GPU ve TPU desteği vardır.

Keras

Ayrıca, TensorFlow, 2019 yılında daha önce ayrı bir kütüphane olan Keras’ı bünyesine kattı. Keras, yapay zeka uzmanı olmayanların bile kolayca analizler yapabildiği insan diline yakın bir API’dır.

PyTorch

PyTorch, Facebook tarafından geliştirilen açık kaynaklı bir derin öğrenme framework’udur. Kolay ve esnek olduğundan bu framework, hızla popüler oldu. Endüstride, daha çok TensorFlow kullanılırken, PyTorch genellikle akademik araştırmalar için kullanılır.

Hugging Face

Derin öğrenme için bahsedeceğim son framework Hugging Face’dir. Hugging Face, doğal dil işleme (NLP) uygulamaları için açık kaynaklı bir platformdur. Hugging Face, veri bilimcilerinin GitHub’ı olmayı amaçlıyor. Bu framework içinde hem önceden eğitilmiş modelleri hem de bir çok veri setleri bulabilirsiniz.

Hugging Face içindeki kütüphaneleri kullanarak hem derin öğrenme modellerinizi eğitebilir hem de bu modelleri kendi hesabınızdan canlıya alabilirsiniz. Hugging Face, PyTorch ve TensorFlow’u desteklemektedir. Bu framework, genellikle doğal dil işleme projeleri için kullanılsa da, son zamanlarda geliştirdikleri Diffusers kütüphanesi ile bilgisayar görüsü projeleriniz içinde kullanabilirsiniz.

Derin Öğrenme Nasıl Öğrenilir?

Arkadaşlar derin öğrenme projeleri yapmak için bir kaç alanı bilmeniz gerekiyor. Gözünüz korkmasın, bahsedeceğim alanları, temel düzeyde bilmeniz yeterli. Derin öğrenmenin üç ana saç ayağı var. Bunlar uygulamalı matematik, bilgisayar bilimi ve alan bilgisi.

Uygulamalı Matematik

Uygulamalı matematik, özellikle, lineer cebir, olasılık ve istatistiği kapsıyor. Derin öğrenme modelleri, matris hesaplamaları üzerine kurulduğu için lineer cebir, temel bir konudur.

Olasılık, bildiğiniz gibi verilerin olasılık dağılımlarını anlamak için kullanılır. Derin öğrenme modelleri, aslında verilerin olasılık dağılımlarını tahmin eder. Dolayısıyla, derin öğrenme için olasılık teorisini bilmek önemlidir.

Derin öğrenme için bir diğer önemli alan istatistiktir. İstatistik, bildiğiniz gibi verilerin analiz edilmesi, keşfedilmesi ve özetlenmesi için kullanılan bir bilim dalıdır. Derin öğrenmede ortalama, standart sapma, veriyi standartlaştırma, regülerleştirme, metrikler gibi teknikler sık sık kullanılır. Dolayısıyla, temel istatistiksel teknikleri bilmek, daha iyi derin öğrenme modelleri kurmanıza yardımcı olur.

Bilgisayar Bilimi

Derin öğrenmenin bir diğer saç ayağı bilgisayar bilimidir. Derin öğrenme için öncelikle bir programlama dili öğrenmelisiniz. Bu alanda en çok kullanılan programlama dili Python’dır. Python’ın yazım dili kolay olduğu için bir çok kütüphane bu dilde yazılmıştır. Derin öğrenme analizlerinizi daha hızlı yapmak için paralel programlama tekniklerini kullanabilirsiniz.

Alan Bilgisi

Derin öğrenme için bir diğer saç ayağı alan bilgisi. Büyük verinin, derin öğrenme için çok önemli olduğunu söylemiştik. Veriler hangi alandan geliyorsa o alanla ilgili bilgi sahibi olmanız daha doğru derin öğrenme modelleri kurmanızı sağlar.

Derin Öğrenme için Kaynaklar

Bir konuyu öğrenmek için herkesin ayrı bir yoğurt yiyişi vardır. Kimi video izleyerek kimi okuyarak öğrenmeyi seviyor. Ben hem izleyerek hem de okuyarak öğrenmeyi seviyorum. Derin öğrenme için hem görsel hem de yazılı birçok kaynak var. Bu kaynakları, veri bilimi için kaynaklar isimli GitHub sayfamızda toplamaya çalışıyorum.

Bu repoda derin öğrenme ile ilgili ücretli ücretsiz birçok kaynak bulabilirsiniz. Siz de bu repoya katkıda bulunabilirsiniz. Bu bölümde, severek okuduğum kitaplardan bahsetmek istiyorum.

Hands-On Machine Learning with Scikit-Learn & TensorFlow

Derin öğrenme için önereceğim ilk kitap, Hands-On Machine Learning kitabıdır. Derin öğrenme için kitap tavsiyesi istendiğinde genellikle ilk bu kitap akla gelir. Bu kitap iki bölümden oluşuyor. İlk bölümde, Scikit-Learn ile makine öğrenmesi ve ikinci bölümde TensorFlow ve Keras ile derin öğrenme anlatılıyor. Gerçekten teori ve pratiği beraber veren ender kitaplardan biri. Geçen sene üçüncü baskısı çıktı. Zevkle okuyacağınız bir kitap.

Deep Learning with Python

Diğer bir önereceğim kitap Deep Learning with Python kitabıdır. Bu kitapta, gerçekten derin öğrenme için efsane bir kitap. Bu kitap, Keras’ın geliştiricisi tarafından yazıldı. Şu an TensorFlow’da Keras takım lideri olarak çalışıyor. Uygulamalar ile derin öğrenmenin temellerini öğrenmek için harika bir kitap. Geçenlerde bu kitabın ikinci baskısı çıktı.

AI and Machine Learning for Coders

Üçüncü olarak önereceğim kitap AI and Machine Learning for Coders. Bu kitabı da sıkılmadan okuyacağınızı düşünüyorum. Kitap, TensorFlow ile direk yapay zeka tekniklerini öğretmekle başlıyor. Adım adım uygulamalar ile derin öğrenmeyi öğretiyor. Bilgisayar görüsü, doğal dil işleme ve zaman serileri gibi alanlarda yeniyseniz bu kitap tam size göre. Bu kitap, ayrıca TensorFlow ekosistemini de çok güzel anlatıyor.

Python Machine Learning with PyTorch & Scikit-Learn

PyTorch ile yazılmış diğer bir derin öğrenme kitabı Python Machine Learning. Bu kitapta iki bölümden oluşuyor. İlk bölümde Scikit-Learn ile makine öğrenmesi algoritmaları anlatılıyor. İkinci bölümde, PyTorch ile derin öğrenme teknikleri gösteriliyor.

Son Sözler

Tebrikler. Bu yazıda derin öğrenme için bilmeniz gereken konuları öğrendiniz. En iyi öğrenme yaparak öğrenmedir. Kaggle gibi platformlardaki veri setlerini kullanarak bol bol derin öğrenme alıştırmaları yapabilirsiniz. Derin öğrenme analizleri için GPU veya TPU gereklidir. Bunun için ücretsiz GPU ve TPU desteği sağlayan Google Colab veya Kaggle platformlarını kullanabilirsiniz.

Makaleyi okuduğunuz için teşekkür ederim. Bu yazıyı beğendiyseniz aşağıdaki alkış tuşuna bir kaç kez basmayı ve arkadaşlarınız ile paylaşmayı unutmayın. Hadi bağlanalım: YouTube | Udemy | Twitter | Instagram 😊

Gelecek yazılarda görüşmek üzere. Şimdilik hoşça kalın.

--

--