Transformer
Encoder(Self-Attention)에서 RNN과 다르게 여러개의 단어를 한번에 처리 가능
Self-Attention의 경우 하나의 벡터를 임베딩할 때 해당 벡터만을 사용하는 것이 아닌 모든 input값을 사용한다.
Self-Attention : Queries, Keys, Values vectors are computed per each word(=embedding)
Q,K,V를 통해 Score vector를 구한다.
입력 값이 달라지면 Imbedding vector가 달라지기에 보다 flexible한 모델
computation cost :
Multi-headed attention(MHA) : 하나의 input에 대해 여러개의 Q,K,V를 만듦
Transforemr transfers K,V to Decorders
Output sequence is generated in an autoregressive manner
학습 단계에서는 decoder에서 masking을 사용한다.
Figure라는 큰 틀에 ax라는 서브플롯을 추가해서 만든다(최소 1개)
# 서브플롯 추가
fig = plt.figure()
ax = fig.add_subplot()
plt.show()
2개 이상 그리고 싶다면 위치를 지정
# 2개 이상 그리기
fig = plt.figure()
ax = fig.add_subplot(1,2,1)
ax = fig.add_subplot(1,2,2)
한 서브플롯에서 여러 개 그리기
# 하나에 여러개 그리기
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
# 동시에 그리면 색상이 자동적으로 구분된다.
ax.plot([1,1,1])
ax.plot([1,2,3])
ax.plort({3,3,3])
plt.show()
범례를 사용하기
# 범례 사용
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot([1, 1, 1], label='1')
ax.plot([2, 2, 2], label='2')
ax.plot([3, 3, 3], label='3')
ax.set_title('Basic Plot') # 제목 추가
ax.legend()
print(ax.get_title()) # 제목을 불러올 수 있음
plt.show()
ticks : 축에 적히는 수 위치를 지정한다.
# ticks
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot([1, 1, 1], label='1')
ax.plot([2, 2, 2], label='2')
ax.plot([3, 3, 3], label='3')
ax.set_title('Basic Plot')
ax.set_xticks([0, 1, 2])
ax.set_xticklabels(['zero','one','two']) # 축에 적히는 텍스트 수정
ax.legend()
plt.show()
출처 : Naver BoostCamp