[ML] 딥러닝의 깊이 있는 이해를 위한 머신러닝 9-1 (K-MOOC)

daeungdaeung·2021년 8월 1일
0

Machine-Learning

목록 보기
15/25

리니어 모델의 문제점은 Nonlinear 데이터를 표현할 수 없다는 것

학습내용

  • Non-linear Data의 정의, 사용법

  • Non-linear Data를 위한 Feature 추출

  • 그림에서의 Feature 추출 과정

학습목표

  • Non-linear Data 를 학습할 수 있다.

  • Bag-of-Word 방법론에 대해서 이해할 수 있다.

  • 그림에서의 필터 기반 Feature 추출 방법을 상황에 맞게 적용할 수 있다.

Non-linear Data의 정의

  • 선형의 단순한 모델로 표현하지 못하는 데이터를 Non-linear Data라고 합니다.

  • 논리니어 데이터를 표현할 수 있는 방법은?

    • Feature Engineering 모델

      • 입력된 Feature를 한번 바꿔주는 과정을 거칩니다.

      • 예) 그림이미지의 경우 피쳐를 픽셀 값으로 활용할 경우 논리니어 데이터가 됩니다.

      • 연관관계가 복잡하고 선형으로 표현하는데 어려움이 따르기 때문에 픽셀 값을 그대로 이용하지 않고 추가로 알고리즘을 활용하여 전체 이미지를 표현합니다. (Bag-of-Word 방식)

    • Kernel Trick (Feature Transform)

      • 이미 추출된 피쳐를 한 번 더 변형해서 리니어 모델로 논리니어 데이터를 학습하는 방법
  • Bag-of-words

    • 부분적인 특징들을 각각 한 개의 워드로 표현하고 워드들의 조합으로 한 개의 이미지를 표현하는 방식

    • 이미지에 포함된 모든 픽셀을 활용하는 것보다 단순한 피쳐로 이미지를 분류할 수 있습니다.

  • 특정 이미지가 주어졌을 때 개별적인 픽셀 값이 물체를 분류하는 데 큰 의미가 있는 것은 아닙니다.

  • 픽셀 밸류를 활용하기 보다 상관관계를 주로 탐색합니다.

  • 복셀의 정보를 활용하여 클래시피케이션 문제나 리그레션 문제 등을 해결

  • convolution

    • 특정 필터가 제공되면 필터를 이미지에 그대로 적용하여 필터의 반응성을 확인

    • Identity filter: 이미지나 데이터를 적용할 경우 입력된 데이터 혹은 그림을 그대로 출력

      • 모든 엘리먼트들에 대응되는 픽셀값들을 곱하고 결과값들을 더한 값을 가운데 픽셀에 입력
    • Translation filter

      • Ex) [0 0 1]

        • 오른쪽에 있는 픽셀값이 가운데로 배정된다는 의미

        • 컨볼루션 적용 시 이미지 혹은 데이터가 왼쪽으로 한 칸씩 당겨짐

    • Local Average

      • 필터에 대응되는 픽셀의 값들을 모두 더해서 평균을 냅니다.

      • 노이즈가 줄어드는 효과를 볼 수있어 머신러닝 기법에서 항상 활용합니다.

    • first derivative

      • 필터의 모든 엘리먼트들의 총합은 0

      • 영상, 데이터 혹은 이미지의 왼쪽, 오른쪽의 차이를 계산하고자 할 때 사용

    • Gaussian filter

      • 중앙은 가중치가 크고 중앙으로부터 멀리 떨어져 있으면 가중치가 작습니다.

      • bluring -> 흐릿하게 만드는 것

    • Sharpen convolution

      • Ex) [-1, 3, -1]

        • 가운데 엘리먼트는 3이고 근처에 배치된 엘리먼트가 모두 -1로 그 차이를 최대한으로 하는 방식으로 구성합니다.

        • 서로 붙어 있는 픽셀들 간의 차이값이 더욱 강조됩니다.

        • 애버리지 필터나 가우시안 필터의 정반대 효과를 볼 수 있습니다.

    • Laplacian filter

      • first derivative 필터와 유사한 결과

      • Sharpen convolution과 형태가 비슷하지만 모든 엘리먼트들을 합했을 때 0이라는 결과값을 보여줍니다.

      • 어떤 경계선에 해당되는 픽셀이 좀 더 강조되고 그렇지 못한 영역들은 0에 가까운 값을 가지도록 결과값, 결과 이미지가 출력

    • Laplacian of Gaussian Filter

      • 가우시안 필터와 라플라시안 필터를 동시에 고려한 필터
  • Boundary issue

    • 어떤 필터를 적용할 때 왼쪽 혹은 오른쪽 픽셀이 없을 때 어떻게 계산할 것인가?

    • 기본적으로 계산할 수 없기 때문에 필터를 적용할 때 마다 이미지가 점점 작아집니다.

    • 필터가 적용될 때마다 어떤 가상의 값을 배정하는 방식으로 문제를 해결합니다.

    • 가장자리에 배정할 수 있는 값

      • zero 패딩: 없는 픽셀값을 0으로 배정

      • Replicate: 현재 왼쪽 끝에 있는 픽셀값을 그대로 복사

      • mirror: 현재 새로 생긴 픽셀 값의 정반대에 있는 값을 배정

  • 2D convolution

    • z[i1,i2]=j1=mmj2=mmw[j1,j2]x[i1+j1,i2+j2]z[i_1, i_2] = \sum_{j_1=-m}^{m} \sum_{j_2=-m}^{m} w[j_1, j_2]x[i_1 + j_1, i_2 + j_2]

    • 필터의 각각의 픽셀에 대응되는 필터값과 이미지 값들을 모두 곱한 다음에 그 결과값들을 더한 값을 바로 그 가운데에 위치한 최종적인 필터 결과값을 배정

  • 3D convolution

    • 일반적으로 이미지는 빨간색, 초록색, 파란색 총 세가지 컬러를 가지고 있기 때문에 3D 이미지입니다.

    • 패딩을 적용하여 이미지의 크기가 줄어들지 않도록 합니다.

  • 가장 대표적인 이미지 컨볼루션 필터

    • Gaussian 필터

      • 어떤 이미지의 자잘한 노이즈나 경계선들을 최대한 누름으로써 좀 더 전체적인 이미지의 형태를 파악

      • bluring/averaging

    • Laplacian of Gaussian (LoG)

      • 이미지의 경계선 위주로 탐색할 수 있는 알고리즘
    • Gabor filter

      • LoG의 경우 경계선을 탐색하기는 하지만 방향을 알진 못합니다.

      • Gabor의 경우 경계선을 알아내는 것과 더불어 그 경계선의 방향까지도 파악할 수 있습니다.

      • 여러 가지 미분되는 형태의 컨볼루션 필터를 이미지에 적용하여 반응성이 가장 큰 것을 선택하여 활용합니다

  • 필터 반응성을 기반으로 그대로 사용하거나 bag of word 방식을 거쳐 정리합니다.

  • 히스토그램(= 이미지를 표현)으로 표현했을 때 밋밋한 그림이라면 가우시안 필터 부분이 큰 값을 가지게 될 것입니다.

profile
개발자가 되고싶읍니다...

0개의 댓글