2022-09-21 Naver boostcamp 일일노트

경사하강법

그래디언트 벡터

  • 각 변수의 편미분으로 이루어진 벡터
  • 해당 system이 가장 빨리 증가하게 되는 방향을 가리키게 됨.

무어-폔로즈 역행렬

  • nxn 행렬에서만 역행렬이 존재할 수 있지만, 모든 형태의 행렬에서 ‘의사’역행렬을 계산할 수 있는데 이를 무어-펜로즈 역행렬 (Moore–Penrose pseudoinverse matrix) 라 한다.

경사하강법으로 선형회귀 계수 구하기

  • 그래디언트 벡터를 실제 계산해서 구해보기.

경사하강법은 만능?

  • 이론적으로 미분가능하고 볼록(convex)한 함수에 대해서는 수렴 보장됨.
  • 선형회귀의 경우 목적식이 회귀계수 $\beta$에 대해 볼록함수이기 때문에 수렴이 보장됨.
  • 하지만 비선형회귀의 경우 수렴이 보장되지 않는다. 따라서 일반 경사하강법을 쓰지 않고 변형된 형태 (SGD 등)을 이용한다.

확률적 경사하강법 (Stochastic Gradient Descent, SGD)

  • 모든 데이터를 사용하여 업데이트를 하지 않고, 일부를 이용해 업데이트한다. mini-batch를 이용.
  • 질문 : 미니배치를 선정하는 기준이 따로 있나? 완전히 랜덤인가? SGD 이외에 다른 방법에서는 미니배치의 선정이 다른가?
    • 찾아본 결과 : https://www.sciencedirect.com/science/article/pii/S0003682X20306770#b0140 단순 random selection을 주로 이용하지만, 상황에 따라 data selection을 다르게 하는 것이 성능 향상에 도움이 된다.
  • 원래 극소점이더라도 mini-batch에서는 그래디언트가 0이 아닐 수 있기 때문에 지역 극소를 탈출할 수 있음.

소프트맥스 연산

  • softmax 함수는 모델 출력울 가지고 분류 확률을 반환하는 함수이다. (예: 0~9 중 어느 숫자일지 확률을 리턴)
  • 소프트맥스 구현 - max 값을 분모에 이용하여 지수함수 시 overflow 방지
  • 분류 모델에서 학습 때는 이를 이용하지만, 추론 시에는 output 중 max 값만 이용하여 예측하면 되므로 (one-hot 방식) softmax를 굳이 이용하지 않는다.

활성화 함수

  • 딥러닝과 일반 선형모델의 차이는 활성화함수의 유무이다.
  • 선형모델 + 활성화 함수 = Neural Network (신경망)
  • 질문 : Relu의 음수값에서 발생하는 정보 손실은 얼마나 문제가 되는가?? pRelu, leakyRelu 등을 이용하는 것이 어느 정도의 효용이 있는가?
  • 가중치가 몇개 있느냐에 따라 몇 층의 신경망이 구성된다.

신경망, 딥러닝 학습원리

  • 왜 층을 여러개를 쌓는가?
    • 이론적으로는 2층 신경망으로도 임의 연속함수를 근사할 수 있다.
      universal approximation theorem
    • 하지만 층이 깊어질 수록 근사에 필요한 뉴런 숫자가 훨씬 빨리 줄어들어 효율적인 학습이 가능하다.
  • 역전파 알고리즘
    • 윗층의 그래디언트 벡터를 이용, 아래 층의 그래디언트 벡터를 계산한다.
    • 그래디언트가 역으로 아래로 전파되는 것.
    • 연쇄법칙 기반 자동미분을 사용함.
    • 순전파에 비해 각 노드의 미분값을 기억해야 미분 연산이 가능하므로 역전파는 조금 더 메모리 소요가 크다.

© 2023. All rights reserved.