Neural Turing Machine 이론부터 구현까지
목차
- 배경 및 소개
- 이론적 기반
- 아키텍처 상세 설명
- 메모리 접근 메커니즘
- 학습 방법
- 실험 및 결과 분석
- 한계점 및 향후 연구 방향
1. 배경 및 소개
1.1 기존 컴퓨터 프로그램의 세 가지 핵심 메커니즘
- 기본 연산 (예: 산술 연산)
- 논리적 흐름 제어 (분기)
- 외부 메모리 (읽기/쓰기 가능)
1.2 기존 머신러닝의 한계
- 논리적 흐름 제어와 외부 메모리 활용의 부재
- 복잡한 알고리즘적 작업 수행의 어려움
- 가변 길이 입력 처리의 제한
1.3 NTM의 혁신점
- 신경망과 외부 메모리의 결합
- end-to-end 미분 가능한 구조
- 튜링 완전성(Turing-completeness) 달성
- 생물학적 작업 기억(working memory) 모방
2. 이론적 기반
2.1 인지과학적 배경
- 작업 기억(Working Memory) 시스템 모방
- 중앙 실행 장치(Central Executive)의 개념 도입
- 주의 집중 메커니즘 구현
2.2 컴퓨터 과학적 기반
- 폰 노이만 아키텍처 참조
- 튜링 머신의 개념 확장
- 메모리 주소 지정 방식의 혁신
2.3 신경과학적 근거
- 전전두엽 피질과 기저핵의 작동 방식 참조
- 신경세포의 지속적 발화 현상 모방
- 문맥 의존적 작업 수행 능력 구현
3. 아키텍처 상세 설명
3.1 컨트롤러 네트워크
3.1.1 피드포워드 컨트롤러
- 장점:
- 동작 해석의 용이성
- 간단한 구조
- 한계:
- 동시 읽기/쓰기 헤드 수 제한
- 시간적 의존성 처리의 한계
3.1.2 LSTM 컨트롤러
- 장점:
- 복잡한 시간적 의존성 처리 가능
- 내부 상태 유지 능력
- 특징:
- 이전 읽기 벡터 저장 가능
- 더 유연한 메모리 조작
3.2 메모리 시스템
3.2.1 메모리 구조
- N × M 크기의 메모리 행렬
- N: 메모리 위치의 수
- M: 각 위치의 벡터 크기
3.2.2 헤드 시스템
- 읽기 헤드
- 쓰기 헤드
- 각 헤드의 독립적 동작
4. 메모리 접근 메커니즘
4.1 읽기 작업
r_t = Σ w_t(i)M_t(i)
- w_t: 가중치 벡터
- M_t: 메모리 행렬
- r_t: 읽기 결과 벡터
4.2 쓰기 작업
4.2.1 지우기 단계
M̃_t(i) ← M_t-1(i)[1 - w_t(i)e_t]
- e_t: 지우기 벡터
- w_t: 가중치 벡터
4.2.2 추가 단계
w_c_t(i) = softmax(βtK[k_t, M_t(i)])
- a_t: 추가 벡터
4.3 주소 지정 메커니즘
4.3.1 내용 기반 주소 지정
w_c_t(i) = softmax(βtK[k_t, M_t(i)])
- k_t: 키 벡터
- βt: 키 강도
- K: 코사인 유사도 함수
4.3.2 위치 기반 주소 지정
- 보간(Interpolation)
w_g_t ← g_t * w_c_t + (1-g_t) * w_t-1
2. 회전(Rotation)
w̃_t(i) ← Σ w_g_t(j)s_t(i-j)
3. 선명화(Sharpening)
w_t(i) ← w̃_t(i)^γt / Σ w̃_t(j)^γt
5. 학습 방법
5.1 손실 함수
- 이진 크로스 엔트로피 사용
- 시퀀스별 비트 단위 평가
5.2 최적화 알고리즘
- RMSProp 사용
- 모멘텀: 0.9
- 그래디언트 클리핑: [-10, 10]
6. 실험 및 결과 분석
6.1 복사 태스크
- 목적: 순차적 메모리 저장 및 회상 능력 평가
- 설정:
- 입력: 8비트 랜덤 벡터 시퀀스
- 길이: 1-20 랜덤
- 결과:
- LSTM 대비 빠른 학습
- 긴 시퀀스에 대한 우수한 일반화
6.2 반복 복사 태스크
- 목적: 중첩 함수 학습 능력 평가
- 구성:
- 입력 시퀀스 + 반복 횟수
- 종료 마커 예측 필요
- 성능:
- 시퀀스 길이 일반화 우수
- 반복 횟수 일반화 부분적 성공
6.3 연관 회상 태스크
- 설정:
- 3개의 6비트 벡터로 구성된 항목
- 2-6개 항목 시퀀스
- 결과:
- 30,000 에피소드로 완벽 학습
- LSTM 대비 월등한 성능
6.4 동적 N-그램 태스크
- 목적: 새로운 분포 적응력 평가
- 방법:
- Beta(1/2, 1/2) 분포에서 확률 생성
- 200비트 시퀀스 예측
- 성능:
- LSTM 대비 우수
- 최적 추정기에는 미달
6.5 우선순위 정렬 태스크
- 구성:
- 20개 이진 벡터 + 우선순위
- 상위 16개 벡터 정렬
- 결과:
- 선형적 메모리 주소 지정 방식 학습
- 8개 병렬 헤드 필요
7. 한계점 및 향후 연구 방향
7.1 현재 한계
- 메모리 크기 제한
- 복잡한 알고리즘 학습의 어려움
- 계산 비용 증가
7.2 개선 방향
- 메모리 구조 최적화
- 주소 지정 메커니즘 개선
- 학습 효율성 향상
7.3 잠재적 응용 분야
- 프로그램 합성
- 적응형 알고리즘 학습
- 메타 학습
Deep Speech 2: 영어와 중국어를 위한 End-to-End 음성 인식
목차
- 소개
- 아키텍처
- 시스템 최적화
- 학습 데이터
- 실험 결과
- 실제 배포
- 결론
1. 소개
1.1 연구의 배경
Deep Speech 2는 Baidu에서 개발한 end-to-end 딥러닝 기반 음성 인식 시스템입니다. 이 시스템의 가장 큰 특징은:
- 영어와 중국어 두 언어 모두에서 사용 가능
- 수작업으로 설계된 파이프라인을 신경망으로 대체
- 노이즈가 있는 환경, 액센트, 다양한 언어에 대한 강건성
- HPC(High Performance Computing) 기술 적용으로 학습 시간 대폭 단축
1.2 기존 시스템과의 차별점
- 전통적인 ASR 시스템: 수십 년간 축적된 도메인 지식 필요
- Deep Speech 2: 단일 모델로 전체 파이프라인 대체
- 부트스트래핑/정렬/클러스터링/HMM 기계 제거
- 순수 딥러닝 기반의 간단하고 강력한 접근법
2. 아키텍처
2.1 기본 구조
네트워크 구조는 다음과 같은 계층으로 구성됩니다:
- 하나 이상의 컨볼루션 입력 계층
- 다수의 순환(단방향 또는 양방향) 계층
- 하나의 완전 연결 계층
- 소프트맥스 출력 계층
2.2 주요 혁신 기술
2.2.1 Batch Normalization for Deep RNNs
h_l_t = f(B(W_l * h_l-1_t) + U_l * h_l_t-1)
- 시퀀스 단위 정규화 적용
- 깊은 네트워크의 학습 안정화
- 일반화 성능 향상
2.2.2 SortaGrad
- 커리큘럼 학습 전략 도입
- 첫 에포크에서 발화 길이 기준으로 정렬
- 학습 안정성 향상
2.2.3 Frequency Convolutions
1D와 2D 컨볼루션 비교:
- 1D: 시간 도메인 컨볼루션
- 2D: 시간-주파수 도메인 컨볼루션
- 노이지 데이터에서 2D가 23.9% 성능 향상
2.2.4 Lookahead Convolution
r_t,i = sum(W_i,j * h_t+j-1,i for j in range(1, τ+1))
- 미래 문맥 활용 가능
- 단방향 모델의 성능 향상
- 스트리밍 처리 가능
2.3 중국어 적용을 위한 수정사항
- 약 6000자 출력
- 로마자 알파벳 포함
- 문자 단위 언어 모델 사용
3. 시스템 최적화
3.1 HPC 최적화
- 동기식 SGD 사용
- All-Reduce 연산 최적화 (4x-21x 속도 향상)
- 커스텀 메모리 할당
- GPU용 CTC 구현 (10-20% 학습 시간 단축)
3.2 배치 처리 최적화
# 배치 크기와 지연시간 트레이드오프
median_latency = {
"10_streams": 44ms,
"20_streams": 48ms,
"30_streams": 67ms
}
4. 학습 데이터
4.1 데이터셋 구성
영어:
- 총 11,940시간
- 800만 발화
중국어:
- 총 9,400시간
- 1100만 발화
4.2 데이터 증강 기법
- 노이즈 추가
- SNR 0dB ~ 30dB
- 매 에포크마다 유니크한 노이즈 적용
- 정렬 및 필터링
- CTC 기반 Viterbi 정렬
- 품질 분류기 사용
- 오류율 17%에서 5%로 감소
5. 실험 결과
5.1 영어 음성 인식 결과
테스트 셋별 WER(Word Error Rate):
- 읽기 음성
- WSJ eval'92: 3.10% (인간: 5.03%)
- LibriSpeech test-clean: 5.15% (인간: 5.83%)
- 액센트 음성
- 미국-캐나다: 7.94% (인간: 4.85%)
- 영연방: 14.85% (인간: 8.15%)
- 노이지 음성
- CHiME eval real: 21.59% (인간: 11.84%)
5.2 중국어 음성 인식 결과
- 개별 화자: 5.7% CER (인간: 9.7%)
- 5인 위원회: 3.7% CER (인간: 4.0%)
6. 실제 배포
6.1 배치 디스패치(Batch Dispatch)
- 실시간 트랜스크립션 지원
- 동적 배치 크기 조절
- 지연시간 vs 효율성 최적화
6.2 최적화 기법
- 16비트 연산
- 정확도 손실 없음
- 처리량 향상
- 언어 모델 최적화
- 확률 기반 문자 제한
- 검색 속도 150배 향상
6.3 실제 응용시 고려사항
- 애플리케이션별 학습 데이터 중요성
- 도메인 특화 언어 모델 필요
- 후처리 규칙 정의 필요
7. 결론
7.1 주요 성과
- End-to-End 학습의 효과성 입증
- 다국어 지원 용이성 확인
- 실시간 서비스 가능성 검증
7.2 향후 연구 방향
- 모델 아키텍처 개선
- 학습 방법론 발전
- 실제 응용 확장
'머신러닝 & 딥러닝 > 딥러닝' 카테고리의 다른 글
[AI 기초 다지기] Set2Set 논문 분석 및 코드 구현 (1) | 2024.11.14 |
---|---|
[AI 기초 다지기] RNNsearch & Pointer Networks 논문 분석 및 코드 구현 (1) | 2024.11.13 |
[AI 기초 다지기] RNN & LSTM 논문 분석 및 코드 구현 (10) | 2024.11.11 |
[AI 기초 다지기] ResNet identity mappings & Dilated convolutions 논문 분석 및 코드 구현 (2) | 2024.11.10 |
[AI 기초 다지기] 스탠포드 대학 딥러닝 기초(4) - Convolutional Neural Networks (6) | 2024.11.08 |