본문 바로가기

ML & DL/Image Classification

What is Classification? 분류란 무엇인가?

본 글은 Fastcampus 온라인 강의, 올인원 패키지 : 딥러닝/인공지능 강의 중, 양서연님께서 강의해주신 '딥러닝 최신 트렌드'를 바탕으로 이해하기 쉽고, 개인적인 공부를 위해 패스트캠퍼스에 문의 후 정리하려는 목적으로 작성되었습니다.
개인적인 의견도 포함하여 작성되기 때문에 틀린 내용도 있을 수 있다는 점 유의 바랍니다.
오류가 있는 부분을 지적해주시면 확인 후 수정하도록 하겠습니다.

Classification 이란 무엇인가?


머신러닝 & 딥러닝의 차이점

  • Training dataset의 규모 차이에 따라 구분 : ML - Small / DL - Large
  • 딥러닝의 경우 End to End로 사진이나 데이터를 넣어 줄 수 있음
  • 반면에, 머신러닝의 경우 사람이 직접 feature를 찾아서 넣어줘야만 한다는 차이점
  • Training time의 차이 : ML - Short / DL - Long

 

 

Supervised Learning & Unsupervised Learning & Semi-Supervised Learning

  • Data의 label 즉, 정답 값을 가지고 있느냐, 없느냐, 혹은 일부만 가지고 있느냐에 따라서 분류

Reinforcement Learning

  • 직접적으로 training하고자 하는 환경을 경험한다.
  • 그 경험에서 'trial and error'로 시행착오를 겪는다.
  • 그 환경을 러닝하고, 이러한 Action에 대한 Policy를 학습해 나가는 과정을 의미한다.

Deep Learning

  • Machine Learning 과정에서 Neural Network가 two-layer 이상의 심층 네트워크를 가지는 것을 Deep Learning이라고 표현

지도학습 vs 반지도학습 vs 비지도학습 구분

  • Data의 output으로 나와야하는 값
  • 즉, 트레이닝 데이터에 붙어있는 정답 값(label)이 존재하느냐 / 일부만 존재하느냐 / 존재하지 않느냐에 따라 구분

Classification & Clustering

Classification

  • label이 붙어있는 output 값으로 각각의 데이터를 분류하기 위해서, Supervised-Learning을 통해서 classifier로 분류하는 과정

Clustering

  • 각각의 데이터들에 label이 붙어있지 않아도, 이들의 특성을 판단하여 알고리즘이 스스로 그들을 군집화 시키는 과정

Classification과 대조되는 Regression

Classification

  • 각각의 label에 대해서 분류를 하는 반면,이를 descrete한 class에 대해서 수행함

Regression

  • Discrete한 class가 존재하는 것이 아니라, data 자체가 continuous한 class에 대해 수행함
  • 이를 통해, 잘 예측할 수 있는 function을 만드는 것이 Regression의 목표이기 때문에
  • 어떤 시점의 값 즉, 미래의 값을 예측할 수 있음
  • 즉, 현재 가지고 있는 data 특성을 통해서 어떠한 function을 얻었을 때, 미래의 data 또한 예측이 가능함

Class의 수

  • 나누고자 하는 label의 종류 개수에 따라서 다른 접근법을 사용
  • 각각의 label이 두 종류가 있다면, 'Binary classification' 사용
  • 여러 개의 class를 가지고 있다면, 'Multi-class classification' 사용

이러한 class의 수는 'Classifier' 를 선택하는데 중요한 요소

Data Feature의 특징

Linear classifier

  • 데이터가 선형으로 잘 분류할 수 있는 구조를 가지고 있다면, 'Linear classifier'로 충분히 분류가 가능

Nonlinear classifier

  • 데이터가 선으로 분류하려고 해도 분류가 되지 않는 경우에는, 다른 classifier 종류를 고민해야 함
  • 이 때 고민할 수 있는 것이 'Nonlinear classifier'
  • 예를 들면, 'B' 그래프의 비선형 data를 어떠한 function을 이용해서 'A'와 같이 Mapping 할 수 있다면 다른 차원에서 Linear classifier로 표현될 수 있음
  • 즉, Mapping 된 공간에서는 선형적(Linear)으로 표현 가능

Classification에서 사용되는 대표적인 용어

전처리

  • 머신러닝에서는 딥러닝과 다르게 항상 데이터의 feature를 뽑아서 input으로 넣어줘야 하는 특성이 있기 때문에 필수적
  • 예를 들어, '고양이의 발은 여기 있고, 귀는 여기 있으니 이곳을 유심히 봐' 라고 알려주는 역할 /힌트를 주는 것

End to End

  • 통째로 데이터를 넣으면 학습을 스스로하기 때문에, 어느 곳을 더 유심히 봐야할지 알아서 판단
  • 전처리 과정 없이 Input data만 넣으면 알아서 학습하고 output이 나오는 모델

Classification에 대한 명확한 정의

Classification이란?

  • 어떤 물체가 있을 때, 이 물체가 우리가 알고자하는 Class 내부에 있는지 or 없는지
  • 그리고 그 클래스 중, 어떤 Class에 해당하는지를 표현하는 것

Classfication + Localization이란?

  • 물체의 위치가 어디에 있는지를 판단하는 것

Object Detection이란?

  • Classfication과 Localization 둘 다 수행
  • 물체가 어디에 있고 어떤 물체가 있는지 그리고 한 물체뿐만 아니라 여러 물체가 있을 때, Multi object detection을 수행할 수 있음

Instance Segmenatation이란?

  • 물체들이 어떤 것인지, 어디에있는지도 판단하지만 어떤 픽셀에 존재를 하는지까지 segmentation 할 수 있는 알고리즘

Classification Architecture

  • 주로 CNN 구조를 사용한다고 가정
  • 1) Feature extraction & 2) Learning & 3) Classfication 크게 세 가지 과정으로 구분되어 있음
  • 이 중, 가장 마지막 부분, Classifing을 하는 softmax로 되어 있는 곳이 가장 중요
  • 왜냐하면, 우리가 원하는 class들로 분류할 수 있는 곳이기 때문
  • 분류 방법은 softmax에서 나오는 확률 값에 따라서 판단하게 됨

Feature Map

  • Feature들은 데이터에서 특징적인 정보들을 가지고 있음
  • Input단에 가까울수록 보다 세부적인 이미지 특성
  • 반면, Output layer에 가까운 feature일 수록 전체적이고 고차원적인 특성을 가지게 됨
  • Input layer → Output layer로 갈 수록 표현하고자 하는 데이터의 특성 차원이 달라지게 되면서 각각이 다른 정보를 표현할 수 있게 됨
  • 각각의 layer별로 가지고 있는 표현 특징을 'Feature Map'이라고 함

앞으로 딥러닝 기반의 classification에 대해 알아볼 것이고, 그 기반은 'CNN'

ImageNet Challenge

  • 1000개의 object classes를 분류하는 대회
  • 이 대회에서 우승했던 알고리즘에 대해서 알아볼 예정
  • 어떤 성질을 이용해서 더 좋은 정밀도를 내기 위해 노력했는지를 알아보자
  • 그 원리들을 알아보면서, classification을 더 잘하기 위해선 어떻게 해야하는가에 대해서 공부

본 글을 참조하실 때에는 출처 명시 부탁드립니다.

 

 

 

강의 출처 : https://www.fastcampus.co.kr/

 

패스트캠퍼스 | 커리어 성장을 위한 최고의 실무교육 아카데미

커리어 성장을 위한 최고의 실무교육 아카데미

www.fastcampus.co.kr