딥러닝 학습방법 이해하기

pseeej·2021년 8월 4일
0

AI_Mathematics

목록 보기
4/9
post-thumbnail

softmax 연산

  • 모델의 출력을 확률로 해석할 수 있게 변환해주는 연산
  • 출력물의 모든 값을 고려함
  • 분류(classification) 문제를 풀 때 선형모델과 softmax 함수 결합하여 특정 vector가 어떤 class에 속할 확률 예측
  • softmax(o) = softmax(Wx+b)
def softmax(vec):
    # denumerator : 각 출력 vector
    denumerator = np.exp(vec - np.max(vec, axis=-1, keepdims=True)
    # numerator : 각 출력 vector들의 합에 exponential 연산 수행
    numerator = np.sum(denumerator, axis=-1, keepdims=True)
    val = denumerator / numerator
    return val
  • 추론을 할 때는 one-hot vector 사용

활성함수(activation function)

  • 활성함수는 실수 차원 위에 정의된 비선형 함수
  • 해당 주소에 있는 출력값만을 고려
  • 선형 모델 -> 비선형모델 변환 가능
  • 대표적인 예시로는 sigmoid 함수, hyperbolic tangent 함수, ReLU 함수

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

  • 신경망은 선형모델과 활성함수(activation function)을 합성한 함수. 비선형모델

    - 이 때 X는 nxd행렬로 전체 데이터를 나타내고, O는 nxp로 출력을 나타냄
    - x와 o를 이어주는 선은 dxp 가중치행렬 W. 이를 통해 출력 벡터의 차원이 바뀜
    - z는 변형시킨 vector를 잠재(hidden) vector인 Neuron으로 나타낸 것.
    - σ는 활성함수를 나타냄.
  • 다층(multi-layer) 퍼셉트론(MLP)는 신경망이 여러 층 합성된 함수
    - 다층 구조를 이용함으로써 임의의 연속함수 근사 가능
    • 층이 깊을수록 목적함수를 근사하는데 필요한 뉴런(노드)의 숫자가 빨리 줄어들어 효율적인 학습 가능
  • l = 1, 2, ... , L까지 순차적인 신경망 계산을 순전파(forward propagation)

역전파 알고리즘 (backpropagation)

  • 딥러닝에서 주로 사용
  • 더 많은 parameter들에 대해 경사하강법 적용
  • 각 층에서 계산된 gradient가 아래층으로(역순) 전달되면서 gradient 값 update
  • 합성함수 미분법인 연쇄법칙(chain-rule) 기반 자동미분(auto-differentiation) 사용

+) Deep Learning에서의 Neuron을 Tensor.
memory 사용량은 back propagation > forward propagation

profile
세진니의 눈물 가득 블로그

0개의 댓글