머신러닝의 최적화도 매우 복잡하다.
: 훈련 집합으로 학습을 마친 후, 현장에서 발생하는 새로운 샘플을 잘 예측해야 한다 -> 즉 일반화 능력이 좋아야 한다.
: 머신러닝의 최적화가 어려운 이유(긴 훈련 시간 / 매개탐색 공간에서 목적함수의 비볼록 성질)
평균제곱 오차(MSE)
: 허점이 존재한다. (그림의 가로축이 커지면 경사도가 작아진다)
: 신경망 학습 과정에서 학습은 오류를 줄이는 방향으로 가중치와 편향을 교정하는데, 큰 교정이 필요함에도 작은 경사도로 작게 갱신된다.
교차 엔트로피와 로그우도 목적함수
: 학습 과정의 성능 판정의 중요성
: 교차 엔트로피
-> 라벨에 해당하는 y가 확률변수
-> 확률 분포: P는 정답, Q는 신경망(예측) 출력
-> 공정한 벌점을 부여하는지 확인 -> 경사도를 계산해 보면, 오류가 더 큰 쪽에 더 큰 벌점(경사도)를 부과
소프트맥스 함수
: max를 모방
: 모두 더하면 1이 되어 확률 모방
: 출력층의 변화에 따라 소프트맥스의 결과도 최대 출력에 더 가까워짐. 따라서 부드러운 최대 함수로 불림.
소프트맥스 활성함수와 로그우도 목적함수
: 음의 로그우도 목적함수 -> 하나의 노드만 적용
: 소프트맥스는 최댓값이 아닌 값을 억제하여 0에 가깝게 만든다는 의도 내포.
: 신경망에 의한 샘플의 정답에 해당하는 노드만 보겠다는 로그우도와 잘 어울림.
=> 둘을 결합하여 사용하는 경우가 많음.
소프트맥스 활성함수와 교차 엔트로피 목적함수
: 로그우도 손실 함수 ~ 교차 엔트로피 최소화
성능 향상을 위한 요령
데이터 전처리
: 규모 문제 -> 느린 학습의 요인
: 모든 특징이 양수인 경우의 문제(가중치가 뭉치로 증가 또는 감소하면 최저점을 찾아가는 경로가 갈팡질팡하여 느린 수렴)
=> 정규화는 규모 문제와 양수 문제를 해결해 준다. or 명목 변수(객체간 서로 구분하기 위한 변수)를 원핫 코드로 변환
가중치 초기화
: 대칭적 가중치 문제 -> 난수로 가중치 초기화(가우시안 또는 균일 분포에서 난수를 추출) or 가중치 행렬의 행 혹은 열이 수직이 되도록 설정 or 노드의 출력 값 분포가 일정하도록 강제화
or 임의 행로 활용하여 설정 or 가중치 초기화와 가속도를 동시에 최적화
탄력(가속도, 관성)
: 경사도의 잡음 현상 -> 탄력은 경사도에 부드러움을 가하여 잡음 효과를 줄임
: 관성을 적용한 가중치 갱신 수식
: 관성의 효과
: 네스테로프 가속 경사도 관성
적응적 학습률
: 학습률의 중요성 -> 너무 크면 지나침에 따른 진자 현상, 너무 작으면 수렴이 느림
: 적응적 학습률 -> 매개변수마다 자신의 상황에 따라 학습률을 조절(학습률 담금질)
: AdaGrad(적응적 학습률을 적용한 gradient descent 방법)
: Adam(RMSProp에 관성을 추가로 적용한 알고리즘)
활성함수
: 선형 연산 결과인 활성값 z에 비선형 활성함수를 적용하는 과정
: sigmoid 함수는 활성값이 커지면 포화 상태가 되고 경사도가 0에 가까운 값을 출력함 -> 매개변수 갱신이 매우 느린 요인
: ReLU 활성함수 -> 경사도 포화 문제 해소
: 그 밖에서 tanh 함수, Leaky ReLU 함수, Maxout 함수, ELU 함수
배치 정규화
: 공변량 변화 현상 -> 훈련집합과 테스트집합의 분포가 다름
: 내부의 공변량 변화 -> 데이터의 분포가 수시로 바뀜 -> 층이 깊어짐에 따라 더욱 심해짐 -> 학습을 방해 (공변량 시프트)
: 배치 정규화는 공변량 시프트 현상을 누그러뜨리기 위해 정규화를 층 단위 적용하는 기법이다.
: 미니배치에 적용하는 것이 유리
: 과정 -> 1. 미니배치 단위로 평균과 분산을 계산하고, 2. 구한 평균과 분산을 통해 정규화, 3. 비례와 이동을 세부 조정한다.
: 장점(경사도 흐름 개선, 높은 학습률 허용, 초기화에 대한 의존성 감소, 규제와 유사한 행동을 하여 드랍아웃의 필요성을 감소시킴)
: 최적화를 마친 후 추가적인 후처리 작업이 필요하다 (각 노드는 전체 훈련집합을 가지고 독립적으로 코드를 수행)
: CNN에서는 노드 단위가 아니라 특징 맵 단위로 코드1과 코드 2를 적용
학습 모델의 용량에 따른 일반화 능력
: 대부분 가지고 있는 데이터에 비해 훨씬 큰 용량의 모델을 사용한다.
: 현대 기계 학습의 전략 -> 충분히 큰 용량의 모델을 설계한 다음, 학습 과정에서 여러 규제 기법을 적용
규제(모델 용량에 비해 데이터가 부족한 경우의 부족조건문제를 푸는 접근법)
: 명시적 규제 -> 가중치 감쇠나 드롭아웃 처럼 목적함수나 신경망 구조를 직접 수정하는 방식
: 암시적 규제 -> 조기 멈춤, 데이터 증대, 잡음 추가, 앙상블처럼 간접적으로 영향을 미치는 방식
: 가중치 벌칙
: 조기 멈춤
: 데이터 확대
: 드롭 아웃
: 앙상블 기법
뉴턴 방법: 2차 미분 정보를 활용하여 경로를 알아낸다.
2차 미분의 최적화
켤레 경사도 방법
유사 뉴턴 방법
시간성 데이터
: 특징이 순서를 가지므로 순차 데이터라 부름
: 순차 데이터는 동적이며 보통 가변 길이임
많은 응용
: 심전도 신호를 분석하여 심장 이상 유무 판정
: 주식 시세 분석하여 사고 파는 시점 결정
: 음성 인식을 통한 지능적인 인터페이스 구축
: 기계 번역기 또는 자동 응답 장치 제작
: 유전자 열 분석을 통한 치료 계획 수립
순차 데이터의 표현
: 대표적인 순차 데이터인 문자열의 표현
: 사전을 사용하여 표현(사전구축 방법 : 사람이 사용하는 단어를 모아 구축)
: 사전을 사용한 텍스트 순차 데이터의 표현방법에는 단어가방, 원핫 코드, 단어 임베딩이 있음.
순차 데이터의 특성
: 특징이 나타나는 순서가 중요
: 샘플마다 길이가 다름
: 문맥 의존성(순차 데이터에서는 공분산은 의미가 없음)
11. RNN(순환신경망)
순환 신경망이 갖추어야 할 세 가지 필수 기능
=> 시간성(특징을 순서대로 한 번에 하나씩 입력해야 함) / 가변 길이(길이가 T인 샘플을 처리하려면 은닉층이 T번 나타나야 한다. T는 가변적이다) / 문맥 의존성(이전 특징 내용을 기억하고 있다가 적절한 순간에 활용해야 한다.)
구조
: 기존 깊은 신경망과 유사(입력층, 은닉층, 출력층을 가짐)
: 기존 깊은 신경망과 다른 점은 은닉층이 순환 연결을 가진다는 점이다. -> 시간성, 가변 길이, 문맥 의존성을 모두 처리할 수 있다. (순환 연결은 t-1 순간에 발생한 정보를 t 순간으로 전달하는 역할)
: RNN 학습이란 훈련집합을 최적의 성능으로 예측하는 매개변수 값을 찾는 일이다.
: 매 순간 다른 값을 사용하지 않고 같은 값을 공유한다. (공유의 장점: 추정할 매개변수 수가 획기적으로 줄어듦, 매개변수의 수가 특징 벡터의 길이 T에 무관, 특징이 나타나는 순간이 뒤바뀌어도 같거나 유사한 출력을 만들 수 있음)
: 입력의 개수T와 출력의 개수 L이 같은 경우가 있고 / T != L 인 경우가 있다.
동작
: RNN의 가중치
: 은닉층의 계산. 은닉층의 계산이 끝난 후 출력층의 계산.
BPTT 학습
RNN과 DMLP의 유사성: 둘 다 입력층, 은닉층, 출력층을 가짐
RNN과 DMLP의 차별성: RNN은 샘플마다 은닉층의 수가 다름 / DMLP는 왼쪽에 입력, 오른쪽에 출력이 있지만, RNN은 매 순간 입력과 출력이 있음 / RNN은 가중치를 공유함.
BPTT 알고리즘(Back propagation through time)
BPTT 학습: 전방 계산과 오류 역전파 수행
양방향 RNN
양방향 문맥 의존성
양방향 RNN: t 순간의 단어는 앞쪽단어와 뒤쪽단어 정보를 모두 보고 처리됨 / 머신러닝에서도 양방향 RNN을 활용함.
: LSTM 구조에 따른 경사 흐름 개선
언어 모델
: 문장, 즉 단어 열의 확률분포를 모형화 / 음성 인식기 또는 언어 번역기가 후보로 출력한 문장이 여럿 있을 때, 언어 모델로 확률을 계산한 다음 확률이 가장 높은 것을 선택하여 성능을 높임
: 확률 분포를 추정하는 방법 -> n그램, 다층 퍼셉트론, 순환 신경망
: 순환 신경망을 이용한 언어 모델 -> 현재까지 본 단어 열을 기반으로 다음 단어를 예측하는 방식으로 학습 / 비지도 학습에 해당하여 말뭉치로부터 쉽게 훈련집합 구축 가능 -> 학습을 마치고나서 음성 인식기 성능을 향상하는데 활용 된다.
기계 번역
: 언어 모델보다 어려움. 기계 번역은 길이가 서로 다른 열 대 열 문제
: 고전적인 통계적 기계 번역 방법의 한계 -> 현재 딥러닝 기반 기계 번역 방법이 주류
: LSTM을 사용하여 번역 과정 전체를 통째로 학습
: 가변 길이의 문장을 고정 길이의 특징 벡터로 변환한 후, 고정 길이에서 가변 길이 문장을 생성
: 모든 순간의 상태 변수를 사용하는 방식
영상 주석 생성
: 영상 주석 생성 응용 -> 영상 속 물체를 검출하고 인식, 물체의 속성과 행위, 물체 간의 상호 작용을 알아내는 일
: 딥러닝 접근방법 -> CNN은 영상을 분석하고 인식 + LSTM은 문장을 생성
: CNN -> 입력 영상 x를 단어 임베딩 공간의 특징 벡터로 변환.
: 영상 x를 CNN에 입력해야 함.