maOptimizer: Algoritma Pengoptimalan
Menentukan Algoritma Pengoptimalan untuk Neural Net.
Penggunaan
adaDeltaSgd(decay = 0.95, conditioningConst = 1e-06)
sgd(learningRate = 0.001, momentum = 0, nag = FALSE, weightDecay = 0,
lRateRedRatio = 1, lRateRedFreq = 100, lRateRedErrorRatio = 0)
Argumen
decay
Menentukan laju pembusukan yang diterapkan pada gradien saat menghitung langkah dalam algoritma pengoptimalan adaptif ADADELTA. Tingkat ini digunakan untuk memastikan bahwa tingkat pembelajaran terus membuat kemajuan dengan memberikan bobot yang lebih kecil ke gradien jarak jauh dalam perhitungan ukuran langkah. Secara matematis, ini menggantikan persegi rata-rata gradien dengan rata-rata gradien kuadrat yang membusuk secara eksponensial dalam penyebut aturan pembaruan. Nilai yang ditetapkan harus dalam rentang (0,1).
conditioningConst
Menentukan konstanta pengkondisian untuk algoritma pengoptimalan adaptif ADADELTA yang digunakan untuk mengkondisikan ukuran langkah di wilayah di mana rata-rata gradien kuadrat yang membusuk secara eksponensial kecil. Nilai yang ditetapkan harus dalam rentang (0,1).
learningRate
Menentukan ukuran langkah yang diambil ke arah gradien negatif untuk setiap iterasi proses pembelajaran. Nilai defaultnya adalah = 0.001
.
momentum
Menentukan bobot untuk setiap dimensi yang mengontrol kontribusi langkah sebelumnya ke ukuran langkah berikutnya selama pelatihan. Ini memodifikasi untuk mempercepat learningRate
pelatihan. Nilainya harus >= 0
dan < 1
.
nag
Jika TRUE
, Penurunan Gradien Dipercepat Nesterov digunakan. Metode ini mengurangi kompleksitas oracle penurunan gradien dan optimal untuk pengoptimalan cembung yang lancar.
weightDecay
Menentukan bobot penskalaan untuk ukuran langkah. Setelah setiap pembaruan berat, bobot dalam jaringan diskalakan oleh (1 - ``learningRate * weightDecay)
. Nilainya harus >= 0
dan < 1
.
lRateRedRatio
Menentukan rasio pengurangan tingkat pembelajaran: rasio di mana tingkat pembelajaran dikurangi selama pelatihan. Mengurangi tingkat pembelajaran dapat menghindari minima lokal. Nilainya harus > 0
dan <= 1
.
- Nilai
1.0
berarti tidak ada pengurangan. - Nilai
0.9
berarti tingkat pembelajaran dikurangi menjadi 90 nilainya saat ini.
Pengurangan dapat dipicu baik secara berkala, terjadi setelah jumlah perulangan tetap, atau ketika kriteria kesalahan tertentu mengenai peningkatan atau penurunan fungsi kerugian terpenuhi. - Untuk memicu pengurangan laju berkala, tentukan frekuensi dengan mengatur jumlah iterasi antara pengurangan dengan
lRateRedFreq
argumen . - Untuk memicu pengurangan laju berdasarkan kriteria kesalahan, tentukan angka di
lRateRedErrorRatio
.
lRateRedFreq
Mengatur frekuensi pengurangan tingkat pembelajaran dengan menentukan jumlah perulangan antar pengurangan. Misalnya, jika 10
ditentukan, tingkat pembelajaran berkurang setiap 10 iterasi sekali.
lRateRedErrorRatio
Menentukan kriteria kesalahan pengurangan tingkat pembelajaran. Jika diatur ke 0
, tingkat pembelajaran berkurang jika kerugian meningkat di antara perulangan. Jika diatur ke nilai pecahan yang lebih besar dari0
, tingkat pembelajaran berkurang jika kerugian berkurang kurang dari pecahan nilai sebelumnya.
Detail
Fungsi-fungsi ini dapat digunakan untuk optimizer
argumen di rxNeuralNet.
Fungsi ini sgd
menentukan Stochastic Gradient Descent. maOptimizer
Fungsi ini adaDeltaSgd
menentukan turunan gradien AdaDelta, yang dijelaskan dalam makalah 2012 "ADADELTA: Metode Laju Pembelajaran Adaptif" oleh Matthew D.Zeiler.
Nilai
String karakter yang berisi spesifikasi untuk algoritma pengoptimalan.
Penulis
Microsoft Corporation Microsoft Technical Support
Referensi
ADADELTA: An Adaptive Learning Rate Method
Lihat juga
Contoh
myIris = iris
myIris$Setosa <- iris$Species == "setosa"
res1 <- rxNeuralNet(formula = Setosa~Sepal.Length + Sepal.Width + Petal.Width,
data = myIris,
optimizer = sgd(learningRate = .002))
res2 <- rxNeuralNet(formula = Setosa~Sepal.Length + Sepal.Width + Petal.Width,
data = myIris,
optimizer = adaDeltaSgd(decay = .9, conditioningConst = 1e-05))