optimization이란?

- loss를 minima하는 weight를 찾아가는 과정

 

loss function 정리

regurization loss는 data랑 상관없이 weight에만 영향을 받음

 

optimization의 그림 설명

- 산속에서 눈을 가리고 최적의 곳을 찾아가는 과정

 

optimizatation 전략 1. Random search

1000번을 돌리는데 랜덤하게 선택

-> 절대 쓰면 안 됨

 

전략2. Follow the slope=gradient(경사)

1차원일 때 수치적으로 미분을 통해 기울기를 구함

 

수식에 대입한다면?

- gradient가 음수라는 것은 기울기가 내려가는 방향으로 설정됨

- 두 번째 값으로 하면 0.6이 나옴 => 위쪽으로 나오는 기울기

 

미분(numerical)을 한다는 것은?

- 근사치/정확한 값이 아님

- 평가를 하는 과정이 매우 느림

 

loss는 기본적으로 weight의 function

- weight가 변할 때 loss가 어느정도 변하냐 -> 미분을 사용하는 이유

 

analytic gradient(언제나 사용함)

- 빠르고 정확함

 

gradient descent의 코드

loss fun, data, weight로 gradient를 구하고, step size(lr)를 곱한 후 기존 weight에서 빼줌

 

full-batch gradient descent : training set 전체를 사용

mini-batch '' : training set의 일부만을 활용 -> 효율적 (size = 32/64/128/256), cpu/gpu의 환경에 따라 설정

 

mini-batch는 loss가 많이 튐(적은 데이터만을 사용하기에)

적절한 lr를 설정해야 함.

decay : lr를 점점 낮춰가는 것

 

이미지를 분류한다는 것

feature 추출 -> concat -> linear classifier에 적용

 

example : color histogram

모든 pixel의 color 파악 -> 각 color의 bin이 몇 개인지 -> 이미지 내의 각 bin에 해당하는 pixel이 몇개인가

 

example : hog/sift features

edge 방향을 구분해서, 방향에 몇 개가 속하는가

 

example : bag of words

주파수 등을 통해 vector로 표현, 가장 유사한 words를 추출해서 vector 적용

 

 

전통적 방식(feature 추출) vs 딥러닝(이미지 자체를 함수에 던져줌)

- 딥러닝에서는 feature 추출할 필요가 없음

 

 

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기