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

16장 연습문제

hwijin97 2022. 1. 14. 21:31

1. 상태가 없는 RNN 대비 상태가 있는 RNN의 장단점은 무엇인가요?

상태가 없는 RNN은 훈련한 윈도우 크기보다 같거나 작은 길이의 패턴만 감지할 수 있다. 반면 상태가 있는 RNN은 장기 패턴을 파악할 수 있지만, 구현하는것이 훨씬  어렵고, 연속적인 데이터셋을 준비해야해서 독립 동일 분포가 아니기 때문에 잘맞지 않은 경우도 있다.

 

2. 왜 자동 번역에 시퀀스-투-시퀀스 RNN 대신 인코더-디코더 RNN을 사용하나요?

문장을 번역할때 한단어씩 번역하면, 문장의 문맥이나 문장에서의 의미를 전혀파악하지 못하기 때문에 결과가 매우 좋지 않다. 그래서 시퀀스-투-시퀀스보다, 문장 전체를 읽는 인코더, 번역을 하는 디코더의 형식을 취한다.

 

3. 가변 길이 입력 시퀀스를 어떻게 다룰 수 있나요? 가변 길이 출력 시퀀스는 어떤건가요?

배치에 있는 모든 시퀀스의 길이를 패딩을 통해서 동일하게하고, RNN이 패딩 토큰을 무시하도록 마스킹해서 가변길이 입력 시퀀스를 다룬다. 입력 길이가 너무 다양해서 성능이 떨어진다면, 비슷한 길이의 입력들을 묶어서 배치를 만들어 처리할 수 있다. 입력데이터에 문장의 시작과 끝에 SOS, EOS 토큰을 추가해서 언제 시작하고 끝나는지 알도록하고, 이 토큰들을 무시하도록 손실함수를 설정한다. 또한 모델을 훈련할때 마지막 토큰을 EOS 로 출력하도록 훈련한다.

4. 빔 검색이 무엇인가요? 왜 사용해야 하나요? 이를 구현하기 위해 어떤 도구를 사용할 수 있나요?

빔검색은 인코더-디코더구조에서 사용할 수 있는 성능향상법이다. 신경망 기계번역에서 가장 가능성있는 k개의 출력 시퀀스를 유지한다.

텐서플로 에드온으로 구현 가능하다. 직접 구현해도되고,,

5. 어텐션 메커니즘이 무엇인가요? 어떤 장점이 있나요?

어텐션 메커니즘은 인코더-디코더의 디코더가 입력시퀀스에 접근해서 어떤 단어에 집중해서 번역해야하는지 알아봐서 정확한 의미로 번역하는 기법이다. 이렇게 더 긴 입력 시퀀스를 처리할 수 있다. 현재 디코더의 상태와 인코더의 전체 출력을 정렬 모델이 처리해서 입력 타임 스텝에 대한 정렬 점수alignment sscore를 출력한다. 입력의 어떤 단어가 디코더의 타임스텝과 가장 관련있는지 나타낸다.

인코더 출력의 가중치 합 ( 정렬 점수 ) 이 디코더에 주입되서 다음 디코더 상태와 타임 스텝의 출력을 만든다.

이 어텐션 메커니즘의 장점은 긴 입력 시퀀스를 잘 처리할 수 있다는 점과, 정렬 점수덕분에 모델 디버깅과 해석이 용이하다. 디코더가 어떤지점에 주목하고 있는지 알아낼 수 있기 때문이다.

6. 트랜스포머 구조에서 가장 중요한 층이 무엇인가요?

당연히 멀티-헤드 어텐션 층이다. 트랜스포머는 최신 언어 모델의 핵심구조이다. 트랜스포머 구조에서 멀티-헤드 어텐션은 모델이 어떤 단어가 서로 관련되어 있는지 구별하도록 돕는 것이다. 문맥 정보를 통해 단어표현이 향상된다.

7. 샘플링 소프트맥스를 사용해야 할 때는 언제인가요?

샘플링 소프트맥스는 타깃 샘플의 로짓과, 무작위로 샘플링한 샘플의 로짓을 고려해서 수천개의 클래스가 있는 모델을 훈련할 때 훈련 속도를 상당히 줄여준다. 타깃 클래스에 대해 모델이 예측한 로짓을 기반으로 크로스엔트로피 손실의 근사치를 구한다. 훈련이 종료되면 원래 소프트 맥스를 사용한다.

 

 

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

8. LSTM에 관한 논문에서 임베딩된 레버 문법embedded Reber grammer ( 문자열을 만드는 인공 문법 ) 을 사용했는데, 특정 임베딩된 레버 문법을 하나 선택하고, 문자열이 이 문법을 따르는지 아닌지 구별하는 RNN을 훈련하시오.

9.  날짜 문자열 포맷을 변환하는 인코더-디코더 모델을 훈련해보세요. ( April 22, 2019 -> 2019-04-22 )

10. 텐서플로의  어텐션을 사용한 신경망 기계 번역 튜토리얼 https://homl.info/nmttuto 를 살펴보세요

11. 최신 언어 모델 중 하나로 셰익스피어 텍스트를 생성해 보시오.

 

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

17장 연습문제  (0) 2022.01.24
17장  (0) 2022.01.20
16장  (0) 2022.01.04
15장 연습문제  (0) 2021.12.13
15장  (0) 2021.12.11