일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- action value function
- linearclassification
- 2019기사일정
- state value function
- atari RL
- DeepLearning
- multiagent
- 큐넷시험일정
- TensorFlow
- 인공지능
- cnn
- seednet
- 텐서플로로 시작하는 딥러닝
- Reinforcement Learning
- 2019정처기
- value function
- 멀티에이전트
- reinforcement
- 강화학습
- 딥러닝
- 탑코더
- 소스코드 올리기
- 텐서플로우
- 티스토리 코드올리기
- 머신러닝
- RL
- ML
- 알고리즘
- classification
- interesting party
- Today
- Total
돌아서면 까먹어서
ML 개념 정리 - Optimization 18.12.01 본문
<Optimization>
- minimum loss 값을 찾는 것.
gradient를 계산하는 것은 가장 급경사를 찾아내는 것이다.
Input 개수 = gradient 개수
gradient를 계산하는 방법은 두가지
1. numeric gradient : 느리고 근사값이지만 계산 쉬움.
2. analytic gradient : 빠르고 정확하지만 미분 필요. 계산 실수가 있을 수 있음.
numeric gradient는 도함수 공식을 사용해서 Weight 요소들과 이동간격인 h를 대입해서 gradient를 전부 구해서 update한다. (너무너무 오래걸림..)
analytic gradient를 사용하게 되면, 일반적으로 사용하는 미분을 해서 구한다. (바로 답 나옴. 빠르다)
gradient check : numeric으로 구한 gradient와 analytic 으로 구한 gradient를 비교해서 틀린 부분을 찾아내는 것.
가장 대표적인 방법
<gradient descent>
1. 임의의 값으로 W를 초기화
2. loss, gradient 계산
3. gradient를 바탕으로 W 업데이트
data set이 너무 크면 전부 구하기가 힘드니까 mini batch를 뽑아서 gradient를 계산하는 MGD(minibatch gradient descent)를 사용한다.
왜 MGD가 가능한 것일까?
-> data들 간이 상관관계가 있기 때문이다. 120만개를 평균내서 구한 loss나, 적은 수의 mini batch에서 구한 loss를 구한 것이다 똑같다.
그래서 mini batch에서 gradient를 구해 자주 update 시켜주는 것이 오히려 더 빠르게 수렴하기도 한다.
mini batch는 대부분 2승수로 정한다고 한다.
SGD(Stochastic Gradient Descent)라고도 한다. (이 의미가 더 많이 쓰임)
이 포스팅은 http://cs231n.stanford.edu 을 바탕으로 작성했습니다.
* 잘못된 부분은 댓글 부탁드립니다.
'ML > ETC' 카테고리의 다른 글
ML 개념 정리 - CNN(Convolutional Neural Network) 18.12.01 (0) | 2018.12.01 |
---|---|
ML 개념 정리 - Backpropagation 18.12.01 (0) | 2018.12.01 |
Unity ML-Agents 사용법 18.11.27 (0) | 2018.11.27 |
ML 개념 정리 - Activation function&Loss function(Softmax, multiclass SVM) 18.11.26 (0) | 2018.11.26 |
ML 개념 정리 - Linear Classification 18.11.22 (0) | 2018.11.22 |