본문 바로가기

AI.ML

[NLP 스터디] 1주차 스터디 - 퀴즈

<AI/ML 제 2회 골든벨 문제>

 

 

1. RNN의 은닉층 h_t를 구하는 수식을 쓰시오 (hint : 탄젠트 함수 사용)

2. 과적합을 막는 방법은?

답: 모델의 복잡도 낮추기, 데이터 양 늘리기, 드롭아웃

 

3. 교사 강요가 무엇인가?

답: RNN을 학습할 때 t-1시점을 넣고 예측한 단어를 다음 학습에 사용하는 것이 아닌 실제 라벨을 사용해 학습 시킴

 

4. LSTM에서 C_t는 무엇인가? 이름을 쓰시오.

  • g_t, i_t는 입력게이트
  • f_t는 삭제 게이트

답: 셀 게이트

 

5. 다대일 구조의 RNN은 출력층의 활성화 함수로 어떤 함수를 사용하고, 그리고 이 함수가 어디에서 주로 사용되는지 서술하세요

답: 소프트맥스 함수, 다중분류에 사용됨

 

6. 다음은 전결합층을 추가하기 위한 코드이다.

1 ) 출력 뉴런 수

2 ) 입력 뉴런 수

3 ) activation

 

7. ( a )은 기존 n-gram 의 ( b ) 를 해결하기 위해 만들어 졌습니다. ( b ) 는 ( c ) 을 알 수 있다면 해결할 수 있는 문제입니다. 만약 언어 모델 또한 ( c )을 학습할 수 있도록 설계한다면, 훈련 코퍼스에 없는 단어 시퀀스에 대한 예측이라도 유사한 단어가 사용된 단어 시퀀스를 참고하여 보다 정확한 예측을 할 수 있다는 아이디어를 반영한 모델이 ( a )입니다.

 

답: a : NNLM b : 희소 문제 c : 단어의 의미적 유사성

 

8. 실제값과 예측값의 차이를 수치화해주는 함수는?

답: 손실함수

 

9. 2개의 print 문의 결과를 예측하고 이유를 간단히 설명하세요 (count 와 binary 차이를 위주로)

import numpy as np
from keras.preprocessing.text import Tokenizer
texts = ['인공지능 공부는 재밌어요', '인공지능 공부는 너무 너무 힘들어요']
tokenizer = Tokenizer()tokenizer.fit_on_texts(texts)
print(tokenizer.word_index)
# output
# {'인공지능': 1, '공부는': 2, '너무': 3, '재밌어요': 4, '힘들어요' : 5}
print(tokenizer.texts_to_matrix(texts, mode = 'count'))
print(tokenizer.texts_to_matrix(texts, mode = 'binary'))

답: 

[[0. 1. 1. 0. 1. 0],

[0. 1. 1. 2. 0. 1]]

[[0. 1. 1. 0. 1. 0],

[0. 1. 1. 1. 0. 1]]

count : 해당 단어가 몇 번 등장하였는지 binary : 단어가 등장하였는지 여부

 

10. 기울기 소실 & 기울기 폭주를 막을 수 있는 방법을 2가지 쓰시오

답 : 배치 정규화, 층 정규화

 

11. RNN 모델을 입출력할 떄 단어 레벨에서 문자 레벨로 변경할 때 RNN을 구현할 수 있다. 문자 단위로 구현할 수 있는 RNN의 형태는? (000구조)

답: 다대다 , 다대일

 

12. 모든 Hidden state를 return 하는 코드는? 

답: return_sequence = True