작성
·
73
0
교사학습용 데이터와 target 데이터 모두 post 패딩을 하였는데
교사학습용 데이터는 <sos> 가 중요하고 target 데이터는
<eos> 가 중요하기 때문에 교사학습용은 post, target 데이터는 pre 를 해야 하는거 아닌지요?
만약 post 패딩을 하게 되면 길이가 초과하는 교사학습용 데이터는 <sos>가 잘려지지 않을까 생각합니다.
강사님 부탁드리겠습니다.
답변 1
0
교사학습(Teacher Forcing)에서는 이전 시간 단계의 출력이 현재 시간 단계의 입력으로 사용됩니다. 여기서 중요한 것은 시퀀스의 시작을 알리는 <sos>
토큰입니다. 따라서 post padding을 사용하면 <sos>
토큰이 시퀀스의 앞에 오게 되어, 시퀀스의 시작을 명확하게 정의할 수 있습니다. 만약 데이터가 너무 길어져 잘린다면, 일반적으로 잘리는 부분은 시퀀스의 끝 부분입니다. 이 경우, 중요한 <sos>
토큰이 잘릴 가능성은 낮습니다.
target 데이터의 경우, 모델이 예측해야 하는 시퀀스의 마지막 부분에 <eos>
토큰이 존재합니다. post padding을 사용하면 이 <eos>
이후에 추가된 패딩 토큰은 모델이 예측할 때 무시됩니다.
예를 들어 드리면,
교사학습용 입력 데이터: <sos> I am learning NLP
타겟 데이터: I am learning NLP <eos>
Post-패딩 (교사학습용 입력 데이터):
예를 들어, 최대 시퀀스 길이가 7이라고 가정하면,
["<sos>", "I", "am", "learning", "NLP", "<pad>", "<pad>"]
Post-패딩 (타겟 데이터):
동일한 최대 시퀀스 길이 7을 기준으로,
["I", "am", "learning", "NLP", "<eos>", "<pad>", "<pad>"]
따라서, 걱정하시듯이 동일한 길이의 sequence를 구성할 때 target의 <eos>가 잘릴 경우는 없습니다.
좋은 질문 감사합니다.