인프런 커뮤니티 질문&답변

gara44님의 프로필 이미지
gara44

작성한 질문수

[텐서플로2] 파이썬 딥러닝 완전정복 - GAN, BERT, RNN, CNN 최신기법

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

작성

·

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

감사합니다.

 

gara44님의 프로필 이미지
gara44

작성한 질문수

질문하기