[U] Week 1 - 딥러닝 학습방법

JaeJun Lee ·2022년 9월 22일
0

부스트캠프 AI Tech

목록 보기
4/30

분류와 같은 복잡한 문제를 해결할 때는 기본적으로 선형 모델이 아닌 비선형 모델이다.

소프트맥스

소프트맥스(Softmax) 함수는 모델의 출력을 지수함수를 통해 확률로 해석할 수 있게 변환해주는 연산이다.

  • 분류(Classification) 문제를 해결할 때 선형모델과 소프트맥스 함수를 결합하여 예측한다.
  • 너무 큰 벡터가 입력으로 들어오게 되면 오버플로우가 발생할 수 있기 때문에 이를 방지하기 위해 np.max 함수를 사용한 최대값을 벡터에서 빼준 뒤 지수 함수를 취한다.
  • 추론을 할 때는 원-핫(one-hot) 벡터로 최대값을 가진 주소만 1로 출력하는 연산을 사용해서 학습이 아닌 추론에서는 굳이 소프트맥스를 사용하진 않는다.

신경망

신경망은 선형모델과 활성함수(Activation function)을 합성한 함수이다.
선형모델로 나온 출력값에 소프트맥스를 취함으로써 분류 문제를 해결할 수 있다.

  • 선형모델의 결과물을 원하고자 하는 의도로 바꿔서 해석할 수 있다.
    • 이런 활성함수 트릭을 활용해 소프트맥스가 아닌 다른 활성함수를 사용하여 비선형함수를 모델링할 때 사용할 수 있다.
    • 활성함수는 보통 선형모델이나 행렬곱을 사용하지 않고 비선형 함수로서 선형 모델로 나오게 되는 출력물 각각에 대한 원소에 적용하는 것이다. (벡터가 아닌 스칼라 값이 인풋)
    • 선형 모델로 나온 출력물을 비선형 모델로 변환시킬 수 있고 변환된 벡터를 잠재 벡터, 히든 벡터 혹은 뉴런이라고 부른다.

다층(multi-layer) 퍼셉트론(MLP)은 신경망이 여러층 합성된 함수이다.
1...L1\, ... \,L까지 순차적인 신경망 계산을 순전파(Forward propagation)이라고 부른다.

  • 학습이 아니라 주어진 입력이 왔을 때 출력물을 내뱉는 과정을 표현하는 연산이다.
  • 순전파는 xx라는 입력을 받아 최종 출력까지 보낼 때 선형모델과 활성함수를 연속적으로 적용하는 연산.

이론적으로는 2층 신경망으로도 임의의 연속함수를 근사할 수 있다. (Universal approximation theorem)
그러나 층이 깊을수록 목적함수를 근사하는데 필요한 뉴런(노드)의 숫자가 훨씬 빨리 줄어들어 좀 더 효율적으로 학습이 가능하다.

  • 층이 얇으면 필요한 뉴런의 숫자가 기하급수적으로 늘어나서 넓은 신경망이 되어야 한다.
  • 층이 깊다고 해서 복잡한 함수를 근사할 수는 있지만 최적화가 더 쉽다는 것은 아니다. (복잡한 함수를 표현할수록 최적화하기 어렵다)

경사하강법을 적용해서 각각의 가중치 행렬들을 학습시킬 때 각각의 가중치에 대한 그레디언트 벡터를 계산해야 경사하강법을 적용할 수 있다.

  • 선형회귀모델에서 경사하강법을 적용할 때 선형모델의 계수에 해당하는 b에 그레디언트 벡터를 계산해서 파라미터를 업데이트했는데 딥러닝에서도 같다.
  • 딥러닝에서는 각층에 존재하는 파라미터들의 미분을 계산해서 그 미분들을 가지고 파라미터를 업데이트 해야한다. 경사하강법에서 가중치를 업데이트할 때 행렬들의 y절편을 포함한 모든 원소의 개수만큼 경사하강법이 적용된다.
    • 선형모델보다 많은 파라미터가 필요하다.

활성함수

활성함수를 쓰지 않으면 선형모형과 차이가 없다.
시그모이드(Sigmoid)(Sigmoid) 함수나 tanhtanh 함수는 전통적으로 많이 쓰이던 활성함수지만 딥러닝에선 ReLUReLU 함수를 많이 쓰고 있다.

역전파 알고리즘(Backpropagation)

역전파 알고리즘의 목적은 각각의 가중치 행렬 W(l)에 대해서 손실 함수에 대한 미분을 계산할 때 사용한다.
각 층 파라미터의 그레디언트 벡터는 윗층부터 역순으로 계산하게 된다.

  • 합성함수 미분법인 연쇄법칙(Chain-rule)을 기반으로 한 자동미분(auto-differentiation)을 통해 그레디언트 벡터를 전달한다.
  • W(l)W(l)은 행렬이므로 각 성분에 대해 편미분을 해야한다.

Reference

0개의 댓글