Tentu saja, mari kita mulai dengan artikelnya.
Model pembelajaran mendalam telah menjadi aspek penting teknologi di era sekarang, dan berbagai algoritma optimasi seperti Adam Optimizer memainkan peran penting dalam eksekusinya. Keras, sebuah pustaka Python sumber terbuka gratis yang ampuh dan mudah digunakan untuk mengembangkan dan mengevaluasi model pembelajaran mendalam, membungkus pustaka komputasi numerik efisien Theano dan TensorFlow. Pentingnya menyesuaikan laju pembelajaran dalam algoritma optimasi tersebut sangatlah penting, karena dapat secara langsung memengaruhi proses pembelajaran model. Dalam artikel ini, kita akan membahas cara menurunkan laju pembelajaran di Adam Optimizer di Keras secara langkah demi langkah. Di sini kita juga akan membahas pustaka dan fungsi yang terlibat dalam proses ini.
Perlunya Penyesuaian Kecepatan Pembelajaran
Tingkat pembelajaran (learning rate) adalah hyperparameter penting dalam algoritma optimasi, termasuk optimizer Adam . Parameter ini menentukan ukuran langkah pada setiap iterasi saat bergerak menuju minimum fungsi kerugian (loss function). Secara spesifik, tingkat pembelajaran yang lebih rendah membutuhkan lebih banyak epoch pelatihan mengingat langkah-langkah yang lebih kecil dalam pembaruan bobot, sedangkan tingkat pembelajaran yang lebih tinggi mungkin mencapai titik konvergensi lebih cepat, tetapi berisiko melampaui minimum fungsi kerugian.
Oleh karena itu, merupakan pendekatan umum untuk menyesuaikan dan menurunkan kecepatan pemelajaran dari waktu ke waktu, yang sering disebut sebagai peluruhan kecepatan pemelajaran. Peluruhan kecepatan pembelajaran memastikan bahwa model pembelajaran mencapai fungsi kerugian terbawah, menghindari langkah-langkah besar di fase pelatihan selanjutnya yang mungkin menyebabkan fluktuasi signifikan.
Implementasi Peluruhan Kecepatan Pembelajaran di Keras
Di Keras, penyesuaian ini dapat dilakukan dengan bantuan fungsi callback 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, sesuai dengan zaman, dapat mengubah kecepatan pembelajaran. Sedangkan ReduceLROnPlateau memantau kuantitas dan jika tidak ada peningkatan yang terlihat selama beberapa periode 'kesabaran', kecepatan pembelajaran akan berkurang.
Bekerja dengan Adam Optimizer
Saat menangani pengoptimal Adam, kami menginisialisasi instance-nya dengan menentukan kecepatan pemelajaran. Selama proses kompilasi model, kami memasukkan instance pengoptimal 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 kode di atas, kami menugaskan adam_opt pengoptimal Adam dengan kecepatan pembelajaran 0.001 dan tingkat peluruhan 1e-6.
Kesimpulannya , learning rate mengatur bagaimana kita menuju fungsi biaya minimum. Dengan menyesuaikan learning rate secara efisien, kita dapat meningkatkan kinerja dan efisiensi model kita. Kombinasi Keras dengan Python membuat penyesuaian learning rate menjadi mudah, memberi kita lebih banyak kendali atas proses optimasi model kita.