경사하강법
미분
변수의 움직임에 따른 함수값의 변화를 측정하기 위한 수식
- 최적화에서 가장 많이 사용하는 기법
- 한 점에서의 식별된 기울기를 통해 방향에 따른 증감 판별 가능
B의 x 좌표가 A에 근접하여 A 접선의 기울기 역할로 변환
편미분
벡터(다변수 함수)의 경우 편미분을 사용
- 특정 변수에 대한 미분 값 적용
- 특정 변수를 제외한 나머지 변수는 전원 상수 취급
경사하강법(Gradient Descent; GD)
미분 값을 뺌으로써 함수의 극소값을 도출
- 그레디언트 벡터를 통해 경사하강법에 적용
- 극소값의 기울기는 0이므로 갱신이 되지 않아 종료조건에 해당
- 이론적으로 미분가능하고 볼록(convex)한 함수에 대해선 적절한 학습률과 학습 횟수를 바탕으로 수렴이 보장
- 특히 선형회귀의 경우 목적식은 회귀 계수 $\beta$에 대해 볼록함수이기 때문에 알고리즘을 충분히 돌리면 수렴이 보장
- 비선형회귀 문제의 경우 목적식이 볼록하지 않을 수 있으므로 일부에 대한 수렴을 보장
$\nabla f = (\partial x_1f, \partial x_1f, \dotsb, \partial x_1f)$
그레디언트 벡터: 편미분을 계산한 결과 벡터
선형회귀
선형 회귀는 주어진 데이터의 특성을 가장 잘 나타내는 직선 도출
- 목적식을 최소화하는 경사하강법 알고리즘
- 다음 $\beta$ 는 현재 $\beta$에서 기울기에 비례한 값(학습률) 만큼 갱신
측면에서 볼 때(2D) | 측면에서 볼 때(3D) | 위에서 볼 때 |
---|---|---|
확률적 경사하강법(Stochastic Gradient Descent; SGD)
모든 데이터를 사용해서 업데이트하는 대신, 데이터 한개 또는 일부(Mini-batch)를 활용하여 업데이트 진행
- 볼록이 아닌(non-convex) 목적식은 SGD를 통해 최적화 가능
- 데이터의 일부를 가지고 업데이트를 진행하므로 연산 자원을 보다 효율적으로 활용 가능
- 미니배치 크기가 수렴 속도에 영향
- 머신러닝 학습에 더욱 효율적
- 일반적으로 모든 데이터를 메모리에 업로드할 시 OOM(Out-Of-Memory) 오류 발생
- GPU에서 연산을 진행하는 사이 CPU는 전처리와 GPU에서 업로드 할 데이터를 준비
경사하강법과 확률적 경사하강법의 차이
신경망(Neural Network)
데이터를 비선형으로 해석하는 모델
- 순전파: 1층부터 L층 까지의 순차적인 신경망 계산
- 활성함수를 쓰지 않으면 선형 모형과 동일
- 선형 모델과 활성함수(activation function)를 합성
- 단층 신경망
- $O = WX + B$
- 다층 신경망
- $z = {W^{(t)}x + b^{(t)}}$
- $H = (\sigma(z_1), \dotsb, \sigma(z_n))$
- $O = HW^{(L)} + b^{(L)}$
- $\sigma$: 활성함수
- $z$: 잠재벡터 (충 별 Output 벡터)
- $H$: 활성함수를 통과한 잠재벡터
층을 여러개 쌓는 이유
Universal Approximation Theorem 이론에 따라 2층 신경망으로도 임의의 연속함수를 근사할 수 있지만, 실제로는 무리가 있다.
층이 깊을수록 목적함수를 근사하는데 필요한 뉴런(노드)의 숫자가 훨씬 빨리 줄어들어 더욱 효율적으로 학습이 가능하다.층이 얇으면 필요한 뉴런의 숫자가 기하급수적으로 늘어나므로 넓은 신경망이 되어야한다.
- 10개의 노드를 학습할 때
- 2층 신경망 뉴런의 수: ${10^2} = 100$
- 5층 신경망 뉴런의 수: $4^2 * 5 = 96$
- 4개 씩 5층으로 구성
Linear Neural Networks
데이터 분포에 따른 선형 회귀 그래프 도출
- $\eta$ = 학습률
- $w_{t} = w_{t-1} - \eta \frac{\partial loss}{\partial w}$
- $b_{t} = b_{t-1} - \eta \frac{\partial loss}{\partial b}$
Multi-Layer Percentron(MLP)
레이어를 쌓을 때 선형변환을 누적하게 되면 일반 선형회귀와 다를게 없으므로 학습에 영향이 크게 미치지 않는다.
따라서 레이어 사이에 Nonlinear transform 과정을 거쳐 학습한다.
즉, 선형회귀 > Nonlinear transform > 선형회귀 > $\dotsb$
- Activation function
- Rectified Linear Unit(Relu)
- Sigmoid
- Hyperbolic tangent
소프트맥스(Softmax) 연산
모델의 출력을 확률로 해석할 수 있게 변환해주는 연산
- 분류 문제를 풀 때 선형 모델과 소프트맥스 연산을 결합하여 예측
One-Hot
최대값을 가진 주소만 1로 출력하는 연산을 사용하며, 추론을 할 때 주로 사용
활성함수
실수계 위에 정의된 비선형(nonlinear) 함수
- 딥러닝에서 ReLU 함수를 주로 이용
Sigmoid | tanh | ReLU |
---|---|---|
역전파(Backpropagation) 알고리즘
각 층에 사용된 파라미터를 효율적으로 학습하는 알고리즘
연쇄법칙
- $z = (x+y)^2$
- $w = x + y$ 로 치환
- $z = w^2$
- $\frac{\partial z}{\partial x} = \frac{\partial z}{\partial w} \frac{\partial w}{\partial x}$
- $\frac{\partial z}{\partial w} = 2w, \frac{\partial w}{\partial x} = 1$
- $\therefore \frac{\partial z}{\partial x} = 2$
- 각 노드의 뉴런(텐서) 값을 컴퓨터가 기억해야 미분 계산이 가능
오차역전파 식 유도 | 오차역전파 결과 요약 |
---|---|
오차역전파(심화) 식 유도 1 | 오차역전파(심화) 식 유도 2 |
---|---|
오차역전파(심화) 결과 요약 |
---|
확률론
확률론의 필요성
- 딥러닝은 확률론 기반의 기계학습 이론을 바탕으로 구성
- 기계학습에서 사용되는 손실함수(loss function)들의 작동 원리는 데이터 공간을 통계적으로 해석해서 유도
- 회귀 분석에서 손실함수로 사용되는 $L_2$노름은 예측 오차의 분산을 가장 최소화 하는 방향으로 학습하도록 유도
- 분류 문제에서 사용하는 교차엔트로피(cross-entropy)는 모델 예측의 불확실성을 최소화하는 방향으로 학습하도록 유도
- 분산 및 불확실성을 최소화하기 위해서 측정법에 대한 이해 필요
확률 변수
- 이산형 확률 변수
- 모델링: 확률변수가 가질 수 있는 경우의 수를 모두 고려한 확률의 합
- $P(X \in A) = \displaystyle\sum_{x \in A} P(X={x})$
- 연속형 확률 변수
- 모델링: 데이터 공간에 정의된 확률 변수의 밀도(density) 위에서의 적분
- $P({x}) = \displaystyle \lim _{h->0} \frac{P({x} - h \leq X \leq {x} + h)}{2h}$
- $P(X \in A) = \int _A P({x})d{x}$
확률 분포
- $x \times y$: 데이터 공간
- $D$: 데이터 공간에서 데이터를 추출하는 분포
- 결합분포 $({x}, y)$는 $D$를 모델링
- $P({x})$는 입력 ${x}$에 대한 주변확률 분포로 $y$에 대한 정보를 제공하지 않음
- 조건부 확률 분포 $P({x}|y)$ 는 데이터 공간에서 입력 ${x}$와 출력 $y$사이의 관계를 모델링
- 주어진 조건에서 특정 클래스 데이터의 확률 분포를 표현
- 딥러닝은 다층 신경망을 사용하여 데이터로부터 특징패턴 $\phi$을 추출
조건부확률
조건부확률 $P({x}|y)$는 입력변수 ${x}$에 대해 정답이 $y$일 확률
- 로지스틱 회귀에서 사용했던 선형모델과 소프트맥스 함수의 결합은 데이터에서 추출된 패턴을 기반으로 확률을 해석하는데 사용
몬테카를로 샘플링
- 확률 분포를 명시적으로 모를 때, 데이터를 이용하여 기대값을 계산
- 이산형과 연속형에 상관없이 성립
- 독립추출만 보장된다면 대수의 법칙(law of large number)에 의해 수렴성을 보장
- 실제로 $\int_{-1}^1 \exp^{-x^2} dx$ 은 몬테카를로 샘플링에 의해 약0.0039의 오차를 보유
확률분포 가정
- 기계적으로 확률분포를 가정하는 것이 아닌, 데이터 생성 원리를 먼저 고려하는 것이 원칙
- 베르누이 분포
- 데이터가 2개의 값(0 or 1)만 가지는 경우
- 카테고리 분포
- 데이터가 n개의 이산적인 값을 가지는 경우
- 베타 분포
- 데이터가 [0, 1] 사이에서 값을 가지는 경우
- 감마분포, 로그 정규분포 등
- 데이터가 0 이상의 값을 가지는 경우
- 정규분포, 라플라스 분포 등
- 데이터가 $R$ 전체에서 값을 가지는 경우
통계학
모수
- 통계적 모델링
- 적절한 가정 위에서 확률 분포를 추정하는 것이 목표이며, 기계학습과 통계학이 공통적으로 추구하는 목표
- 유한한 개수의 데이터만 관찰하여 모집단의 분포를 정확하게 알아내는 것은 불가능하므로 근사적으로 확률 분포를 추정
- 모수적 방법론
- 데이터가 특정 확률분포를 따른다고 선험적으로 가정한 후, 그 분포를 결정하는 모수를 추정하는 방법
- 비모수 방법론: 특정 확률 분포를 가정하지 않고 데이터에 따라 모델의 구조 및 모수의 개수가 유연하게 바뀌는 방법론
- 기계학습에서 많이 사용하는 방법론
- 모수가 없는 것이 아닌, 모수가 무한히 많거나, 모수가 바뀌는 것
중심극한정리(Central limit theorem; CLT)
- 모집단의 형태와 관계없이 표본크기 n이 커질수록 $\overline{X}$의 분포(표집분포)는 정규분포에 근사
분포에 따른 표집분포
최대 가능도 추정
가장 가능성이 높은 모수를 추정하는 방법
- 표본 평균이나 표본 분산은 중요한 통계량이지만, 확률 분포마다 사용하는 모수가 다르므로 적절한 통계량에 영향을 미침
- 로그 가능도를 통해 계산의 연산량을 줄임으로써 최적화
딥러닝에서의 최대가능도 추정법
- 딥러닝 모델의 가중치를 $\theta = ({W^{(1)}}, \dotsb, {W^{(L)}})$로 표기했을 때, 분류 문제에서 소프트맥스 벡터는 카테고리 분포의 모수 $(p_1, \dotsb, p_K)$를 모델링
- 원핫벡터로 표현한 정답레이블 ${y} = (y_1, \dotsb, y_K)$을 관찰데이터로 이용해 확률분포인 소프트맥스 벡터의 로그 가능도의 최적화 가능
두 확률분포 사이의 거리를 계산하기 위한 함수
- 데이터 공간에 두 개의 확률 분포 $P({x}), Q({x})$가 존재할 경우
- 총 변동 거리(Total Variation Distance; TV)
- 쿨백-라이블러 발산(Kullback-Leibler Divergence; KL)
- 바슈타인 거리(Wasserstein Distance)
베이즈 정리
조건부 확률을 이용하여 정보를 갱신하는 방법
- $P(\theta|D)$: 사후확률
- $P(\theta)$: 사전확률
- $P(D|\theta)$: 가능도
- $P(D)$: Evidence
- $P(\theta|D) = P(\theta) \frac{P(D|\theta)}{P(D)}$
조건부확률은 유용한 통계적 해석을 제공하지만, 인과관계를 추론할 때 사용해선 안된다.
인과관계: 데이터 분포의 변화에 강건한 예측 모형을 만들 때 필요
베이즈 정리 예제
모 질병의 발병률이 10%로 알려져있다.
해당 질병에 실제로 걸렸을 때 검진될 확률은 99%, 실제로 걸리지 않았을 때 오검진될 확률이 1%라고 할 때,
어떤 사람이 질병에 걸렸다고 검진결과가 나왔을 때 실제로 감염되었을 확률은?
- 사전확률: 발병률(10%)
- 가능도
- $P(D|\theta)$: 실제로 걸렸을 때 검진될 확률(99%)
- $P(D|\tilde{\theta})$: 걸리지 않았을 때 오검진될 확률(1%)
- Evidence
- $P(D) = \displaystyle \sum_{\theta} P(D|\theta)P(\theta) = 0.99 \times 0.1 + 0.01 \times 0.9 = 0.108$
$\therefore P(\theta|D) = 0.1 \times \frac{0.99}{0.108} \approx 0.916$
오 검진률이 0.1로 상승할 시
- $P(D) = \displaystyle \sum_{\theta} P(D|\theta)P(\theta) = 0.99 \times 0.1 + 0.1 \times 0.9 = 0.189$
- $\therefore P(\theta|D) = 0.1 \times \frac{0.99}{0.189} \approx 0.524$
오탐율 $\propto$ $\frac{1}{정밀도}$
조건부 확률의 시각화
PR 표
PR 시각화