Derin öğrenme ( deep learning )cisim tanıma, ses tanıma ve doğal dil işleme alanlarında çok tabakalı yapay sinir ağları oluşturulurken kullanılan bir yapay zeka yöntemidir ayrıca bir makine öğrenmesi çeşididir. Derin öğrenme makine öğrenmesinden farklı olarak kodlanmış kuralları kullanarak öğrenmek yerine; resim, video, ses ve yazı gibi verileri kullanarak otomatik bir şekilde öğrenebilmektedir. Derin öğrenme esnek bir yapıda olduğu için resim ya da metin verilerinden yararlanarak öğrenebilir ayrıca verilerin büyüklüğü ne kadar fazlaysa yapacakları tahminlerin doğrulukları o derece artar. Otomatik öğrenme dışında derin öğrenmede örnekler kullanılarak öğrenmede sağlanabilir. Bunun için makineye bir problem ve problem için kural setleri verilir. Bu setleri kullanarak çözüme gitmek yerine örnekleri değerlendiren ve problemin çözümüne buradan ulaşan bir model yapılması yeterlidir. Problemde oluşan sorunları çözebilmesi için yapmamız gereken şey ise problem ile ilgili basit bir komut listesi vermektir. Makine aldığı bu komut listesi sayesinde öğrenme işlemini gerçekleştirecektir. Öğrenimini tamamladıktan sonra sorunu çözecektir. Problem çözümleri için kullanılan yazılımın modeli de problemin çözümünde etkilidir. Problem için uygun olan modeli seçtiğimizde sorunun çözülmesi daha hızlı ve daha doğru olacaktır. Derin öğrenmenin yukarıda temel olarak nasıl bir şey olduğundan bahsettik. Gelin şimdi derin öğrenme kavramları ve derin öğrenme yöntemlerini 2 başlık altında inceleyelim.
DERİN ÖĞRENME KAVRAMLARI
- Nöron
- Ağırlıklar
- Sapma(Bias)
- Aktivasyon Fonksiyonu
- Sigmoid Aktivasyon Fonksiyonu
- ReLU (Doğrultulmuş Doğrusal Fonksiyon)
- Softmax Aktivasyon Fonksiyonu
NÖRoN
Sinir ağlarının temelini oluşturan nöronlar beynimizin temel elemanlarındandır. Yeni bir bilgi edindiğimizde öğrendiğimiz bilgi işlenir ve bir çıktıya dönüşür. Derin öğrenme de yapay olarak oluşturduğumuz nöronlarda da öğrendiğimiz bilgi öncelikle girdi olarak alınır ve işlenir sonrasında tıpkı gerçek hayattaki gibi bir çıktı oluşur. Nöral ağlarda ise nörona gelen bilgi işlenir ve sonrasındaki işlem için diğer nöronlara gönderilen bir çıktıya ya da sonuç çıktısı üretilir.
Ağırlıklar
Oluşan girdiler nörona geldikleri zaman bir ağırlıkla çarpışırlar. İki girişli bir nöronda her giriş kendine ait bir ağırlığa sahiptir. Rastgele bir şekilde başlatılan bu ağırlıklar modelin eğitimi boyunca güncellenmektedirler. Derin öğrenme sisteminde sinir ağları tarafından eğitim bittikten sonra daha önemli bilgilerin olduğu düşünülen girdilere daha yüksek ağırlıklar atanır, daha önemsiz bilgilerin olduğu yerlere nispeten hafif ağrılıklar atanır. Bu yüzden bir yerde sıfır ağırlık görmek veya düşük ağırlık görmek oradaki bilginin önemsizliğini belirtebilir.
Sapma (BIAS)
Derin öğrenme için yapılan girdilere uygulanan ağırlıklar dışında bu ağırlıklara ek olarak uygulanan doğrusal bileşene bias ya da sapma adı verilmektedir. Oluşan bu sapma değeri; giriş olarak atanan ve girdinin ağırlık ile çarpımın sonucuna, ağırlık katsayılı girişin aralığını değiştirmek için eklenmektedir. Bu sapma değerinin girilmesi sonucunda giriş a*w1+bias olarak ifade edilmektedir. Sonuç olarak dönüşüme giren girdiler dönüşümün son doğrusal bileşinidir.
Aktivasyon Fonksiyonu
Giriş sinyallerini, çıkış sinyallerine çeviren aktivasyon fonksiyonunun lineer bileşime uygulanması, doğrusal bileşenin girdiye uygulanmasından sonra doğrusal olmayan fonksiyon uygulanması ile gerçekleşmektedir. Aktivasyon fonksiyonu olan f() uygulandıktan sonra çıkış f(a*w1+b) olacaktır.
Sigmoid Aktivasyon Fonksiyonu
Sigmoid dönüşümü, fonksiyonu 0 ile 1 arasında daha düzgün değer aralığı oluşturmasını sağlar ve pürüzsüz eğrilere sahiptir. Girdi değerlerindeki küçük değişikliklerin çıktı değerlerinde gözlemlenmesine imkan tanıyan pürüzsüz eğriler, adım fonksiyonları olarak tanımlanır.
ReLU (Doğrultulmuş Doğrusal Birimler)
Son zamanlarda ağların gizli bölümlerinde sigmoid fonksiyonları yerine ReLU aktivasyon fonksiyonu tercih edilir. Bu aktivasyon fonksiyonu şöyle tanımlanır.
f(x) = max(x,0)
fonksiyon çıktısı olan X, sıfırdan büyük olduğu zamanlarda sonuç X olur. X sıfırdan küçük eşit olduğu zamanlarda sonuç 0 olur. ReLu aktivasyon fonksiyonunun kullanılmasının en büyük yararı 0’dan büyük tüm girdiler için daha hızlı bir şekilde eğitilmesini sağlayan sabit türevi değerine sahip olmasıdır.
Softmax Aktivasyon Fonksiyonu
Bu softmax akstivasyon fonksiyonu genellikle sınıflandırma problemleri için çıktı bölümlerinde kullanılır. Sigmoid fonksiyondan farklı olan bölümü ise çıktıların 1’e kadar olan toplamlarının normalize edilmesidir. İkili çıkış sonuçlarında ise sigmoid fonksiyondan yararlanılarak çok katmanlı sınıflandırma gerçekleşir.
DERİN ÖĞRENME YÖNTEMLERİ
Derin öğrenme ile ilgili kavramları yukarıda anlattık. Şimdi konumuzun anlaşılması biraz zor olduğu için bir kaç örnek uygulama verelim ve konun anlaşılmasını nispeten kolaylaştıralım. Derin öğrenme günümüzde birçok alanda kullanılmakta. Sağlık, mühendislik, mimari, yapay zeka ve yazılımlarda. Birçok alanda kullanılıyor olsa da biz bugün sağlık alanında nasıl kullanıldığını örnek olarak anlatacağız. Derin öğrenme sağlık alanında birçok şekilde kullanılmaktadır. Kanser teşhisi, gen seçimi ve sınıflandırması, gen çeşitlilği, ilaç tasarımı, protein etkileşimi, 3 boyutlu beyin rekonstrüksüyonu, nöral hücre sınıflandırması, beyin doku sınıflandırması, alzheimer teşhisi, doku sınıflandırması, organ bölütlemesi, hücre kümeleme, iç kanama tespiti, tümör tespiti, hastalık tahmini, insan davranışı madenciliği ve veri madenciliği gibi birçok çeşitli alanda derin öğrenme kullanılmaktadır. Bu uygulamalar yapılırken çeşitli yöntemler kullanılmaktadır. Bunlar;
- Derin Sinir Ağları
- Derin Oto- Kodlayıcılar
- Derin İnanç Ağları
- Derin Boltzmann Makinesi
- Yinelemeli Sinir Ağları
- Evrişimli Sinir Ağları
Derin sinir ağları
Derin sinir ağ yapısı, çoğunlukla sınıflandırma ve regresyon için kullanılmaktadır. 2’den fazla gizli katmana sahip olan bir yapıdır. Karmaşık hipotezlerin tanımlanmasını sağlar ve bu sayede birçok alanda kullanıldığında başarılı olmuştur. Bu yöntemde eğitim çok önemlidir ve eğitim sürecinin uzun bir zaman aldığı bilinmektedir.
derin oto kodlayıcılar
2006 yılında tasarlanan derin oto-kodlayıcılar özellik çıkarımı ve boyut indirgeme için tasarlanmıştır. Derin oto kodlayıcılarının giriş ve çıkış düğümlerinin sayıları eşittir ve bu öğrenim şekli giriş vektörünü yeniden oluştuma amacını dayalı denetimsiz öğrenme yöntemidir. Eğitimleri için etiketli veriye ihtiyaç duymayan derin oto-kodlayıcıları, daha güvenilir ve verimli olabilmeleri için birçok türe ayrılmıştır bu türlerden bazıları şunlardır:
- Seyrek Oto Kodlayıcı
- Gürültü Temizleyici Oto-Kodlayıcı
- Çekme Gücüne Sahip Oto-Kodlayıcı
- Evrişimli Oto-Kodlayıcılar
Derin İnanç Ağları
Derin inanç ağları alt ağların gizli katmanının bir sonraki sistem için görünür katman işlevi gördüğü Kısıtlı Boltzmann makinesi bileşimidir. Derin İnanç ağları hem denetimli hem de denetimsiz bir şekilde eğitilebilmektedir. Derin öğrenme sisteminde bu ağların başlatılabilmesi için açgözlü öğrenme stratejisi önerilmektedir. Bu yöntem ile genellikle çok yüksek olasılıklı olan bilgilerin çıkarımları yapılmaktadır.
Derin Boltzmann Makinesi
Derin Boltzmann tüm katmanları arasında yönsüz bağlantılara sahip bir derin öğrenme yöntemidir. Olasılık alt sınırın en yüksek değerini hesaplayabilmek için skolastik maksimum olasılık algoritmasıdır. Ağ yapısı, belirsiz girdiler kullanılarak daha sağlam bir sonuç elde etmek için yukarıdan aşağıya doğru geri bildirim sağlamaktadır.
Yinelemeli Sinir Ağları
Veri akışını analiz edebilmek için oluşturulan yinelemeli sinir ağları çıktının önceki hesaplamalara bağlı olduğu uygulamalar için çok daha kullanışlıdır. Tüm adımlarda aynı ağrılıkları paylaşan yinelemeli derin sinir ağları sıralı olan olayları ezberleyebilme özelliğine sahiptir.
Evrişimli Sinir Ağları
Evrişimli sinir ağları görüntü gibi 2 boyutlu veriler için daha uygundur. Gizli evrişim filtresi, girdisini nöron etkinleştirmesinin 3 boyutlu bir çıktısına dönüştürmektedir. Klasik bir sinir ağına göre daha az sayıda nöron bağlantısına ihtiyaç duymaktadır. Evrişimli sinir ağları görsel niteliklerin arasındaki tüm hiyerarşik yapıyı bulmak için birden fazla katmana ihtiyaç duyulmaktadır.