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 : 피타고라스 정리
*문제점
결정 경계(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 |