RNN에서 Hiddenstate가 무엇인지 서술하시오. : 출력되지 않고 다음 셀에 넘어가는 값
hidden state의 역할과 명칭의 이유에 대해 설명하시오
hidden state를 통해서 전에 어떤 문자가 나왔는지에 대해 전달받아 그 전 입력값의 처리 결과를 반영하여 모델이 순서를 이해한다. . 출력되지 않고 다음 셀로 전달하기 때문에 전체적으로 봤을때는 숨겨져 있다.
강의에서 소개한 one-hot encoding의 강점을 설명하시오
categorical data를 처리하는데 용이하고 인덱스를 부여하는 방법과 달리 순서를 부여하지 않아 모든 character가 동일한 가치를 갖게 한다.
단답형 (2점?)
RNN 학습 데이터 준비 시 각 값에 대해 인덱스로 표현하는 대신 one-hot encoding을 사용하는 이유에 대해 작성하시오.
⇒ 인덱스로 값을 표현하게 되면 수의 크기에 따라 의미를 부여한 셈이 되어버리기 때문에 학습에 방해가 됨. 대신 원-핫 인코딩을 사용하게 되면 모든 값에 동일한 가중치를 부여하는 것과 같아져 보다 정확한 학습을 진행할 수 있다.
강의에서 소개한 RNN charseq 학습 코드의 일부이다.
학습 과정에 있어서 하이라이트된 코드의 역할을 각각 설명하시오
sample = " if you want you"
char_set = list(set(sample))
char_dic = {c: i for i, c in enumerate(char_set)} ***(1)
# hyper parameters
dic_size = len(char_dic)
hidden_size = len(char_dic)
learning_rate = 0.1
# data setting
sample_idx = [char_dic[c] for c in sample]
x_data = [sample_idx[:-1]] ***(2)
x_one_hot = [np.eye(dic_size)[x] for x in x_data] ***(3)
y_data = [sample_idx[1:]] ***(4)
X = torch.FloatTensor(x_one_hot) ***(5)
Y = torch.LongTensor(y_data)
순환신경망 모델인 RNN, LSTM, GRU를 복잡성의 정도를 비교하시오
LSTM > GRU > RNN
NN은 시퀀스 데이터를 처리할 방법이 없다. (X)
⇒ 포지션 인덱스를 추가해주면 순서 정보를 학습시킬 수 있다.
RNN은 모든 셀이 같은 파라미터를 공유한다. (O)
RNN은 모든 셀이 파라미터를 공유하기 때문에 입력된 단어가 길어져도 셀A에 들어가는 파라미터만 알고 있으면 언제든지 다음 단어를 예측할 수 있다. (O,X) → O