떼닝로그

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

Boostcamp AI Tech/AI Mathematics

딥러닝 학습방법 이해하기

떼닝 2022. 6. 16. 03:21

Softmax 연산

  • 모델의 출력을 확률로 해석할 수 있게 변환해주는 연산
  • 출력물의 모든 값을 고려
  • 분류(classification) 문제를 풀 때 선형모델과 softmax 함수 결합하여 특정 vector가 어떤 class에 속할 확률 예측

softmax 함수식

def softmax(vec):
    # denumerator : 각 출력 vector
    denumerator = np.exp(vec - np.max(vec, axis=-1, keepdims=True)	# np.max 사용함으로써 overflow 방지
    # numerator : 각 출력 vector들의 합에 exponential 연산 수행
    numerator = np.sum(denumerator, axis=-1, keepdims=True)
    val = denumerator / numerator
    return val
  • 학습에는 softmax를 사용하고, 추론에서는 one-hot vector로 최대값을 가진 주소만 1로 출력하는 연산 사용

활성함수(activation function)

  • 활성함수는 실수 차원 위에 정의된 비선형 함수
  • 활성함수를 사용하지 않으면 딥러닝은 선형모형과 차이가 없게 됨
  • 해당 주소에 있는 출력값만을 고려함 (softmax는 출력물의 모든 값을 고려함)
  • 선형 모델 -> 비선형모델 변환 가능
  • 대표적인 예시로는 sigmoid 함수, hyperbolic tangent 함수, ReLU 함수

신경망을 수식으로 분해해보자

  • 신경망은 선형모델과 활성함수(activation function)을 합성한 함수. 비선형모델
    행렬로 표한한 신경망
    • 데이터가 바뀌면 결과값도 바뀌게 됨. 이에 따라 출력 벡터의 차원은 d에서 p로 바뀜
    • O : 출력값
    • X : 전체 data. 각각의 data point들로 이루어진 행들로 구성
    • W : 가중치 행렬. data들의 point를 출력으로 뱉어주는 행렬. data를 다른 공간으로 보내주는 역할 함.
    • b : y절편. 각 행들이 전부 같은 값을 가지게 됨. (nxd) x (dxp)으로 출력으로 나오는 값과 같은 차원이어야 함
신경망 모델
  • x와 o를 이어주는 선은 (dxp) 차원의 가중치행렬 W. 이를 통해 출력 벡터의 차원이 바뀜
  • 선형모델의 결과물인 o에 softmax 함수를 합성하면 확률벡터가 되므로 특정 클래스 k에 속할 확률로 해석 가능
  • z는 변형시킨 vector를 잠재(hidden) vector인 Neuron으로 나타낸 것.
  • σ는 활성함수를 나타냄.
  • 활성함수 σ는 잠재벡터 z의 각 노드에 개별적으로 적용하여 새로운 잠재벡터 H를 만듦
  • 잠재벡터 H에서 가중치 행렬 Wb를 통해 다시 한 번 선형변환해서 출력하게 되면 (W2, W1)를 parameter로 가진 2층 신경망이 나옴

다층 퍼셉트론 (Multi Layer Perceptron)

MLP 구조 및 식
  • 다층(multi-layer) 퍼셉트론(MLP)는 신경망이 여러 층 합성된 함수
  • MLP의 parameter는 L개의 가중치 행렬 W(L), ..., W(1)로 이루어져 있음
  • 다층 구조를 이용함으로써 임의의 연속함수 근사 가능
  • 층이 깊을수록 목적함수를 근사하는데 필요한 뉴런(노드)의 숫자가 빨리 줄어들어 효율적인 학습 가능
  • 적은 parameter로 훨씬 더 복잡한 함수 표현 가능
  • 층이 얇으면 필요한 뉴런의 숫자가 기하급수적으로 늘어나기 때문에 넓은(wide) 신경망이 되어야 함
  • l = 1, 2, ... , L까지 순차적인 신경망 계산을 순전파(forward propagation)

역전파 알고리즘 (backpropagation)

  • 더 많은 parameter들에 대해 경사하강법 적용
  • 각 층에서 계산된 gradient가 아래층으로(역순) 전달되면서 gradient 값 update
  • 손실함수가 L일 때, 역전파는 σL / σW(l) 정보를 계산할 때 사용. 각각의 가중치 행렬에 대해 손실함수 미분

역전파 알고리즘 vs 순전파 알고리즘

  • 순전파 알고리즘(forward propagation)은 입력을 받아서 선형모델과 활성화 함수를 반복적으로 수행하는 연산
  • 역전파 알고리즘이 순전파 알고리즘에 비해 memory 사용량이 많음
  • 합성함수 미분법인 연쇄법칙(chain-rule) 기반 자동미분(auto-differentiation) 사용
propagation 연산식. 파란색 화살표가 forward, 빨간색 화살표가 back propagation의 연산 흐름

 

 

'Boostcamp AI Tech > AI Mathematics' 카테고리의 다른 글

통계학 기초  (0) 2022.06.17
확률론 기초  (0) 2022.06.16
경사 하강법 (Gradient Descent)  (1) 2022.06.15
행렬 (Matrix)  (0) 2022.04.04
벡터 (Vector)  (0) 2022.04.04
Comments