독서 리마인더/핸즈온 머신러닝

15장 연습문제

hwijin97 2021. 12. 13. 15:00

1. 시퀀스 투 시퀀스 RNN, 시퀀스 투 벡터 RNN, 벡터 투 시퀀스 RNN을 사용한 의 어플리케이션 종류

시퀀스 투 시퀀스 : 시계열 관련 문제 , 기계 번역 ( 인코더-디코더 구조 사용 ), 비디오 캡션 생성, 시피치 투 텍스트, 음악 생성, 노래의 화음 식별

시퀀스 투 벡터 : 음악 샘플을 장르로 구분, 책 후기에 대한 감정 분석, 사용자의 영화기록을 바탕으로 새로운 영화 추천 ( 협업 필터링 애플리 케이션 )

벡터 투 시퀀스 : 이미지 캡션 생성, 아티스트 기반 플레이리스트 생성, 파라미터 기반으로 멜로디 생성, 사진 속에서 보행자 위치 찾기

 

2. RNN 층의 입력은 얼마나 많은 차원을 가지나요? 각 차원이 표현하는 것은 무엇인가요? 출력은 무엇인가요?

RNN층의 입력차원은 3차원으로 배치 차원, 시간 차원 ( 타임 스텝 순서 ), 타임 스텝마다의 입력

[5, 10, 2] 이면 각 타임스텝마다 입력 2개를 가지고, 타임스텝 10개를 담은 배치 5개를 가지는 입력

 

3. 심층 시퀀스-투-시퀀스 RNN을 만든다면 어떤 RNN 층을 return_sequences=True 로 설정해야 하나요? 시퀀스-투-벡터 RNN 은 어떤가요?

시퀀스 투 시퀀스 네트워크를 만드려면 모든 RNN층에 return_sequences=True 로 지정해야하고, 시퀀스 투 벡터를 만들려면 마지막 층에 return_sequences=False 로 지정해야 한다. ( 기본값 )

 

4.  일자변 단변량 시계열 데이터를 가지고 다음 7일을 예측하려고 한다. 어떤 RNN 구조를 만들어야 하는가?

RNN층을 쌓아올려서 마지막 RNN 층을 return_sequences를 False로 하고  출력층에 7개의 뉴런을 사용한다. 입력 데이터의 타깃을 7개의 다음 데이터를 담은 벡터로 변형한다. 

 

5. RNN을 훈련할 때 주요 문제는 무엇인가? 이를 어떻게 처리할 수 있나?

RNN의 주요한 문제는 불안정한 그레디언트와 제한적인 단기 기억이다. 불안정한 그레디언트를 해결하기위해 작은 학습률, 하이퍼볼릭 탄젠트 등 수렴하는 함수사용, 그레디언트 클리핑, 층 정규화, 타임 스텝마다 드롭아웃을 사용할 수 있다. 제한적인 단기기억을 해결하기 위해서는 LSTM, GRU, WaveNet 구조를 사용할 수 있다.

 

6. LSTM 셀의 구조를 그릴 수 있나요?

단기 상태벡터는 3개의 게이트 입력과, RNN의 출력을 생성하는 층으로 입력된다. 입력게이트는 RNN층의 출력중 장기 상태 벡터로 넘겨질 상태를 구분하고, 삭제 게이트는 장기 상태벡터에서 어떤게 제거될지 구분하고, 출력 게이트는 장기 상태 중 어느 부분을 출력할지 결정한다.

 

7. 왜 RNN 안에 1D 합성곱 층을 사용해야 하나요?

RNN층은 기본적으로 순차적이여서 t 타임스텝의 출력을 계산하려면 1~t-1 까지의 출력을 순차적으로 계산해 이전 상태를 유지한다. 하지만 1D 합성곱 층을 사용하면 작은 윈도우를 기반으로 계산해서 이전의 모든 타임스텝간 상태를 유지하지 않아도 되기때문에, 불안정한 그레디언트의 영향도 덜받고, RNN에 여러 1D 합성곱 층을 사용해서 효율적으로 전처리도 가능하다. 시간방향 해상도를 줄여 장기 패턴을 감지하는데 도움을 줄 수 있다. ( 긴 오디오 같은 데이터 )

 

8. 영상을 분류하기 위해 어떤 신경망 구조를 사용할 수 있나요?

화면 내용으로 영상을 분류하려면, 각 프레임을 입력으로 받고, cNN에 통과시킨후, 시퀀스 투 벡터 RNN에 주입한다. 마지막 소프트 맥스층을 통과시켜 클래스별 확률을 예측한다. 오디오를 분류하려면, 1D 합성곱층을 쌓아 초당 수천개의 오디오  프레임을 초당 하나로 시간 방향 해상도를 줄일 수 있다. 그리고 이 출력을 시퀀스 투 벡터 RNN 에 연결한다.

 

https://github.com/kimhwijin/HandsOnMachineLearing/blob/main/HOML_Exercise_15.ipynb

9. 텐서플로 데이터셋에서 제공하는 SketchRNN 데이터셋으로 분류 모델을 훈련해보세요

10. 비흐 합창곡 데이터셋 382개의 합창곡을 이용해서 각 타임 스텝을 예측하는 순환 모델, 합성곱 모델 또는 두가지를 합친 모델을 훈련하고, 음악을 생성하세요. 

 

'독서 리마인더 > 핸즈온 머신러닝' 카테고리의 다른 글

16장 연습문제  (0) 2022.01.14
16장  (0) 2022.01.04
15장  (0) 2021.12.11
14장 연습문제  (0) 2021.12.09
14장  (0) 2021.12.05