피드로 돌아가기
Dev.toAI/ML
원문 읽기
Character-level Language Model 구현을 통한 Counting과 Neural Network의 등가성 증명
My Notes: Makemore - Character Level Language Model
AI 요약
Context
단순한 Bigram 기반의 문자 예측 모델을 통해 언어 모델의 기초 구조를 설계함. 기존의 단순 Counting 방식은 n-gram의 차수가 증가함에 따라 메모리 사용량이 기하급수적으로 증가하는 차원의 저주 문제에 직면함.
Technical Solution
- Special Token 도입을 통한 단어의 시작과 끝을 정의하여 문맥의 경계를 명확히 설정한 데이터 전처리 구조 설계
- Character-to-Integer Mapping 및 Lookup Table 구축을 통한 텍스트 데이터의 Tensor 인덱싱 최적화
- One-Hot Encoding과 Weight Matrix 곱 연산을 활용하여 Counting 방식을 Neural Network의 Logits 형태로 변환
- Softmax 함수를 통한 Logits의 확률 분포 변환 및 Negative Log Likelihood 손실 함수 적용으로 예측 정확도 개선
- L2 Regularization 적용을 통해 과적합을 방지하고 확률 분포의 Smoothing을 유도한 가중치 최적화
- Gradient Descent 기반의 반복적 학습을 통해 Counting 방식과 동일한 결과물을 도출하는 scalable한 구조 구현
실천 포인트
1. 범주형 데이터를 NN에 입력할 때 One-Hot Encoding의 메모리 효율성을 검토하십시오.
2. 모델의 과적합 방지를 위해 가중치 제곱합을 이용한 Regularization 항을 Loss 함수에 추가하십시오.
3. 확률 분포 생성 시 Logits 단계에서 Exponential 연산을 통한 Softmax 변환 과정을 검증하십시오.