본문 바로가기

AI

Linear Classification

1. Computer Vision : 기계의 시각화

  • 컴퓨터 과학 최신 연구분야, 기계가 인간이 본 것처럼 학습
  • 활용 분야: Physics, Biology, Psychology, Computer Science, Mathmatics, Engineering

Hubel & Wiesel, 1959

고양이 뇌를 이용하여 연구한 실험 연구 사례, 매우 유명
고양이는 물건의 어느 측면을 보고 뇌가 가장 강하게 반응하는가? 뇌파로 판단해본 결과 모서리부분을 보고 강한 반응을 보였다.
결론적으로 모서리는 사물의 명암을 기준으로 변화가 매우 큰 지점이므로 이를 잘 학습시킨다면 어떤 사물인지 판단 가능할 것임
Edge Detection 알고리즘 생성 : 미분 활용
한계: 어느 측면을 바라보느냐 즉, 방향과 각도에 따라 결과가 천차 만별이다.
한계를 극복하기 위해 CNN(Convolutional Neural Network) 등장

Convolutional Neural Network

1998년 LeCun et al. 이 발명
인공지능(AI) 심층학습 시대를 연 사람들 : 제프리 힌튼(Geoffrey Hinton), 조슈아 벤지오(Yoshua Bengio), 얀 르쿤(Yann LeCun)
ImageNet대회에서 2012년에 CNN알고리즘이 사용되며 다시 빛을 보게됨.

2. Classification

1) Classification

  • 학습 방법FCN (Fully Convolutional Network)

    DNN (Deep Neural Network)
    ANN (Artificial Neural Network)
    Deep + Convolution = CNN

  • The Problem : Semantic Gap
  • 사람이 바라보는 사진을 컴퓨터는 0~255사이의 숫자로 이루어진 값들로 인식한다.
  • 흑백일 경우 하나의 판으로 컬러일 경우 3개의 판으로 구성
  • ChallengesIllumination (명암에 따라)

    Deformmation (형태 변형)
    Occlusion
    Background Clutter (배경과 구분)
    Intraclass Variation

  • Data-Driven Approach
  • collect a dataset of images and labels > use machine learning to train a classifier > evaluate the classifier on new images
    Training model, Test model로 구분지어 학습 및 예측 수행

2) Nearest Neighbor

  • Data-Driven Approach 방법 중 초창기 방법
  • Classification을 가장 심플하게 할 수 있는 방법
  • 모든 데이터들의 유사도를 각각 비교한다.
  • 단점: 비효율적임
    위치가 아주 살짝만 이동되어도 픽셀의 모든 값들이 밀렸기 때문에 차이가 크다고 인식한다
    푸른 계열의 색상이 입혀있을 경우 픽셀값에 어두움이 더해져 같은 이미지임에도 불구하고 다른 이미지로 인식한다.

3) Cross-Validation

  • Hyperparameters : Choices about the algorithm that we set rather than learn
  • 학습에 의해 알아지는 값이 아닌 인간이 알고리즘에 대해 선택한 값(= Heuristic Values 라고도 한다.)
  • 예시: k-fold cross validation

    데이터가 충분할 경우, train(10%) + validation(10%) + test(80%)로 나누는 것이 가장 이상적
    현실적으로는 불가능하다. 보통 train데이터가 훨씬 많고 test데이터가 적다. Data Set이 매우 부족
    이 때, validation을 많이 확보할 수 없다.
    결론적으로 학습용 데이터는 턱없이 부족하고 validation 테스트는 필요할 때 Cross Validation을 사용한다.
    학습 데이터셋이 부족하기 때문에 별도의 Validation DataSet을 두지 않고 학습 데이터를 에폭을 거듭할수록 서로 바꿔가면서
    validation test 를 모든 에폭을 학습시킨 후 딱 한번 마지막에 진행한다.

  • Deep Learning PipelineTraining Data Loading - Training data Augmentation - Deep Neural Network Training & Validation with Training Data - Deep Neural Network testing with Testing Data - Interface with validation

3. Linear Classifier

  • 이미지 입력 -> 모델 f(x,W) : W 는 parameters or weights -> 결과$$f(x,W) = Wx + b $$
    행렬 구조를 필수로 알아야한다.
  • 예측값이 가장 큰 것을 최종 예측값으로 판단. 여기서는 437.9인 dog을 최종 예측값으로 판단.
  • 학습에 있어서 극대화는 매우 중요하다.
  • 예측값은 Normalization + Exponential로 만들어져야한다.

4. Classification Loss Function

  • Loss Function : 해당 모델이 얼마나 예측을 잘 했는지를 정량적으로 나타내는 함수로 값이 0에 가까울수록 예측을 잘 한 모델.

1) Hinge Loss

  • 현재 사용되지 않는다.
  • Exponential과 Normalization에 문제가 존재한다.

2) Softmax Loss

매우 중요한 함수. Hinge Function의 문제점을 보완한 공식
Normalization : 예측값을 백분율로 나타낸다.
$$ 특정 예측값 / 모든 카테고리의 예측값의 합 $$
Exponential : 극대화, normalization에 약간의 트릭을 준다. 지수부에 e를 붙여줌.
특정 값이 4 일 경우, $$ e^4 $$ 로 변환한 후 normalization을 취한다.
Softmax Function으로 결과값을 확률적으로 찾을 후 Loss Function을 구해야한다.
$$ -log(x) $$ 의 x값에 softmax function을 실행한 결과값을 넣으면 loss function을 구할 수 있다.

3) Regularization

모델에 대한 Loss를 구하는 공식

f(Xi, W): 딥러닝 모델에서 나온 모든 예측값들
yi: 정답
이들을 모두 더해 평균을 낸 것이 L(W)이다.
Full Loss는 softmax, 모든 값 각각의 loss, 모델의 loss인 L(W)에 regularization을 추가한 값.
예측값이 같더라도 weight값이 다르다면 R(w)값은 다르게 다온다. R(w)가 작을수록 overfitting이 적다.
R(w)는 극심한 variance를 완만하게 바꿔준다.

'AI' 카테고리의 다른 글

Neural Network  (0) 2021.06.02
[Deep Learning] Backpropagation  (0) 2021.06.01
Deep Learning Intro  (0) 2021.05.31
Linear Regression  (0) 2021.05.28
Random Forest & Linear Regression  (0) 2021.05.27