Yeni Başlayanlar İçin Derin Öğrenme

Aysen Çeliktaş
6 min readAug 5, 2023

--

Bir önce ki yazılarım olan “Yeni Başlayanlar İçin Denetimli Makine Öğrenmesi” ve “Yeni Başlayanlar İçin Denetimsiz Makine Öğrenmesi” kısaca makine öğrenmesinden bahsetmiştim. Burada ise basit bir şekilde derin öğrenme konusuna giriş yapmak istiyorum. Sentetik veri oluşturma, boyut azaltma, görüntülerin gürültülerini giderme ve ses transferi gibi birçok uygulama için kullanılan bir derin öğrenme mimarisi olan GAN’ın Python ortamında ki uygulamasına buradan, tıbbi görüntülemede ki kullanımlarına ise buradan genel bir bakış atabilirsiniz.

[yazar tarafından Canva’da hazırlandı]

“Sinir ağları, sorunları bir böl ve fethet stratejisi kullanarak çözer: bir ağdaki nöronların her biri, daha büyük sorunun bir bileşenini çözer ve genel sorun, bu bileşen çözümlerinin birleştirilmesiyle çözülür.” [1]

Derin öğrenme, makine öğreniminin bir evrimi olarak kabul edilen, çok daha büyük verilerle çok daha karmaşık işlemler yapabilen bir makine öğrenimi tekniğidir. Makine öğreniminin bir alt dalıdır, ancak makine öğreniminden daha fazla gelişmiştir. Temel makine öğrenmesiyle en büyük farklarından biri (Şekil1), öznitelik çıkarma işleminin derin öğrenmede insan gücü ile yapılmamasıdır. Derin öğrenmede, mimarisi oluşturulan katmanlar sayesinde, bu öznitelikler makine tarafından öğrenilir.

Şekil1. Machine Learning & Deep Learning [yazar tarafından Canva’da hazırlandı]

Eğer bir fotoğraf verisi örnek olarak verilecek olursa, nöronlardan oluşan bu katmanlar, bir nesnenin kenar, köşe, renk gibi yapısal özelliklerini kullanarak, bir çıktı elde eder. Bu özellikleri kerneller sayesinde filtreleme yaparak bulur. Makine öğrenmesi ile temel farklarından biri, tüm bunları makine öğrenmesinde ki gibi dataframe ile değil, tensor (Şekil2) yapısında ki veriler ile çalışıyor olmasıdır. Diğer bir önemli fark ise geleneksel makine öğrenmesinde veri arttıkça, model belirli bir yere kadar öğrenir ama daha sonra belirli platoya ulaşır ve orada sabitlenir. Veriyi ne kadar arttırırsan arttır, öğrenme sabit kalır. Derin öğrenmede ise veri arttıkça öğrenme de sürekli devam eder ve sabitlenmez. Makine öğrenmesi için zor olan büyüklükte ki veriler (big data(velocity, variable, volume)) ile derin öğrenme çalışır.

Şekil2. scalar value to tensor [yazar tarafından Canva’da hazırlandı]

Örnek olarak çok klasik olan emlak datası verilebilir. Burada konutların oda sayısı, bulunduğu konum, konut büyüklüğüne bakılarak; ailelerin büyüklüğü, insanların yürüme kapasitesi, okul, hastane ya da devlet kurumuna olan uzaklıkları gibi birçok özellik, katmanlar arasında öğrenilir. Çıktı olarak konutun fiyatına dair bir tahminde bulunabilir.

Şekil3. Deep Learning Methods [yazar tarafından Canva’da hazırlandı]

Katmanlar arasında ki nöronların öğrenmesini sağlayan yapı, insan beyninde ki nöronların yapısından esinlenilerek geliştirilmiştir. 1950 yılında Turing ile başlayan makine öğrenmesi tarihinde derin öğrenme üzerine, insan sinir hücresini taklit eden sinir ağı konseptini Geoffrey Hinton 1980’li yıllarda buldu. Arkadaşları ile üzerinde çalıştığı backpropagation algoritması ile çok önemli bir gelişme katedildi. Takiben, 1997 yılında IBM Deep Blue, dünya satranç şampiyonu Garry Kasparov’u yendi. 1998 yılında, Yann LeCun ve arkadaşları CNN ile sınıflandırmayı başardı. 2000’li yıllarda ise sırasıyla ImageNet, Siri, AlexNet, GoogleNet, GAN, AlphaGo, Kapsül Ağlar, ChatGPT gibi birçok gelişme gerçekleşti. Bilgisayar teknolojisinin gelişmesi, çalışmaları hızlandırdı ve verimli hale getirdi.

Sinir ağı konseptine bakılacak olursa, insan sinir hücresi Şekil4’de gösterilen aksonlar boyunca iletimini gerçekleştirir. Dentritler aracılığı ile çekirdeğe iletilen impulselar, çekirdekte biyolojik olarak işlendikten sonra, aksonlar boyunca yeni sinir hücrelerine iletilir. Bu durum, derin öğrenmede ağırlıklandırılarak nöronlara giren bilgilerin, matematiksel işleme sokulmasıyla sonuçlanır. Giriş değerleri, dentritlere karşılık gelen yollar üzerinde ki ağırlıklarla çarpılarak, sinir hücresi içerisinde toplanır ve üzerine bias eklenir. Non-linear bir durum elde edilebilmesi için ise nörondan çıkmadan önce, aktivasyon fonksiyonu uygulanır. Aktivasyon fonksiyonu sonucu elde edilen çıktı, sonuç ya da başka bir nöronun girdisi olabilir. Her bir sinir hücresi bu yöntemle hesaplanarak birbirine seri ya da paralel olacak şekilde bağlanır.

Şekil4. biological and machined nerve cell [yazar tarafından Canva’da hazırlandı]

Washington Post’tan Forrest Wickman’in açıklamasına göre: “İnsan beyni kabaca 100 milyar nöron içerir [Ed. not: aslında 86 milyara yakın, ama şimdi sadece titiz davranıyoruz]. Bu nöronların her biri, büyük ölçüde veri depolama işini yapan yaklaşık 1.000 potansiyel sinapsı temsil eden, yaklaşık 1.000 bağlantı kurma yeteneğine sahip görünüyor. Bu 100 milyar nöronun her birini, yapabileceği yaklaşık 1.000 bağlantıyla çarptığınızda, 100 trilyon veri noktası veya yaklaşık 100 terabayt bilgi elde edersiniz.” [2]

Northwestern Üniversitesi’nden psikolog Paul Reber buna karşı: “…nöronlar birleşir, böylece her biri aynı anda birçok anıya yardımcı olur ve beynin bellek depolama kapasitesi katlanarak yaklaşık 2,5 petabayta [1 petabayt ≈ 1.000 terabayt] yakın bir şeye yükselir. Karşılaştırma için, beyniniz bir televizyondaki dijital video kaydedici gibi çalışsaydı, 2,5 petabayt üç milyon saatlik TV şovunu tutmak için yeterli olurdu. Tüm bu depolamayı tüketmek için TV’yi 300 yıldan fazla bir süre kesintisiz çalışır durumda bırakmanız gerekir.” [2]

Derin öğrenme yapılırken, modelin tüm veriyle beslendiği her döngüye epoch denir. Batch size ise modelin beslenmesinde verilerin alt örneklem oluşturularak, modelin parça parça beslenmesini kapsamaktadır. Ayrıca, model kurulurken dikkat edilmesi gereken bazı noktalara aşağıda sırasıyla değinilmiştir.

Activation Function: ağırlıklandırılmış inputların, bias ile toplandıktan sonra non-linear bir yapıya çevrilmesi için kullanılan fonksiyonlardır. Backpropagation esnasında ki türev işlemleri için gereklidir. Hidden layerlar da genellikle ReLU kullanılır. Classification yaparken output layerlarda; binary ise Sigmoid, multiclass ise Softmax kullanılır. Yine hidden layerlarda kullanımı tercih edilebilen Leaky ReLU, eğer 0’ın altında kalan değerler model için önemli ise kullanılabilir.

Şekil5. activation function types [yazar tarafından Canva’da hazırlandı]

Loss Function (cost function, objective function): Modelin hata oranını, aynı zamanda başarısını ölçen fonksiyondur. Metrikler denetimli makine öğrenmesi ile aynıdır. Regresyon için Mean Square Error (MSE), sınıflandırma için ise Cross Entropy (LogLoss) dir.

Şekil6. classification and regression [yazar tarafından Canva’da hazırlandı]

Backpropagation: Model ileri doğru beslenirken, girişi yapılan verinin çıktısını, target ile kıyaslayarak, geriye doğru yayılım yapar. Aktivasyon fonksiyonu ile non-linear duruma getirilmiş, birçok nöronda hesaplanmış, birçok durum olduğu için tam convex bir yapı yoktur. En etkili parametrelerden biri learning ratedir. Eğer gerektiğinden büyük tutulursa, local minimum ya da global minimum atlanabilir. Ayrıca, gerektiğinden küçük tutulursa, local minimum da takılabilir. Sonuç, global minimum mu yoksa local minimum mu, ancak iyi değerler bulduğunda bir önce ki ile kıyaslayarak karar verilebilir.

Şekil7. backpropagation [yazar tarafından Canva’da hazırlandı]

Regularization: Modelin çeşitli nedenlerden dolayı overfittinge gitmeden optimumu yakalayabilmesine yardımcı olmak için kullanılır. Early Stoppage, varianceın çok artmadığı ve biasın optimum olduğu yerde modeli durdurur. Dropout, nöronların bazılarının güncellenmesini engelleyerek, modele hata katar. Bu nöronlar genellikle %5o nin altında ve random seçilir. Weight Penalty, Ridge ve Lasso’da ki gibi modele hata eklenir. L1 Penalty, ağırlıkların karesi; L2 Penalty, ağırlıkların mutlak değeri ile cezalandırır.

Normalization: Bazen ağırlıklar güncellenirken 0’dan çok küçük olur. Bazen de çok büyük olur ve domine eder. Burada ki tutarsızlığı dengelemek için normalization kullanılır. En yaygın kullanılan BatchNormalizationdır. Genellikle modele girerken yapılması tercih edilir. Böylece, ağırlıkların dengelenmesi sağlanır. Bu yazıda, genel anlamda derin öğrenmeden bahsedildi.

Son olarak, üç ana başlık altında yer alan bazı sinir ağları ise Şekil8’de görülmektedir. Başlangıçta, bunların kullanım alanlarına göz gezdirilebilir ve ihtiyaca yönelik mimariler araştırılabilir.

Şekil8. main types of deep learning [yazar tarafından Canva’da hazırlandı]

References

[1] Kelleher, J. D. (2019). Deep learning. MIT press.

[2] Gonzalez, Robbie, “If your brain were a computer, how much storage space would it have?” 2013.

[3] Geron, A. (2019). Handson Machine Learning with Scikitlearn, Keras & TensorFlow. o’Reiley Media. Inc, Sebatopol, CA.

--

--