DS and stats

딥러닝 학습방법 이해하기 본문

개인공부

딥러닝 학습방법 이해하기

으르미 2022. 8. 10. 06:58

회귀식이 데이터를 선형적으로 설명하는 모델이었다면, 

비선형모델인 신경망 모델을 설명하는 수식에 대하여 알아볼 것이다. 

 

신경망 모델: 선형모델+ 비선형 모델의 함수

 

출처: 네이버 부트캠프

주로 데이터를 벡터나 매트릭스로 많이 나타내기 때문에

선형대수를 공부하는 것은 필수인 것 같다. 그래도 엄청 어려운 개념은 아니고 invertible이나 determinant 등의 기본적인 내용부터 학습하면 이해하는 데 도움이 많이 될 것 같음!

 

통계적으로 설명하자면, 

response variable이 행렬 O가 되고, XW가 선형모델이 되고 b는 noise라고 이해하면 될 것 같다. 

 

softmax: 모델의 출력을 확률로 해석할 수 있게 변환해주는 연산

분류 문제를 풀 때, 선형모델과 소프트맥스 함수를 결합하여 예측한다. 

보통 선형결합같은 경우에는 모든 실수값을 성분으로 가질 수 있기 때문에 확률변수가 될 수 없다. 

-> 소프트맥스 함수를 이용하여 확률벡터로 변환을 해서 사용하게 된다. 

 

** 추론을 하는 경우에는 one-hot 벡터를 이용하여

해당 조건에 해당될 때는 1을 출력하고, 아니면 0을 출력함으로써 상태를 결정하게 된다. 

 

앞서서, 신경망 모델은 선형모델과 비선형모델의 함수로 이루어져 있다고 했는데, 

앞으로는 선형모델 + 활성함수를 합성한 함수로 나타낼 것이다. 

 

활성함수(activation function)

실수 위에 정의된 비선형함수로서 딥러닝에서 매우 중요한 개념이다.

활성함수를 안쓰면 선형모델과 차이가 없다. 

시그모이드 함수나 tanh함수는 전통적으로 많이 쓰이던 활성함수이지만, 딥러닝에서는 ReLU 함수를 쓰고 있다.

왜 딥러닝에서 층을 여러 개 쌓는가?

층이 깊을 수록 목적함수를 근사하는데 필요한 뉴런(노드)의 숫자가 훨씬 빨리 줄어들어 

좀 더 효율적인 학습이 가능하다. 

그렇다고 최적화가 잘 된다는 것은 아님. -> 점점 복잡해짐 

 

역전파 알고리즘(backpropagation) 

머신러닝 1학기 수업 때 수식으로는 이해가 가지만

실제로 이해하기 너무 어려웠던 backpropagation과 Gaussian progress 😭

위층에 있는 gradient를 계산을 해서 점점 아래층의 gradient vector를 반영하여 계산하는 것이다. 

이 과정에서 합성함수의 미분법을 이용함. 

역순으로 계산을 해야해서 각 노드의 텐서값을 저장해야만 미분 계산이 가능하다.

-> 메모리를 많이 잡아먹음

 

조건부확률

조건부 확률 p(y|x)는 입력변수 x에 대해 정답이 y일 확률이다.

로지스틱 회귀에서 사용했던 선형모델과 소프트맥스 함수의 결합은 데이터에서 추출된 패턴을 기반으로 확률을 해석하는 데 사용

분류문제에서 softmax는 데이터 x로부터 특징패턴 $\pi(x)$와 가중치 행렬 W을 통해 계산하게 된다.

 

MC(Monte Carlo) Sampling 

확률분포를 모들 때 데이터를 이용하여 기댓값을 계산하려면 몬테카를로 샘플링 방법을 사용해야한다. 

독립 추출만 보장된다면 대수의 법칙에 의해 수렴성 보장

개인적으로 내 논문에서도 확률분포를 명시적으로 모르기 때문에 몬테카를로 방법이나 Laplace 둘 중에 Laplace를 사용하고 있다. 

 

 

'개인공부' 카테고리의 다른 글

[DS/DA] 면접 준비하기  (1) 2022.08.17
[Python] File / Exception / Log Handling  (0) 2022.08.08
Comments