작성
·
3.5K
0
Keras를 활용하여 LSTM 학습을 하는중
입력값을 판단하기 어려운 부분이 있어 질문드립니다.
model = Sequential()
model.add(LSTM(128, batch_input_shape=(1, 4, 1), stateful=True))
model.add(Dense(12, activation='softmax'))
이처럼 구현할때 LSTM(128 부분의 128과, Dense(12 의 12가 무슨 의미인지 알 수 있을까요?
답변 1
0
안녕하세요?
Keras Multi Layer Model에 대해서는 'Neural Network 개념과 MNIST예제' 단원에서 공부하셨을 거라 생각됩니다.
먼저 Dense Layer를 추가하는 model.add(Dense(12, activation='softmax'))의 경우는 12를 쓰는 이유가 명확합니다.
activation='softmax'와 같이 Activation함수를 softmax를 사용하는 것은 Multinomial Classification을 사용하는 것입니다.
정확히 어떤 예제인지는 모르겠지만 결과값이 12가지 종류 중 하나를 찾아주는 것 같네요.
가령 MNIST 손글씨 인식의 경우는 model.add(Dense(10, activation='softmax'))으로 0부터 9까지 총 10가지 종류를 지정하게 되고 보통 이 Layer는 결과를 나타내므로 마지막에 추가됩니다.
model.add(LSTM(128,~의 경우는 128이 Layer에 포함되는 units의 갯수라는 점은 같으나 절대적인 숫자를 의미하지는 않습니다.
즉 경험치에 의해서 LSTM(Long Short-Term Memory layer)에 128개의 units(dimensionality of the output space)을 줬을때 가장 좋은 결과를 가져오므로 이렇게 쓴 것이고 이 값은 모델을 튜닝하면서 변경하여 사용할 수 있습니다.
요즘은 최적의 값을 찾아주거나 CNN을 GUI 클라우드에서 쉽게 구해주는 teachable Machine과 같은 서비스가 나와있지만
전통적으로 Keras Multi Layer Model을 만들때는 여러 번의 경험치 값을 사용하며 최적의 모델을 만들게 됩니다.
감사합니다.