Deep Learning Summary - 1. 기초 용어 정리
Deep Learning 기초 용어들을 정리 해 보자. 2020-09-13
주의! Caution!
해당 게시글은 Archive된 게시글 입니다.
Archive된 사유는 다음 중 하나에 해당 됩니다.
  • 작성 된지 너무 오랜 시간이 경과 하여, API가 변경 되었을 가능성이 높은 경우
  • 주인장의 Data Engineering으로의 변경으로 질문의 답변이 어려워진 경우
  • 글의 퀄리티가 좋지 않아 글을 다시 작성 할 필요가 있을 경우
이 점 유의하여 게시글을 참고 하시길 바랍니다.

이번 시간에는 Deep Learning 에서 사용 하는 몇 가지 용어들에 대해서 정리 해 보는 시간을 가져 보겠습니다. 이 게시글에서는 기초 미분, 선형 대수, 통계, 확률론 그리고, 실제 어플리케이션을 만들 때 다루는 기초 딥러닝 용어 들을 카테고리 별로 나누어 정리 해 보도록 하겠습니다.

주의: 남 보라고 쓴 글이라기 보단, 저 보려고 쓴 글에 더 가깝습니다.

목차

1. 미분

2. 선형 대수
3. 확률과 통계
4. 기초 딥러닝 용어

미분

편미분(partial derivative)

벡터 미적분학미분기하학에서 편미분(partial derivative)은 다변수 함수의 특정 변수를 제외한 나머지 변수를 상수로 생각하여 미분하는 것입니다.

f(x,y,z)f(x, y, z)xx에 대하여 미분하는 것은 다음과 같습니다.

f(x,y,z)=x2+y2+z2+xy+yz+xzf(x, y, z) = x^2 + y^2 + z^2 + xy + yz + xz
fxf(x,y,z)=2x+y+z\frac{\partial f} {\partial x} f(x, y, z) = 2x + y + z

연쇄 법칙(chain rule)

합성함수의 미분법으로, 딥러닝의 학습 방법인 **오차 역전파(back propagation)**에 이용 됩니다.

함수 y=f(x),z=g(y)y = f(x), z = g(y)를 합성한 함수 z=(gf)(x)=g(f(x))z = (g \circ f)(x) = g(f(x))를 미분 하면 다음과 같습니다.

(gf)(x)=g(y)f(x)(g \circ f)'(x) = g'(y)f'(x)

이는 다음과 같이도 표현 가능합니다.

dzdx=dzdydydx\frac {dz} {dx} = \frac {dz} {dy} \cdot \frac {dy} {dx}

해당 법칙은 편미분에도 똑같이 적용 가능합니다.

선형 대수

고유 값, 고유 벡터

임의의 n×nn \times n 행렬 AA 에 대하여, 다음 식을 만족시키는 0\vec {0} 이 아닌 벡터 x\vec {x} 가 존재한다면 숫자 λ\lambda 는 행렬 AA고유값이라고 할 수 있습니다.

Ax=λxA\vec {x} = \lambda\vec{x}

이 때, x\vec {x}는 고유값 λ\lambda 에 대응하는 고유벡터 입니다. 또한, 다음과 같이 표현 할 수 있습니다.

(AλI)x(A - \lambda I)\vec{x}

단, (AλI)x(A - \lambda I)\vec {x}역행렬을 가지지 않아야 하므로, det(AλI)x=0\det (A - \lambda I)\vec {x} = 0 이 성립 하여야 합니다.

위의 수식을 통해 기하학적으로 알 수 있는 것은, 고유 벡터에 대해 행렬 AA에 대한 연산을 실시 한 벡터와, 고유값을 통한 선형 변환을 실시 한 벡터가 일치 한다는 것입니다.

주성분 분석(PCA)

차원 축소에 주로 사용되며, 서로 연관 가능성이 있는 고차원 공간의 표본들을 선형 연관성이 없는 저차원 공간의 표본으로 변환하기 위해 직교 변환을 사용합니다. 단, 직교 변환을 할 때는, 원본 데이터와, 사영을 통해 직교 변환 한 데이터평균 제곱 오차가 가장 적은 방향으로 사영되어야 합니다.

특이값 분해(SVD)

**특이값 분해(Singular Value Decomposition, SVD)**는 행렬을 특정한 구조로 분해 하는 방식입니다.

A=UΣVTA = U \Sigma V^T
  • AA: m×nm \times n 크기를 가지는 행렬
  • UU: m×mm \times m 크기를 가지는 직교 행렬
  • Σ\Sigma: m×nm \times n 크기를 가지는 대각 행렬
  • VV: n×nn \times n 크기를 가지는 직교 행렬

SVD를 이용하여, 데이터를 압축하면 더 효율적인 학습을 할 수 있습니다.

확률과 통계

베르누이분포(Bernoulli distribution)

두 가지 가능한 결과만을 갖는 분포로, 일반적으로 성공을 1로, 실패를 0으로, 성공 확률을 pp로 표현합니다.

xx 00 11
P(X=x)P(X = x) 1p1-p pp

베르누이분포의 기대값과 분산입니다.

E(X)=pVar(X)=p(1p)E(X)= p \newline Var(X) = p(1-p)

이항분포(binomial distribution)

이항 분포는 연속된 nn번의 독립적 시행에서 각 시행이 확률 pp를 가질 때의 이산 확률 분포입니다.

pp확률을 지닌 사건을 nn번 시행 중에 kk번 성공할 확률은 다음과 같습니다.

Pr(K=k)=f(k;n,p)=(nk)pk(1p)nkPr(K = k) = f(k;n,p) = {n \choose k}p^k(1-p)^{n-k}

정규분포(normal distribution)

연속 확률 분포의 하나이며, 수집된 자료의 분포를 근사 하는데 자주 사용합니다. 평균 μ\mu과 표준편차 σ\sigma로 인해 결정됩니다. 이때의 분포를 N(μ,σ2)N(\mu, \sigma^2)로 표현하며, N(0,1)N(0, 1)표준 정규 분포라고 합니다.

최대우도추정(maximum likelihood estimation)

**최대우도추정(maximum likelihood estimation)**은 모수(parameter)가 미지의 θ\theta인 확률분포에서 뽑은 표본 xx들을 바탕으로 θ\theta를 추정하는 기법입니다. 이는 확률질량함수에서 θ\theta에 대해 편미분을 시행함으로써 가능합니다.

딥러닝에서는 모델에 XX를 넣었을 때 실제 YY에 가장 가깝게 반환하는 θ\theta를 찾아내는 것이 목표입니다. 이에 대한 확률질량함수를 편미분 함으로써 원하는 값을 찾아 내는 것이 가능합니다.

θML=argmaxθPmodel(YX;θ)=argmaxθi=1mlogPmodel(YiXi;θ)\theta_{ML} = arg \max_{\theta} P_{model} (Y|X;\theta) \newline = arg \max_{\theta} \sum_{i=1}^m \log {P_{model} (Y_i|X_i;\theta)}

베이즈 정리(Bayes' Theorem)

아래의 식은, 베이즈 정리의 수학적 정의입니다.

p(AB)=p(BA)p(A)p(B)p(A|B) = \frac {p(B|A)p(A)} {p(B)}

위 식에서 p(A)p(A)A의 사전 확률(Prior Probability), p(AB)p(A|B)A의 사후 확률(Posterior Probability), p(BA)p(B|A)우도(Likelihood), p(B)p(B)B의 사전 확률입니다.

이 식이 나타내는 핵심은, 관찰결과를 토대로 사후 확률을 지속적으로 업데이트 해 갈 수 있다는 것입니다. 자세한 내용은 솔라리스님의 블로그 게시글을 참조 하세요.

기초 딥러닝 용어

활성화 함수(Activation Function)

딥러닝에서는 출력 값이 있다면, 그냥 내보내지 않고, 활성화 함수를 거쳐 내보냅니다. 그 이유는 만약 일반적인 **선형 함수(ax+bax + b 꼴)**를 통해서 출력 값을 내보내게 된다면, 층을 쌓는 의미가 없게 되기 때문입니다. c(ax+b)+d=acx+bc+dc(ax + b) + d = acx + bc + d 에서, ac,bc,dac, bc, d상수이기 때문입니다.

예로는 Sigmoid 함수, ReLU 함수, 계단 함수 등과 같은 비선형 함수들이 있습니다.

손실 함수(Loss Function)

손실 함수는 모델에 대입하여 나온 결과와 실제 정답 간의 오차를 나타내는 함수입니다. 모델은 손실 함수의 값을 줄이는 방향으로 경사 하강법을 실시 합니다.

예시로는 MSE(Mean of Squared Error) , 크로스엔트로피 등등이 있습니다.

경사 하강법(Gradient descent)

경사 하강법은 함수의 기울기를 구하여 기울기가 낮은 쪽으로 계속 이동시켜서 극값에 이를 때까지 반복하는 기법입니다.

배치(batch)

모델 학습시 한 번 학습(기울기 학습) 할 때 사용하는 데이터의 집합 입니다.

미니 배치(mini-batch)

전체 배치 중에서 무작위로 선택한 부분 집합으로, 행렬 계산을 통해 효율적인 계산을 하기 위해 사용됩니다. 배치 크기는 일반적으로 10~1000 정도를 유지 합니다.

과적합(overfitting)

과적합은 기계 학습에서 학습 데이터를 과하게 학습하는 것을 뜻합니다. 과적합이 발생하게 되면 학습 데이터에 대해서는 오차가 감소하지만, 실제 데이터에 대해서는 오차가 증가하는 문제점이 있습니다.

정규화(Regularization)

정규화과적합을 방지 하기 위해서 등장 하였으며 모델 복잡도에 대해 페널티를 부여 함으로써 작동합니다. L1 정규화, L2 정규화, 드롭아웃 정규화 등이 있습니다.

역전파(backpropagation)

역전파는 원하는 값이 나올 수 있도록, 연쇄 법칙 등의 수학적 원리를 이용하여, 출력층에서 제시한 값에 대해, 실제 원하는 값으로 나오도록 오차를 이용해 출력층부터, 입력층까지, 모델의 가중치를 학습하는 방법입니다.

One-Hot-Encoding

원 핫 인코딩은 여러 가지 범주형 데이터에 대해, 노드를 0 혹은 1을 갖는 리스트로 나타내는 기법입니다.

[0, 1, 0, 0, 0, 0, 0]
[0, 0, 0, 1, 0, 0, 0]

각각, 1번째 범주, 3번째 범주에 해당합니다.

기울기 소실(Vanishing Gradient)

기울기 소실은 역전파 과정에서 기울기가 0으로 수렴하여 학습이 되지 않는 현상을 이야기 하는 것입니다. 그 반대로 기울기가 폭주 하는 것을 **기울기 폭주(Gradient Exploding)**라고 합니다.

신경망의 계층이 깊으면 깊을 수록 자주 발생하며, 특히 Sigmoid 함수의 기울기는 최대 기울기가 0.3 이기 대문에 곱하면 곱할 수록, 0에 가까워져 기울기가 사라지는 경우가 발생합니다.

출처

Deep Learning Summary 시리즈의 다른 글
Recent Posts in Deep-Learning Category