데이터 마이닝이란?
머신 러닝
머신 러닝은 유아기의 뇌를 학습시키는 것과 비슷하다. 마치 아무것도 모르는 애기한테 재는 나무야, 재도 나무고, 재도 나무.. 이런 과정들을 거치면서 애기는 어떠한 규칙이나, 판단의 잣대가 생긴다(머신러닝에서의 선형대수같은것)
학습과정에 중요한것은 데이터와 레이블이다
데이터는 예시들(말그대로 나무사진, 나무사진이 아닌 것들)로 구성된것
레이블은 나무가 맞다. 아니다의 표식이다. 예시와 같이 제공해줘야하는 것이다.
즉, 머신 러닝을 위한 데이터는 예시, 레이블쌍의 집합으로 구성된 충분한 양의 데이터가 필요하다.
러닝 모델
위와 같이 예시와 레이블이 있는 data set이 준비되었다면,
러닝 모델(커다란 함수로써 input, output이 을 가진 함수라 생각하자)을 생각하자
예시(나이, 연봉>>채무이행가능, 불가능)
나이, 연봉은 독립변수(함수에 영향을 받지 않음)
채무이행가능여부는 (종속변수)
독립변수가 두개이므로
위 함수는 입력 변수가 x1, x2이며, 그 계수가 각각 w1, w2, 상수항이 w0인 함수입니다
우변을 0으로 두면 x1-x2 평면 상의 직선이 된다.
이렇게 직선(또는 평면, 초평면 등)의 형태로 정의되는 러닝 모델을 특별히 선형 모델(linear model)이라고 부른다.
러닝 모델은, 이에 결부되어 있는 모종의 러닝 알고리즘(learning algorithm)에 의거하여 w0, w1, w2의 값을 적절하게 조정, 잘못 분류된 점이 제대로 분류되도록 합니다.
이를 통해 직선을 데이터기준으로 그리면
y가 양수면 이행가능, 음수면 이행불가능으로 결과같이 나오게된다.
나무 예시로 머신러닝 생각해보기
100x150의 픽셀을 가진 나무사진이미지들이 있다면
한 예시가 15000개의 픽셀을 가지며 각 픽셀당 RGB라는 3개의 속성값을 가진다(0,0,0)~(255,255,255)
하나의 예시가 그럼 독립변수 45000개를 가지므로
f(x1~x45000)=w0 +w1x1+~~~+w45000x45000
러닝 알고리즘에 의해 학습하는 데도 엄청나게 오랜 시간이 걸리거나, 최악의 경우 아예 학습 자체가 불가능할 수도 있습니다
나무 구별을 위한 새로운 요인 정의
15,000개 픽셀들의 [R, G, B] 값 각각에 대하여, 이들의 평균값을 대표로 사용하면 어떨까요? 이렇게 하면, 픽셀의 위치와는 무관하게 다음과 같이 [R, G, B] 조합 한 개만이 얻어질 것입니다.
이렇게 원 데이터에서 ‘R의 평균’, ‘G의 평균’, ‘B의 평균’과 같이, 데이터를 설명하는 새로운 항목들을 정의하여 위와 같이 새로운 형태의 데이터를 생성함으로써 입력 변수의 개수를 감소시키는 작업은 머신러닝에서 필수적이라고 할 수 있는데, 이 때의 항목을 ‘요인(feature)이라고 부릅니다.
독립변수가 3개이므로 식은 간단하지만 전체 이미지를 지배하는 평균 색상이 무엇인지를 구햇을뿐, 나무와 상관없없어졋다..
의미있는 새로운 요인 정의해보기
일반적인 나무 이미지를 생각해보면, 윗쪽 중앙에는 무성한 초록색 잎사귀가 위치해 있고, 아랫쪽 중앙에는 줄기가 위치해 있지 않았던가요?
‘윗쪽 절반 중앙의 [R, G, B]값’, ‘아랫쪽 절반 중앙의 [R, G, B]값’으로 총 6개의 요인을 정의할 수 있습니다.
실무에서는 쓰이지 않고, 다른 SIFT, HOG, Texton과같은 대표적인 요인 추출 알고리즘으로 이미지 인식 문제에 사용된다
선형 모델외의 다른 러닝 모델 사용
선형 모델은 가장 단순하고 (선형 모델로 학습이 가능한 데이터 집합에 한해서) 학습 속도가 빠르며 인간이 이해하기 쉬운 대신, 원 데이터 자체가 수많은 픽셀로 이루어져 있는 이미지와 같은 데이터의 경우에는 데이터의 복잡성을 선형 모델에 충분히 반영하는 것이 불가능합니다
실제 이미지 인식 분야에서는 선형 모델 대신 인공신경망(artificial neural networks)과 같은 복잡성이 높은 러닝 모델을 사용합니다. 이렇게 복잡성이 높은 신경망(neural networks) 구조를 러닝 모델로 사용하는 머신러닝 패러다임을 ‘딥 러닝(deep learning)‘이라고 합니다.