상세 컨텐츠

본문 제목

인공지능 - Image Classification

인공지능

by 후추리 2024. 10. 23. 23:51

본문

Regression(회귀) : 연속적인 아웃풋 y를 찾는 과정

Classification(분류) : discrete한 아웃풋 y를 찾는 과정

Linear : 직선형태로, x값과 y값이 비례

Non-linear : 곡선형태

 

Multi-class Classification

*Image Classification의 도전과제

- Intra-class variations : 특정 하나의 클래스 내에서의 변화

- Inter-class similarities : 서로 다른 클래스 간에 유사성

 

Image Classifier

- 과정

1. 데이터셋과 답 준비

2. classifier 훈련시키기 위해 머신러닝 사용

3. 새로운 이미지에 대해 평가

 

 

K-Nearest Neighbor(KNN) Classifier

- 과정

1. 트레이닝 데이터와 답을 모두 기억

2. 새로운 이미지를 모든 트레이닝 데이터와 매칭해 거리를 구함

3. 오름차순으로 정렬

4. K에 따라 몇개의 데이터를 볼 것인지 판단

 

*거리는 어떻게 계산할것인가?

- L1(Manhattan) distance : 각 좌표를 뺀 후 절대값을 씌워 모두 더하기

- L2(Euclidean) distance : 피타고라스 정리

distance metric

*문제점

결정 경계(decision boundary)를 기준으로 outliers가 생길수도 있고 ties가 생길수도 있다.

이럴 때에는 이웃의 수를 늘리거나 룰을 세워야 한다.

K의 적절한 값은 문제에 따라 다르며, 퍼포먼스를 측정함으로써 결정할 수 있다.

평균값은 크고 표준편차가 작은 K를 고르는 것이 좋다.

또한 test time이 매우 느리다는 것이 단점이다.

 

 

Linear Classifier

왜 'Linear'라고 하는가?

-> 픽셀값인 x와 class score값이 비례해 직선의 형태를 띄기 때문

- 인풋으로 32*32*3 크기의 이미지 x가 들어왔을 때, linear classifier를 적용하기 위해선 이미지를 쭉 펼쳐 3072*1의 형태로 만든다.

- 결과는 10개의 클래스에 대한 점수이므로 10*1의 형태가 나와야 한다.

- 따라서 W는 10*3072가 되고, bias는 더해주는 것이므로 10*1이다.

 

 

- 다음 예시는 3개의 클래스에 대한 점수를 구하는 과정이다.

- 이를 reshape하면 그림처럼 표현할 수도 있다.

 

 

Neural Network(NN)

- layer를 여러개 쌓으면서 인풋 데이터를 고차원의 공간으로 옮겨 linear classifier로 분류를 할 수 있도록 함.

- 마지막에 W3가 붙을때에만 linear한 연산 수행하고 나머지는 activation 함수를 붙여 non-linear하게 만듬

 

 

*Activation Function(활성화 함수)

- Sigmoid 함수 : 아웃풋은 0~1 사이

- Tanh : 아웃풋은 -1~1 사이

- ReLU : 인풋 x가 0 이상일 때에는 x, 0 미만일 때에는 0

- Leaky ReLU : 인풋 x가 0 이상일 때에는 x, 0 미만일 때에는 0.1x

'인공지능' 카테고리의 다른 글

Training Neural Network(1)  (3) 2024.12.18
Convolutional Neural Network  (1) 2024.12.18
인공지능 - Convolution  (1) 2024.10.24
인공지능 - Optimization(학습)  (2) 2024.10.24
인공지능 - Loss  (2) 2024.10.24

관련글 더보기