Sinir ağlarını eğitmek için beş algoritma: teknik ilkeler, bellek ve hız analizi

1 Xinzhiyuan derlemesi

Bir sinir ağında öğrenme sürecini gerçekleştirmek için kullanılan programa eğitim algoritması denir. Her biri farklı özelliklere ve performansa sahip birçok eğitim algoritması vardır.

Problem tanımı

Sinir ağlarında öğrenme problemi, kayıp fonksiyonunun en aza indirilmesi ile tanımlanır f. Bu işlev genellikle bir hata terimi ve normal bir terimden oluşur. Hata terimi, sinir ağının veri setine nasıl uyduğunu değerlendirir ve normal terim, sinir ağının etkili karmaşıklığını kontrol ederek aşırı uyumu önlemek için kullanılır.

Kayıp işlevi, sinir ağındaki uyarlanabilir parametrelere (önyargı ve sinaptik ağırlıklar) bağlıdır. Bunları kolayca tek bir n boyutlu ağırlık vektörü w şeklinde birleştirebiliriz. Aşağıdaki şekil kayıp fonksiyonunu göstermektedir f (w)

Yukarıdaki şekilde gösterildiği gibi, w * noktası, kayıp fonksiyonunun minimum değeridir. Herhangi bir A noktasında, kayıp fonksiyonunun birinci ve ikinci türevlerini hesaplayabiliriz. İlk türev, gradyan vektörlerinden oluşur ve şu şekilde yazılabilir:

eğer (w) = df / dwi (i = 1, ..., n)

Benzer şekilde, kayıp fonksiyonunun ikinci türevi bir Hessian matrisi olarak yazılabilir:

Merhaba, jf (w) = d2f / dwi · dwj (i, j = 1, ..., n)

Sürekli ve farklılaştırılabilir birçok fonksiyonun minimizasyonu üzerine birçok çalışma yapılmıştır. Bu problemler için geleneksel yöntemler, sinir ağlarını eğitmek için doğrudan uygulanabilir.

Tek boyutlu optimizasyon yöntemi

Kayıp fonksiyonu birçok parametreye bağlı olsa da, tek boyutlu optimizasyon yöntemi burada çok önemlidir. Aslında, tek boyutlu optimizasyon yöntemleri genellikle sinir ağlarının eğitim sürecinde kullanılır.

Birçok eğitim algoritması önce eğitim yönünü d hesaplar ve ardından bu yöndeki kaybı en aza indiren, f (n) olarak yazılan eğitim oranını hesaplar. Aşağıdaki şekil tek boyutlu kayıp fonksiyonunu açıklamaktadır:

1 ve 2 noktaları, f (n) 'nin minimum * değerini içeren aralığı tanımlar. Burada, tek boyutlu optimizasyon yöntemi, belirli bir tek boyutlu fonksiyonun minimum değerini arar. Yaygın olarak kullanılan algoritmalar altın kesit yöntemi ve Brent yöntemidir.

Çok boyutlu optimizasyon yöntemi

Sinir ağının öğrenme problemi, kayıp fonksiyonu f'yi en aza indiren w * parametre vektörünün aranması olarak tanımlanır. Sinir ağının kayıp işlevi minimum değere ulaştıysa, gradyan sıfır vektördür.

Genel olarak, kayıp fonksiyonu, parametrelerin doğrusal olmayan bir fonksiyonudur. Bu nedenle minimum kapalı eğitim algoritmasını bulmak imkansızdır. Bunun yerine, bir dizi adımdan oluşan bir parametre uzayında minimum değeri aramayı düşünüyoruz. Her adımda sinir ağı parametrelerinin ayarlanmasıyla kayıp azalacaktır.

Bu şekilde, sinir ağını bazı parametre vektörlerinden (genellikle rastgele seçilen) eğitmeye başlarız. Ardından, kayıp fonksiyonunun algoritmanın her yinelemesinde kayıp değerini düşürmesi için bir dizi parametre oluşturacağız. İki yineleme arasındaki kayıp değerindeki değişikliğe kayıp azaltma denir. Belirli koşullar karşılandığında veya durdurma kriterine ulaşıldığında, eğitim algoritması durur.

Ardından, sinir ağlarını eğitmek için en önemli beş algoritmayı tanıtacağız.

1. Gradyan inişi

En dik iniş yöntemi olarak da bilinen gradyan iniş yöntemi, en basit eğitim algoritmasıdır. Gradyan vektöründen bilgiye ihtiyaç duyar, bu yüzden birinci dereceden bir yöntemdir.

F (wi) = fi ve f (wi) = gi olsun. Yöntem, w0 noktasından başlar ve durdurma kriteri karşılanana kadar eğitim yönünde di = -gi wi'den wi + 1'e hareket eder. Bu nedenle, gradyan iniş yöntemi aşağıdaki formüle göre yinelenir:

wi + 1 = wi-di · i, i = 0,1, ...

parametresi eğitim oranıdır. Bu değer, sabit bir değer olarak ayarlanabilir veya eğitim yönü boyunca tek boyutlu optimizasyonun her adımında bulunabilir. Eğitim oranının optimal değeri, genellikle her bir ardışık adımın doğrusal olarak en aza indirilmesiyle elde edilebilir. Ancak, yalnızca sabit bir eğitim oranı kullanan birçok yazılım aracı hala mevcuttur.

Aşağıdaki şekil gradyan iniş yönteminin eğitim sürecini göstermektedir. Parametre vektörünün iki aşamada geliştirildiği görülebilir: önce gradyan iniş eğitim yönü hesaplanır, ardından uygun eğitim oranı bulunur.

Gradyan iniş eğitim algoritmasının ciddi dezavantajı, uzun ve dar bir vadi yapısına sahip bir fonksiyonun birçok yinelemesini gerektirmesidir. Aslında, yokuş aşağı gradyan, kayıp fonksiyonunun en hızlı düştüğü yöndür, ancak en hızlı yakınsamayı mutlaka üretmez. Aşağıdaki şekil bu sorunu göstermektedir.

Sinir ağı çok büyük olduğunda ve birçok parametreye sahip olduğunda, gradyan iniş yöntemi önerilen algoritmadır. Çünkü bu yöntem, Hessian matrisini (boyut n2) değil, yalnızca gradyan vektörünü (boyut n) depolar.

2. Newton yöntemi

Newton'un yöntemi ikinci dereceden bir algoritmadır çünkü Hessen matrisini kullanır. Bu yöntemin amacı, kayıp fonksiyonunun ikinci türevini kullanarak daha iyi bir eğitim yönü bulmaktır.

F (wi) = fi, f (wi) = gi ve Hf (wi) = Hi olsun. Taylor serisini kullanarak f'nin w0 üzerindeki ikinci yaklaşımını elde edin:

f = f0 + g0 · (w-w0) + 0.5 · (w-w0) 2 · H0

H0, w0 noktasında hesaplanan f'nin Hessian matrisidir. Minimum f (w) değeri için g = 0 ayarlanarak, sonraki denklem elde edilir:

g = g0 + H0 · (w-w0) = 0

Bu şekilde, w0 parametre vektöründen başlayarak, Newton'un yöntemi aşağıdaki formüle göre yinelenir:

wi + 1 = wi-Hi-1 · gi, i = 0,1, ...

Hi-1 · gi vektörüne Newton adımı denir. Bu parametrelerin değişikliklerinin minimum yerine maksimuma doğru hareket edebileceği unutulmamalıdır. Bu, Hessian matrisi pozitif tanımlı değilse olur. Bu nedenle, işlevin değerinin her yinelemede azalacağına dair bir garanti yoktur. Bu sorundan kaçınmak için, Newton yönteminin denklemi genellikle şu şekilde değiştirilir:

wi + 1 = wi- (Yüksek-1 · gi) · i, i = 0,1, ...

Eğitim oranı sabit bir değere ayarlanabilir veya doğrusal minimizasyonla bulunabilir. D = Hi-1 · gi vektörü artık Newton eğitim yönü olarak adlandırılıyor.

Newton yönteminin eğitim süreci aşağıdaki şekilde gösterilmiştir: Önce Newton eğitim yönü elde edilir ve ardından parametre iyileştirmesini uygulamak için uygun eğitim oranı elde edilir.

Aşağıdaki şekil bu yöntemin performansını açıklamaktadır. Newton yönteminin gerektirdiği gradyan iniş adımlarının, kayıp fonksiyonunun minimum değerini bulmak için gerekenlerden daha az olduğu görülebilir.

Bununla birlikte, Newton yönteminin dezavantajı, Hessian matrisinin ve ters matrisinin doğru tahmininin hesaplama düzeyinde oldukça pahalı olmasıdır.

3. Eşlenik gradyan

Eşlenik gradyan yöntemi, gradyan inişi ve Newton yöntemi arasında bir yöntem olarak düşünülebilir. Gradyan iniş yönteminin tipik yavaş yakınsamasını hızlandırırken, Hessian matrisinin Newton yöntemiyle değerlendirilmesi, depolanması ve ters çevrilmesi için gereken bilgileri önleyebilir.

Eşlenik gradyan eğitim algoritmasında, arama, genellikle gradyan iniş yönünden daha hızlı yakınsama sağlayan eşlenik yön boyunca gerçekleştirilir. Bu eğitim talimatları, Hessen matrisi ile ilgilidir.

D eğitim yönü vektörünü temsil etsin. Daha sonra, başlangıç parametre vektörü w0 ve ilk eğitim yön vektörü d0 = -g0'dan başlayarak, eşlenik gradyan yöntemi ile oluşturulan eğitim yönü dizisi şu şekilde ifade edilebilir:

di + 1 = gi + 1 + di · i, i = 0,1, ...

Burada eşlenik parametre olarak adlandırılır ve farklı hesaplama yöntemleri vardır. En sık kullanılan yöntemlerden ikisi Fletcher Reeves ve Polak Ribière'dir. Tüm eşlenik gradyan algoritmaları için eğitim yönü periyodik olarak gradyanın negatif değerine sıfırlanır.

Daha sonra, parametreler aşağıdaki denkleme göre geliştirilir ve eğitim oranı genellikle doğrusal minimizasyonla elde edilir:

wi + 1 = wi + di · i, i = 0,1, ...

Aşağıdaki şekil, eşlenik gradyan yöntemini kullanan eğitim sürecini açıklamaktadır. Şekilde gösterildiği gibi, parametre iyileştirme adımı ilk olarak eşlenik gradyan eğitim yönünü hesaplamak ve ardından bu yönde uygun eğitim oranını hesaplamaktır.

Bu yöntemin sinir ağlarının eğitiminde gradyan iniş yönteminden daha etkili olduğu kanıtlanmıştır. Hessian matrisi gerektirmediğinden, sinir ağı çok büyük olduğunda eşlenik gradyan yönteminin kullanılması da önerilir.

4. Quasi-Newton yöntemi

Newton'un yöntemi hesaplama açısından pahalıdır çünkü Hessian matrisini değerlendirmek ve ters matrisini hesaplamak için birçok işlem gerektirir. Bu eksikliği gidermek için yarı-Newton yöntemi veya değişken matris yöntemi olarak adlandırılan alternatif bir yöntem ortaya çıkmıştır. Bu yöntem, doğrudan Hessian matrisini hesaplamak ve ardından ters matrisini değerlendirmek yerine, algoritmanın her yinelemesinde Hessian ters matrisini oluşturur ve ona yaklaştırır. Yaklaşık değer, yalnızca kayıp fonksiyonunun ilk türevinin bilgileri kullanılarak hesaplanır.

Hessian matrisi, kayıp fonksiyonunun ikinci dereceden kısmi türevinden oluşur. Yarı-Newton yönteminin arkasındaki ana fikir, kayıp fonksiyonunun yalnızca birinci dereceden kısmi türevini kullanmak ve yaklaşık Hessian matrisinin tersini başka bir G matrisi aracılığıyla elde etmektir. Yarı-Newton yönteminin formülü şu şekilde ifade edilebilir:

wi + 1 = wi- (Gi · gi) · i, i = 0,1, ...

Eğitim oranı sabit bir değere ayarlanabilir veya doğrusal minimizasyonla elde edilebilir. En yaygın kullanılan iki formül, Davidon-Fletcher-Powell formülü (DFP) ve Broyden-Fletcher-Goldfarb-Shanno formülüdür (BFGS).

Quasi-Newton yönteminin eğitim süreci aşağıdaki şekilde gösterilmektedir. İlk önce yarı-Newton eğitim yönünü alın ve ardından parametre iyileştirme yapmak için tatmin edici bir eğitim oranı bulun.

Bu, çoğu durumda kullanılan varsayılan yöntemdir: gradyan iniş yönteminden ve eşlenik gradyan yönteminden daha hızlıdır ve Hessian matrisinin tam olarak hesaplanmasını ve ters çevrilmesini gerektirmez.

5. Levenberg-Marquardt algoritması (Levenberg-Marquardt algoritması)

Sönümlü en küçük kareler yöntemi olarak da bilinen Levenberg-Marquardt algoritması, hata kare toplamı biçiminde kayıp fonksiyonu için özel bir algoritma olarak tasarlanmıştır. Hessian matrisini doğru bir şekilde hesaplaması gerekmez ve gradyan vektörleri ve Jacobian matrisleri için uygundur.

Aşağıdaki şekil, Levenberg-Marquardt algoritmasını kullanan sinir ağı eğitim sürecini göstermektedir. İlk adım, kayıp değerini, gradyanı ve Hessian yaklaşımını hesaplamak ve ardından her yinelemedeki kaybı azaltmak için sönümleme parametrelerini ayarlamaktır.

Levenberg-Marquardt algoritması, kare hata fonksiyonlarının toplamı için özel bir yöntemdir. Bu, sinir ağlarının eğitiminde bu tür hataları ölçmeyi çok hızlı hale getirir. Ancak bu algoritmanın bazı dezavantajları da vardır. Dezavantajlarından biri, kök ortalama kare hatası veya çapraz entropi hatası gibi işlevlere uygulanamamasıdır. Ayrıca normal öğelerle uyumlu değildir. Son olarak, çok büyük veri kümeleri ve sinir ağları için, Jacobian matrisi çok büyük olacaktır, bu nedenle gerekli bellek de çok büyük olacaktır. Bu nedenle, veri kümesi ve / veya sinir ağı çok büyük olduğunda, Levenberg-Marquardt algoritması önerilmez.

Bellek ve hız karşılaştırması

Aşağıdaki şekil, bu makalede tartışılan eğitim algoritmalarının hesaplama hızını ve depolama gereksinimlerini karşılaştırmaktadır. Gördüğünüz gibi, en yavaş eğitim algoritması gradyan iniştir, ancak en az belleği gerektirir. Aksine, en hızlısı Levenberg-Marquardt algoritmasıdır, ancak aynı zamanda en fazla belleği gerektirir. Daha iyi bir uzlaşma yarı-Newton yöntemi olabilir.

Sonuç olarak, sinir ağımızın binlerce parametresi varsa, bellek tasarrufu yapmak için gradyan iniş yöntemini veya eşlenik gradyan yöntemini kullanabiliriz. Eğitmek istediğimiz sinir ağında yalnızca birkaç bin örnek ve birkaç yüz parametre varsa, en iyi seçim Levenberg-Marquardt algoritması olabilir. Diğer durumlarda, yarı-Newton yöntemini seçebilirsiniz.

Orijinal metni okumak ve 2016 Dünya Yapay Zeka Konferansı ana forumunun inceleme videosunu izlemek için tıklayın.

Kaçırmamanız gereken 10 W + konuşma İnternet Düşünme İşareti · Essence (1)
önceki
Küçükleri yenmek için çapraz düzey rekabet Sadece 100,000 yuan'a mal olan çıplak arabalar için herhangi bir plan var mı?
Sonraki
Yükselen piyasa para birimleri yakında toparlanabilir, ABD doları% 10 düşebilir ve büyük kısıntılar pes edebilir
Burası Güneydoğu Asya'da bir cennet ve aynı zamanda şeytanın gözyaşı dökmesine neden oldu. Hadi birlikte kontrol edelim.
Üç röle, "Slap Baby" güvenli bir şekilde Pekin'e nakledildi, onu korusun
Baidu, Toyota ve Google'ın bu ay eylemleri var. Otonom sürüşün pastası ne kadar büyük?
Romantik alternatif manzarayı yaşamak için mavi ülkeye gelin! Bir hayat sözleşmesi tamamlayın
Github Yıllık Açık Kaynak Raporu: TensorFlow, en popüler derin öğrenme projesi haline geliyor
Şiir | Güzel Şiirler ve Resimler, Karlı!
DeepMind stratejisi: M&A + açık kaynak, mevcut yapay zeka devlerinin en tipik iş modelini oluşturuyor
İnternet dünyası neden Konfüçyüsçülüğe ihtiyaç duyar?
Çin sermayesinin bilim ve teknoloji efsaneleriyle karıştırılması artık kolay değil, yabancı medya: İsrail, Çin parasını karşılamak için enerji patlatıyor
Çok yorgun ve yorgun polisler için
Cai Dehui: Doğrulama yavaş olmalı ve kaydetmeli ve kopyalama her zaman rakibinden yarım adım daha hızlı olmalıdır!
To Top