Gradyan iniş algoritmasını harika bir oyuna dönüştürün, bu derin öğrenme üzerine popüler bir ders

İçbükey tapınaktan Xiaocha

Qubit Raporu | Genel Hesap QbitAI

Topların yamaçtan aşağı yuvarlanmasına ve hangi vadiye düştüğünü bulmasına izin verin. orijinal Gradyan iniş algoritması Bir oyun videosu kadar havalı olabilir:

Yukarıdaki, fast.ai'nin kurucusu Jeremy Howard tarafından paylaşılan bir videodur.İlk bakışta, karmaşık arazide savaşın bir kum tablası çıkarımı gibi görünüyor. Aslında, stokastik gradyan iniş (SGD) algoritmasının özünü ortaya koyuyor.

Google Brain Tokyo araştırmacısı hardmaru, videoya karşılık gelen makaleyi yeniden yayınladı ve "gerçek zamanlı bir strateji oyununa benzediğini" yorumladı.

Ancak eğlenceyi küçümsemeyin, videonun etkili olması için makaleyle birlikte "çekilmesi" gerekir. Yukarıdaki popüler video, fast.ai üyesi Javier Ideami tarafından yazılan popüler bir bilim makalesinden bir alıntıdır.

Kod ve formül sizi sıkıcı hissettiriyorsa, o zaman bu harika SGD videosuyla başlayabilir ve ardından bu makaleyi okuyabilirsiniz, bu, derin öğrenmeyi daha sezgisel olarak anlamanıza yardımcı olacaktır.

Gradyan iniş algoritmasının görselleştirilmesi

Gradyan tam olarak nedir?

Sayısız sahte yüz oluşturan CNN, RNN ve GAN'lar da dahil olmak üzere derin öğrenmenin mimarisi ve en son gelişmeleri, gradyan iniş algoritmasından ayrılamaz.

Eğim, yamaçta belirli bir noktada en hızlı yükselen yön olarak anlaşılabilir ve ters yönü en hızlı düşme yönüdür. Dağdan en hızlı şekilde inmek için eğimin tersi yönünde yürüyün.

Kum masa kesintisine benzeyen şey aslında attığımız küçük toplardır ve eğim yönünde dibe yuvarlanırlar.

Gradyan iniş algoritmasının nihai amacı, en düşük rakıma sahip vadi olan tüm "arazideki" en alçak noktayı (küresel minimum) bulmaktır.

Ancak bu arazide birden fazla vadi olabilir (yerel minimum), bu nedenle çok sayıda topu dağıtmamız, farklı vadilere düşmelerine izin vermemiz ve sonunda en alçak noktayı bulmak için yükseklikleri karşılaştırmamız gerekiyor.

Yukarıdakiler, stokastik gradyan iniş (SGD) algoritmasının temel fikridir.

Sinir ağı girişi ve çıkışı

Gradyan iniş algoritmasından bahsettikten sonra, sinir ağlarının temel bilgilerini tanıtalım.

Temelde, bir sinir ağı, girdi verilerini ihtiyacımız olan çıktıya dönüştürmek için bir dizi "ağırlık" kullanır.

En basit 2 katmanlı sinir ağıyla başlayalım ve sinir ağının yapısını kısaca tanıtalım. Aslında, sinir ağları bundan çok daha karmaşıktır, genellikle düzinelerce katman ve hatta yüzlerce katman içerir.

giriş : Sinir ağının girişi kaynak verilerdir ve nöron sayısı, kaynak verinin özellik numarasıyla eşleşir. Yukarıdaki şekil örnek olarak 4 giriş almaktadır.

Seviye bir : Bu, çevreleyen katmandaki birimlere bağlı birçok gizli nöronu içeren gizli bir katmandır.

İkinci kat : İkinci ve son katmanın ağ çıktısı olan 1 birimi vardır.

W girişi ve Z çıkışı arasında doğrusal bir ilişki vardır:

Birinci katman ağı için, Z1 = W1X + b1, A1 = ReLU (Z1), A1, etkinleştirme işlevi işlemesinden sonra Z1'in sonucudur.

İkinci katman ağı için, birinci katmanın A1 çıkışını ikinci katmanın girişi olarak kullanırız, Z2 = W2A1 + b2, A2 = Sigmoid (Z2).

W ağ katmanını temsil edecek Ağırlıklar , Ağın farklı birimleri arasındaki bağlantının gücünü temsil eder. b kısaltması Önyargı terimi , Ağ için daha fazla esneklik sağlayabilir.

İkinci katman Yh = A2'nin son çıktısı, bu sinir ağının nihai çıktısıdır.

Yh = A2 = Sigmoid (W2 ReLU (W1 X + b1) + b2)

Yh, X'in ağa girilmesinden sonra üretilen çıktı olan sinir ağının tahmin sonucunu temsil edecektir.

Bu denklemde W1, b1, W2 ve b2 bilinmeyenlerdir ve ağın doğru değerlerini bulması için eğitilmesi gerekir.

Aktivasyon fonksiyonunun seçimi

Yukarıdaki sinir ağında, her katmanın çıktısının doğrusal işlemin sonucundan sonra bir "filtre" ile eklendiğini fark edebilirsiniz. Neden bununla bu şekilde başa çıkmalıyız?

Gerçekte, girdi ve çıktı arasındaki ilişki genellikle doğrusal değildir. Bir sinir ağının mimarisi yalnızca doğrusal algoritmalardan oluşuyorsa, doğrusal olmayan davranışı hesaplamak zordur. Bu yüzden her katmanın sonuna bir tane eklemeliyiz Aktivasyon fonksiyonu .

Farklı aktivasyon fonksiyonlarının farklı özellikleri vardır. Yanlış seçim, degradenin çok küçük olmasına neden olur ve buna genellikle Ufuk gradyan sorun.

Bunun tam tersi bir sorun da var. Gradyan patlaması Gradyan değeri çok büyük olduğunda, ağ çok kararsız hale gelecektir.

Dört yaygın etkinleştirme işlevi şunlardır: Sigmoid, tanh, ReLU, sızdıran ReLU, avantajlarını ve dezavantajlarını kısaca tartışalım.

Sigmoid

1 / (1 + e -x )

Bu işlev, girdiyi iki kategoriye ayırmak için çok uygundur. Şekli çok naziktir, bu nedenle eğimi iyi kontrol edilebilir.

Ana dezavantaj, aşırı durumlarda, fonksiyon çıktısının çok düz hale gelmesidir. Bu, gradyanların kaybolması sorunu olduğu anlamına gelir.

tanh

(2 / (1 + e-2x)) - 1

Sigmoid'e çok benzer. Fonksiyon eğrisi daha diktir, bu nedenle çıktısı daha güçlü olacaktır. Dezavantajları Sigmoid'e benzer.

ReLU

maks (0, x)

Giriş 0'dan büyükse, çıkış girişe eşittir. Aksi takdirde çıktı 0'dır.

Çıktısı 0 ile sonsuz arasında değişir. Bu, çıktısının çok büyük olabileceği ve bir gradyan patlaması sorunu olabileceği anlamına gelir. Diğer bir sorun da sol tarafın tamamen düz olması ve bu da eğimin kaybolmasına neden olabilmesidir.

ReLU'nun hesaplanması basittir ve sinir ağlarının iç katmanında en sık kullanılan aktivasyon işlevidir.

Sızdıran ReLU

ReLU işlevinin ilk yarısını 0,01x ile değiştirin.

softmax

e-x / Sum (e-x)

Çıkış aralığı 0 ile 1 arasındadır.

Softmax, girdiyi bir olasılık dağılımına normalleştirir. Girişi Sigmoid gibi 0 ile 1 aralığında sıkıştırır.

Genellikle çok sınıflı bir sahnenin çıktı katmanında bulunur, Softmax her sınıfın olasılıklarının toplamının 1 olmasını sağlar.

Aslında bir sinir ağı, bir dizi işlevin birleşimidir, bazıları doğrusaldır ve bazıları doğrusal değildir.Birlikte, girdi verilerini ihtiyacımız olan çıktıya bağlayan karmaşık bir işlev oluştururlar.

Makalenin orijinal yazarı bu konuyu tartışmak için üç bölüme ayırdı ve makalenin sonundaki bağlantıda daha fazla içerik bulunabilir:

https://towardsdatascience.com/the-keys-of-deep-learning-in-100-lines-of-code-907398c76504

PlayerUnknown's Battlegrounds, eklentiden daha güçlü olan büyük bir hataya sahip! Sonuçlar çok ciddi!
önceki
Asya Oyunları'nda çıkabilecek bir skandal! Ev sahibi ekip beklenmedik şekilde kaybeder ancak gizemi gizler
Sonraki
Guangdongun CBAda üçüncü sıradaki güçlü yardımı değiştirmesi hakkında ne düşünüyorsunuz, son 6 tur berbat, onlar yine de Yabancı Çalışmalar Üniversitesine dönmek istiyorlar
DNF'nin en popüler mesleği! Ekibi aramayın, şimdi karşı saldırı ön safta, oyuncular toplu olarak özür diler
Asya Oyunları'ndaki asker kaçakları çılgın! Sun Xingyun, Güney Kore'de oynamadı ve 6 golle Batı Asya'nın güç merkezini yendi.
İki süper yabancı yardım ilk kez birlikte uygulanıyor, Guangdong sızıntıları önlemek için kapalı, dış yardım kullanımı bir trend haline gelebilir
Sıfır dış yardım ve süper uzun menzilli serbest vuruş köşe vuruşlarıyla Çin'in Birinci Ligindeki en seçici takım
LOL kadın takımının yine gösteri operasyonu var mı? Joker takımdan 14 kafa aldı, ancak gerçek oyuncuları memnun etmedi
Google Thousand Yuan TPU çipi piyasaya sürüldü, TensorFlow Logo'nun yerini aldı ve en son sürüm 2.0'ı piyasaya sürdü
Zayıf oyunculara karşı 6-0 galibiyet o kadar göze batmıyor, gerçek göz kamaştırıcı sahne kenarda, milli futbol taraftarları gerçekten güçlü
Oyuncunun yüzü dövülmüş ve şişmiş mi? İlk başta kimse oyun hakkında iyimser değildi, ancak oyun çevrimiçi olduktan sonra steam oyuncuları tarafından havaya uçuruldu
6 Asya takımı, Tokyo aracılığıyla Çin takımı için en büyük tehdit olan Erkekler Basketbol Dünya Kupası finallerine giriyor
Asya Oyunları erkek futbol maçındaki en çılgın beş takım geçici olarak birinci sırada yer alıyor, Japonya ve Güney Kore'nin eşleşmesi zor
Sprey oyuncuları ne kadar iyi? Warcraft'a azarlandı doğrudan yeni bir iş ekledi! Blizzard tasarımcısı titriyor
To Top