Sudah tentu, mari kita mulakan dengan artikel itu.
Model pembelajaran mendalam telah menjadi aspek penting teknologi pada era hari ini, dan algoritma pengoptimuman yang berbeza seperti Adam Optimizer memainkan peranan penting dalam pelaksanaannya. Keras, pustaka Python sumber terbuka percuma yang berkuasa dan mudah digunakan untuk membangunkan dan menilai model pembelajaran mendalam, menggabungkan pustaka pengiraan berangka Theano dan TensorFlow yang cekap. Kepentingan melaraskan kadar pembelajaran dalam algoritma pengoptimuman sedemikian adalah sangat penting, kerana ia boleh mempengaruhi proses pembelajaran model secara langsung. Dalam artikel ini, kami akan membincangkan cara menurunkan kadar pembelajaran dalam pengoptimum Adam dalam Keras secara langkah demi langkah. Di sini kami juga akan merangkumi pustaka dan fungsi yang terlibat dalam proses ini.
Keperluan Pelarasan Kadar Pembelajaran
Kadar pembelajaran merupakan hiperparameter penting dalam algoritma pengoptimuman, termasuk pengoptimum Adam . Ia menentukan saiz langkah pada setiap lelaran sambil bergerak ke arah minimum fungsi kerugian. Secara khususnya, kadar pembelajaran yang lebih rendah memerlukan lebih banyak zaman latihan memandangkan langkah yang lebih kecil dalam kemas kini pemberat, manakala kadar pembelajaran yang lebih besar mungkin mencapai titik penumpuan dengan lebih cepat, tetapi berisiko melebihi minimum fungsi kerugian.
Oleh itu, pendekatan biasa untuk melaraskan dan merendahkan kadar pembelajaran sepanjang zaman, sering dirujuk sebagai pereputan kadar pembelajaran. Pereputan kadar pembelajaran memastikan model pembelajaran sampai ke bahagian bawah fungsi kehilangan, mengelakkan langkah besar dalam fasa latihan kemudian yang mungkin menyebabkan turun naik yang ketara.
Pelaksanaan Pereputan Kadar Pembelajaran di Keras
Di Keras, pelarasan ini boleh dicapai dengan bantuan fungsi panggil balik LearningRateScheduler dan ReduceLROnPlateau.
from keras.callbacks import LearningRateScheduler
import numpy as np
# Learning rate schedule
initial_learning_rate = 0.1
decay = initial_learning_rate / epochs
def lr_time_based_decay(epoch, lr):
return lr * 1 / (1 + decay * epoch)
# Fit the model on the batches generated
model.fit(X_train, Y_train, epochs=epochs,callbacks=[LearningRateScheduler(lr_time_based_decay, verbose=1)])
LearningRateScheduler, mengikut zaman, boleh mengubah kadar pembelajaran. Manakala, ReduceLROnPlateau memantau kuantiti dan jika tiada peningkatan dilihat untuk bilangan 'kesabaran' tempoh, kadar pembelajaran dikurangkan.
Bekerja dengan Adam Optimizer
Apabila berurusan dengan pengoptimum Adam, kami memulakan instancenya dengan menentukan kadar pembelajaran. Semasa proses penyusunan model, kami memasukkan contoh pengoptimum ini.
from keras.optimizers import Adam # Applying learning rate decay adam_opt = Adam(lr=0.001, decay=1e-6) model.compile(loss='binary_crossentropy', optimizer=adam_opt)
Dalam kod di atas, kami memberikan adam_opt pengoptimum Adam dengan kadar pembelajaran 0.001 dan kadar pereputan 1e-6.
Kesimpulannya , kadar pembelajaran mengawal selia cara kita menavigasi ke arah fungsi kos minimum. Dengan melaraskan kadar pembelajaran ini dengan cekap, kita dapat meningkatkan prestasi dan kecekapan model kita. Gabungan Keras dengan Python menjadikannya tugas yang mudah untuk melaraskan kadar pembelajaran yang memberikan kita lebih kawalan ke atas proses pengoptimuman model kita.