Derin Öğrenmeye Giriş

Derin Öğrenmeye Giriş

Haziran ayında bilgisayar biliminin Bradfield okulunda derin öğrenme  ders aldım . Bu seri, sınıfta öğrendiklerim ve o günden beri öğrendiklerim hakkında bir dergidir.

Bu, bu dizinin ilk makalesidir ve Derin Öğrenme kursu için önerilen hazırlık ve birinci sınıfta öğrendiklerimizle ilgilidir. Buradaki ikinci makaleyi ve üçüncüsünü buradan okuyun .

Her ne kadar normalde “prework”, girişten önce gelirse de, yapay zeka, makine öğrenimi ve derin öğrenmenin alanlarına 30.000 ayak görünümü vereceğim. Bu bağlamın, önkoşulların neden bu kadar geniş olduğunu anlamamıza gerçekten yardımcı olabileceğini ve sadece esasları incelememize yardımcı olabileceğini buldum. Ayrıca, yapay zekânın tarihi ve manzarası ilginçtir, bu yüzden dalış yapalım!

 

Yapay Zeka, Makine Öğrenimi ve Derin Öğrenme:

 

Derin öğrenme, makine öğreniminin bir alt kümesidir. Makine öğrenimi yapay zekanın bir alt kümesidir. Bir başka deyişle, tüm derin öğrenme algoritmaları, makine öğrenimi algoritmalarıdır, ancak birçok makine öğrenimi algoritması, derin öğrenmeyi kullanmaz. Bir Venn Şeması olarak, şuna benziyor:

 

 

 

Derin öğrenme, özellikle bir sinir ağı olarak adlandırılan bir algoritma sınıfına ve teknik olarak sadece “derin” sinir ağlarına (dahası bir saniyede) atıfta bulunur. Bu ilk sinir ağı 1949'da icat edildi, ancak o zamanlar çok kullanışlı değildi. Aslında, 1970'lerden 2010'un geleneksel AI formlarına, nöral ağ tabanlı modellerden sürekli olarak daha iyi performans gösterecek.

 

 

Bu öğrenmeyen AI türleri, kurala dayalı algoritmaları içerir (if / else bloklarının son derece karmaşık bir dizisini düşünün); A * arama gibi sezgisel temelli AI'lar ; Arc Tutarlılığı gibi kısıtlama doyumu algoritmaları ; minimax(ünlü Deep Blue satranç AI tarafından kullanılan) gibi ağaç arama algoritmaları ; ve dahası.

 

 

Makine öğrenimini ve özellikle derin öğrenmeyi engelleyen iki şey başarılı oldu. Büyük veri setlerinin kullanılabilirliği ve hesaplama gücünün bulunmaması. 2018'de, veri fazlası var ve AWS hesabı ve kredi kartı olan herkes dağıtılmış bir süper bilgisayara erişebiliyor. Veri ve bilgi işlem gücünün yeni kullanılabilirliği nedeniyle, Makine öğrenimi - ve özellikle derin öğrenim - AI dünyasını fırtına ile almıştır.

 

 

Denetimsiz öğrenim ve takviye öğrenme gibi diğer makine öğrenimi kategorileri olduğunu bilmelisiniz, ancak bu makalenin geri kalanı için, denetlenen öğrenme denilen bir makine öğrenimi alt kümesi hakkında konuşacağım .

 

 

Denetimli öğrenme algoritmaları, makineyi tekrar tekrar tahmin yapmaya zorlayarak çalışır. Spesifik olarak, biz (insanlar) zaten doğru cevabı bildiğimiz veriler hakkında tahminler yapmasını istiyoruz. Buna “etiketli veri” denir - etiket, makinenin öngörmesini istediğimiz her şeydir.

 

 

İşte bir örnek: Diyelim ki birisinin ipoteklerini temdit edip edemeyeceğini tahmin etmek için bir algoritma kurmak istedik. İpoteklerini varsayılan olarak yapan ve olmayan kişilerden oluşan bir grup örneğe ihtiyacımız var.

 

 Bu kişilerle ilgili verileri alacağız; onları makine öğrenme algoritmasına beslemek; her insan hakkında bir tahmin yapmasını isteyin; ve tahmin edildikten sonra, makineye doğru cevabın gerçekte ne olduğunu söyleriz. Doğru ya da yanlış olarak, makine öğrenme algoritması , tahminleri nasıl değiştirdiğini değiştirdi .

 

 

Bu süreci birçok kez tekrarlıyoruz ve matematiğin mucizesi aracılığıyla, makinemizin tahminleri daha iyi oluyor. Tahminler nispeten yavaş olsa da, bu algoritmaları eğitmek için çok fazla veriye ihtiyacımız var.

 

Doğrusal regresyon , destek vektör makineleri ve karar ağaçları gibi makine öğrenme algoritmaları farklı şekillerde “öğrenir”, ancak temel olarak hepsi aynı süreci uygular: bir tahmin yapmak, bir düzeltme almak ve düzeltmeye dayalı tahmin mekanizmasını ayarlamak. Üst düzeyde, bir insanın nasıl öğrendiğine benzer.

 

 

Derin öğrenmenin, sinir ağları olarak adlandırılan belirli bir makine öğrenme algoritması kategorisine odaklanan bir makine öğrenim alt kümesi olduğunu hatırlayın. Sinir ağları asıl olarak insan beyninin çalışma biçiminden ilham almıştır - bireysel “nöronlar” diğer nöronlardan “sinyaller” alırlar ve sırayla diğer “nöronlara” “sinyaller” gönderirler. Her nöron, gelen “sinyalleri” bir şekilde dönüştürür ve sonunda bir çıkış sinyali üretilir. Her şey yolunda gittiyse, bu sinyal doğru bir öngörüyü temsil eder!

 

 

Bu yararlı bir zihinsel modeldir, ancak bilgisayarlar biyolojik beyin değildir. Nöronlar, sinapslar veya beyinleri işleyen diğer biyolojik mekanizmalardan yoksundurlar. Biyolojik model bozulduğundan, araştırmacılar ve bilim adamları, sinirsel ağları “yapay beyinler” olarak tanımlamak yerine, bunları yapay sinir ağlarını modellemek için grafik teorisini kullanırlar, onları güçlü özelliklere sahip karmaşık grafikler olarak tanımlarlar.

 

 

Grafik teorisinin merceğinden bakıldığında, bir nöral ağ, bağlı düğümlerin bir dizi katmanıdır; Her düğüm bir “nöron” u temsil eder ve her bağlantı bir “sinaps” ı temsil eder.

 

 

Farklı ağ çeşitlerinin farklı bağlantıları vardır. Derin öğrenmenin en basit şekli derin bir sinir ağıdır. Derin bir sinir ağı, bir dizi tam bağlı katmana sahip bir grafiktir. Belirli bir katmandaki her düğümün, sonraki katmandaki her düğüme bir kenarı vardır; 

 

Bu kenarların her birine farklı bir ağırlık verilir. Bütün katman dizisi “beyin” dir. Tüm bu kenarlardaki ağırlıklar doğruayarlanmışsa, bu grafikler inanılmaz bir “düşünme” yapabilir.

 

 

Sonuçta, Derin Öğrenme Kursu, bu grafiklerin farklı versiyonlarının nasıl oluşturulacağı ile ilgili olacaktır; Sistem çalışana kadar bağlantı ağırlıklarını ayarlayın; ve makinemizin yaptığımızı düşündüğünden emin olun . Derin Öğrenme'yi, degrade iniş ve geri yayılımı gibi yapan mekanikler, farklı matematiksel disiplinlerden gelen pek çok fikri bir araya getirir. Için gerçekten anlamak sinir ağları bazı matematik arka plan gerekir.

 

 

Arka Plan Bilgisi - Her Şeyden Biraz :

 

 

PyTorch ve TensorFlow gibi kütüphaneleri ne kadar kolay kullanabileceğinizi düşündüğünüzde, “ çok fazla matematiğe ihtiyacınız yok . “Fakat iki sınıf için gerekli olan okumayı yaptıktan sonra, biraz önce matematik deneyimime sahip olduğuma sevindim. Doğrusal cebir, matematik, olasılık, istatistik ve grafik teorisi konularının bir alt kümesi zaten ortaya çıkmıştır.

 

 

Bu bilgiyi üniversitede almak, yaklaşık 5 ders almayı gerektirecektir. Matematik 1, 2 ve 3; lineer Cebir; ve bilgisayar bilimi 101. Neyse ki, bu alanların hepsine de ihtiyacınız yok Şimdiye kadar gördüğüm şeye dayanarak, sinir ağlarına kendiniz girmek istiyorsanız, bunu tavsiye ederim:

 

 

Doğrusal cebirden, nokta çarpımını, matris çarpımını (özellikle farklı boyutlardaki matrisleri çarpma kuralları) bilmeniz ve aktarmanız gerekir. Bu şeyleri çabucak elle yapabilmek zorunda değilsiniz, ancak beyaz tahta veya kağıt üzerinde küçük örnekler yapmak için yeterince rahat olmalısınız.

 

 “Çok boyutlu alanlar” ile çalışmayı da rahat hissetmelisiniz - derin öğrenme birçok boyutlu vektörü kullanır.

 

 

Bir tazeleyici veya lineer cebire giriş için 3Blue1Brown'un Linear Cebiri özünüseviyorum . Ek olarak, birkaç nokta ürününü ve matris çarpımlarını elle (küçük vektör / matris boyutları ile) hesaplayın. Sinir ağlarını modellemek için grafik teorisini kullanmamıza rağmen, bu grafikler bilgisayarda matrisler ve vektörler tarafından verimlilik nedenleriyle temsil edilir. Vektörleri ve matrisleri düşünerek ve programlayarak rahat olmalısınız.

Calculus'tan türevi bilmeniz gerekir ve bunu oldukça iyi bilmelisiniz. Sinir ağları basit türevleri, zincir kuralı, kısmi türevleri ve gradyanı içerir . Türev, optimizasyon problemlerini çözmek için sinir ağları tarafından kullanılır , bu yüzden türevin “en büyük artış yönünü” bulmak için nasıl kullanılabileceğini anlamalısınız. İyi bir sezgi muhtemelen yeterlidir, ancak türevi kullanarak birkaç basit optimizasyon problemini çözerseniz , yaptığınız için mutlu olursunuz. 3Blue1Brown ayrıca Calculus serisinin bir özüne de sahiptir ; bu, hesapların daha bütünsel bir incelemesi kadar hoştur.

 

 

Gradyan alçalması ve geri yayılımı, eğitim sırasında ağların ince ayarını yapmak için hem türevleri yoğun olarak kullanır. Büyük karmaşık türevleri, zincir ve ürün kurallarını birleştirmekle nasıl çözeceğinizi bilmek zorunda değilsiniz, ancak basit denklemlerle kısmi türevleri hissetmek çok yardımcı olur.

 

 

Olasılık ve istatistikten, ortak dağıtımlar , metrikler, doğruluk ve doğruluk ve hipotez testleri hakkında bilgi sahibi olmalısınız . Şimdiye kadar, sinir ağlarının en yaygın uygulamaları, bir tür kestirmeler veya yargılar yapmaktır. Bu bir köpek resmi mi? Yarın yağmur yağacak mı? Tyler'a bu reklamı göstermeli miyim , yoksa o mu? İstatistikler ve olasılık, bu sistemlerin doğruluğunu ve kullanışlılığını değerlendirmemize yardımcı olacaktır.

 

 

İstatistiklerin uygulanan tarafta daha fazla belirdiğini belirtmek gerekir; Grafik teorisi, matematik ve lineer cebir hepsi uygulama tarafında görünür. Ben de anlamak için en iyisi, ama sadece edilecek gidiyoruz kullanarakTensorFlow gibi bir kütüphane ve ilgilenmiyor uygulayan bu algoritmaları kendinizi - matematik ve lineer cebir fazla istatistik odaklanmak daha akıllıca olur.

 

 

Son olarak, grafik teorisi. Dürüst olmak gerekirse, “köşe”, “kenar” ve “kenar ağırlığı” terimlerini tanımlayabiliyorsanız, muhtemelen kemerinizin altında yeterli grafik teorisine sahip olursunuz. Bu “ Nazik Giriş ” bile ihtiyacınız olandan daha fazla bilgiye sahiptir.

 

 

Bu dizinin bir sonraki yazısında, Derin Sinir Ağlarını ve nasıl inşa edildiğini inceliyorum. Sonra görüşürüz!

 

 

Bölüm 2: Hesaplamalı Grafikler Olarak Derin Sinir Ağları

Bölüm 3: Farklı Sinir Ağı Mimarileri ile MNIST Hanelerini Sınıflandırma

 

 

Yazı için Tyler Elliot Bettilyon  teşekkür ederiz.