‘블록과 함께 하는 파이썬 딥러닝 케라스’ 세미나 6

이번 세미나에서는 ‘3부 6장과 7장’에 해당하는 순환 신경망을 다룹니다.

 

6장과 7장을 읽고 순환 신경망을 구현합니다.

이 책을 통해서 순환 신경망을 이해하기는 어려울 것 같습니다. 케라스 책이기는 하지만 컬볼루션 신경망까지는 그래도 어느 정도 설명하려고 노력하는 것 같았는데  순환 신경망은 포기한 듯한 느낌입니다. 순환 신경망은 별도의 세미나를 통해서 다루어야 할 것 같습니다.

p146. 케라스에서 제공하는 순환 신경망 레이어는 SimpleRNN, GRU, LSTM이 있다.

p159~170. LSTM을 제대로 활용하기 위해서는 상태유지 모드, 배치사이즈, 타입스텝, 속성에 대한 개념을 이해해야 한다.

타임스텝이란 하나의 샘플에 포함된 시퀀스 개수이다. 윈도우 크기와 동일한 값으로 설정한다.

LSTM의 input_shape은 (타임스텝, 속성 수)로 작성한다. 입력할 데이터셋은 (샘플 수, 타임스텝 수, 속성 수)로 맞추어야 한다.

상태유지 모드(stateful=True)에서는 현재 샘플의 학습 상태가 다음 샘플의 초기 상태로 전달된다. 긴 시퀀스 데이터를 처리할 때, LSTM 모델은 상태유지 모드에서 그 진가를 발휘한다. 긴 시퀀스 데이터를 샘플 단위로 잘라서 학습하더라도 LSTM 내부적으로 기억할 것은 기억하고, 버릴 것은 버려서 기억해야 할 중요한 정보만 이어갈 수 있도록 상태가 유지되기 때문이다. 상태유지모드에서는 입력형태를 batch_input_shape = (배치사이즈, 타임스텝, 속성)으로 설정해야 한다.

상태유지 모드에서는 모델 학습 시, 상태 초기화에 대한 고민이 필요하다. 현재 샘플과 다음 샘플 간의 순차적인 관계가 없을 경우에는 상태가 유지되지 않고 초기화(model.reset_state 함수 사용) 되어야 한다.

기온을 예측하기 위해서 기온 뿐만 아니라 습도, 기압, 풍속 등 다양한 속성이 있을 수 있다. 이러한 경우 입력 속성이 다수가 된다.

p155 그림의 첫 번째 레이어의 input이 왜 8인지? 4가 되어야 할 것 같은데.

p164의 마지막 문장에서 ‘배치 사이즈 개념은 조금 어려우므로 다음 장에서 다룬다’고 했는데.

p165 첫 문단 두 번째 줄 ‘전달되는 식인데,’ 이 부분 잘 못 들어간 듯.

About the Author
(주)뉴테크프라임 대표 김현남입니다. 저에 대해 좀 더 알기를 원하시는 분은 아래 링크를 참조하세요. http://www.umlcert.com/kimhn/

Leave a Reply

*