-
선형
선형적(Linear)
직선인 모양
출력이 입력에 (반)비례한다.
ex) 1차 함수
비선형
비선형적(nonlinear)
직선모양이 아닌
선형성과 모델 관계
https://bluediary8.tistory.com/88
DataScience 분야에서 Tree기반 모델이 좋은 이유 (딥러닝이 잘 쓰이지 않는 이유)
DataScience 분야에서 Tree기반 모델이 좋은 이유 (딥러닝이 잘 쓰이지 않는 이유) 최근 10년간은 딥러닝의 부흥기라고 감히 말할 수 있습니다. 그만큼, 딥러닝의 엄청난 발전이 있었죠. 그럼에도 불
bluediary8.tistory.com
최근 10년간은 딥러닝의 부흥기라고 감히 말할 수 있습니다. 그만큼, 딥러닝의 엄청난 발전이 있었죠. 그럼에도 불구하고 kaggle 대회와 국내 data science 대회에서 boosting 계열 알고리즘 (tree 기반 알고리즘)이 거의 항상 우승합니다. 그 이유가 무엇일까요?)
그럼 여기서, 일반적인 data science문제를 생각해 봅시다. 독립변수가 흡연량, 키, 몸무게 등 신체정보가 있고, 종속변수가 폐암 여부라고 해보죠. 여기서 독립변수 흡연량, 키, 몸무게 등 신체정보에 graphical feature(region feature, 지역 특징, cnn에서 convolution layer가 하는 거 생각하기)가 존재 할까요? 직관적으로 봐도 graphical 한 feature가 존재 하지 않습니다. 즉, 딥러닝은 graphical feature를 위한 모델인데 graphical feature가 없는 문제에 대해서는 잘 맞는다라는 것을 보장하지 못하는 것이죠.
여기서 우리가 알아야 할 개념은 '선형성' 입니다. 어떠한 사람들이 폐암에 걸릴 확률이 높을까요? 담배를 많이 피면 많이필수록 폐암에 걸릴 확률이 높겠죠? 즉 일반적인 data science문제에서 우리가 가져가는 독립변수들은 종속변수들과 선형성이 있다라는 가정을 많이 합니다.(-> 그럼, pearson 상관관계 파악하는 게 의미가 있는 거네! 독립변수와 종속변수 간의 선형성을 파악하는 것으로 생각하면 되겠다.) 더불어, Tree기반 모델들의 분류 알고리즘을 생각해보면, 흡연량이 몇 이상이면 폐암에 걸리는 확률이 얼마다. 이런식으로 분류가 가능하죠. 즉 직관적으로 봤을 때에도, 일반적인 data science 문제에서 tree기반 모델들이 많이 쓰일수 밖에 없는 것이죠.
더불어, 기존의 머신러닝 모델들은 기본적으로 독립변수들이 서로 독립이라고 가정을 하고, 딥러닝은 input feature들의 연속성(image의 pixel값과 같이)을 가정합니다.(Q. 딥러닝의 연속성 가정은 뭘 의미하는 건지 모르겠음. feature들끼리 연관이 있다는 건가?) 결국, 우리가 사용하는 feature의 특징에 따라서 우리가 사용해야할 모델들이 달라 지는 것입니다. '이미지'하면 무조건 CNN, 데이터 분석은 Xgboost!!"라는 말은 거의 맞는 말이긴 하지만, 그 이유에 대해서 이와 같이 생각해볼 필요가 있습니다.
Convolutional Neural Network (CNN)
이미지 분류에서 기존 Machine Learning 알고리즘의 한계 : 특정 이미지를 컴퓨터에게 보여주고, 이미지를 분류하는 모델을 만들 때에 우리는 이미지를 구성하는 Pixel값을 Input으로 사용합니다. 일반적으로 Machine Learning을 할 때 에는 Input 변수들이 서로 독립이라는 가정이 있습니다. (Q1. 그럼 딥러닝 에서는 독립이 아닌가..?, Q2. 그래서 머신러닝 input feature 다중공선성 파악하는 게 의미가 있는 거네.)그래서 독립변수 (Independent Variable)라고 부릅니다. 하지만 이미지의 Pixel값으 서로 독립이 아니라는 것을 직관적으로 봐도 알 수 있죠. 아래그림의 x11에 해당하는 Pixel은 x12, x21, x22 등 주변 Pixel과 매우 가까운 Pixel값이라는 것을 알 수 있습니다. 그래서 이 Pixel값들을 아래 그림과 같이 독립변수로 쭉 늘어뜨려서 Input으로 사용하는 것은 일반적인 Machine Learning의 가정에 위배되는 행위였습니다. 하지만, 현실적으로 이렇게 밖에 사용할 수 있는 방법이 없었고 어느정도 성능이 나오기는 하였기 때문에 이렇게 이미지의 2차원 Pixel값들을 Vector로 Flatten시켜 Input으로 사용해왔습니다.Image의 Pixel값을 Flatten시켜서 Feature로 활용하는 예
Region Feature : 위 에서 언급한 것처럼 이미지 Pixel들을 Flatten 해서 사용하게 되면, x11과 x21 Pixel은 굉장히 가까운 위치에 있는 Pixel이지만 그러한 정보를 전혀 반영하지 못합니다. 이러한 지역 정보 (Region Feature) 를 학습할 수 있는 신경망 구조가 필요했고, 이러한 신경망 구조를 Convolutional Neural Network (CNN) 라고 합니다. x11과 가까운 x12, x21, x22 Pixel의 가까운 정보까지 함께 학습 시키고자 하는 것입니다.
Image의 Pixel값에 대하여 Region Feature를 뽑는 예