EECS 498-007 / 598-005 Deep Learning for Computer Vision (Lecture 5 : Neural Networks)

cjun·2022년 3월 30일
0

EECS 498-007 / 598-005

목록 보기
5/7
post-custom-banner

Neural Networks

  • 지난시간까지 우리는 classification 문제를 해결하기 위해서 Linear Model을 사용
  • weight에 따라서 모델의 성능을 표현하기 위해 Loss 함수를 사용
  • Loss 함수값을 최소화 시키도록 SGD를 이용하여 모델을 학습

Problem : Linear Classifiers aren't that powerful

  • Linear classifier는 간단하고 이해하기 쉽지만, 기능적으로 나타내기에 매우 제한적이고 성능도 우리가 원하는 만큼 보이지 못함.

  • 이를 Geometric 관점에서 보면 Linear classifier는 고차원에서 초평면을 그리거나 그림과 같이 Euclidean space(유클리디안 공간)에서 초록색 점들과 파란색 점들을 두 덩어리로 나누는 것을 불가능.

  • 이를 Visual 관점에서 보면 Linear classifier는 클래스당 하나의 템플릿만 학습하기 때문에 동일한 카테고리의 여러가지 모드를 표현 불가능.

Feature Transforms

  • 이러한 linear classifier의 문제를 극복하기 위해 고안한 방법이 Feature Transforms

  • Feature Transforms의 주요 아이디어는 classification을 하는데 더 의미있게 만들어 주기 위해 우리에게 주어진 원래의 공간을 수학적으로 영리하게 변환

  • 위의 그림을 직관적으로 봤을때 cartesian(데카르트 좌표)에서 polar(극좌표) coordinates로 변환하면 분류하는데 있어서 데이터를 더 잘 표현

  • Feature Transform을 하고 나면 Feature space(새로운 공간)에 input 데이터들이 존재.

  • 여기서 유용한 점은 cartesian에서 polar 좌표로 변환했을때 위와 같은 데이터 셋은 선형으로 분류가 가능해짐.

  • polar 에서 Linear classifier를 다시 cartesian으로 가져오면 Nonlinear classifier.

  • 데이터에 따라서 알맞은 Feature Transform을 하면 linear classifier의 한계를 극복하는 것이 아마 가능.

Image Feature

Color Histogram

  • Computer Vision에서 쓰이는 Feature transforms의 예시로 Color Histogram

  • RGB 스펙트럼의 color space를 나누고,이를 이산적인 bin으로 나타낸다고 가정.

  • input 이미지의 픽셀들을 bin에 할당할 수 있고, 히스토그램을 통해서 이미지의 color가 어떻게 분포하는지 확인 가능.

  • 이는 input 이미지에서 공간적인 정보는 버리고, 색 정보만 신경씀.

  • 이는 빨간색, 파란색, 노란색 등 색들을 항상 linear 하게 classification 할 수 있게 함.

Histogram of Oriented Gradients (HoG)

  • Color Histogram Approach에서는 input 이미지의 질감이나, 위치 정보는 모두 버리고 어떤 색이 있는지에만 집중.

  • Histogram of Oriented Gradients 는 색 정보는 모두 버리고, 이미지의 모든 위치에서의 local edge의 방향과 크기에만 집중.

  • 빨간색은 강력한 대각방향을 가진 edge

  • 파란색은 모든 방향을 가진 edge

  • 노란색은 정보가 거의 없는 edge

  • 이는 2000년대 중후반 컴퓨터 비전에서 object detection과 같은 매우 다양한 분야에서 사용.

  • 실무자들은 feature represents에서 그들이 얻길 원하는 데이터의 어떤 데이터가 좋은 품질일까 생각

Bag of Words(Data-Driven)

  • 데이터 기반의 feature transform을 Bag of Words라고 부름.

  • 이미지 학습 데이터에서 다양한 크기의 패치들을 무작위로 추출.

  • "codebook"의 "visual words"(저수준의 특징 설명자)의 집합을 얻기 위하여 패치들을 clustering

  • codebook의 visual words를 활용하여 이미지를 해석하여 histogram으로 나타냄

Concatenate

  • 한 종류의 feature representation만을 사용할 필요 없음.

  • 여러 종류의 feature representation을 하고 이르 concatenate하여 하나의 긴 feature vector를 얻음.

  • 여러 feature representation을 묶어서 사용하는 것은 2010년대 초반까지 많이 쓰임

Image Features vs Neural Networks

  • 머신러닝에서 이미지 분류 파이프라인을 크게 Feature extract, learnable model 두가지 과정으로 분리
  • 그러나 Image classifier의 성능을 높이기 위해서 Raw 이미지의 Feature Extract 부분부터 classifier 부분까지 자동적으로 튜닝을 하며 학습하기를 바람.

--> Neural Networks의 탄생

  • Neural Network은 Image classifier의 성능을 높이기 위해서 Feature Extract 부분과 classifier부분이 연결되어 있는 것으로 Feature representation system과 크게 다르지 않음.

Neural Network

  • 가장 간단한 neural network 모델은 linear classifier 보다 그렇게 복잡하지 않음.

  • 여전히 input data로 이미지 데이터를 하나로 길게 늘어뜨린 single vector를 가지고, 학습 가능한 weight를 2개 가짐(W1, W2)

  • h 차원의 벡터를 만드려고 입력 데이터 X와 W1을 곱
    --> X(x,) * W1(x,h) --> h(h,)

  • h 차원의 벡터에 c차원 벡터를 element-wise maximum function을 적용하여 (h,c) size를 갖는 W2얻음
    --> (h,)(,c) --> (h,c)

  • h 차원의 벡터와 W2를 곱하여 c차원의 벡터 얻음
    --> (h,)* (h,c) --> (c,)

  • bias term은 주로 생략해서 식을 쓰지만 실제로는 사용.

  • weight matrix는 이전에 있는 레이어가 다음에 있는 레이어에 영향을 미치는 정도를 나타냄

  • 위의 그램에서 W1의 (i,j)는 x_i가 h_j에 영향을 미치는 정도를 나타냄.

  • 레이어에 있는 모든 유닛들이 다음 레이어에 있는 모든 유닛들에 이어져 있는 것을 Fully-connected neural network 라고 함.

  • Linear classifier가 하나의 클래스에 대해 하나의 template을 학습하는 것과 비슷한 형태지만

  • W1의 크기 만큼 template을 가진다는 차이.

  • 이를 통해 하나의 class에 대해서 여러 템플릿을 가질 수 있다는 장점.

  • W2에서는 W1에서 만든 템플릿을 recombine시켜서 이미지를 판단.

  • Neural Network에서 Dept는 layer의 수를 뜻하고, layer의 수는 weight matrices의 수를 뜻함.

  • Nerual Network에서 Width는 layer안에 있는 유닛의 수를 뜻함.

Activation Functions

  • 이때 neural network에서 파란색 네모박스에 해당하는 max(0, 는 무슨 뜻인가?

  • neural network에서 매우 중요한 요소이며 0~input 사이에서 element-wise maximum을 취함.

  • Activation function으로 Relu(Rectified linear unit)라고 불리며 대부분의 문제에서 사용

  • non linear activation function을 사용하지 않고 weight matrix를 연산하면 linera classifier에 불과.

  • 위와 같은 Activation function들이 있으며 대부분이 문제에서 ReLU는 괜찮은 선택.

  • 위는 20줄짜리 간단한 Neural Network 코드이며

  • Random data, Random Weight 세팅

  • Compute loss

  • Compute gradients

  • SGD step으로 구성

Space Warping (Geometric)

  • Neural network가 왜 강력한지 Space Warping 개념을 통해 설명 가능

  • x1, x2로 이루어진 input space가 있다고 할때, 2개의 linear classifier를 사용하면 2개의 선을 얻을 수 있고,

  • x1, x2를 4등분하는 h1, h2로 이루어진 space로 Feature transform 할 수 있음.

  • 왼쪽의 그림과 같이 파란점 과 노란 점을 분류하는 문제에서
  • 원래 space에서 linear하게 파란 점과 노란 점을 분류할 수 없었다면
  • linear하게 feature transform을 한 space에서도 linear하게 파란점과 노란 점 분류 불가능.

  • 이때 ReLU라는 Activation 함수를 사용
  • A에 해당하는 부분은 전과 동일
  • B에 해당하는 부분은 h1축에서 음의 값을 가지므로 max(0, input)에 의해 (h1,h2)라고 할때, (0,h2)로 변경
  • C에 해당하는 부분은 h1축과 h2축에서 음의 값을 가지므로 max(0, input)에 의해 (h1,h2)라고 할때, (0,0)로 변경
  • D에 해당하는 부분은 h2축에서 음의 값을 가지므로 max(0, input)에 의해 (h1,h2)라고 할때, (h1,0)로 변경

  • ReLU를 사용하여
  • 원래 space에서는 linear하지 않게 분리하였지만
  • feature space에서는 linear하게 분리됨.

  • hidden layer안에 있는 hidden unit이 많을수록 original input space에 더 많은 직선을 만들고,
  • 더 복잡한 non-linear decision boundaries가 만들어지지만
  • feature space에서는 linear하게 분리가 됨.

  • hidden layer의 unit이 많아질수록 모델의 complexity는 증가
  • unit의 수를 줄여서 overfitting을 줄일 수 있지만 좋지 않음.
  • 대신 regularization parameter를 사용하여 overfitting 방지.

Universal Approximation (Algebraic)

  • 1개의 히든 레이어를 가진 Neural Network는 어떤 함수든 근사 가능.
  • ReLU 기반 신경망 모델이 Output을 계산하는지 Algebraic으로 생각해보면

  • Single Input을 넣으면 Single Output이 나오는 Neural Network에서
  • 히든 layer는 3개의 unit을 가진다고 할때 activation function의 기능적 형태를 보면
  • 위의 그림과 같고 bias가 추가된 이유는 실제로는 중요하기 때문.
  • Output y는 shifted or scaled된 ReLU 함수 3개항의 합으로 이루어짐.
  • 각각의 항의 그래프는 Weight로 그래프의 방향과 기울기가 결정되고,
  • 각각의 항의 그래프는 bias로 그래프의 구부러지는 지점이 결정됨.

  • 4개의 ReLU 함수를 이용해서 bump function을 만들 수 있는데

  • ~s1 구간에서 0으로 flat하다가

  • s1~s2 구간에서 t까지 상승

  • s2~s3 구간에서 값t를 가지며 flat

  • s3~s4 구간에서 0까지 하락

  • s4~ 구간에서 0으로 flat

  • 각 구간마다 shifted or scaled 된 ReLU 함수를 더해주어 bump function을 만듦.

  • 히든 레이어에서 ReLU 함수를 4,8,16 개와 같이 여러개 사용하여 여러개의 bump function을 만듦.

  • 이를 통해 two-layer Neural Network를 사용하면 어떤 함수도 근사화 가능!

  • 실제로는 bumpfunction을 학습하지는 않고, 이를 통해서 어떤 함수도 근사화 가능하다는 사실만 알려줌.

Convex Function

  • 임의의 두 점 x1, x2 에서 그은 직선보다 x1~x2 사이의 범위에서의 함수값이 항상 작은 함수를 Convex Function.

  • 고차원에서의 convex 함수는 그릇의 형태로 나타남.

  • convex함수는 optimize하기 쉬움.

  • 그동안 배운 linear 모델에서는 loss function이 convex하게 나타나지만

  • Neural Network에서는 convex하다는 보장 X

  • Neural Network에서는 nonconvex를 optimize하는 방안이 필요

profile
Sometimes You gotta run before you can walk.
post-custom-banner

0개의 댓글