본문 바로가기

Open Lecture Review/Deep Learning for Computer Vision

Lec5_Neural Networks

1. Limitations of Linear Classification

① 비선형 구조 구분 안됨

② 다른 모양의 class 인식 안됨 (in visual viewpoint)

2. Solution 

① Feature Transforms

② Image Features

  • Histogram of Oriented Gradient (HoG) : 픽셀의 변화량의 각도와 크기를 고려하여 히스토그램 형태의 feature를 추출하는 방법 (객체 탐지에 쓰임) 

   - 각 픽셀의 edge 방향/강도를 계산한다. (컬러 정보 생략)

   - 이미지를 8x8 크기로 나눈다.

   - 각 크기내에서, edge strength로 가중된 edge direction의 히스토그램을 계산한다. 

 

  • Bag of Words (Data-Driven!)

   - 각 이미지에서 특성을 도출한다. 

   - 도출된 특성들 중에는 유사한 것들이 존재하므로, 유사한 것끼리 하나로 모아주기 위해 K-means와 같은 클러스터         링 방법을 사용한다. 

   - 클러스터링하기 위해 visual words를 부여하고 이들로 codebook을 만든다. 

 

   - 해당 이미지에서 도출된 특성들과 코드북의 visual word들 중에 비슷한것을 찾아준다. 

   - 한 이미지 특성이 visual word1과 유사하면 bin 하나를 채워준다.

   - 이런식으로 반복하면 각 visual word에 히스토그램이 만들어진다. 

 

Image Features

 

3. Neural Networks

관점 ① 비선형 구조 구분 안됨

-> multi-layer 형태로 만들어서 입력층과 출력층 외에도 은닉층(Hidden Layer)라는 것이 생겼고 비선형 구조도 만들 수 있다. 

다층 퍼셉트론(MLP, Multi-Layer Perceptron)

 

관점 ② 다른 모양의 class 인식 안됨 (in visual viewpoint)

-> 첫번째 layer에서는 모든 이미지들이 각자의 template에서 진행되고, 이를 두번째 layer에서 class별로 합쳐준다. 

 

 

4. Activation Function 

: 출력값을 활성화를 일으키게 할 것인가를 정하고 그 값을 부여하는 함수

 

- 왜 활성화 함수를 사용해야 할까?

그 이유는 활성화 함수가 데이터를 비선형(정보를 다음단계로 전달할 것인가 아닌가)으로 바꾸기 때문이다.

- 그렇다면 왜 비선형으로 바꿔야 하는가?

우리가 사용하는 딥러닝의 식은 y=wx+b로 선형시스템 형태이다. 하지만 선형은 망이 깊어지지 않으므로 망이 깊어지는 딥러닝의 장점을 잘 활용할 수 없기 때문에 활성화 함수로 비선형 형태를 만들어야 한다.

- 망이 깊어진다는 건 어떤 장점이 있는지?

layer가 깊어지면 매개변수가 더 적게 필요할 뿐만 아니라, 필요한 연산의 수가 줄어든다.  

 

활성화 함수의 종류

 

 

5. Space Warping

: 활성화함수를 포함한 feature transform하면 선형이 가능하다는 것

 

 

 

6. Universal Approximation

: 신경망으로 어떤 함수도 만들 수 있다는 정리

- 위의 이미지는 왼쪽 sigmoid 함수에서 오른쪽 sigmoid 함수를 빼서 simple function을 만든것이다. 

- 위의 그림은 neural network를 이용하여 simple function을 만드는 것이다. 

 

- 위의 그림과 같이 뉴런의 개수를 늘리면 target function을 좀 더 정확하게 approximation할 수 있다. 이는 parameter를 늘릴수록 성능이 좋아지는 것과 유사한 원리이다. 

 

 

 

7. Convex Functions -> easy to optimization

* 만약 nonconvex 함수의 경우는 어떻게?

gradient 말고 다른 지표를 사용해아 한다. 다른 손실함수를 이용해서 구하고 이를 가중치에 대해 미분하여 사용한다. 

'Open Lecture Review > Deep Learning for Computer Vision' 카테고리의 다른 글

Lec8_CNN Architectures  (0) 2022.02.07
Lec7_ Convolutional Networks  (0) 2022.01.24
Lec6_Backpropagation  (0) 2022.01.24
Lec4_Optimization  (0) 2022.01.14
Lec3_Linear Classification  (0) 2022.01.10