Deri̇n Öğrenme Nedi̇r?
Buradasınız: Anasayfa / Blog
30 Mart 2022, Çarşamba
Derin Öğrenme Nedir?
Derin öğrenme, bir veri seti ile çıkan sonuçları tahmin eden pek çok katmandan oluşan bir makine öğrenme yöntemidir. Derin öğrenme, makine öğrenmesi ve yapay zekâ ile farklı anlamları olan terimlerdir. Derin öğrenme, makine öğrenmesinin; makine öğrenmesi ise yapay zekânın alt dalı ile özetlenebilir.
Derin Öğrenme Nedir?

Yapay zekâ, insan zekâsına benzer şekilde farklı görevleri yerine getiren ve sürekli kendini büyütüp geliştiren sistemler veya makinalardır.1950’lerde meydana gelen yapay zekâ hatalarından öğrenebilen sistemler olduğu için sistemi sürekli iyileştirmektedir. Makine öğrenmesi ise 1980’lerde ortaya çıkmış olup gelen bir veri kümesini işlemden gösterip tahmin etmek veya sınıflandırmaktır. Makine öğrenme algoritmalarında iki tür öğrenme şekli vardır ve bunlar: gözetimli ve gözetimsiz öğrenme.

  • Gözetimli öğrenme, verilerden etiketlenmiş öğrenmedir. Hem girdi hem de istenilen sonuç tanımlanır. Tahmin hakkındaki gerçeklik geri bildirimi ise kişi tarafından yapılıyor.
  • Gözetimsiz öğrenme, etiketsiz gözlemlerden öğrenme aşamasıdır. Sonuç verisiyle eğitime gerek bulunmuyor. Algoritmanın kendisi veriden sonuca varıyor. Kendinin keşfetmesi beklenir.

Makine öğrenimi de yapay zekâ gibi birçok yıl önemli bir gelişim gösterememiştir. 1990’lı yıllarda veri madenciliğiyle ünlülüğü çoğalmış ve 2000’li yılların ilk başlarında ise derin öğrenme gelişim göstermeye başlamıştır.

 

90’lardaki başarısızlığın sebepleri:  

  1. Veri setlerinin yetersizliği
  2. Bilgisayarların çok düşük bir güçte ve CPU açısından yetersiz kalması
  3. Yanlış bir şekilde ilkleme (initialization)
  4. Yanlış non­lineer aktivasyon fonksiyonları

 

Zamanla teknolojinin büyüyüp gelişmesi bilgisayarların performansının artmasını sağladı. Yapay zekâ işlemlerinde yetersiz kalan bilgisayarlar çok iyi olup güç kazandı. Veri erişim basitleşip algoritmaların ihtiyacı olan veri setleri çoğaldı ve var olan algoritmalar gelişti veya yeni algoritmalar geliştirildi. Böylelikle yapay zekâ uygulamalarında gelişim gözlemlenmeye başladı.

Derin öğrenme gözetimli, yarı gözetimli veya gözetimsiz bir şekilde gerçekleştirilebilir. Derin öğrenmede pek çok sayıda veri girişi ile ayırt edici özellikleri kendisi öğrenir. Öğrenme işlemi için başarılı olmanın yolu ne kadar çok veri girişi olursa o başarı elde edilir. Veriler birçok katmandan geçer. Üst katmanlar daha çok ayrıntı çıkaran katmanlardır.

 

Üç ana derin model çeşidi: 

  1. Çok katmanlı Perceptron (Multilayer Perceptrons)
  2. Evrişimsel Sinir Ağı (Convolutional Neural.  Networks)
  3. Yinelgeli Sinir Ağı (Recurrent Neural Networks)

 

Derin Öğrenme Nerelerde ve Ne İçin Kullanılır?

  • Yüz tanıma sistemlerinde
  • Ses tanıma sistemlerinde
  • Araçlarda oto pilot özelliğinde veya sürücüsüz araçlarda kullanılıyor.
  • Alarm sistemlerinde, kamera kayıtlarını hep kontrol etmek yerine, sadece olağandışı hareketlerde alarm sisteminin ortaya gelmesi gibi teknolojiler derin öğrenme sayesinde mümkün oluyor.
  • Sağlık sektöründe kanser araştırmalarında, ortaya gelen zaman kaybını ortadan kaldırmaktadır. Kanserli hücre örneklerinin tanıtıldığı derin öğrenme algoritmaları, yeni hücrelerin kanserli olup olmadığı bilgisini koymakta hem daha çabuk hem de daha iyi oluyor.
  • Görüntü iyileştirilmesinde
  • Tavsiye sistemlerinde, beğenilen müzik ve film önerileri vermede
  • Siber tehdit analizlerinde de derin öğrenme yöntemleri yapılabilir. Yukarıda verilen örneklerin dışında da pek çok örnek de veriliyor.

 

Türkiye’de yapılan derin öğrenme çalışmalarına bir de ASELSAN’ın arge merkezinde ilerleyen silah ve güvenlik sistemleri için görüntü ve doğal dil işleme ile faaliyetler örnek olarak yapılmaktadır. Diğer bir proje OttOCR, Osmanlıca karakter tanıma sistemi ve Open zekâ projesi görüntü ve video tanımlama için derin öğrenme API’leri sunmaktadır.

Yapay zekâ uygulamalarında daha çok kullanılan programlama dilleri python, c/c++, java ve R 'dir. Derin öğrenmede en çok kullanılan dil  pythondır. Veri görselleştirme içinse R programlama dili daha çok tercih ediliyor.

 

Derin Öğrenme İçinde Yapay Zekâ Nasıl Kullanılır?

Ünlü akademi, zekanın tanımını “bulunulan ortama ve duruma çok uyum sağlama becerisi” ile yapmaktadır. Kısaca, adı geçen üniversiteye göre; içinde bulunduğunuz duruma ne kadar çabuk odaklanırsanız ve mevcut sorunlara karşı ne kadar hızlı çözüm bulursanız, o kadar zekisinizdir.

Yapay zekanın gereksinim haline gelmesi, aslında yukarıdaki tanımdan kaynaklanıyor. Fakat insanoğlu aynı zamanda duygusal bir varlıktır ve bulunduğu duruma uyum sağlayıp sorunlara çözüm bulurken, diğer duygusal engellerde durabilir. Örneğin; bir yakınını kaybetmiş ve üzülen bir insan, yaptığı işe odaklanıp her zaman sorun yaşayabilir. Bu da düşünme, karar verme, problem çözme ve çözümü uygulama süreçlerini olumsuzlaştırır. Üstelik insanoğlu duygusal çöküntülerle karşılaşma riski yüksek bir varlıktır. Halbuki duygusal çöküş ihtimali olmayan bir makine ya da yazılım; fiziksel gerekliliğin sağlanması halinde her türlü şart ile aynı formda çalışabilir. Başka bir söyleniş ile anlatmak gerekirse; elektrik ile bağlantısı kesilmeyen bir bilgisayar, her zaman aynı verimlilikle iş görebilir.

Yapay zekayı süreklilik haline getiren bir başka neden de kalifiye insan kaynaklarının yetersizliğidir. Şöyle ki insanoğlunun bir alanda uzmanlaşması ve uzmanlığını yeni bir kişiye aktarıp vermesi için birçok yıl gereklidir. Halbuki bir makineyi veya yazılımı başka bir alanda uzmanlaştırabilirseniz seri üretim ile binlerce, hatta milyonlarca kopyasını oluşturabilirsiniz. Örneğin; alanında profesyonellik alan bir tıp doktorunun yetişmesi için on yıldan fazla süre gerekiyor fakat bir bilgisayar programını tıp doktoru haline getirebilirseniz dünya üzerindeki tüm sağlık kurumlarına eş zamanlı bir şekilde ve ihtiyaç duyduğu kadar (hatta ihtiyacından daha fazla) dağıtım ve bilgi transferi yapabilirsiniz.

Kısacası yapay zekâ teknolojisi, insan kaynaklarının yeteri kadar çok olmaması ve olan kaynağın da isteğe bağlı bir şekilde verimli çalışmaması nedeni ile gereklidir.

 

Derin Öğrenme Nasıl Çalışır?

Derin Öğrenme yani bir makine öğrenme yöntemidir. Verilen bir veri kümesi ile çıktıları tahmin edecek yapay zekayı eğitmemizi sağlar. Yapay zekayı eğitip öğretmek için hem denetimli hem de denetimsiz öğrenme kullanılabilir.

Derin Öğrenme ile uçak bileti fiyatlarını çalışma mantığını anlatmaya çalışacağım. Verdiğimiz örnekte denetimli öğrenme yöntemi kullanacağız.

Uçak bileti fiyatlarını tahmin ettiğimiz zaman, aşağıdaki girdileri kullanmak istiyoruz diyelim (şuanlık tek yön uçuşları düşünüyoruz):

  • Kalkış Havalimanı
  • Varış Havalimanı
  • Kalkış Tarihi
  • Firma

Yapay Sinir Ağları (Neural Networks)

Yapay sinir ağları aynı insan beynine benzeyen nöronlardan oluşur. Tüm nöronlar tümü ile hepsi bağlıdır ve çıktıyı etkiler.

Nöronlar üç katmana ayrılıyor:

  1. Giriş Katmanı
  2. Gizli Katman(lar)
  3. Çıkış Katmanı

Giriş katmanı giriş verilerini alıyor. Bizim örneğimiz ile, giriş katmanında dört nöron var: Kalkış Havaalanı, Varış Havaalanı, Kalkış Tarihi ve Firma. Giriş katmanı, girişleri gizli katmana gönderir ve sadece ilk giriş katmanına gönderir.

Gizli katmanlar girdilerimizde sayısal hesaplamalar yapıyor. Yapay sinir ağları oluşturmadaki zorluklardan biridir ve her katman için nöronların tıpkı gizli katmanların sayısına da karar vermektir.

Derin Öğrenmedeki “Derin”, birden fazla gizli katmana sahip olmak demektir.

Çıktı katmanı, çıktı verilerini döndürür. Yani bize fiyat tahmini verir.

 

Peki Fiyat Tahmini Nasıl Yapılır?

Derin Öğrenmenin başladığı yerdir burası.

Nöronlar arasındaki her nokta bir ağırlık(weight) ile aynıdır. Bu ağırlık, girdi değerinin faydasını gösterir. İlk ağırlıklar rastgele ayarlanıyor.

Bir uçak biletinin fiyatını tahmin ederken, en çok önemli olan da kalkış tarihidir. Bunun için, kalkış tarihi nöron bağlantıları çok fazla bir ağırlığa sahip olacak.

Her nöron aslında bir Aktivasyon Fonksiyonuna sahiptir. Aktivasyon foksiyonunun amaçlarından biri nörondan sahiplenen çıktıları “standartlaştırmak” tır.

Bir veri kümesi sinir ağını bütün katmanlarından geçip daha sonra, çıktı katmanından sonuç bir şekilde döner.

 

Yapay Sinir Ağını Eğitme

Derin öğrenmenin daha da zor olan kısım da sinir ağını eğitmektir. Neden?

Büyük bir veri kümesine ihtiyaç duyuluyor.

Pek fazla miktarda hesaplama gücüne ihtiyaç duyuluyor.

Uçak bileti fiyat tahmini uygulaması için, bilet fiyatlarının geçmişteki verilerini bulmamız gerek. Birçok sayıda muhtemel havalimanı ve kalkış tarihi kombinasyonu yüzünden çok geniş bir bilet fiyatı listesine ihtiyacımız var.

Yapay zekayı eğitmek için, veri kümemizdeki girdileri vermek ve çıktılarını veri kümemizdeki çıktılarla karşılaştırmak gerekiyor. Yapay zekâ hala eğitimsiz olduğu için, çıktıları hatalı olacaktır.

Tüm veri kümesine baktığımızda, yapay zekâ çıktılarının gerçek çıktılardan ne kadar yanlış olduğunu gösteren bir fonksiyon oluşturabiliriz. Ve bunun adı fonksiyona Maliyet Fonksiyonudur.

Eğitim sırasında yapmak istediğimiz maliyet fonksiyonu değerinin 0 olmasıdır. Bu sayede yapay zekâ çıktıları ile veri kümesindeki çıktıların birebir aynı olduğu anlamına geliyor.

 

Maliyet Fonksiyonunu Nasıl Azaltabiliriz?

Nöronlar arasındaki ağırlıkları değiştirmemiz gerekiyor. Maliyet fonksiyonu zayıf olana kadar ağırlıkları rastgele değiştirebiliriz, ancak bu çok iyi ve verimli değil.

Bunun yerine, Gradient Descent adlı bir teknik kullanılıyor.

Gradient Descent, bir fonksiyonun minimumunu bulmamıza yardımcı olan bir optimizasyon algoritmasıdır. Bizim örneğimiz ile, maliyet fonksiyonunun minimumunu arıyoruz.

Gradient Descent, her veri seti tekrarlamasından sonra ağırlıkları küçük artışlarla değiştirilip çalışıyor. Maliyet fonksiyonunun türevini (veya gradyanını) belirli bir ağırlık kümesinde hesaplanıp, minimumun hangi yönde kaldığını görebiliriz.

Maliyet fonksiyonunu en düşüğe indirmek için, veri kümenizde pekçok kez tekrarlama etmeniz gerekir. Bunun için büyük miktarda hesaplama gücüne ihtiyacınız var.

Ağırlıklar, Gradient Descent kullanılarak otomatik olarak yenilenir. Ve bu, Derin Öğrenmenin sihridir!

Uçak bileti fiyat tahmini için yapay zekamızı geliştirip hata oranını en aza indirip, gelecekteki fiyatları tahmin etmek için kullanabiliriz.

 

Derin Öğrenme Uygulamaları

Doğal Dil İşleme

Yarı denetimli duyarlılık sınıflandırma problemini aktif öğrenme ile bilip öğrenmek için Active Deep Networks (ADN) adlı yeni bir yarı denetimli öğrenme algoritması, Shusen Zhou önderliğinde sunulmuştur.

İlk başta, ADN’nin yarı denetimli öğrenme yöntemini söylediler. ADN, Kısıtlı Boltzmann Makineleri (RBM) ile, etiketli veriler ve çok miktarda zarar görmemiş veri kullanılarak denetimsiz öğrenme ile oluşturulmuştur.

Yapı, üstel bir kayıp fonksiyonu ile gradyan-iniş tabanlı denetimli öğrenme aracılığıyla yapıldı. İkinci olarak, eğitim verileri, zarar görmemesi gereken verileri belirlemek için yarı denetimli öğrenme ile aktif öğrenme uygulandı. Ardından ADN mimarisi, seçilen etiketli veriler ve tüm etiketlenmemiş verilerle çalıştırıldı.

Beş duyarlılık sınıflandırma veri kümesi üzerinde çalışılan deneyler, ADN’nin duyarlılık sınıflandırması için uygulanıp yapılan yarı denetimli öğrenme algoritması ve derin öğrenme tekniklerinden daha başarılı performans olmuştur.

Tomas Mikolov ve meslektaşlarının word2vec yazılımı en son teknoloji olup çok beğeni gördü. Word2vec , büyük bir metin verisinden kelime ilişkilerini öğrenmek için bir sinir ağı modeli kullanmaktadır. Eğitim alıp öğrenildikten sonra model eş anlamlı kelimeleri tespit eder ve bir cümle için ek kelimeler önerir.

Word2vec, adından da anlayacağınız gibi her bir farklı kelimeyi vektör adı verilen belirli bir sayı listesi ile temsil ediyor.

Vektörler, kolay bir sayısal fonksiyon ile bu vektörler arasındaki anlamsal benzerliği gösterecek şekilde dikkatlice seçilir.

Marcelo Luiz Brocardo ve ekibi Derin İnanç Ağlarını kullanıp yazarlık doğrulama konusunu bakıp araştırmışlardır. Verilen yaklaşım, bir Gauss-Bernoulli derin inanç ağı temelinde doğru değerli verileri modellemek için görünür katmandaki Gauss birimlerini kullanır. Sözcüksel, sözdizimsel ve uygulamaya taraf özellikler elde alıp, bu özellikleri tek bir özellikte birleştirmek için bir yöntem öğrenmişlerdir. Twitter ve Enron e-mail veri kümesi üzerinde test edilen bu model %8–16 arası sonuç olarak hata vermiştir.

Karpathy ve Fei Fei çalışmalarında, görüntülerin ve bölgelerin doğal dil tanımlarını anlatan bir model sunmuşlardır.

Dil ve görsel veriler arasındaki yazışmaları bilmek için resimlerin veri kümelerini ve hepsinin cümle açıklamalarını kullanmışlardır.

Görüntü bölgeleri üzerinde CNN, cümleler yerine çift yönlü RNN kullanarak geliştirdikleri modeli, Flickr8K, Flickr30K ve MSCOCO veri kümelerinde faydalanıp daha iyip sonuçlar etmişlerdir.

 

Görüntü/Video İşleme

Görüntü işlemede daha çok değerlendirme için MNIST veri seti kullanılmaktadır.

MNIST veri seti, 60.000’i eğitime 10.000’i teste ayrılan el yazısı rakamlarından oluşuyor. YSA’lardan istatiksel modellere kadar pekçok yöntem bu veri setleri üzerinde yapılmıştır.

Ciresan 2012’de yaptığı çalışmada CNN kullanıp, en iyi sonuca %0.23 hata yaparak ulaşmıştır.

Ayrıca Cresan’ın ekibi, 2011 yılında ICDAR Çin el yazısı yarışması ve 2012'de ISBI resim bölümleme yarışmasını kazanıp bilinmişlerdir.

Alex Krizhevsky, Geoffrey Hinton ve ekibi tarafından ortaya gelen Benzer bir model, kanser tespiti için büyük medikal resimlerin analizi konusundaki ICPR ve MICCAI yarışmalarını kazanmıştır.

Quoc V. Le çalışmasında, havuzlama, normalizasyon ve 9-katmanlı bir DAE ile internetten indirilen 10 milyon görüntü ile bir veri kümesini öğretilmiştir. 1000 makine (16.000 çekirdek) ile yapılan bir paralel küme ile eğitim 3 gün süresinde bitmiştir.

Bu model ile yüz etiketlemesi yapmadan yüz tanıma sistemi ve insan vücudu parçası da anlayabiliyoruz.

Girshick ve ekibi, resimdeki nesneleri bilmek ve anlamsal segmentasyon yapmak için bölgeleri ve CNN modelini toplayıp bir araya getirip, R-CNN adı verilen algoritmayla başarılı sonuca ulaşmıştır.

Clement Farabet çalışmasında, çoklu ölçekli CNN modelini sunmuştur. Bu model, SIFT Flow, Barcelona, Stanford arka plan veri kümeleri ile diğer yaklaşımlara göre çok daha hızlı ve başarılı sonuçlar üretmiştir.

Görüntü işleme konusunda çalışılan diğer problemde trafikteki yayaların tespitidir. Bu konuda seyrek (sparse) CNN modeliyle yapılan denetimsiz öğrenme yöntemi rekabetçi sonuç vermiştir.

 

Biyomedikal Sinyal/Görüntü İşleme

Tıbbi görüntü analizi problemlerin çözümünde de fazlasıyla etkilidir. Beyin tümörü araştırmalarında, görüntü segmentasyonuna ihtiyaç duyuluyor. Artık bu son yıllarda derin öğrenme yöntemleriyle başarılı bir iş görüp otomatik segmentasyon yapılmaktadır. Beyin tümörü için otomatik MRI Segmentasyonu konusunda hatta CNN tabanlı algoritmalar, nesnel yorumlar yapılıp imkân sağlamaktadır.

Zhang çalışmasında, meme kanseri klinik bilgisayar teşhisinde iyi bir parametre olan SWE (Share Wave Elastography) verisinden ele alınan görüntülerden iyi-kötü huylu tümörlerin bilinmesi için derin öğrenme modeli yapılmıştır.

RBM ve PGBM (Point-Wise Gated Boltzmann Machine) ile 2 katmanlı oluşturulan model 227 SWE verisiyle yapılmış ve %93,4 doğruluk göstermiştir.

Sun ve ekibi ile birlikte yapıldığı çalışmada, akciğer kanseri tespitinde otomatik çıkarılan özellikler kullanan model ile elle çıkarılan özellikleri kullanan CADx sistemi birbiri ile karşılaştırılmıştır. Derin öğrenme ağı CNN, DBN ve DAE ile 3 kanallı yapılmıştır. Sonuçlar AUC (Area Under Curve) değerine göre bakıldığında CADx karşısında, CNN belirgin bir şekilde üstün çıkmış, DBN yakın ama üstün bir değer vermiş, DAE ise çok kötü sonuçlar göstermiştir.

Genetik bilgilerin söylenmesi biyo-enformatik konusunda çok önemli bir konudur. Bu konuya çözüm olarak DAE tabanlı bir sistem verilmiş ve standart makine öğrenmesi yöntemlerine göre daha iyi sonuç vermiştir.

Türkiye’de de bu konuda birçok çalışma yapılmaktadır. Prof. Dr. Aydın AKAN sinyal işleme ve hatta duruk olmayan sinyallerin analizi konusunda çalışmalar yapıyor ve yeni sinyal işleme yöntem ve yaklaşımları devam etmektedir. Bu yöntemlerin biyomedikal sinyal ve görüntülerin işlenmesi, birçok hastalıkların tanısı ile karar destek sistemlerinde uygulamak için araştırmalarını devam ettiriyorlar.

Sinyal ve Görüntü İşleme laboratuvarında Matlab programı ile sinyal ve görüntü işleme uygulamalarını yapıyorlar.

Etiketler
Üç ana derin model çeşidi
derin öğrenme nedir
Derin Öğrenme Nerelerde ve Ne İçin Kullanılır?
Derin Öğrenme İçinde Yapay Zekâ Nasıl Kullanılır?
Derin Öğrenme Nasıl Çalışır?
Yapay Sinir Ağını Eğitme
Derin Öğrenme Uygulamaları
Doğal Dil İşleme
Görüntü ve Video İşleme
Biyomedikal Sinyal ve Görüntü İşleme
Detaylı Bilgi İçin Bizi Arayın