neural network
신경망은 기본적으로 비선형모델이다. 하지만, 내부를 열어보면 선형모델과 비선형모델이 결합되어 있는 형태로 이루어져 있다.
o=XW+b
전체 데이터의 행렬 X와 가중치 행렬의 W의 행렬곱과 y절편 b 벡터의 합으로 표현된다.
분류 문제를 학습시키기 위해 Softmax 함수라는 연산자를 사용하게 된다.
softmax(o)=softmax(XW+b)
- softmax 함수 : 모델의 출력을 확률로 해석할 수 있게 변환하는 연산
softmax(o)=(∑k=1pexp(ok)exp(o1),...,∑k=1pexp(ok)exp(op))
분류 문제를 해결할 때 선형 모델과 소프트맥스 함수를 결합하여 예측하는 방식을 사용한다.
학습을 할때는 softmax를 사용하지만, 추론을 할 때는 one-hot vector로 최대값을 가진 주소만 1로 출력하는 연산을 사용해 softmax 함수를 사용하지는 않는다.
- 신경망은 선형 모델과 활성(activation function) 함수를 합성한 함수이다.
H=(σ(z1),...,σ(zn)),σ(z)=σ(Wx+b)
softmax는 모든 값을 고려를 해서 출력을 하는 반면, 활성 함수는 해당 주소의 데이터만 이용하여 벡터를 Input으로 받지 않고 실수 값을 input을 받게 된다. 그래서 선형 함수에서 도출된 출력을 활성 함수를 이용하여 비선형 모델로 변형 시킬 수 있고, 이런 벡터를 잠재 벡터(hidden vector)로 부르게 되고, 이것을 뉴런이라고 한다.
활성 함수
활성함수는 R위에 정의된 비선형 함수로서 딥러닝에서 매우 중요한 개념으로, 활성함수를 쓰지 않으면 딥러닝은 선형 모형과 차이가 없다.
- 시그모이드 함수나 tach 함수는 전통적으로 많이 쓰이던 활성함수이나, 딥러닝에선 ReLU 함수를 많이 사용하고 있다.
sigmoid(x)=1+e−x1
tanh(x)=ex+e−xex−e−x
ReLU(x)=max{0,x}
LeakyReLU(x)=max{0.01x,x}
신경망
- 신경망은 선형모델과 활성함수를 합성한 함수이다. 또한, 다층 퍼셉트론(MLP)는 신경망이 여러층 합성된 함수이다.
- forward propagation
Z(1)=XW(1)+b(1),H(1)=σ(Z(1))
Z(2)=H(1)W(2)+b(2),H(2)=σ(Z(2))
,...,Z(l)=H(l−1)W(l)+b(l),...,O=Z(L)
층이 깊을수록 목적함수를 근사하는데 필요한 뉴런의 숫자가 훨씬 빨리 줄어들어 좀 더 효율적으로 학습이 가능하다. 하지만 층이 깊다고 해서 좀 더 복잡한 함수를 근사할 수 있지만, 최적화가 더 쉬운 것은 아니다. 더 복잡한 함수를 다룰수록 최적화의 난이도도 올라가기 때문이다.
-backpropagation
역전파 알고리즘은 각 층에 존재하는 미분을 계산해 파라미터를 업데이트를 한다. 행렬에 모든 원소 개수만큼 경사하강법이 적용된다.각 층마다 순차적으로 그레디언트 벡터를 구하게 된다.
그레디언트 벡터를 구하기 위해서는 윗층의 그레디언트 벡터가 필요하기 때문에 고층에서 저층 순으로 계산한다.
O=Z(L),H(l)=σ(Z(l)),...×∂Z(l)∂H(l)....Z(l)=H(l−1)W(l)+b(l)
H(1)=σ(Z(1)),...×∂Z(1)∂H(1)....Z(1)=H(l−1)W(l)+b(l)
확률론
-
딥러닝은 확률론 기반의 기계학습 이론에 바탕을 두고있다.
확률 변수는 확률분포 (D)에 따라 이산형과 연속형 확률 변수로 구분하게 된다.
-
이산형 확률 변수: 확률 변수가 가질 수 있는 경우의 수를 모두 고려하여 확률을 더해 모델링한다.
P(X∈A)=∑x∈AP(X=x)
-
연속형 확률 변수: 데이터 공간에 정의된 확률 변수의 밀도(density)위에서의 적분을 통해 모델링한다.
P(X∈A)=A∫P(x)dx,P(x),P(x)=limh→02hx−h≤X≤x+h
-
결합분포 P(x, y) : 결합 분포란 확률 변수가 여러 개일 때 이들을 함께 고려하는 확률 분포이다.
-
주변확률분포 P(x) : 결합 분포가 있다면, 입력 x에 대한 확률 분포를 얻을 수 있다.
-
조건부확률분포 p(x|y) : 특정 클래스가 주어진 조건에서 데이터의 확률 분포이다,
조건부확률 P(y∣x) : 입력 변수 x에 대해 정답이 y일 확률, 연속확률 분포의 경우 P(y∣x)는 확률이 아닌 밀도로 해석해야 한다.
-
로지스틱 회귀에서 사용하는 선형 모델, softmax 함수의 결합은 데이터에서 추출된 패턴을 기반으로 확률을 해석하는데 사용된다.
-
분류 문제에서 softmax(Wϕ+b)는 데이터 x로부터 추출된 특정 패턴 ϕ(x)와 가중치행렬 W를 통해 조건부확률을 계산한다.
-
회귀 문제의 경우 조건부 기대값 E[y∣x]를 추정한다. 회귀문제에서 조건부기대값을 사용하는 이유는 목적식(L2-norm)을 최소화하는 함수와 일치하기 때문이다.
기대값
-
데이터를 대표하는 통계량이면서 동시에 확률분포를 통해 다른 통계적 범함수를 계산하는데 사용된다
연속확률 분포의 경우에는 적분, 이산확률분포의 경우엔 급수를 사용한다.
Ex∼p(x)[f(x)]=∑x∈Xf(x)P(x)
기대값을 이용해 분산, 첨도, 공분산 등 여러 통계량을 계산할 수 있다.
몬테카를로 샘플링
기계학습의 많은 문제들은 확률 분포를 명시적으로 모를 때가 대부분이다. 몬테카를로 샘플링은 확률 분포를 모를 때 데이터를 이용하여 기대값을 계산하는 방법
Ex∼p(x)[f(x)]=1/N∑i=1Nf(x(i)),x(i)∼p(x)
통계학
통계적 모델링은 적절한 가정 위에서 확률 분포를 추정하는 것이 목표이며, 기계학습과 통계학이 공통적으로 추구하는 목표이다.
유한한 개수의 데이터만 관찰해서 모집단의 분포를 정확하게 알아낸다는 것은 불가능하다. 따라서 근사적으로 확률 분포를 추정할 수 밖에 없다.
데이터가 특정확률분포를 따른다고 선험적으로 가정한 후 그 분포를 결정하는 모수를 추정하는 방법을 모수적방법론이라고 하며, 특정확률분포를 가정하지 않고 데이터에 따라 모델의 구조 및 모수의 개수가 유연하게 바뀌면 비모방법론이라 한다.
확률 분포 가정 방법
- 데이터가 0또는1의 값만 가지는 경우 : 베르누이분포
- 데이터가 n개의이산적인값을가지는경우 : 카테고리분포
- 데이터가 사이에서 값을 가지는 경우 : 베타분포
- 데이터가 0이상의 값을 가지는 경우 : 감마분포,로그정규분포등
- 데이터가 전체에서 값을 가지는경우 : 정규분포, 라플라스분포
기계적으로 확률 분포를 가정하면 안되며, 데이터를 생성하는 원리를 먼저 고려하자!
모수 추정하기
- 정규분포의 모수는 평균 μ와 분산 σ2으로 이를 추정하는 통계랑은 다음과 같다.
Xˉ=N1∑i=1NXi,E[Xˉ]=μ
S2=N−11∑i=1N(Xi−Xˉ)2,E[S2]=σ2
통계량 확률 분포(표본 평균과 표본 분산의 확률 분포)를 표집분포라 부르며 데이터를 많이 모을수록 정규분포를 따른다. 즉, N이 늘어가게 되면 표본 분산은 작아진다.
중심 극한 정리 참고
최대 가능도 추정법
가능도 함수 : 주어진 데이터 x에 대해서 모수 θ 를 변수로 둔 함수, 모수 θ를 따르는 분포가 x를 관찰할 가능성, 하지만 확률로 해석하면 안되고, 오로지 θ의 크고 작음의 대소비교를 가늠할 수 있는 척도로 사용하여야 한다.
최대 가능도 추정법은 이론적으로 가장 가능성이 높은 모수를 추정하는 방법 중 하나이다.
연속확률변수에 해당하는 정규분포에 최대가능도를 이용한 모수 추정법
θ^MLE=argmaxL(θ;x)=argmaxP(x∣θ)
이산확률변수에 해당하는 정규분포에 최대가능도를 이용한 모수 추정법
카테고리 분포((∑k=1dpk=1),x;p1,...,pd)를 따르는 확률 변수 X로부터 독립적인 표본x1,...,xn 을 얻었을 때 최대가능도 추정법
θ^MLE=argmaxlogP(xi∣θ)=argmaxlog∏i=1n∏k=1dpkxi,k
log(∏i=1n∏k=1dpkxi,k)=∑k=1dnklogpk
연속확률분포와는 달리 미분 대신 라그랑주 승수를 목적식에 곱해 새로운 목적식을 만든다
=∑k=1dnklogpk+λ(1−∑kpk)
위 식을 미분하면
pk로 미분시 pknk=0,
λ로 미분시 1−∑k=1dpk
이를 종합하면 pk=∑k=1dnknk의 식을 도출할 수 있다.
딥러닝에서 최대가능도 추정법
딥러닝 모델의 가중치를 θ=(W(1),...,W(L))라고 표기했을 때 분류문제에서 소프트맥스 벡터는 카테고리 분포의 모수(p_1, ..., p_k)를 모델링한다.
one -hot 벡터로 표현한 정답 레이블 y=(y1,...,yk)를 관찰데이터로 이용해 확률 분포인 소프트 맥스 벡터의 로그가능도를 최적화할 수 있다
밑의 수식을 잘 기억해 두자
θ^MLE=n1∑i=1n∑k=1Kyi,klog(MLPθ(xi)k)
데이터 공간에 두 개의 확률 분포가 있을 경우 두 확률 분포 사이의 거리를 계산하는데, 다음과 같은 함수를 이용한다.
쿨백-라이블러 발산
바슈타인 거리
총변동 거리
특히 쿨백 라이블러는 다음과 같이 분해할 수 있다
KL(P∣∣Q)=−Ex∼P(x)logQ(x)+Ex∼P(x)logP(x)
두개의 엔트로피 함수로 표현할 수 있다.