재무 보고서 등에서 특정 항목을 정확하게 추출하려면 다단계 프로세스를 거쳐야 한다.
인코더-디코더 네트워크를 사용한다. 입력 텍스트가 주어지면 요약에 나타날 가능성이 가장 큰 단어와 문구를 예측해 요약을 생성하게 된다. 트랜스포머가 요약 작업에 적합하다. 전체 문서에서 단어와 구 간의 관계를 포착하도록 하기 때문이다. 새로운 문장과 구를 만들 수 있다.
NLU의 주요 태스크는 의도 분류(IC), 정보 추출(IE), 엔티티 해결(ER)이다.
의도 분류는 규칙 기반 시스템부터 다항 로지스틱 회귀 및 신경망을 포함하는 지도 모델을 사용하는 게 좋다.
정보 추출은 개체명 인식 기술을 활용한다.
엔터티 해결은 각 개체명을 시스템의 고유 식별자에 매핑하는 지식 그래프나 조회 테이블을 사용하게 된다.
휴먼 레이블과 로깅 레이블이 있는데 레이블 오류가 잘 생긴다. 품질을 담보하기 위해서는 다양한 기법을 사용해야 한다.
자연어 처리 작업의 피처는 n-gram, 어간(stem), 표제어(lemma), 소문자 표현, 단어 임베딩, 품사 태그(POS tag), 접두사, 접미사 등 다양한 형태의 입력 텍스트로 구성될 수 있다.
컴퓨터 비전의 입력 피처는 RGB, HSV와 같은 다양한 색상 공간으로 표현되는 원시 픽셀 값으로 구성될 수 있다. 이미지에 변환을 적용하는 것도 일반적이다. 균등화, 필터링, 블러링 등의 기법으로 동일한 이미지를 다르게 표현할 수 있다.
맥락적 피처는 문제가 발생하는 더 넓은 맥락에 관한 정보를 포착한다. 개체명 인식과 같은 작업에서 맥락적 피처는 주변 텍스트나 문서 등이다.
TF 기본 ETL을 쓰지 않고 TFRecord 로 디스크에 저장하고 직접 읽어들이는 게 더 빠른지 본다. TFTransform은 정규화에서 대규모인 경우 느려서 케라스 정규화 레이어를 적용하는 게 더 빠르다고 한다.
큰 배치를 사용해서 매개변수 업데이트 횟수를 줄여서 업데이트에 소요되는 시간을 줄여 학습 속도를 높이는 기본적인 방법이 필요하다. 결국 정확도를 높이려면 epoch 이 늘어나게 될 텐데 파라미터를 추적해가며 실험을 해본다.
학습률 스케쥴링을 파인튜닝해서 수렴 속도와 최적화 프로세스 안정성 간의 균형을 맞춘다.
그래디언트 계산 비용이 낮은 ReLU 등의 활성화 함수를 사용한다.
Hogwild를 사용해서 단일 인스턴스에서 확률적 경사하강법의 배치 수준 병렬화가 가능하도록 하고 행렬곱 및 기타 선형 대수 연산을 병렬화 한다.
GPU 가속 기능을 활용하여 병렬 처리에 특화되어있는 장점을 극대화한다. 메모리 대역폭이 크고 행렬 계산을 위해 특별히 설계된 부분이 있어 학습 시간이 크게 단축되기 때문이다.
각 레이어에 대한 입력을 정규화하여 활성화 출력이 너무 커지거나 작아지지 않도록 한다. 학습 프로세스의 안정성이 향상되고 수렴 속도가 빨라지도록 하는 효과가 생긴다.
다운 샘플링을 한다. 불균형 클래스가 있는 데이터셋에서 음성 클래스를 다운샘플링하면 학습 속도가 빨라지고 모델 성능이 향상된다.