[Deep Learning] 딥러닝 학습방법, 확률론 맛보기
딥러닝 학습 방법 이해하기
신경망을 수식으로
이전에 배웠던 선형 모델과는 다르게 비선형 모델인 신경망을 알아보겠습니다.
위 그림에서 각 행렬들은 O(행벡터), X(데이터), W(가중치행렬), b(절편) 를 나타낸다.
수식을 신경망 측면에서 말하자면 X라는 데이터를 d차원에서 p차원으로 바꾸어(W를 통해) 절편(b)를 더해주어 O의 결과를 도출한다.
출력 벡터 O를 소프트맥스 함수에 넣어 특정 클래스 k 에 속할 확률을 반환한다.
소프트맥스 연산
- 분류 문제를 풀 때 선형모델과 소프트맥스 함수를 결합하여 예측합니다.
- 소프트맥스(softmax) 함수는 모델의 출력을 확률로 해석할 수 있게 변환해 주는 연산입니다.
- 하지만 추론문제를 해결할 때에는 one-hot 벡터를 사용하여 확률로 나타내지않고 0과 1로 쉽게 표현할 수 있습니다.(딥러닝에선 확률로 나타내어 다음 레이어 학습에 기여해야함.)
활성 함수(activation function)
- 활성함수는 실수집합 위에 정의된 비선형 함수.
- 활성함수를 쓰지 않으면 딥러닝은 선형모형과 차이가 없습니다.
- 딥러닝에서는 ReLU 함수를 많이 사용한다.
다층(multi-layer) 퍼셉트론(MLP)
- 신경망이 여러층 으로 합성된 함수
- 2겹으로 쌓아도 되지만(이론상), 층이 깊을수록 목적함수를 근사하는데 필요한 뉴런(노드)의 숫자가 훨씬 빨리 줄어들어 좀 더 효율적으로 학습이 가능(층이 깊을 수록 적은 파라미터로 복잡한 함수를 표현하는 것이 가능하기때문)
역전파 알고리즘(backpropagation algorithm)
- 역전파 알고리즘은 합성함수 미분법인 연쇄법칙(chain-rule) 기반 자동미분 (auto-differentiation)을 사용
- 아래의 그림에서 보는것과 같이 위층의 그레디언트벡터를 계산하며 업데이트한다.
다음 예제를 통해 2층 신경망에서의 역전파 알고리즘을 적용하는 방법을 이해 할 수 있다.
확률론 맛보기
딥러닝에서 확률론이 필요한 이유
- 딥러닝은 확률론 기반의 기계학습이다.
- 손실함수들의 작동원리는 데이터공간을 통계적으로 해석해서 유도함
- 회귀 분석에서 손실함수로 사용되는 L2-노름은 예측오차의 분산을 가장 최소화하기 위해
- 분류 문제에서 사용되는 교차엔트로피는 모델예측의 불확실성을 최소화하기위해
이산확률변수, 연속확률변수
- 확률변수는 확률분포에 따라 이산형과 연속형으로 구분
- 이산형 확률변수는 확률변수가 가질 수 있는 경우의 수를 모두 고려하여 확률을 더해 모델링
- 연속형 확률변수는 데이터 공간에 정의된 확률변수의 밀도 위에서 적분을 통해 모델
조건부확률과 기계학습
- 조건부확률
P(y|x)
는 입력변수 x에 대해 정답이 y일 확률을 의미. - 로지스틱 회귀에서 사용했던 선형모델과 소프트맥스 함수의 결합은 데이터에서 추출된 패턴을 기반으로 확률을 해석
- 분류 문제에서 \(softmax(W\phi+b)\)은 데이터 x로 부터 추출된 특징패넡 \(\phi(x)\)과 가중치행렬 W을 통해 조건부 확률
P(y|x)
을 계산
💎 기대값이란?
- 통계적수치를 계산하는 중요 값
- 확률분포가 주어지면 데이터를 분석하는 데 사용 가능한 여러 종류의 통계적 범함수(statistical functional)를 계산할 수 있습니다.
- 기대값(expectation)은 데이터를 대표하는 통계량이면서 동시에 확률분포를 통해 다른 통계적 범함수를 계산하는데 사용됨.
- 기대값을 이용해 분산, 첨도 공분산등 여러 통계량 계산 가능
💡 몬테카를로 샘플링(Monte Carlo Sampling)
- 기계학습의 경우 문제의 확률분포들을 모를 때가 대부분이다.
- 위의 경우 데이터를 이용하여 기대값을 계산하려면 몬테카를로 샘플링 방법을 사용해야 한다.
- 샘플링 분포에서 독립적으로 해줘야 작동함 ( 독립추출이 보장된다면 대수의 법칙에 의해 수렴성을 보장)
Comments