1. 머신러닝, 딥러닝 개념 정리
1) 텍스트 요약
- 문서 원문의 핵심 주제를 추출해 짧은 요약 문자으로 변환하는 것
- 요약 후 정보 손실을 최소화해야 함 = 정보를 압축하는 과정
- 추출적 요약
- 원문에서 문장을 추출해서 사용
- 머신러닝 방식 중 텍스트 랭크 알고리즘을 사용함
- 문장 분류에 해당
- 예) 네이버 뉴스 요약봇
- 추상적 요약
- 원문을 기반으로 요약된 내용을 담고 있는 새로운 문장을 생성
- RNN 활용 가능
- 자연어 생성 영역
- RNN의 문제
- seq2seq
- 2개의 RNN 아키텍처를 사용함
- 입력 시퀀스에서부터 출력 시퀀스를 생성함
- 원리
- 인코더(첫 번째 RNN)에 원문을 입력
- 인코더가 입력된 내용을 하나의 고정된 벡터(컨텍스트 벡터)로 변환함
- 디코더(두 번째 RNN)가 컨텍스트 벡터를 전달받아 한 단어 씩 생성, 요약본 완성
- 이번 실습에선 LSTM을 활용할 것
- RNN과 차이점
- 다음 time step의 셀에 hidden state뿐 아니라 cell state도 함께 전달함
- 시작 토큰과 종료 토큰이 필요
- 어텐션 매커니즘 필요
출처
- 인코더의 모든 step의 hidden state의 정보가 컨텍스트 벡터에 가중합 방식으로 반영되도록 함
- 이때 가중치 값은 디코더의 현재 문장 생성 부위가 주어부인지, 술어부인지 등에 따라 컨텍스트 벡터가 다른 값이 됨.
- early stopping
es = EarlyStopping(monitor='val_loss', patience=2, verbose=1)
- 손실이 줄어들지 않고 증가하는 현상이 2회(patience=2) 발생할 경우 학습을 멈추도록 함.
- epochs를 크게 설정해도 모델 훈련의 최적점에 멈출 수 있는 방법
2. 회고
뉴스 요약봇을 만들었다. 솔직히 모든 과정을 새롭게 재구성할 수 있을 만큼 이해하진 못했다. 자연어 처리에 발을 들이려면 각오하라고 말하는 노드 같았다. 콜렉터가 되지 않으려면 스스로 생각하고 코드를 구성하는 능력을 키워야 할텐데 마음을 머리가 따라주지 않는다.
그 외엔 early stopping에 대해 알 수 있어 좋았다. 다음에 모델을 구성해서 학습시킬 때 꼭 활용해야겠다.