2022-09-21 Naver boostcamp 일일노트
in Study
경사하강법
그래디언트 벡터
- 각 변수의 편미분으로 이루어진 벡터
- 해당 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 - 하지만 층이 깊어질 수록 근사에 필요한 뉴런 숫자가 훨씬 빨리 줄어들어 효율적인 학습이 가능하다.
- 이론적으로는 2층 신경망으로도 임의 연속함수를 근사할 수 있다.
- 역전파 알고리즘
- 윗층의 그래디언트 벡터를 이용, 아래 층의 그래디언트 벡터를 계산한다.
- 그래디언트가 역으로 아래로 전파되는 것.
- 연쇄법칙 기반 자동미분을 사용함.
- 순전파에 비해 각 노드의 미분값을 기억해야 미분 연산이 가능하므로 역전파는 조금 더 메모리 소요가 크다.