• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

LSTM관련하여 질문드릴 수 있을까요....?

20.03.25 01:15 작성 조회수 3.29k

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을 만들때는 여러 번의 경험치 값을 사용하며 최적의 모델을 만들게 됩니다.

감사합니다.