예전부터 이 주제로 글을 써야겠다는 생각을 가지고 있었는데, 이제서야 글을 쓰게되네요.
Learning From Data는 제가 기계학습을 처음 시작할 때 공부를 했던 책입니다. 제목이 마음에 들어서 시작을 했었지요.
CalTech의 Mostafa 교수님께서 쓰시고 현재 MOOC로도 제공 중 입니다.
Deep Neural Net이 각광을 받으면서 기계학습 강의의 대부분이 Neural Net으로 집중되어 있는 것 같은 느낌을 요즘에 많이 받는데요
개인적인 생각으로는 Neural Net을 공부하기 이전에 기계학습에 대해 공부를 먼저하는 것이 좋을 것 같네요.
아무튼 예전에 공부를 했던 Learning From Data책을 저도 복습을 하면서 글을 찬찬히 써보도록 하겠습니다.
Chapter 1에서는 기계학습의 필요성과 속성 및 종류, 그리고 기계학습의 접근방법이 Feasible 한지를 살펴보고 있습니다.
기계학습의 필요성은 결국 실생활에서 풀어야 될 문제를 사람이 분석하여 하나의 솔루션으로 결정짓기 힘들기 때문입니다.
예를 들어, 은행의 대출승인 검토 시스템을 만든다고 가정해 봅시다.
기계학습을 배제하고 해당 문제를 풀려고하면 어떻게하면 될까요?
그 사람의 신용도를 측정할 수 있는 tool이 필요하겠죠. 신용도는 어떻게 측정될 수 있을까요?
대충 생각을 해보면 연봉이 얼만지, 기존 대출이 있는지, 집은 있는지 등등의 요소를 선택할 수 있겠습니다. 그리고 각 요소마다 어떤 가중치를 부여할 수 있겠죠.
그런데 각 요소마다 가중치를 어떻게 주어야 할 지 그리고 각 요소가 대출승인에 영향을 많이 끼치는 요소가 맞는건지 분석하기가 힘이 듭니다.
그럼 이제 기계학습을 이용하여 해당 문제를 풀어봅시다.
우리는 과거의 데이터를 가지고 있습니다. input vector x의 각 요소가 어떠한 값이었을때, 대출을 승인하는게 옳은건지 아닌지 정답 sheet가 있는거죠.
그렇다면 input vector x의 각 요소에 해당되는 가중치는 기계학습 알고리즘을 이용하여 데이터로부터 학습하도록 합니다.
간단한 알고리즘을 살펴보기 전에 기계학습의 각 요소를 설명하는 notation을 정리해보겠습니다.
x -> input vector(eg, 연봉, 대출유무, 집 소유 여부 등등..)
f -> target function, 우리가 맞추고자 하는 함수입니다. 일반적으로 기계학습에서는 이를 절대 정확하게 알 수는 없습니다. (never to be known)
D -> data set, (x_1, y_1), ... ,(x_n, y_n), 과거의 데이터들 입니다. 일반적으로 이를 학습용, 검증용, 실험용으로 나누어서 기계학습 알고리즘을 평가합니다.
g -> learning algorithm, target function f를 approximately estimation하는 함수입니다.
H -> hypothesis set, hypothesis들의 집합입니다.
h -> hypothesis, hypothesis란 말 그대로 가설입니다. 즉, target function을 이렇게하면 추정할 수 있지않을까?하는 가설이죠. 예를 들어, 모든 linear fomulas가 H라고 한다면 h는 H에 속하는 임의의 하나의 linear form이 됩니다. 그리고 학습을 통해 주어진 데이터를 가장 잘 표현할 수 있는 g라는 linear form을 찾는 것이 우리의 목표입니다.
* 몇 개의 글을 쓰다가 갑자기 브라우저가 뻗어버려서 애써 쓴 글이 다 날라갔네요..생각보다 시간도 엄청 걸리고..보통 일이 아니네요.
나중에 여유가 있을 때 차근차근 다시 써보겠습니다.
'Machine Learning' 카테고리의 다른 글
Horovod 사용기 (3) | 2019.09.26 |
---|---|
Encoder Based Lifelong Learning (0) | 2018.04.02 |
Gaussian Process (0) | 2018.04.02 |
[CNN] Deformable Convolutional Neural Networks (0) | 2018.04.02 |
[DomainAdaptation] VisDA ICCV 2017 workshop (0) | 2018.04.02 |