인공지능/공부

센서신호, FFT, STFT data를 통해 하중 예측하기 -3 스케쥴러

이게될까 2023. 11. 30. 19:43
728x90
728x90

2023.11.30 - [인공지능/공부] - 센서신호, FFT, STFT data를 통해 하중 예측하기 -2 LSTM

 

센서신호, FFT, STFT data를 통해 하중 예측하기 -2 LSTM

2023.11.30 - [인공지능/공부] - 센서신호, FFT, STFT data를 통해 하중 예측하기 센서신호, FFT, STFT data를 통해 하중 예측하기 import tensorflow as tf import numpy as np import pandas as pd from keras.datasets.mnist import load_

yoonschallenge.tistory.com

아직 LSTM에 대해 전문적으로 아는 것은 아니라 글을 적긴 애매하고 스케쥴러에 대해 알아왔다.
아무리 adam이 learning rate를 조정해준다고 하더라도 초반에 확 하고, 후반에 최저 점을 빠르게 찾아줬으면 하는 마음이 있다. 그래서 찾아온 것이 스케줄러 이다.

initial_learning_rate = 0.1
lr_schedule = tf.keras.optimizers.schedules.ExponentialDecay(
    initial_learning_rate,
    decay_steps=300,
    decay_rate=0.96,
    staircase=True)

많은 스케줄러가 있지만 이 스케줄러는 학습률이 지수적으로 감수하여 후반에는 급격하게 감소하는 것을 볼 수 있다.
차례대로 변수에 대해 설명하자면
initial_learning_rate 는 시작하는 learning rate이고
decay_steps는 스탭(iterations)마다 지수적으로 감소시킨다 이고,
decay_rate는 감소율이다 0.96%로 되는 것이다.
staircase는 step마다 감소시킬 것인지 decay_steps마다 감소시킬 것인지 이다. 이걸 False로 두면 매 스탭마다 감소한다.
이걸 사용하니 확실하게 초반에 loss를 빠르게 줄이긴 하는데 steps를 너무 크게 줬다. 

스케줄러를 통해 학습시간을 크게 줄일 방법을 알아봤다.

728x90