티스토리 뷰

CS231n

CS231n Lec3(2) Optimization & Image Features🙋

망고농장주인 2021. 6. 25. 00:45

기록을 해야 하는 것을 알기 때문에 이렇게 또 적어봅니다.


👏Optimization이란

Loss를 최소화하는 W를 찾아가는 과정입니다. 여기서 방법과 목적을 잊지말아야합니다. loss 최소화를 위해 그에 맞는 W를 어떻게 찾을 건지에 대한 공부입니다.

  1. Random Search
    임의로 가중치(W)를 선택해서 해당 가중치의 loss를 계산합니다. 당연히 실제로 쓰이지는 않습니다. 정확도가 아주 낮기 때문입니다.
  2. Follow the slope
    산 정상에서 눈을 가린 채 내려간다고할 때, step마다 기울기가 내려가는 쪽으로 한 걸음씩 걸어야 할 것입니다.
    2-1. Numeric gradient (수치적으로 계산)


    코드에 h = 0.00001 을 넣어서 돌린다는 것은 미분이 아니라 그저 기울기를 구하는 것이다.

W 의 모든 차원에서 h를 더하고 기울기 값을 구해야 하기 때문에 시간이 많이 걸린다. 그래서 또 실제로는 쓰이지 않습니다.

 

2-2. Analytically gradient (해석적으로 접근)
뉴턴과 라이프니츠가 미분을 알아냈고 실제로는 이 방법으로 evalute합니다. 하지만 에러의 가능성도 있습니다. 그래서 Analytically gradient를 확인하는 용도로 Numeric gradient를 사용하고 이를 Gradient check이라고 합니다.

 

3.Gradient Descent 경사 하강법
최저점을 찾을 수 있게 gradient가 증가하는 반대 방향으로 움직인다.
3-1. mini batch
전체 학습 데이터가 아닌 일부분만 사용하는 것입니다. 일반적인 미니 배치 사이즈는 32/64/128개의 학습 데이터를 사용한다고 합니다. GPU 메모리에 맞게 설정하면 됩니다.


👏Image Features

raw image에서 RGB를 각각 분류해서 추출해내고 이것을 다시 이어붙이면 큰 벡터로 표현할 수 있다.
Color Histogram으로도 표현할 수 있습니다. 히스토그램은 이미지가 얼마나 같은 색을 가지고 있는지 통계적 수치처럼 확인할 수 있다.

  1. HOG/SIFT Features
    8x8 픽셀에서 이미지 edge의 정보를 요약한 것입니다.
  2. Bag of Words
    텍스트 마이닝과 유사한 방법이다.
    1. raw image를 visual word vectors로 표현하기 위해 숫자로 이뤄진 벡터 형태로 embeding 한다.
    2. k-means 알고리즘으로 1000개의 중심 점을 갖도록 학습시킵니다.
    3. 각 이미지의 visual word들을 1000-d 벡터로 표현할 수 있습니다.

2012 이전
이미지를 가장 잘 나타내는 feature를 추출하는 것이 중요했습니다.

 

2012 이후
AlexNet이 등장하면서 cnn 구조로 이미지를 분류하기 시작하면서 훌륭한 성능을 낼 수 있는 구조를 고민하게 되었습니다.