위 파일은 'ADAM : A METHOD FOR STOCHASTIC OPTIMIZATION' 논문 파일입니다.
지금부터 Optimizer 알고리즘 중 하나인 Adam에 대해 공부한 내용을 정리하도록 하겠습니다.
편의상 알려주는 느낌으로 편하게 말해볼게요 😁
ADAM에 대해서 이렇게 정의했어!🤗
*1. lower-order moments 의 adaptive 추정치를 기반으로,
*2. stochastic objective function 을 최적화하는,
first-order gradient-based(한 번 미분한, 기울기 기반의) 알고리즘이래~
lower-order moments가 뭔데?
-> ADAM은 lower-order moments라는 개념을 사용하여 학습속도를 조절해서 최적의 결과를 찾아. 쉽게 말해서 데이터 분포의 특징을 파악하여 학습과정을 효율적으로 진행하도록 만들어줘.
왜 사용하는지는 알겠찌???🧐
여튼, 데이터 분포의 특징을 파악한다고 했잖아~? 더 정확히는 데이터 분포의 모양과 특징을 나타내는 통계량이라고 알고 있어둬.
lower-order moments는 두개의 moment, First-Order Optimization과 Second-Order Optimization을 사용하는데
First-Order Optimization는 현재 위치에서 얼마나 가야하는지, 즉 학습 방향을 나타내! 쉽게 말해 언덕을 내려가는 공처럼 현재 위치에서 최적점(바닥)까지 얼마나 가야하는지를 알려줘.
Second-Order Optimization는 얼마나 빨리 가야하는지, 즉 학습 속도를 나타내! 험한 언덕에서는 천천히, 완만한 언덕에서는 빠르게 이동하도록 조절하는 역할을 해.
stochastic objective function가 뭔데?
되게 어려운 표현 같지만, '랜덤한 변수를 포함하는 손실 함수'를 의미해!
손실함수에는 MSE, RMSE, BCE, CCE, RSS 등등이 있는거 알지? 이거 모르면 공부하고 다시와야해..~^~^~
Optimizer의 종류 중에 SGD, AdaGrad, RMSProp, Adam은 모두 First-Order Optimization란다!
한 번 미분한 weight(가중치)만 optimize에 반영이 돼. 그런데 First-Order Optimization에서 노란색 직선처럼 한 방향으로만 Optimize하기 때문에 gradient(기울기)를 수정하기가 어려워ㅜ
-> 이를 보완하기 위해서 나온 것이 Second-Order Optimization야! 그런데 Second-Order Optimization는 역전파를 위해서 역행렬을 구할 때, 시간 복잡도가 어마어마어마어마어마~~ 하게 증가해. 이런 이유로 아직까지는 First-Order Optimization를 사용하고 있어.
🤨ADAM의 장점이 뭐길래 사용하는거야??!
구현이 간단하고 계산이 효율적인데다가 메모리도 조금만 필요하기 때문이야!
ADAM장점부터 이어서 작성 -> 05.07
'전공 공부 > AI(인공지능)' 카테고리의 다른 글
컴공 대학생이 말아주는 CNN 개념과 코드구현 (0) | 2024.05.11 |
---|