derin öğrenme ian goodfellow pdf / Yoshua Bengio Arşivleri - Derin Öğrenme | Deep Learning

Derin Öğrenme Ian Goodfellow Pdf

derin öğrenme ian goodfellow pdf

6698 sayılı Kişisel Verilerin Korunması Kanunu uyarınca hazırlanmış aydınlatma metnimizi okumak ve sitemizde ilgili mevzuata uygun olarak kullanılan çerezlerle ilgili bilgi almak için lütfen tıklayınız.

Artificial Intelligence-A Modern Approach: http://www.cin.ufpe.br/~tfl2/artificial-intelligence-modern-approach.9780131038059.25368.pdf

Ian Goodfellow and Yoshua Bengio and Aaron Courville-Deep Learning (Deep Learning)

Dive Into Deep Learning  http://d2l.ai/

Think Stats: Probability and Statistics for Programmers:http://www.greenteapress.com/thinkstats/thinkstats.pdf

Deep Learning Kitabı Uygulama: https://hadrienj.github.io/posts/Deep-Learning-Book-Series-Introduction/

Neural Network Design: http://hagan.ecen.ceat.okstate.edu/nnd.html

Reinforcement Learning An Introduction: http://incompleteideas.net/book/bookdraft2017nov5.pdf

Veri: http://gurmezin.com/makine-ogrenmesi-ornek-veri-kumeleri/

Automate the Boring Stuff with Python: https://automatetheboringstuff.com/

Natural Language Processing With Python: http://www.nltk.org/book_1ed/

DEEP LEARNING WITH PYTHON:https://tanthiamhuat.files.wordpress.com/2018/03/deeplearningwithpython.pdf

OpenCV-Python:

http://chamilo1.grenet.fr/ujf/courses/FAMILIARISATIONAVECPYTHONSUITEANACON/document/OpenCV_Computer_Vision_with_Python_-eBook-.pdf

https://paperswithcode.com/

https://github.com/changwookjun/StudyBook

Neural Networks and Learning Machineshttp://dai.fmph.uniba.sk/courses/NN/haykin.neural-networks.3ed.2009.pdf

A Brief Introduction to
Neural Networks http://www.dkriesel.com/_media/science/neuronalenetze-en-zeta2-2col-dkrieselcom.pdf

Beyin: Senin Hikayen – David Eagleman

Bilinç ve Beyin – Stanislas Dehaene

Yaşam 3.0 – Max Tegmark

Süper Zeka – Nick Bostrom

İnsan Beyni – Robert Winston

Python ile Derin Öğrenme – Francois Chollet

Robotik Savaş – P.W. Sünger

Robokıyamet – Daniel H.Wilson

Master Algoritma – Pedro Domingos

Gerçek Bir Yanılsama Bilinç – Tevfik Alıcı

Yapay Zeka – Vasif Nabiyev

Yapay Zeka Geçmişi ve Geleceği – Nils J.Nilsson

Zihnin Geleceği – Michio Kaku

Bunu beğen:

BeğenYükleniyor...

1 main 2018/10/22 22:43 page i #1

2 main 2018/10/22 22:43 page ii #2 Yayın Numarası: Baskı: Ekim 2018 ISBN Sertifika Numarası: Buzdağı Yayınevi Altay Mahallesi Cadde Fırat Life Style Rezidans 1F/61 Eryaman/ANKARA t: f: Baskı Ankamat Matbaacılık Copyright c 2016 Massachusetts Institute of Technology c Türkçe yayın hakları Buzdağı Yayınevi ne aittir. Bu kitabın hiçbir bölümü, yazarın ve yayınevinin izni alınmadan basılı ve dijital olarak çoğaltılamaz, yayınlanamaz.

3 main 2018/10/22 22:43 page iii #3 Derin Öğrenme Ian Goodfellow Yoshua Bengio Aaron Courville

4 main 2018/10/22 22:43 page iv #4 Genel Yayın Yönetmeni Fatih ÖZDEMİR Yazarlar Ian Goodfellow Yoshua Bengio Aaron Courville Çevirmenler Prof. Dr. Fatoş YARMAN VURAL Dr. Öğr. Üyesi Ramazan Gökberk CİNBİŞ Doç. Dr. Sinan KALKAN Çevirmen Yardımcıları Hüseyin AYDIN Yarkın Deniz ÇETİN Berkan DEMİREL Hazal MOĞULTAY Mert Bülent SARIYILDIZ Gencer SÜMBÜL Editörler Bilgin AKSOY Ferhat KURT Doç. Dr. Vedat ÇELİK Editör Yardımcıları Furkan KALINSAZ Doruk SÖNMEZ Son Okuma Ahmet Okan ŞEKER Dizgi Veysel TOPRAK Kapak Fotoğrafı Daniel Ambrosi (Joseph Smarr ve Chris Lamb tarafından düzenlenmiştir.)

5 main 2018/10/22 22:43 page v #5 İçindekiler Web sitesi Teşekkür Çevirmenlerin Ön Sözü Derin Öğrenme Sözlüğü Notasyon xiii xv xix xxi xxxix 1 Giriş Bu Kitabı Kimler Okumalı? Derin Öğrenmede Tarihsel Eğilimler I Uygulamalı Matematik ve Makine Öğrenmesinin Temelleri 27 2 Doğrusal Cebir Skalerler, Vektörler, Matrisler ve Tensörler Matris ve Vektörleri Çarpmak Birim ve Ters Matrisler Doğrusal Bağımlılık ve Uzayı Germe Normlar Matrisler ve Vektörlerin Özel Çeşitleri Özayrışma Tekil Değer Ayrışımı

6 main 2018/10/22 22:43 page vi #6 İÇİNDEKİLER 2.9 Moore-Penrose Tersimsisi İz Operatörü Determinant Örnek: Ana Bileşenler Analizi (PCA) Olasılık ve Bilgi Kuramı Neden Olasılık? Rastgele Değişkenler Olasılık Dağılımları Marjinal Olasılık Koşullu Olasılık Koşullu Olasılıkların Zincir Kuralı Bağımsızlık ve Koşullu Bağımsızlık Beklenti, Değişirlik ve Eşdeğişirlik Sık Karşılaşılan Olasılık Dağılımları Sık Kullanılan Fonksiyonların Kullanışlı Özellikleri Bayes Kuralı Sürekli Değişkenlerin Teknik Detayları Bilgi Kuramı Yapılandırılmış Olasılık Modelleri Sayısal Hesaplama Taşma ve Küçümenlik Yetersiz Koşullama Gradyan-Temelli Eniyileme Kısıtlı Eniyileme Örnek: Doğrusal En Küçük Kareler Makine Öğrenmesinin Temelleri Öğrenme Algoritmaları Kapasite, Aşırı Uydurma ve Yetersiz Uydurma Hiperparametreler ve Doğrulama Kümeleri vi

7 main 2018/10/22 22:43 page vii #7 İÇİNDEKİLER 5.4 Kestiriciler, Önyargı ve Değişirlik En Büyük Olabilirlik Kestirimi Bayes İstatistiği Denetimli Öğrenme Algoritmaları Denetimsiz Öğrenme Algoritmaları Stokastik Gradyan İnişi Bir Makine Öğrenmesi Algoritması Oluşturmak Derin Öğrenmeyi Motive Eden Zorluklar II Derin Ağlar: Modern Pratikler Derin İleri Besleme Ağları Örnek: XOR Fonksiyonunu Öğrenmek Gradyan Tabanlı Öğrenme Gizli Birimler Mimari Tasarım Geri Yayılım ve Diger Türevleme Algoritmaları Tarihsel Notlar Derin Öğrenmede Düzenlileştirme Parametre Normu Cezaları Kısıtlanmıs Eniyileme Olarak Norm Cezaları Düzenlileştirme ve Az Koşullandırılmış Problemler Veri Kümesi Çeşitleme Gürültü Direnci Yarı-denetimli Öğrenme Çoklu-görev Öğrenme Erken Durdurma Parametrelere Eşleme ve Parametre Paylaşımı Seyrek Gösterimler İstifleme ve Diğer Topluluk Yöntemleri İletim Sönümü vii

8 main 2018/10/22 22:43 page viii #8 İÇİNDEKİLER 7.

9 main 2018/10/22 22:43 page ix #9 İÇİNDEKİLER 10.8 Yankı Durum Ağları Sızıntılı Birimler ve Birden Fazla Zaman Ölçeği için Diğer Stratejiler Uzun Ömürlü Kısa-Dönem Bellek ve Diğer Geçitli RNN ler Uzun-Dönem Bağımlılık için Eniyileme Açık Bellek Kullanışlı Metodolojiler Performans Ölçütleri Varsayılan Temel Modeller Daha Fazla Veri Toplayıp Toplamamaya Karar Vermek Hiperparametreleri Seçme Hata Ayıklama Stratejileri Örnek: Çok Rakamlı Sayı Tanıma Uygulamalar Büyük Ölçekli Derin Öğrenme Bilgisayarlı Görü Konuşma Tanıma Doğal Dil İşleme Diğer Uygulamalar III Derin Öğrenme Araştırmaları Doğrusal Faktör Modelleri Olasılıksal PCA ve Faktör Analizi Bağımsız Bileşenler Analizi (ICA) Yavaş Öznitelik Analizi Seyrek Kodlama PCA Yönteminin Manifold Olarak Yorumlanması Otokodlayıcılar Tamamlanmamıs Otokodlayıcılar ix

10 main 2018/10/22 22:43 page x #10 İÇİNDEKİLER 14.

11

12 main 2018/10/22 22:43 page xii #12 İÇİNDEKİLER Kaynakça 733 İndeks 793 xii

13 main 2018/10/22 22:43 page xiii #13 Web Sitesi Bu kitap, yukarıda adresi verilen web sitesi ile desteklenmektedir. Bu sitede, okuyuculara ve eğitmenlere faydalı olabilecek alıştırmalar, ders notları ve düzeltilen hatalar gibi pek çok destekleyici türde materyal yer almaktadır.

14 main 2018/10/22 22:43 page xiv #14

15 main 2018/10/22 22:43 page xv #15 Teşekkür Bu kitabın yazımı birçok kişinin katkısı sayesinde gerçekleşmiştir. Bu kitap ile ilgili önerimize, kitabın içeriği ve organizasyonuna dair geri bildirimlerini esirgemeyenlere teşekkürü borç biliriz: Guillaume Alain, Kyunghyun Cho, Çağlar Gülçehre, David Krueger, Hugo Larochelle, Razvan Pascanu and Thomas Rohée. Doğrudan kitabın içeriğine dair geri bildirim veren herkese de ayrıca teşekkür etmek istiyoruz. Bazıları birçok bölüm ile ilgili geri bildirimde bulunmuştur: Martín Abadi, Guillaume Alain, Ion Androutsopoulos, Fred Bertsch, Olexa Bilaniuk, Ufuk Can Biçici, Matko Bošnjak, John Boersma, Greg Brockman, Alexandre de Brébisson, Pierre Luc Carrier, Sarath Chandar, Pawel Chilinski, Mark Daoust, Oleg Dashevskii, Laurent Dinh, Stephan Dreseitl, Jim Fan, Miao Fan, Meire Fortunato, Frédéric Francis, Nando de Freitas, Çağlar Gülçehre, Jurgen Van Gael, Javier Alonso García, Jonathan Hunt, Gopi Jeyaram, Chingiz Kabytayev, Lukasz Kaiser, Varun Kanade, Asifullah Khan, Akiel Khan, John King, Diederik P. Kingma, Yann LeCun, Rudolf Mathey, Matías Mattamala, Abhinav Maurya, Kevin Murphy, Oleg Mürk, Roman Novak, Augustus Q. Odena, Simon Pavlik, Karl Pichotta, Eddie Pierce, Kari Pulli, Roussel Rahman, Tapani Raiko, Anurag Ranjan, Johannes Roith, Mihaela Rosca, Halis Sak, César Salgado, Grigory Sapunov, Yoshinori Sasaki, Mike Schuster, Julian Serban, Nir Shabat, Ken Shirriff, Andre Simpelo, David Slate, Scott Stanley, David Sussillo, Ilya Sutskever, Carles Gelada Sáez, Graham Taylor, Valentin Tolmer, Massimiliano Tomassoli, An Tran, Shubhendu Trivedi, Alexey Umnov, Vincent Vanhoucke, Marco Visentini-Scarzanella, Martin Vita, David Warde-Farley, Dustin Webb, Kelvin Xu, Wei Xue, Ke Yang, Li Yao, Zygmunt Zając ve Ozan Çağlayan. Bölümler ile ilgili çok faydalı geri bildirimlerde bulunan kişilere de teşekkür etmek istiyoruz: Notasyon: Zhang Yuanhang J.B. Lee.

16 main 2018/10/22 22:43 page xvi #16 TEŞEKKÜR Bölüm 1, Giriş: Yusuf Akgul, Sebastien Bratieres, Samira Ebrahimi, Charlie Gorichanaz, Brendan Loudermilk, Eric Morris, Cosmin Pârvulescu ve Alfredo Solano. Bölüm 2, Doğrusal Cebir: Amjad Almahairi, Nikola Banić, Kevin Bennett, Philippe Castonguay, Oscar Chang, Eric Fosler-Lussier, Andrey Khalyavin, Sergey Oreshkov, István Petrás, Dennis Prangle, Thomas Rohée, Gitanjali Gulve Sehgal, Colby Toland, Alessandro Vitale ve Bob Welland. Bölüm 3, Olasılık ve Bilgi Kuramı: John Philip Anderson, Kai Arulkumaran, Vincent Dumoulin, Rui Fa, Stephan Gouws, Artem Oboturov, Antti Rasmus, Alexey Surkov ve Volker Tresp. Bölüm 4, Sayısal Hesaplama: Tran Lam AnIan Fischer ve Hu Yuhuang. Bölüm 5, Makine Öğrenmesinin Temelleri: Dzmitry Bahdanau, Nikhil Garg, Justin Domingue, Makoto Otsuka, Bob Pepin, Philip Popien, Bharat Prabhakar, Emmanuel Rayner, Peter Shepard, Kee-Bong Song, Zheng Sun ve Andy Wu. Bölüm 6, Derin İleri Besleme Ağları: Uriel Berdugo, Fabrizio Bottarel, Elizabeth Burl, Ishan Durugkar, Jeff Hlywa, Jong Wook Kim, David Krueger, Aditya Kumar Praharaj ve Sten Sootla. Bölüm 7, Derin Öğrenmede Düzenlileştirme: Morten Kolbæk, Kshitij Lauria, Inkyu Lee, Sunil Mohan, Hai Phong Phan ve Joshua Salisbury. Bölüm 8, Derin Modellerin Eğitiminde Eniyileme: Marcel Ackermann, Peter Armitage, Rowel Atienza, Andrew Brock, Tegan Maharaj, James Martens, Mostafa Nategh, Kashif Rasul, Klaus Strobl ve Nicholas Turner. Bölüm 9, Evrişimsel Ağlar: Martín Arjovsky, Eugene Brevdo, Konstantin Divilov, Eric Jensen, Mehdi Mirza, Alex Paino, Marjorie Sayer, Ryan Stout ve Wentao Wu. Bölüm 10, Sıralı Veri Modelleme: Yinelemeli ve Özyinelemeli Ağlar: Gökçen Eraslan, Steven Hickson, Razvan Pascanu, Lorenzo von Ritter, Rui Rodrigues, Dmitriy Serdyuk, Dongyu Shi ve Kaiyu Yang. Bölüm 11, Kullanışlı Metodolojiler: Daniel Beckstein. Bölüm 12, Uygulamalar: George Dahl, Vladimir Nekrasov ve Ribana Roscher. Bölüm 13, Doğrusal Faktör Modelleri: Jayanth Koushik. xvi

17 main 2018/10/22 22:43 page xvii #17 TEŞEKKÜR Bölüm 15, Gösterim Öğrenme: Kunal Ghosh, Rodney Melchers, Gudmundur Einarsson. Bölüm 16, Derin Öğrenme için Yapılandırılmış Olasılıksal Modeller: Minh Lê ve Anton Varfolom. Bölüm 18, Bölüntü Fonksiyonunu İnceleme: Sam Bowman. Bölüm 19, Yaklaşık Çıkarım: Yujia Bao. Bölüm 20, Derin Üretken Modeller: Nicolas Chapados, Daniel Galvez, Wenming Ma, Fady Medhat, Shakir Mohamed ve Grégoire Montavon. Kaynakça: Lukas Michelbacher ve Leslie N. Smith. Yayınlarından görselleri, şekilleri veya verileri tekrar üretmemize izin verenlere de teşekkür etmek istiyoruz. Bu kişilerin katkılarını tüm metin boyunca şekil açıklamalarında belirtmiş durumdayız. Bunların yanında, kitabın internet versiyonunu oluşturabilmek için kullandığımız pdf2htmlex i yazan ve ortaya çıkan HTML kalitesinin arttırılması ile ilgili destekte bulunan Lu Wang e teşekkür ediyoruz. Ian ın eşi Daniela Flori Goodfellow a kitabın yazımında Ian ı sabırlı bir şekilde desteklediği ve kitap üzerinde düzeltmeler yaptığı için teşekkür ediyoruz. Ian ın bu kitabı yazmaya ve meslektaşlarımızdan geri bildirim ve rehberlik almaya bolca zaman ayırabildiği entelektüel bir ortam sağladıkları için Google Brain ekibine teşekkür etmek istiyoruz. Ian ın eski müdürü Greg Corrado ve mevcut müdürü Samy Bengio ya bu projeyi destekledikleri için özellikle teşekkür ediyoruz. Son olarak, yazmanın zor geldiği zamanlardaki teşvikleri için Geoffrey Hinton a teşekkür ediyoruz. xvii

18 main 2018/10/22 22:43 page xviii #18

19 main 2018/10/22 22:43 page xix #19 Çevirmenlerin Ön Sözü 1990 lı yıllarda yaşanan bilişim devrimi ile bilgisayarlar hayatımızın her kesitini değiştirerek büyük bir sosyal ve ekonomik dönüşüme neden oldu. Bu dönüşümden çok daha etkili ve hızlı bir devrimi ise son birkaç yıldır, Yapay Zekâ teknolojilerinde kaydedilen büyük bir atılımla yaşamaya başladık. Derin Öğrenme adı verilen bu yeni teknolojiler insan beynindeki sinir ağlarından esinlenerek geliştirildi. İnsan gibi hatta zaman zaman insandan daha iyi algılayan, gören, duyan, konuşan ve öğrenen bu teknolojiler sayesinde, doğadaki akıllı organizmaları taklit edebiliyoruz. Hatta daha da ileri giderek doğada bulunmayan karmaşık öğrenme yöntemleri de geliştirebiliyoruz. Akıllı sistemler, bir canlı gibi çevreyi algılıyor ve anlamlandırabiliyor. Bunun da ötesinde, insanın göremediğini görebilen, duyamadığını duyabilen, algılayamadığını algılayan ve tanıyan makineler geliştirebiliyoruz. Örneğin; manyetik rezonans görüntüleme teknikleri ile insanın çıplak gözle göremediği organları gören ve hastalık teşhisinde doktorlara yardımcı olan karar destek sistemleri tasarlayabiliyoruz. Ya da örümceklerin ağ kurma yöntemlerini taklit ederek örümceğin yapamadığı sağlamlıkta yapılar oluşturabiliyoruz. Derin Öğrenme yöntemleri, her gün kullandığımız cihazların daha kullanışlı ve verimli hâle gelmesini sağladı. Sürücüsüz arabalar, kendi kendine hareket eden insansız hava ve kara araçları, akıllı evler, akıllı şehirler ve akıllı fabrikaların oluşturulmasına olanak sağladı. Tam otomasyonlu üretimi sağlaması beklenen akıllı fabrikaların geliştirileceği Endüstri 4.0 çağını tetikledi. Derin Öğrenme yöntemlerinin henüz tüm dünyada gelişme aşamasında olmasından dolayı, gelişmiş ve gelişmekte olan ülkeler yarışa aynı noktadan başlamaktadır. Bu durum, Türkiye gibi sınırlı sayıda da olsa yetişmiş insan gücüne sahip bir ülke için büyük bir fırsat sunmaktadır. Bu kitap, ülkemizin derin öğrenme alanında daha iyi yerlere gelmesini sağlamak için gerekli insan gücünü artırmayı hedeflemektedir. Bu vizyon doğrultusunda, kitabın çevirisi büyük bir titizlik, özveri ve emek ile tamamlanmıştır. Dikkat edilmesi gereken birkaç hususun belirtilmesi yararlı olacaktır:

20 main 2018/10/22 22:43 page xx #20 ÇEVİRMENLERİN ÖN SÖZÜ Çeviri esnasında, olabildiğince TÜBA Bilim Terimleri Sözlüğü ve TBD Bilişim Terimleri Sözlüğü dikkate alınmıştır. Ancak, Derin Öğrenme yöntemlerinin ve yazılımın baş döndüren bir hızla ilerlemesinin bir sonucu olarak, bu alandaki terimlerin bir kısmının Türkçe karşılığının olmadığı, birden fazla sayıda Türkçe karşılığının olduğu, önerilmiş Türkçe karşılıkların anlaşılır olmadığı veya sözlüklerde geçen karşılıklarının metnin takibini zorlaştırdığı tespit edilmiştir. Bu tür terimlerin Türkçe karşılıkları belirlenirken, metnin kolay anlaşılır ve takip edilir olması hedeflenmiştir. Bunu kolaylaştırmak için metin içerisinde ilk geçtikleri yerlerde önemli terimlerin İngilizce karşılıkları (çoğunlukla ek açıklamalar ile) verilmiştir. Denklemler, İngilizce yayın ve programlama kaynaklarının takibini kolaylaştırmak maksadıyla çevirilmemiştir ve bu maksat doğrultusunda, denklemlerde geçen bazı terimler metin içerisinde Türkçeleştirilmemiştir. Algoritmaları içeren sözde kodlar da okuyucunun programlama dillerindeki İngilizce komutları bildiği varsayımı ile çevrilmemiştir. Bu çeviri Ortadoğu Teknik Üniversitesi Bilgisayar Mühendisliği ndeki pek çok öğretim üyesi ve araştırma görevlisinin katkısı ile gerçekleştirilmiştir. Makine Öğrenmesi alanındaki terimlerin Türkçe karşılıklarını oluşturmak için bize destek veren tüm arkadaşlarımıza teşekkür ederiz. xx

21

22

23

24

25

26

27

28 main 2018/10/22 22:43 page xxviii #28 DERİN ÖĞRENME SÖZLÜĞÜ hidden layer: gizli katman hidden unit: gizli birim hill climbing: tepe tırmanışı hyperparameter optimization: hiperparametre eniyilemesi hyperparameters: hiperparametreler hypothesis space: hipotez uzayı i i.i.d. assumptions: i.i.d. varsayımları identity matrix: birim matris image: görüntü ImageNet Large Scale Visual Recognition Challange: ImageNet Geniş Ölçekli Tanıma Yarışması immorality: aykırılık implementation: gerçekleştirme importance sampling: önem örnekleme importance weighted autoencoder: önem ağırlıklı otokodlayıcı independence: bağımsızlık independent and identically distributed: bağımsız özdeşçe dağılmış independent component analysis: bağımsız bileşenler analizi independent subspace analysis: bağımsız altuzaylar analizi inequality constraint: eşitsizlik kısıtı inference: çıkarım, çıkarsama intercept: kesim noktası inferotemporal cortex: şakak altı korteksi information retrieval: bilgi getirimi initialization: ilk değer atama interpolate: aradeğeri bulmak intractable: kolay çözümlenemez invariance: değişmezlik isotropic: izotrop j Jacobian matrix: Jacob matrisi joint probability: ortak olasılık xxviii

29

30

31

32

33

34

35

36

37

38 main 2018/10/22 22:43 page xxxviii #38

39 main 2018/10/22 22:43 page xxxix #39 Notasyon Bu bölümde kitapta kullandığımız notasyonun bir özetini sunuyoruz. Eğer buradaki matematiksel kavramlara aşina değilseniz, çoğunun açıklamalarını Bölüm 2 4 te bulabilirsiniz. a a A A I n I e (i) diag(a) a a A Sayılar ve Diziler Bir skaler (tamsayı veya gerçek sayı) Bir vektör Bir matris Bir tensör n satırı ve n sütunu olan bir birim matris Boyutu içinde bulunduğu bağlama göre değişen bir birim matris i pozisyonunda 1 olan standart bir baz vektörü, [0,..., 0, 1, 0,..., 0] Köşegenindeki girdileri a ile belirtilen, karesel, köşegenel bir matris. Bir skaler rastgele değişken Vektörel değerli bir rastgele değişken Matris değerli bir rastgele değişken

40 main 2018/10/22 22:43 page xl #40 NOTASYON A R Bir küme Gerçek sayılar kümesi {0, 1} 0 ve 1 içeren küme Kümeler ve Çizgeler {0, 1,..., n} 0 ve n arasındaki tüm tamsayıları içeren küme [a, b] (a, b] A\B G P a G (x i ) a ve b yi de içeren gerçek sayılar aralığı a nın dahil olmadığı, fakat b nin dahil olduğu gerçek sayılar aralığı Küme farkı, yani A nın B de olmayan tüm elemanlarının oluşturduğu küme Bir çizge x i nin G deki ebeveynleri a i a i A i,j A i,: A :,i A i,j,k A :,:,i a i İndeksleme a vektörünün i elemanı, burada dizinleme 1 ile başlamaktadır a vektörünün i haricindeki tüm elemanları A matrisinin i, j elemanı A matrisinin i satırı A matrisinin i sütunu 3 Boyutlu A tensörünün (i, j, k) elemanı 3 Boyutlu tensörün 2 Boyutlu kesiti a rastgele vektörünün i elemanı A A + A B det(a) Doğrusal Cebir İşlemleri A matrisinin transpozu A nın Moore-Penrose tersimsisi A ve B nin eleman bazında (Hadamard) çarpımı A nın determinantı xl

41

42 main 2018/10/22 22:43 page xlii #42 NOTASYON f : A B f g f(x; θ) log x σ(x) ζ(x) x p x Fonksiyonlar Tanım kümesi A ve değer kümesi B olan fonksiyon f ve g fonksiyonlarının bileşimi θ ile parametrelendirilmiş olan x in bir fonksiyonu. (Gösterimi hafifletmek amacıyla bazen f(x) yazıp θ yı gösterime katmayız) x in doğal logaritması 1 Lojistic sigmoid, 1 + exp( x) Softplus, log(1 + exp(x)) x in L p normu x in L 2 normu x + x in pozitif kısmı, yani max(0, x) 1 condition Koşul (condition) doğru ise 1, aksi takdirde 0 verir. Bazen argümanı skaler olan bir f fonksiyonunu alıp, bu fonksiyonu bir vektöre, bir matrise veya bir tensöre uygularız: f(x), f(x), or f(x). Bu, f fonksiyonunun eleman bazında uygulandığını göstermektedir. Örneğin, eğer C = σ(x) olursa, o zaman geçerli tüm i, j and k için C i,j,k = σ(x i,j,k ) olur. p data ˆp data X x (i) y (i) veya y (i) X Veri Kümeleri ve Dağılımlar Veri üretim dağılımı Eğitim kümesi tarafından tanımlanan deneysel dağılım Eğitim örnekleri kümesi Veri kümesinin i-inci örneği (girdisi) Denetimli öğrenmede x (i) ile ilişkilendirilen hedef X i,: satırında x (i) girdi örneğini barındıran m n boyutlu matris xlii

43 main 2018/10/22 22:43 page 1 #43 1 Giriş Düşünebilen makineler yapabilmek, uzun zamandan beri mucitlerin hayallerinde yer almıştır. Bu hayalleri en az antik Yunan a kadar gitmektedir. Belki, Pygmalion, Daedalus ve Hephaestus gibi mitik figürler, efsanevi mucitler olarak görülebilir. Galatea, Talos ve Pandora yapay hayat olarak nitelendirilebilir. (Ovid ve Martin, 2004; Sparkes, 1996; Tandy, 1997). Programlanabilen bilgisayarlar yüzyılı aşkın bir süre önce ilk geliştirildiklerinde, insanlar bu makinelerin zekâya sahip olup olamayacaklarını merak ettiler (Lovelace, 1842). Bugün ise yapay zekâ (YZ), birçok uygulaması ve aktif olarak araştırılan çokça konusu bulunan gelişmekte olan bir bilim dalına dönüşmüştür. Günümüzde otomasyondan, konuşmaya, görüntü anlamaya, tıbbi tanıdan temel bilim araştırmlarına kadar birçok alanda akıllı yazılımlardan yardım almaktayız. Yapay zekânın erken dönemlerinde, insanların güçlükle çözebildiği ama bilgisayarlar için nispeten sıradan, yani biçimsel ya da matematiksel kurallarla tanımlanabilen problemler hızla çözüldü. Ancak gerçek sorunun, insanlar için kolay ama biçimsel ya da matematiksel olarak tanımlanması zor olan, insan yüzü ya da konuşma tanıma gibi günlük hayatta sürekli çözdüğümüz problemler olduğu ortaya çıktı. Bu kitap göreceli olarak daha sezgisel problemleri çözmek için önerilen bir yaklaşım üzerinedir. Bu yaklaşım bilgisayarların her kavramı, daha temel kavramlarla ilişkilendirerek, bir kavramlar hiyerarşisi öğrenmesini sağlar. Böylece, bilgisayarların gereksinim duyduğu biçimsel kuralların insan eliyle girilmesine ihtiyaç kalmaz. Kavramlar hiyerarşisi bilgisayarın karmaşık kavramları daha basit kavramlardan yola çıkarak kurmasına olanak sağlar. Bu kavramların birbiri üzerine nasıl inşa edildiğini gösteren bir çizge oluşturursak, bu çizge çok katmanlı, bir başka deyişle derin bir çizge olur. İşte bu yüzden biz, bu yaklaşıma derin öğrenme diyoruz.

44 main 2018/10/22 22:43 page 2 #44 BÖLÜM 1 Başlangıçta yapay zekâ algoritmalarının birçok başarısı, bilgisayarların gerçek problemlerle ilgili olmayan kısmen daha steril ve düzenli ortamlarda elde edildi. Örneğin, IBM nin Deep Blue adındaki satranç oynama sistemi dünya şampiyonu Garry Kasparov u 1997 yılında mağlup etti (Hsu, 2002). Elbette satranç yalnızca 64 kare ve 32 parçadan oluşan ve parçaların sıkı kurallara bağlı olarak hareket edebildiği oldukça basit bir oyundur. Başarılı bir satranç stratejisi oluşturmak önemli bir başarıdır ancak bu problemin zorluğu, satranç taşlarını ve geçerli hamleleri bilgisayara anlatmakta yatmamaktadır. Satranç kuralları, programcı tarafından bilgisayara biçimsel kurallardan oluşan kısa bir liste olarak kolayca verilebilir. İlginç bir şekilde, insanlar için en zor zihinsel aktivitelerden biri olan soyut ve biçimsel problemler bir bilgisayar için en kolay işler arasında yer alır. Bilgisayarlar uzun zamandır en iyi satranç oyuncularını yenebilmektedir ancak yakın bir zamanda insanların nesneleri tanıma veya konuşma yeteneklerine erişebilmiştir. Günlük hayatta bir insan dünya hakkında çok fazla bilgiye ihtiyaç duyar. Bu bilginin çoğu öznel ve sezgiseldir ve bu nedenle biçimsel olarak ifade edilmesi güçtür. Akıllı bilgisayarlar geliştirebilmek için bu tür bilgilerin bilgisayarlara yüklenmesi gerekir. Yapay zekâdaki en önemli güçlüklerden biri de biçimsel olmayan bu bilginin bilgisayara nasıl aktarılacağıdır. Geçmişte çeşitli yapay zekâ projelerinde gerçek hayat bilgileri, biçimsel dillerde kodlanmaya çalışıldı. Teorik olarak, bir bilgisayarın mantıksal çıkarım kuralları kullanarak bu biçimsel dillerde otomatik olarak akıl yürütmesi mümkündü. Bu yapay zekâ alanında knowledge base yaklaşımı olarak bilinmektedir. Ancak bu projelerden hiçbiri büyük bir başarı yakalayamadı. Bu projelerin en ünlülerinden biri olan Cyc Cyc (Lenat ve Guha, 1989) veri bankasında CyCL dilini kullanılarak yazılmış ifadeler içeren bir çıkarım motoruydu. Veri tabanındaki ifadeler araştırmacılar tarafından giriliyordu ve bu problemli bir süreçti. Dünyayı doğru bir şekilde tarif etmek için yeterli karmaşıklıkta biçimsel kurallar üretmek zorluydu. Örneğin Cyc, Fred adındaki bir adamın sabahları traş olması ile ilgili bir öyküyü anlamayamıştı. Çıkarım motoru hikâyede çelişki buluyordu. Cyc insanların elektriksel parçaları olmadığını biliyordu fakat Fred elektrikli traş makinesini tuttuğunda, Cyc traş olan Fred nesnesinin elektriksel parçalar içerdiği kanısına vardı. Sonuç olarak traş olan Fred in traş sırasında hâlâ insan olup olmadığından emin değildi. Sabit kodlu bilgiye dayanan sistemlerin karşılaştığı zorluklar, YZ sistemlerinin ham veriden örüntüler çıkararak kendi bilgilerini elde etme kabiliyetine ihtiyaç duyduklarını ortaya koymaktadır. Bu kabiliyet makine öğrenmesi olarak bilinir. Makine öğrenmesi, gerçek dünyadaki bilgileri içeren problemlerle baş etmeye ve öznel görünen kararlar vermeye olanak sağladı. Örneğin, basit bir makine öğrenme 2

45 main 2018/10/22 22:43 page 3 #45 GİRİŞ algoritması olan lojistik bağlanım sezaryen ameliyat yapılıp yapılmaması konusunda karar verebilir. Bir diğer basit makine öğrenme algoritması olan Naif Bayes, gerçek lerle spamları ayırt edebilir. Basit makine öğrenme algoritmalarının performansı girdi verilerinin gösteriminin kalitesinden büyük ölçüde etkilenir. Örneğin, sezaryen doğumlara karar vermek için lojistik bağlanım kullanıldığında, yapay zekâ hastayı muayene etmez. Bunun yerine doktorlar sisteme rahimde yara olup olmadığı gibi annenin durumuyla ilgili birtakım bilgiler iletir. Hastanın gösteriminde yer alan her bilgi parçası birer öznitelik olarak bilinir. Lojistik bağlanım, hastanın bu özelliklerinin her birinin çeşitli sonuçlar ile nasıl bağlantılı olduğunu öğrenir. Bununla birlikte model, özniteliklerin nasıl tanımlandığını herhangi bir şekilde belirtemez. Lojistik bağlanıma doktorun hazırladığı biçimsel rapor yerine bir MR taraması verilseydi, modelin bu görüntülerden herhangi mantıklı birer tahmine varması mümkün olmazdı. Doğum sırasında oluşabilecek komplikasyonlarla MR üzerindeki tek bir piksel arasındaki bağlantı ise önemsenmeyecek kadar düşüktür. Gösterimlere olan bu bağımlılık, bilgisayar bilimleri ve hatta günlük yaşam boyunca ortaya çıkan genel bir olgudur. Bilgisayar bilimlerinde, bir veri kolleksiyonunu aramak gibi işlemler, koleksiyon akıllıca yapılandırılmış ve endekslenmişse, kat kat daha hızlı gerçekleştirilebilir. İnsanlar kolayca Arap rakamları üzerinde aritmetik işlem yapabilir, ancak Roma rakamları üzerinde aritmetik işlem yapmak çok daha zaman alıcıdır. Öznitelik seçiminin, makine öğrenme algoritmalarının performansı üzerinde çok büyük bir etkisi olması şaşırtıcı değildir. Görsel bir örnek için Şekil 1.1 e bakınız. Pek çok yapay zekâ problemi, bu problem için gereken doğru öznitelik kümesini tasarlayarak ve daha sonra bu öznitelikleri basit bir makine öğrenme algoritmasına ileterek çözülebilir. Örneğin, konuşmacının ses yolunun uzunluğu, konuşan kişiyi tanımak için kullanışlı bir özniteliktir. Bu öznitelik, konuşmacının erkek mi, kadın mı ya da çocuk mu olduğuna dair güçlü bir ipucu verir. Bununla birlikte, birçok problem için hangi özniteliklerin toplanması gerektiğini bilmek güçtür. Örneğin, fotoğraflarda araba bulmak için bir program yazmak istediğimizi varsayalım. Arabaların tekerlekleri olduğunu biliyoruz, bu nedenle tekerleklerin varlığını bir özellik olarak kullanmak isteyebiliriz. Ne yazık ki, bir tekerleğin piksel değerleri açısından tam olarak neye benzediğini açıklamak zordur. Bir tekerlek basit bir geometrik şekle sahiptir, ancak tekerleğin görüntüsü tekerleğe düşen gölgeler, tekerleğin metal parçalarından yansıyan güneş, arabanın çamurluğu veya tekerleğin önünü kapatan nesneler vb. gibi sebeplerden oldukça karmaşık olabilir. Bu sorunun bir çözümü, yalnızca gösterimden çıktıya eşlemenin değil, gösterim- 3

46 main 2018/10/22 22:43 page 4 #46 BÖLÜM 1 Kartezyen Koordinatlar Kutupsal Koordinatlar Şekil 1.1: Farklı türde gösterimlerin bir örneği: Bir dağılım grafiğinde gösterilen veriyi bir çizgi çizerek iki kategoriye ayırmaya çalıştığımızı düşünelim. Soldaki çizitte bir veriyi Kartezyen koordinat sistemi kullanarak gösteriyoruz. Böyle bir problemi çözmemiz imkânsızdır. Sağdaki çizitte veriyi kutupsal koordinatlarla gösteriyoruz. Bu durumda problem basit dikey bir doğruyla kolayca çözülebilir hâle geliyor.(çizge David Warde-Farley ile birlikte üretilmiştir.) den kendisinin de elde edilmesi için makine öğrenimini kullanmaktır. Bu yaklaşım, gösterim öğrenme olarak bilinmektedir. Öğrenilen gösterimler genellikle elle tasarlanmış gösterimlerle elde edilebileceğinden daha iyi performans gösterirler. Aynı zamanda, YZ sistemlerinin en az insan müdahalesi ile yeni görevlere hızla adapte olmasını sağlarlar. Bir gösterim öğrenme algoritması, basit bir görev için iyi bir dizi özelliği basit bir problem için birkaç dakika içinde veya daha karmaşık bir problem için birkaç ayda keşfedebilir. Karmaşık bir problem için özellikleri elle tasarlamak, çok fazla zaman ve çaba gerektirir; böyle bir problem bir araştırma grubunun onlarca yılını alabilir. Otokodlayıcılar gösterim öğrenmenin özünü anlatan bir örnek oluştururlar. Otokodlayıcılar, girilen veriyi farklı bir gösterime dönüştüren bir kodlayıcı fonksiyonuyla, bu dönüştürülmüş gösterimi tekrar orijinal hâline geri çeviren çözücüden oluşurlar. Otokodlayıcılar verilen girdiyle ilgili olabilecek en fazla bilgiyi korumak için eğitilirler, ancak bunun yanında oluşturduklar yeni gösterimin belli özellikleri 4

47 main 2018/10/22 22:43 page 5 #47 GİRİŞ sağlamasını da dikkate alırlar. Farklı otokodlayıcılar farklı özellikleri elde etmeye çalışır. Öznitelik algoritmaları tasarlarken, amacımız genellikle gözlemlenen verileri açıklayan varyasyon etkenlerini gruplamaktır. Bu bağlamda, etkenler kelimesini basitçe ayrı etkileşim kaynaklarını belirtmek için kullanıyoruz; buradaki faktörler genellikle çarpılarak birleştirilmezler. Bu tür etkenler nadiren doğrudan gözlemlenebilen niceliklerden oluşur. Bu etkenler, fiziksel dünyada gözlemlenebilen değerleri etkileyen gözlemlenmemiş nesne ya da etkilere karşı gelebilir, ya da insan zihnindeki gözlemlerin basit açıklaması veya nedeni hakkında çıkarsama yapılmasını sağlayan yapılar olabilirler. Bu etkenler, verilerdeki değişikliği anlamamıza yardım eden kavram ve soyutlamalara da karşı gelebilir. Varyasyon etkenleri bir konuşma kaydında konuşmacıların yaşını, cinsiyetini, vurgularını ve kullandıkları kelimeleri içerirler. Örneğin, bir otomobil görüntüsünde, aracın rengini, parlaklığını ve ışığın açısını içermektedir. Yapay zekâ uygulamalarının gerçek hayattaki zorluklarının büyük bir kısmı varyasyon etkenlerinin çoğunun gözlemleyebildiğimiz her veri noktasını etkilemesidir. Kırmızı bir araba resminin piksel değerleri geceleri siyah renge yakın olabilir. Arabanın silueti bakılan açıya bağlıdır. Çoğu uygulama bu etkenleri birbirinden ayırmamızı ve işimize yaramayanları elden çıkarmamızı gerektirir. Elbette bu kadar yüksek seviyeli ve soyut öznitelikleri ham veriden elde etmek zordur. Bu varyasyon etkenlerinden çoğu, bir konuşmacının aksanı gibi yalnızca insan seviyesinde bir anlama yeteneği ile tespit edilebilir. Gösterimleri elde etmenin neredeyse orijinal problemi çözmek kadar zor olduğu göz önünde bulundurulduğunda, öğrenme yöntemi pek de yardımcı olmuyor gibi gözükebilir. İşte derin öğrenme gösterim öğrenmedeki ana problemi gösterimleri daha temel gösterimlerle ifade ederek çözer. Derin öğrenme bilgisayarların basit kavramlardan daha karmaşık kavramlar kurmasına olanak sağlar. Şekil 1.2 de bir derin öğrenme sisteminin kenarlardan, köşe ve kontur gibi basit kavramları, bu kavramları da birleştirerek daha karmaşık bir insan resminin gösterimini oluşturması gösterilmektedir. İleri beslemeli derin ağlar ya da çok katmanlı perseptron (multilayer perceptron, MLP) derin öğrenmenin özünü anlatan bir modeldir. Çok katmanlı perseptron, girdileri çıktılara eşleyen matematiksel bir fonksiyondan ibarettir. Bu fonksiyon birden çok basit fonksiyonun birleşmesiyle oluşturulur. Farklı fonksiyonların her uygulanışı girdinin yeni bir gösterimi olarak düşünülebilir. Veriler için en iyi gösterimi öğrenme fikri, bize derin öğrenmeyle ilgili bir bakış 5

48 main 2018/10/22 22:43 page 6 #48 BÖLÜM 1 ARABA ŞAHIS HAYVAN Çıktı (nesne kimliği) 3'üncü gizli katman (nesne kısımları) 2'nci gizli katman (köşeler ve konturlar) 1'inci gizli katman (kenarlar) Görünür katman (girdi pikselleri) Şekil 1.2: Bir derin öğrenme modelinin gösterimi: Bir görüntünün piksel değerleri gibi ham sensör verisinin anlaşılması bilgisayarlar için zordur. Piksel değerlerini nesnenin kimliğine eşleyen fonksiyon oldukça karmaşıktır. Bu eşlemeyi doğrudan öğrenmek ya da değerlendirmek imkânsız gözükmektedir. Derin öğrenme bu karmaşık eşlemeyi her biri farklı katman olarak tanımlanmış iç içe geçmiş ve daha basit eşlemeye ayırarak çözer. Girdi modele görünür katman adı verilir. Bu katmanın görülebilir katman olarak isimlendirilmesinin sebebi içinde gözlemleyebildiğimiz değişkenler tutmasıdır. Daha sonra bir dizi gizli katman görüntüden giderek daha da soyutlaşan öznitelikler çıkarırlar. Bu katmanların "gizli" olarak isimlendirilmesinin sebebiyse bu katmanların değerlerinin veri tarafından verilmemesidir. Bunun yerine model, hangi kavramların verinin içindeki ilişkileri açıklamada daha kullanışlı olduğuna karar vermelidir. Buradaki görüntüler her bir gizli birim tarafından gösterilen öznitelik türünün görselleştirilmesidir. Pikseller verildiğinde, birinci katman komşu piksellerin parlaklıklarını karşılaştırarak kenarları kolayca tanımlayabilir. İlk gizli katmanın tanımlaması verildiğinde ise ikinci gizli katman, köşeleri ve konturları, yani kenarların oluşturduğu kümeleri kolayca arayabilir. İkinci gizli katmanın çıktısı verildiğinde, üçüncü katman buradaki köşe ve kontur kümelerini kullanarak nesnelerin daha büyük parçalarını tanımlayabilir. Son olarak resmin içindeki nesne parçalarını içeren bu tanım, görüntü içindeki nesneleri tanımak için kullanılabilir. Buradaki görüntüler Zeiler ve Fergus (2014) un izniyle çoğaltılmıştır. açısı sunar. Derin öğrenme üzerine bir diğer bakış açısı ise derinliğin bilgisayarın 6

49 main 2018/10/22 22:43 page 7 #49 GİRİŞ çok basamaklı bir bilgisayar programı öğrenmesini sağlamasıdır. Gösterimin her katmanı, bir dizi talimatı paralel olarak yerine getiren bir bilgisayarın bellek durumu olarak düşünülebilir. Daha derin ağlar, art arda daha fazla talimat yürütebilir. Art arda gelen talimatlar modele büyük bir güç sunar. Çünkü daha sonraki talimatlar kendinden önceki talimatların sonuçlarına geri dönebilir veya onları kullanabilirler. Derin öğrenme bakış açısına göre bir katmanın aktifleşmelerindeki bilginin tamamı, girdiyi açıklayan varyasyon faktörlerini kodlamaz. Buradaki gösterimler aynı zamanda girdiden anlam çıkarmaya olanak sağlayan bir programın yürütülmesine yardımcı olan durum bilgisini de depolar. Durum bilgisi, geleneksel bir bilgisayar programındaki bir sayaç veya işaretçiye benzeyebilir. Bu bilginin girdi içeriğiyle özel olarak bir ilgisi yoktur, ancak modelin işlemlerini organize etmesine yardımcı olur. Bir modelin derinliğini ölçmenin iki temel yöntemi vardır. İlki model mimarisinin değerlendirilmesi için gereken sıralı işlemlerin sayısına dayalıdır. Bu yöntemi bir modelin çıktılarını nasıl hesaplayacağını gösteren bir akış çizelgesindeki en uzun Eleman kümesi Eleman kümesi Lojistik bağlanım Lojistik bağlanım Şekil 1.3: Her düğüm noktasının bir işlemi gösterdiği, bir girdiyi bir çıktıya eşleyen bir çizgelerin gösterimi. Derinlik girdiden çıktıya olan en uzun yolun mesafesi olarak tanımlanır. Ancak burada neyin bir işlem basamağı olarak kabul edildiği önemlidir. Bu görüntüde gösterilen hesaplama σ(w T x) olarak verilen bir lojistik bağlanım modelinin çıktısıdır. σ burada lojistik sigmoid fonksiyonudur. Eğer toplama, çarpma ve lojistik sigmoidi programlama dilimizin temel elemanları olarak kullanırsak, bu modelin derinliği üç birimdir. Eğer lojistik bağlanımı tek bir eleman olarak kabul edersek modelin derinliği bu durumda bir birimdir. 7

50 main 2018/10/22 22:43 page 8 #50 BÖLÜM 1 yolun boyunu bulmak olarak da düşünebiliriz. Nasıl ki farklı dillerde yazılan iki eş değer program farklı uzunluklara sahip oluyorsa, bu akış çizelgesinde de aynı fonksiyonu, işlem adımlarına bağlı olarak farklı derinliklerde çizebiliriz. Şekil 1.3 farklı diller kullanmanın aynı mimari üzerinde nasıl farklı ölçümlere yol açabileceğini göstermektedir. Derin olasılıksal modeller tarafından kullanılan başka bir yaklaşım, model derinliğini hesaplama çizgesinin derinliği yerine kavramların birbirine olan ilişkileri gösteren bir çizgenin derinliği olarak kabul eder. Bu durumda, her kavramı hesaplamak için gerekli olan işlemleri içeren akış çizelgesi, kavramları ilişkilendiren çizelgeden çok daha derin olabilir. Bunun nedeni sistemin daha temel kavramlar hakkındaki anlayışının, daha karmaşık kavramlarla ilgili bilgileri kullanarak artırılabilmesidir. Örneğin, bir gözünün gölge altında olduğu bir yüz görüntüsünü inceleyen bir YZ sistemi başlangıçta yalnızca tek bir göz görebilir. Yüzün varlığını belirledikten sonra, sistem bu bilgiyi kullanarak, ikinci gözün de büyük olasılıkla orada olduğunu çıkarabilir. Bu durumda kavramlar çizgesi, gözler ve yüz için olmak üzere yalnızca iki katmandan oluşur. Ancak hesaplama çizgesini, her kavram için n adet olarak yeniden hesaplarsak, 2n adet katman içerecektir. Bu iki yaklaşımdan hangisinin daha uygun olduğu her zaman açık değildir. Bir bilgisayar programının uzunluğunu belirleyen tek bir yanıt olmadığı gibi bir mimarinin de derinliği için doğru bir cevap yoktur. Zira, farklı kişiler çizgeleri oluştururken farklı temel elemanlar seçebilirler. Farklı kişilerin çizelgelerini oluştururken farklı temel elemanlar seçmesinden dolayı nasıl ki bir bilgisayar programının uzunluğu için tek bir doğru cevap yoksa, verilen bir mimarinin derinliği için de doğru bir cevap yoktur. Bir modelin derin olarak kabul edilmesi için ne kadar derin olması gerektiğine dair de bir fikir birliği bulunmamaktadır. Yine de, derin öğrenme, geleneksel makine öğrenimi algoritmalarından daha fazla fonksiyon ya da kavram içeren modellerin incelenmesi olarak kabul edilebilir. Özetle, bu kitabın konusu olan derin öğrenme, yapay zekâ yaklaşımlarından biridir. Özellikle bilgisayarların veri ve deneyimlerden yararlanarak kendilerini geliştirdikleri bir makine öğrenmesi türüdür. Biz bu tür makine öğrenmesinin, gerçek dünya problemlerini çözebilecek bir yapay zekâ inşa etmenin tek gerçekleştirilebilen yegane yolu olduğunu savunuyoruz. Derin öğrenme, dünyayı iç içe geçmiş kavramlar hiyerarşisi olarak göstererek büyük güce ve esnekliğe sahip bir makine öğrenmesi yaklaşımıdır. Bu yaklaşımda, her kavram kendisinden daha basit olan kavramlara olan ilişkleriyle tanımlanır ve daha soyut gösterimler kendilerinden daha somut gösterimler kullanılarak hesaplanır. Şekil 1.4 farklı YZ disiplinleri arasındaki ilişkiyi göstermektedir. Şekil 1.5 ise bu disiplinlerin nasıl çalıştığına dair genel bir görüntü 8

51 main 2018/10/22 22:43 page 9 #51 GİRİŞ Derin Öğrenme Örnek: Çok katmanlı perseptron Örnek: Sığ otokodlayıcı Örnek: Lojistik bağlanım Örnek: İşlenmiş bilgi tabanı Gösterim Öğrenme Makine Öğrenmesi Yapay Zekâ Şekil 1.4: Derin öğrenmenin gösterim öğrenmenin bir türü olduğunu gösteren Venn şeması. Şema aynı zamanda derin öğrenmenin yapay zekânın birçok yaklaşımında kullanılan makine öğrenmesinin bir türü olduğunu göstermektedir. Venn şemasının her bölümü YZ teknolojilerinden bir örneği içermektedir. vermektedir. 1.1 Bu Kitabı Kimler Okumalı? Bu kitap farklı türdeki okuyucular için kullanışlı olabilir. Ancak biz bu kitabı temelde iki hedef kitle için yazdık. Bu hedef kitlelerden ilki, makine öğrenmesi çalışan ya da derin öğrenme ve yapay zekâ araştırmasında bir kariyere başlayacak üniversite öğrencileridir(lisans veya yüksek lisans). Diğer hedef kitlesiyse, makine öğrenmesi ya da istatistik arka planına sahip olmayan ancak derin öğrenmeyi kendi platformlarında kullanmak isteyen yazılım mühendisleridir. Derin öğrenme 9

52 main 2018/10/22 22:43 page 10 #52 BÖLÜM 1 Çıktı Çıktı Çıktı Özniteliklerden eşleştirme Çıktı Özniteliklerden eşleştirme Özniteliklerden eşleştirme Daha soyut öznitelikler için fazladan katmanlar Elle tasarlanmış program Elle tasarlanmış öznitelikler Öznitelikler Basit öznitelikler Girdi Girdi Girdi Girdi Kural temelli sistemler Klasik makine öğrenmesi Gösterim öğrenme Derin öğrenme Şekil 1.5: Farklı YZ disiplinlerindeki YZ sistemlerinin birbirleriyle olan ilişkilerini gösteren bir akış şeması. Gölgelendirilmiş kutular, veriden öğrenebilen parçaları göstermektedir. hâlihazırda, bilgisayarlı görü, konuşma ve ses işleme, doğal dil işleme, robotik, biyoenformatik, kimya, bilgisayar oyunları, arama motorları, çevrimiçi reklam ve finans gibi birçok yazılım disiplininde kendini ispatlamıştır. Kitap farklı türde okuyuculara hitap etmek üzere 3 bölüme ayrılmıştır. Kısım I, makine öğrenmesiyle ilgili kavramlar ve temel matematiksel araçları kapsamaktadır. 10

53 main 2018/10/22 22:43 page 11 #53 GİRİŞ Kısım II, iyi bilinen ve anlaşılmış yani, temelinde çözülmüş derin öğrenme algoritmalarını içermektedir. Son bölüm olan Kısım III ise derin öğrenme araştırmasında önemli yer tuttukları düşünülen daha kuramsal ve yeni fikirlerin toplandığı bir bölümdür. Okuyucular, kendi ilgi veya akademik geçmişleriyle alakalı olmadığını düşündükleri kısımları atlamada bir sakınca görmemelidirler. Örneğin, lineer cebir, olasılık ve temel makine öğrenmesi kavramlarına hâlihazırda aşina olan okuyucular, Kısım I i atlayabilirler. Yalnızca çalışan bir derin öğrenme sistemi kurmak isteyenlerin ise Kısım II ye kadar okumaları yeteri olacaktır. Bütün okuyucuların bilgisayar mühendisliği ya da bilgisayar bilimleriyle ilgili bir arka plana sahip olduklarını varsayıyoruz. Aynı zamanda, programlama, hesaplama performansıyla ilgili problemler, karmaşıklık kuramı, giriş seviysesinde matematik ve çizge kuramına ait birkaç terime hâkim olduklarını göz önünde bulunduruyoruz. 1.2 Derin Öğrenmede Tarihsel Eğilimler Derin öğrenmeyi anlamanın en iyi yollarından biri tarihsel süreci göz önüne almaktır. Burada detaylı bir derin öğrenme tarihi vermektense, derin öğrenmedeki önemli eğilimleri tanımlıyoruz: Derin öğrenme uzun ve zengin bir tarihe sahiptir, ancak isim olarak tarih boyunca farklı felsefi bakış açılarına göre değişmiş, popülerliği artıp azalmıştır. Derin öğrenme kullanılabilir eğitim verisinin artmasıyla daha kullanışlı bir hâle gelmiştir. Derin öğrenme, model boyutları arttıkça ve derin öğrenme donanımları ve yazılımları geliştikçe yaygınlaşmıştır. Derin öğrenme, geçen zamanla birlikte daha karmaşık problemleri daha isabetli olarak çözebilmeye başlamıştır Sinir Ağlarının Sayısız İsmi ve Değişen Kaderleri Birçok okur derin öğrenmenin yeni ortaya çıkan ilginç bir teknoloji olduğunu düşünüp, bu yüzden bir kitabın içinde bir derin öğrenme tarihi bölümü olmasına şaşırcaklardır. Gerçekte derin öğrenme 1940 lı yıllardan beri var olan bir alandır. Derin öğrenmenin yeni olarak algılanmasının sebebi hem birkaç yıl öncesine kadar popüler olmayan bir metot olması hem de derin öğrenme ismini almadan önce 11

54 main 2018/10/22 22:43 page 12 #54 BÖLÜM 1 farklı isimlerle anılmış olmasıdır. Bu alan, farklı araştırmacıların ve bakış açılarının etkisinde tarih boyunca yeniden isimlendirilmiştir. Derin öğrenmenin kapsamlı tarihi bu kitabın amacının ötesindedir, ancak temel seviyede bir açıklama derin öğrenmeyi anlamamız için önemlidir. Genel olarak değerlendirildiğinde, derin öğrenmenin 3 dalgadan oluşan bir gelişme dönemi vardır. Bunlar, sibernetik adıyla bilinen ve 1940 lı yıllardan 1960 lı yılları kapsayan, bağlantıcılık olarak bilinen ve 1980 li yıllardan 1990 lı yılları kapsayan, ve son olarak da 2006 da ortaya çıkan ve derin öğrenme dediğimiz dönemlerdir. Bu dönemler Şekil 1.7 de gösterilmiştir. Bugün kabul ettiğimiz birçok erken öğrenme algoritması, aslında temel biyolojik öğrenme modelleri olarak geliştirilmiştir. Bu modellern amacı öğrenmenin nasıl gerçekleştiği ya da beyinde gerçekleşip gerçekleşmediğini açıklamaktır. Bu nedenle derin öğrenmenin isimlerinden biri de yapay sinir ağları (YSA lar)dır. Derin öğrenme modellerinde buna karşılık gelen bakış açısı, bu modellerin biyolojik beyinlerden (insan ya da hayvan beyni) esinlenilerek geliştirilmiş sistemler olduğudur. Sinir ağları bazı durumlarda beyin fonksiyonlarını anlamak için kullanılsa da (Hinton ve Shallice, 1991), genelde biyolojik fonksiyonları gerçekçi olarak modellemek için tasarlanmamıştır. Derin öğrenmedeki sinirsel bakış açısı iki ana fikre dayanır. Fikirlerden biri, beynin zeki davranışlara dair bir örnek gösterdiği ve zekâ yaratmanın kavramsal olarak en basit yolunun beyni analiz ederek onun işlevselliğini birebir kopyalamak olduğudur. Diğer fikir ise makine öğrenmesi modellerinin mühendislik uygulamalarının yanı sıra, beynin ve zekânın altında yatan prensiplerin anlaşılması için gereken temel bilim problemlerini aydınlatabileceği düşüncesidir. Günümüzdeki derin öğrenme sinirbilimin yeni nesil makine öğrenme modellerine olan bakış açısının ötesindedir ve öğrenmeyle ilgili daha genel bir prensibin çoklu bileşim seviyeleri peşindedir. Bu prensip, sinirlerden esinlenilmemiş makine öğrenme yöntemlerine de uygulanabilir. Derin öğrenmenin ataları, sinirbilimsel bakış açısından yola çıkılarak geliştirilmiş basit doğrusal modellerdir. Bu modeller x 1,..., x n olarak n adet girdi alıp bunları y çıktısıyla ilişkilendirirler. Bunun için w 1,..., w n olarak verilen ağırlıkları öğrenip çıktıyı f(x, w) = x 1 w x n w n formülünü kullanarak hesaplarlar. Şekil 1.7 de gösterilen bu ilk dalga sinir ağları sibernetik olarak bilinirler. McCulloch-Pitts sinir hücresi (McCulloch ve Pitts, 1943) beyin fonksiyonunun ilkel bir modelidir. Bu doğrusal model f(x, w) nin pozitif ya da negatif olduğuna bakarak iki farklı sınıfı birbirinden ayırabilir. Elbette modelin doğru şekilde sınıflandırma yapması için ağırlıklarının ayarlanmış olması gerekmektedir. Bu ağırlıklar bir insan tarafından ayarlanabilir yılında, perseptron (Rosenblatt, 1958, 1962) 12

55 main 2018/10/22 22:43 page 13 #55 GİRİŞ 1. Giriş Kısım I: Uygulamalı Matematik ve Makine Öğrenmesinin Temelleri 2. Doğrusal Cebir 3. Olasılık ve Bilgi Kuramı 4. Sayısal Hesaplama 5. Makine Öğrenmesinin Temelleri Kısım II: Derin Ağlar: Modern Uygulamalar 6. Derin İleri Besleme Ağları 7. Düzenlileştirme 8. Eniyileme 9. ESA 10. YSA 11. Uygulama Metodolojisi 12. Uygulamalar 13. Doğrusal Faktör Modelleri Kısım III: Derin Öğrenme Araştırmaları 14. Otokodlayıcılar 15. Gösterim Öğrenme 16. Yapılandırılmış Olasılıksal Modeller 17. Monte Carlo Yöntemleri 19. Çıkarım 18. Bölüntü Fonksiyonu 20. Derin Üretici Modeller Şekil 1.6: Kitabın özetlenmiş bir gösterimi. İki bölüm arasındaki ok, ilk bölümün ikincisi için ön koşul olduğunu belirtmektedir. 13

56 Sözcük ya da Söz Öbeğinin Frekansı main 2018/10/22 22:43 page 14 #56 BÖLÜM 1 sibernetik (bağlantıcılık + sinir ağları) Şekil 1.7: Yapay zekâ araştırmalarındaki üç dalgadan ikisinin Google Books taki sibernetik ve bağlantıcılık terimlerinin frekansları üzerinden gösterimi. (Üçüncü dalga burada geçmek için çok yenidir). İlk dalga olan sibernetik 1940 ve 1960 yılları arasında, biyolojik öğrenme teorilerinin(mcculloch ve Pitts, 1943; Hebb, 1949) gelişmesiyle ve tek nöronların eğitilmesini mümkün kılan perseptron gibi (Rosenblatt, 1958) modellerin ilk defa geliştirilmesiyle birlikte başladı. Tek ya da iki katmanlı sinir ağlarının geri yayılımla (Rumelhart vd., 1986a) eğitildiği ikinci dalga 1980 ve 1995 yılları arasındaki bağlantıcılık akımıyla birlikte başladı. Şimdi içinde bulunduğumuz üçüncü dalga olan derin öğrenme ise 2006 yılında (Hinton vd., 2006; Bengio vd., 2007; Ranzato vd., 2007a) başladı ve 2016 da daha yeni olarak kitaplarda yer almaya başladı. İlk iki dalganın kitap hâlinde yer alması da dalgaları başlatan bilimsel gelişmelerden çok sonra gerçekleşmiştir. Yıl her sınıftan verilen örnekleri kullanarak ağırlıklarını öğrenebilen ilk model oldu. Yaklaşık aynı tarihlerde ortaya çıkan adaptif doğrusal eleman (ADALINE) ise basitçe f(x) nin değerini kullanarak bir reel sayıyı tahmin ediyordu. ADALINE tahminlerini yaparken veri kullanmayı öğrenebiliyordu (Widrow ve Hoff, 1960). Bu basit öğrenme algoritmaları, modern makine öğrenmesinin gelişimini çok etkilemiştir. ADALINE ın ağırlıklarını öğrenmek için kullanılan algoritma stokastik gradyan inişi olarak bilinen bir algoritmanın özelleştirilmiş bir hâlidir. Stokastik gradyan inişinin farklı versiyonları, bugün derin öğrenme modelleri içinde hâlâ en yaygın algoritma olarak kullanılmaktadır. Perceptron ve ADALINE tarafından kullanılan f(x, w) üzerine temellendirilmiş modellere doğrusal modeller adı verilir. Bu modeller hâlâ en yaygın olarak kullanılan makine öğrenmesi modellerini oluştururlar. Ancak birçok durumda, orijinal modellere göre farklı şekilde eğitilirler. Doğrusal modellerin birçok kısıtlaması bulunmaktadır. Bunlardan en çok bilineni, f([0, 1], w) = 1, f([1, 0], w) = 1, f([1, 1], w) = 0 ve f([0, 0], w) = 0 şekilde 14

57 main 2018/10/22 22:43 page 15 #57 GİRİŞ tanımlanan ÖZEL VEYA fonksiyonudur. Bu kısıtlamayı gözlemleyen eleştirmenler, genel olarak biyolojik temelli öğrenmeye karşı kötü bir algı oluşturmuştur. Bu sinir ağlarının popülerliğindeki ilk büyük çöküş olmuştur. Günümüzde sinirbilim, derin öğrenme araştırmacıları için hâlâ önemli bir ilham kaynağıdır. Ancak derin öğrenme için artık eskisi kadar baskın bir rehberlik teşkil etmemektedir. Günümüzde sinirbilimin derin öğrenme üzerindeki rolünün azalmasının başlıca sebebi beyinde neler olduğuyla ilgili yeterince bilgiye sahip olmamamızdır. Beyindeki algoritmaları gerçekten anlayabilmemiz için beyindeki (en azından) binlerce sinir hücresinin aktivitesini takip edebiliyor olmamız gerekmektedir. Bunu yapamadığımız için beynin en basit ve en çok araştırılmış bölgelerinin bile nasıl çalıştığını anlamaktan oldukça uzaktayız (Olshausen ve Field, 2005). Sinirbilim, tek bir derin öğrenme algoritmasının birçok farklı problemi çözebileceğine inanmamız için bir neden sağlamıştır. Sinirbilimciler, dağ gelinciklerinin beyinlerinin görsel sinyallerini duyma bölgesine yönlendirdiklerinde, beyinlerinin duyma bölgesiyle görebildiklerini bulmuşlardır (Von Melchner vd., 2000). Bu bulgu, memeli beyinlerinin büyük bir bölümünün birçok problemi çözmek için tek bir algoritma kullandığı yönünde bir kanı oluşturmuştur. Bu hipotezden önce makine öğrenmesindeki araştırma doğal dil işleme, görü, hareket planlama ve konuşma tanıma gibi araştırma toplulukları arasında oldukça bölünmüş bir hâldeydi. Günümüzde bu araştırma toplulukları hâlâ ayrıdır ancak derin öğrenme çalışan araştırma grupları bu alanlardan birçoğu hatta hepsi üzerine aynı anda araştırma yürütebilmektedirler. Sinirbilimden esinlenerek kendimize kabaca bir yol çizebilmekteyiz. Birçok hesaplama ünitesinin yalnızca birbirleriyle iletişim kurarak zekâ oluşturması fikrine beyinden yola çıkılarak erişilmiştir. Neocognitron (Fukushima, 1980), görüntü işlemede memeli beynindeki görsel sistemden esinlenilmiş çok güçlü bir model mimarisi ortaya koymuştur. Bu sistem daha sonra Bölüm 9.10 da da göreceğimiz gibi çağdaş evrişimsel ağlar (LeCun vd., 1998b) için bir temel oluşturmuştur. Günümüzdeki çoğu sinir ağı düzeltilmiş doğrusal birim (rectified linear unit) adı verilen bir sinir hücresi modeline dayanır. İlk cognitron(fukushima, 1975) modeli beyin fonksiyonu hakkındaki bilgimizden esinlenen daha karmaşık bir sinir hücresi kullanmaktaydı. Bu basitleştirililmiş model birçok farklı noktadan yola çıkılarak geliştirildi. Nair ve Hinton (2010) sinirbilimsel bir etkilenmeden, Jarrett vd. (2009) ise daha mühendislik odaklı bir etkilenmeden bahseder. Sinirbilim her ne kadar önemli bir esin kaynağı olsa da, kalıplaşmış bir rehber olarak kullanılmamalıdır. Gerçek sinir hücrelerinin aslında doğrusal doğrultulmuş ünitelerden çok farklı fonksiyonlar hesapladığını biliyoruz. Ancak daha gerçekçi sinir modelleri kullanmak 15

58 main 2018/10/22 22:43 page 16 #58 BÖLÜM 1 makine öğrenme performansında henüz bir ilerlemeye yol açmamıştır. Ayrıca, sinirbilim birçok sinir ağı mimarisine esin kaynağı olsa da, bu modelleri daha iyi eğitebilecek yöntemler geliştirmek için henüz biyolojik öğrenmeyle ilgili yeterince bilgiye sahip değiliz. Medya genelde derin öğrenme ve beynin benzerliğine vurgu yapar. Derin öğrenme araştırmacılarının Bayes istatistiği gibi diğer makine öğrenme alanlarında çalışanlara göre beyne daha fazla atıf yaptığı doğrudur. Ancak bu derin öğrenmenin beyni simüle etme çabası olarak görülmemelidir. Çağdaş derin öğrenme özellikle lineer cebir, olasılık, bilgi kuramı gibi birçok alandan esinlenmektedir. Bazı araştırmacılar sinirbilimi çalışmaları için önemli bir esin kayağı olarak gösterirken, bazı araştırmacılar herhangi bir şekilde sinirbilimle ilgilenmezler. Bilinmelidir ki beynin algoritmasal seviyede nasıl çalıştığına dair uğraşlar hâlâ devam etmektedir. Hesaplamalı Sinirbilim olarak bilinen bu çaba, derin öğrenmeden farklı bir bilim alanıdır. Araştırmacıların bu iki alan arasında gidip gelmeleri oldukça sık rastlanan bir durumdur. Derin öğrenme, zekâ gerektiren problemleri çözmek için bilgisayar sistemlerinin nasıl oluşturulabileceğiyle ilgilenirken, hesaplamalı sinirbilim beynin nasıl çalıştığına dair gerçeğe daha yakın modeller geliştirmeyle uğraşır li yıllarda bağlantıcılık ya da paralel dağıtık işleme (Rumelhart vd., 1986c; McClelland vd., 1995) adı altında sinir ağı araştırmasının ikinci dalgası ortaya çıkmıştır. Bağlantıcılık bilişsel bilimin bağlamı içinde ortaya çıkmış, zihni anlamak amacıyla birçok farklı açıklamayı birleştiren disiplinler arası bir alandır li yılların başlarında çoğu bilişsel bilimci sembolik akıl yürütme modellerini incelemekteydi. Popüler olmalarına rağmen, sembolik modellerin beyin tarafından sinir hücereleri kullanılarak nasıl ortaya çıktığını açıklamak zordu. Bağlantıcılar, psikolog Donald Hebb in 1940 larda ortaya attığı fikirleri (Hebb, 1949) kullanarak, sinirsel yapılara (Touretzky ve Minton, 1985) dayanan bilişsel modelleri incelemeye başladılar. Birçok basit hesaplama ünitesinin bir ağ oluşturduğunda zeki davranış göstermesi bağlantıcılığın ana fikridir. Bu anlayış hesaplama modellerinde uygulanabildiği kadar biyolojik sinir sistemlerine de uygulanabilir li yıllarda bağlantıcılıkla birlikte ortaya çıkan birçok kavram günümüzdeki derin öğrenme yöntemlerinin merkezinde yatmaktadır. Bu kavramlardan biri dağıtık gösterimlerdir (Hinton vd., 1986). Dağıtık gösterim, her girdinin birçok öznitelik tarafından sunumunu ve aynı zamanda her özniteliğin oldukça fazla girdinin gösteriminde kullanılması olarak özetlenebilir. Örneğin arabaları, kamyonları ve kuşları ayırt edebilen bir görü sistemimiz oldu- 16

59 main 2018/10/22 22:43 page 17 #59 GİRİŞ ğunu varsayalım. Bu nesneler aynı zamanda, kırmızı, yeşil ya da mavi olabilir. Nesneleri göstermenin bir yolu, kırmızı araba, kırmızı kamyon, kırmızı kuş gibi olası dokuz kombinasyonun her biri için ayrı ateşlenen sinir hücreleri kullanmaktır. Bu yaklaşım, dokuz farklı sinir hücresi gerektirir ve ayrıca her bir sinir hücresi renkleri ve nesneleri ayrı ayrı öğrenmek durumundadır. Bu durumu iyileştirmenin bir yolu dağıtık gösterim kullanımıdır. Her bir renk ve nesne tipi için üçer sinir hücresi gerekir ve bu durumda toplamda kullanılan hücre sayısı altıya düşer. Kırmızılığı gösteren sinir hücresi bu durumda kırmızılığa dair bilgiyi yalnızca ona özgü kategoriden ziyade araba, kamyon ve kuş görüntülerinin hepsinden öğrenebilir hâle gelir. Dağıtık gösterim kavramı bu kitabın merkezindedir ve Bölüm 15 te daha detaylı olarak işlenecektir. Bağlantıcılık akımının önemli başarımlarından bir diğeri de içsel gösterimlere sahip olan derin sinir ağlarının geri yayılım kullanılarak eğitilmesi ve geri yayılım algoritmasının popülerleştirilmesidir (Rumelhart vd., 1986a; LeCun, 1987). Bu algoritmanın popülerliği tarih boyunca artıp azalmıştır. Ancak bu kitabın yazıldığı dönemde derin modelleri eğitmede kullanılan başlıca yöntemdir lı yıllarda araştırmacılar dizilim modellemede önemli ilerlemeler kaydettiler. Hochreiter (1991) ve Bengio vd. (1994), Bölüm 10.7 de bahsi geçen dizilim modellemedeki bazı temel matematiksel zorlukları keşfettiler. Hochreiter ve Schmidhuber (1997), bu sorunların bazılarını çözmek amacıyla uzun ömürlü kısa-dönem belleği (Long shortterm memory LSTM) geliştirdiler. Günümüzde LSTM, Google ın doğal dil işleme problemi gibi birçok dizilim modelleme probleminde yaygın olarak kullanılmaktadır. Sinir ağı araştırmalarının ikinci dalgası 1990 ların ortalarına kadar sürmüştür. Sinir ağları ve diğer yapay zekâ teknolojilerine dayanan birçok girişim, yatırım arama sürecinde gerçeklikten giderek uzaklaşan iddialarda bulunmaya başladılar. YZ araştırmaları, makul olmayan beklentileri karşılayamadıkları zaman yatırımcılar büyük hayal kırıklığına uğradı. Aynı dönemde makine öğrenmesinin diğer alanları gelişmeye devam ediyordu. Kernel makineleri (Boser vd., 1992; Cortes ve Vapnik, 1995; Schölkopf vd., 1999) ve çizgesel modeller (Jordan, 1998) birçok önemli problemde iyi sonuçlar elde ettiler. Bu iki sebepten dolayı sinir ağlarının popüleritesi 2007 yılına kadar sürecek olan bir düşüşe girdi. Bu dönem boyunca sinir ağları bazı problemlerde etkileyici sonuçlar elde etmeye devam etti (LeCun vd., 1998b; Bengio vd., 2001). Kanada İleri Araştırmalar Enstitüsü (CIFAR), Sinirsel Hesaplama ve Adaptif Algı(NCAP) programıyla sinir ağı araştırmalarını canlı tutmada yardımcı oldu. Bu program, birçok makine öğrenmesi araştırma grubunu Toronto Üniversitesi nde Geoffrey Hinton, Montreal Üniversitesi nde Yoshua Bengio ve New York Üniversitesi nde Yann LeCun önderliğinde birleştirdi. CIFAR NCAP girişimi sinirbilim uzmanları, insan ve bilgisayar görüsü 17

60 main 2018/10/22 22:43 page 18 #60 BÖLÜM 1 üzerine çalışan uzmanları da içermekteydi. O zamanlar, derin ağların eğitilmesi genellikle çok zor olarak görülüyordu li yıllardan beri var olan algoritmaların iyi çalıştıklarını günümüzde biliyoruz ancak bu 2006 yılında o kadar da açık değildi. Zira o dönemdeki bilgisayar donanımları bu algoritmaları yeterli hızda yürütebilecek kadar güçlü değildi. Sinir ağı araştırmalarının üçüncü dalgası 2006 yılında çığır açan bir araştırmayla başladı. Geoffrey Hinton derin inanç ağları olarak bilinen bir tür sinir ağının, katmanların denetimsiz hırslı önyetiştirme metodunu kullanarak eğitilebileceğini gösterdi (Hinton vd., 2006). Bu tür ağlardan Bölüm 15.1 de daha detaylı bahsedeceğiz. Diğer CIFAR bağlantılı araştırma grupları aynı metodu kullanarak birçok farklı derin ağın eğitilebileceğini gösterdiler (Bengio vd., 2007; Ranzato vd., 2007a). Aynı zamanda test örneklerindeki genelleştirme performansının iyileşmesine sistematik olarak yardım ettiler. Sinir ağlarının bu dalgası, araştırmacıların artık eskisinden daha derin sinir ağlarını eğitebileceğini vurgulamak ve derinliğin kuramsal önemini belirtmek amacıyla derin öğrenme terimini yaygınlaştırdı (Bengio ve LeCun, 2007; Delalleau ve Bengio, 2011; Pascanu vd., 2014a; Montufar vd., 2014). Derin sinir ağları diğer makine öğrenmesi teknolojilerine dayalı YZ sistemlerini ve elle tasarlanmış sistemleri geçmeye başladılar. Derin öğrenme araştırmasının odağı bu dönem içinde oldukça değişmesine rağmen, sinir ağlarının üçüncü dalgayla birlikte gelen popülerliği şu ana kadar korunmaktadır. Üçüncü dalga, yeni gözetimsiz öğrenme teknikleri ve küçük veri kümelerini kullanarak iyi genelleme yapabilen ağlar üzerine odaklanarak başladı. Ama günümüzde bu ilgi daha çok gözetimli öğrenme algoritmaları ve büyük etiketli veri kümelerinden destek alan modeller üzerine kaymıştır Artan Veri Kümesi Boyutları Yapay sinir ağlarıyla ilgili ilk deneylerin 1950 lerde başladığı göz önüne alınırsa, derin öğrenmenin neden çok yakın zamanlara kadar önemli bir teknoloji olarak kabul görmediği merak edilebilir. Derin öğrenme, 1990 lardan beri ticari uygulamalarda başarıyla kullanılmıştır. Ancak yakın zamana kadar bir teknolojiden ziyade sadece uzmanların kullanabildiği bir sanat olarak görülmüştür. Bir derin öğrenme algoritmasından yüksek performans elde etmek için uzmanlık gerektiği doğrudur. Neyse ki, eğitim verisi arttıkça gereken yetenek miktarı azalmaktadır. Bugün karmaşık problemlerde insan performansına erişen öğrenme algoritmaları 1980 lerde kolay problemleri çözmekte zorlanan algoritmalarla neredeyse aynıdır. Tek farklılık, derin mimarilerin eğitilmesini kolaylaştırmak için modellerde yapılan değişikliklerdir. En büyük gelişmeyse, algoritmaların başarılı olmaları için gereken kaynakları sunabilecek hâle gelmemizdir. Şekil 1.8 bize, test veri kümelerinin büyükleklerinin 18

61 Veri kümesi büyüklüğü (örnek sayısı) main 2018/10/22 22:43 page 19 #61 GİRİŞ zamanla ne kadar çok büyüdüğünü göstermektedir. Bu eğilim, toplumun artan dijitalleşmesi sayesinde mümkün olmuştur. Aktivitelerimizin gittikçe daha büyük kısmı bilgisayarlar üstünde gerçekleştikçe gittikçe daha büyük kısmı kaydedilmeye başlanmıştır. Bilgisayarlarımız birbirlerine daha da çok bağlandıkça, bu kayıtları merkezi hâle getirip onları makine öğrenmesi uygulamalarında kullanılacak birer veri kümesine çevirmek kolaylaşmıştır. Büyük veri çağı, makine öğrenmesini oldukça kolaylaştırmıştır. Bunun sebebi, Şekil 1.8: Zamanla artan veri kümesi lerin başlarında, istatistikçiler elle derlenen yüzlerce hatta binlerce ölçümü kullanarak hazırlanmış veri kümeleri üzerinde araştırmalarını devam ettirdiler. (Garson, 1900; Gosset, 1908; Anderson, 1935; Fisher, 1936) lerden 1980 lere kadar biyolojiden esinlenen makine öğrenmesinin öncüleri, genelde küçük yapay veri kümeleri ile çalıştılar. Buna örnek olarak düşük hesaplama maliyeti ile belirli fonksiyonların öğrenilebileceğini gösteren, karakterlerin düşük çözünürlüklü bit haritaları gösterilebilir. (Widrow ve Hoff, 1960; Rumelhart vd., 1986b) lerde ve 1990 larda, makine öğrenmesi daha istatistiksel bir hâl aldı. Elle yazılmış sayıların taramalarından oluşan MNIST veri kümesi (Şekil 1.9 da gösterildiği gibi) gibi on binlerce örnek içeren daha büyük veri kümeleri sayesinde güçlenmeye başladı (LeCun vd., 1998b) lerin başlarında, aynı boyuttaki daha karmaşık CIFAR-10 gibi veri kümeleri üretilmeye başlandı a yaklaşıldıkça, milyonlarca örnek içeren daha büyük veri kümeleri, derin öğrenmenin sınırlarını değiştirmeye başladılar. Bu veri kümeleri kamusal Street View House Numbers veri kümesini (Netzer vd., 2011), ImageNet veri kümesinin çeşitli versiyonlarını (Deng vd., 2009, 2010a; Russakovsky vd., 2014a) ve Sports-1M veri kümesini (Karpathy vd., 2014) de içeriyordu. Çizgenin üst kısmında, Kanada Parlemantosu nun tartışmalarından oluşturulmuş IBM nin veri kümesi (Brown vd., 1990) ya da WMT İngilizceden Fransızcaya veri kümesi gibi (Schwenk, 2014) çevrilmiş veri kümelerinin diğer veri kümelerinden çok daha büyük olduğunu görebiliriz. 19

62 main 2018/10/22 22:43 page 20 #62 BÖLÜM 1 Şekil 1.9: MNIST veri kümesinden örnek girdiler. NIST in açılımı Ulusal Standartlar ve Teknoloji Enstitüsü(National Institue of Standards and Technology) dür ve veriyi toplayan kurumun adıdır. M değiştirilmiş(modified) anlamındadır çünkü veri, makine öğrenme algoritmalarında kullanılması için önişlemeden geçirilmiştir. MNIST veri kümesi, elle yazılmış rakamların taramalarının ve hangi görüntüde hangi rakamın olduğunu belirten etiketlerin olduğu bir veri kümesidir. Bu basit sınıflandırma problemi derin öğrenme araştırmalarında en sık kullanılan testlerden biridir. Günümüz teknikleri tarafından kolayca çözülmesine rağmen hâlâ popülerliğini korumaktadır. Geoffrey Hinton bu veri kümesini, biyologların sıkça meyve sineklerini araştırmalarına benzer şekilde makine öğrenmesi araştırmacılarının da kontrollü bir şekilde deney yapabilmesine olanak sağladığından makine öğrenmesinin drozofili olarak tanımlamıştır. istatistiksel kestirimin asıl zorluğu olan küçük bir miktar veriden, yeni verilere genelleme büyük oranda kolaylaşmasıdır yılından beri, göz kararı bir kural, gözetimli bir derin öğrenme algoritmasının, kategori başına etiketli örnekten sonra kabul edilebilir bir performansa sahip olacağıdır. 10 milyon etiketli örnekle 20

Daha göster

nest...

oksabron ne için kullanılır patates yardımı başvurusu adana yüzme ihtisas spor kulübü izmit doğantepe satılık arsa bir örümceğin kaç bacağı vardır