linear model과 NN 관계

seung·2024년 8월 13일

AI 기초

목록 보기
7/14

Linear model 리뷰

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

knn보다는 성능이 우수하지만 이미지 분류에서 Linear classifier는 잘 사용하지 않는다!!

  • 이유
  1. 시각적으로 각 클래스당 하나의 템플릿만 학습한다.(예를 들어 차 이미지이면 하나의 차 사진만 학습한다는 것이다. 차의 앞모양을 학습되어 있을 때 차의 뒷모습, 옆모습 등이 들어오면 잘 분류하지 못할 것이다.)
    다양한 데이터에서 사용할 수 없다...
  2. 기하학적으로는 직선 형태의 decision boundary만을 그리기 때문에 비선형적이고 복잡한 클래스들을 분리할 수 없다. 세상에는 직선이 아닌 비선형적인 결정선으로 분류되는 데이터들이 너무많다...

Featurization

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

예시는 원래 x,y 좌표계에서 r(반지름),θ\theta(각도) 좌표계로 바꿔줌으로써 linear classifier가 가능해졌다.

이미지 분류에서 쓰인 고전적인 image featurization(rule-based 방식)은 colorhistogram(색상정보 이용),histogram of oriented gradient(기울기 방향),BoW(각각의 이미지들을 패치패치해서 분석) 등이 있다. 우리가 방법을 정해서 사용하는 방식이다.

rule-based 방식의 단점 각각의 데이터마다 서로다른 featurization 방식을 디자인하고 적용해야 되는 번거로움이 있다.

아 그러면 머신러닝이 데이터를 통해서 패턴을 캐치하는 거라고 배웠는데 featurization을 우리가 직접 디자인 하기보다는 데이터를 통해 특성추출을 학습시키는 건 어떨까???

Neural Network

기존의 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이다.)

0개의 댓글