우리는 linear classifier, softmax classifier를 정리한 것에서 보면 이미지 분류 task에서 linear model를 적용하는 것을 배웠다.
이 꼴로 모델을 작성한 뒤에 클래스 분류를 위해
이 값에 softmax function을 적용하여 loss 값을 찾아주고
loss를 줄이는 방향(SGD)을 구해 W를 업데이트 하여 최적화 하는 과정을 배웠다.
(블로그 게시글 참고)
knn보다는 성능이 우수하지만 이미지 분류에서 Linear classifier는 잘 사용하지 않는다!!

linear classifier의 문제를 해결하기 위해 나온 방법으로 입출력으로 직접 mapping하는 대신에 몇가지의 특성을 추출해 표현하는 방식이다.
즉 어떤 데이터가 우리가 분류하기 어려운 분포를 가지고 있을 때, 요 점들을 다른좌표계로 보내서 우리의 모델이 분류할 수 있는 형태로 바꿔주는 것
그때 처리한 데이터를 feature라고 한다.
예시는 원래 x,y 좌표계에서 r(반지름),(각도) 좌표계로 바꿔줌으로써 linear classifier가 가능해졌다.

이미지 분류에서 쓰인 고전적인 image featurization(rule-based 방식)은 colorhistogram(색상정보 이용),histogram of oriented gradient(기울기 방향),BoW(각각의 이미지들을 패치패치해서 분석) 등이 있다. 우리가 방법을 정해서 사용하는 방식이다.
rule-based 방식의 단점 각각의 데이터마다 서로다른 featurization 방식을 디자인하고 적용해야 되는 번거로움이 있다.
아 그러면 머신러닝이 데이터를 통해서 패턴을 캐치하는 거라고 배웠는데 featurization을 우리가 직접 디자인 하기보다는 데이터를 통해 특성추출을 학습시키는 건 어떨까???
기존의 featurization은 아래의 그림과 같이 우리가 작성한 특성추출기로 특성을 추출한 뒤에 f()에 넣어서 클래스를 예측하였다.
그럼 만약 우리가 f()에 특성 추출하는 부분을 구분하지 않고 합친다면 특성 추출 알고리즘을 업데이트 한다면 더 성능이 좋아지지 않을까?
좋아진다!~!

NN의 목표는 우리가 모델을 만들고 INPUT에서 OUTPUT을 예측하는 일련의 모든 과정(featurization,classification)을 다 담당한 후 각각의 파라미터를 end-to-end 방식(모든 과정을 파이프라인 네트워크 없이 신경망으로 한 번에 처리한다는 의미)으로 학습하는 것이다.
이게 NN을 사용하는 이유이다!!
뉴럴 네트워크의 정의나 내용은 NN&MLP에서 담고 있다. 그래도 좀 더 보충 설명하겠다
왜 인공 신경망이라는 이름을 썼을까?
인간의 뇌에 있는 신경(perceptron)을 흉내냈기 때문에 그렇게 붙인 이름이다. 아래의 그림처럼 perceptron의 동작을 흉내낸 것이 neural network(perceptron)이다.

동작 과정
input을 받아 가중치를 곱한뒤에 더했을 때 일정 threshold를 넘으면 활성화 함수를 거쳐 output를 내보내는 과정(activation function을 쓰지 않은 그냥 linearmodel이다.)
