이 글을 읽기 전에 반드시 참고하셔야 할 부분이 있음을 알려드립니다.

 

인터넷 상에 제 글이 검색이 되어 다른 분들도 한 번 혹은 그 이상은 거쳐가는 곳인 것은 사실이지만, 어디까지나 저는 Machine Learning을 처음 시작하는 사람인 만큼 연구 및 학습을 위한 자료 정리용으로 올리는 것입니다.

그렇기 때문에 전문가가 아닌 초심자가 올리는 그런 글이라는 점을 참고정도 해 두시기 바랍니다.

 

그렇다 하여 책이나 학습 자료를 통해서 그대로 베끼거나 그런 내용은 블로그의 수준을 스스로 떨어뜨리는 일밖에는 되지 않는다는 점에서 그럴 일은 전혀 없을 것임도 더불어 참고하시기 바랍니다.



(본문 중 주요 내용에 대한 모든 출처: 

 1. 알고리즘으로 배우는 인공지능,머신러닝,딥러닝 입문 - 위키북스, 김의중 지음

 2. 머신 러닝 워크북 - 길벗출판사, 제이슨 벨 지음)


즉 본문에서 뭔가 어디서 많이 본 것 같은 문구나 주요 팩트 등에 대한 내용은 위 두 책을 출처로 생각하시면 되겠습니다.

이전 글까지는 한 권의 책을 주요 출처로 하였지만, 또 하나의 좋은 책이 있어서 더불어 출처로 밝히고자 하니 참고바랍니다.



위 문구는 제가 글을 올리면서 어느정도 숙지가 된 부분이 있다고 싶을때까지는 계속 나타낼 예정이니 참고바랍니다.



2016/11/23 - [Onik Lab./MachineLearning] - Machine Learning - (1) 기초 개념

2016/11/23 - [Onik Lab./MachineLearning] - Machine Learning - (2) kNN 모델

2016/12/21 - [Onik Lab./R Programming] - R Programming - (3) kNN Model




최근 글에는 kNN 모델에 대해서 언급하였습니다.
그 이후로 업무적으로도 좀 바쁘기도 했고, 인사변동도 있었고, 해외출장이다 뭐다 등등 해서 
이제 와서야 kNN Model 다음 글을 쓰게 되네요.


이번에는 지도학습의 분류모델 중 그 두번째인 서포트 벡터 머신(SVM)에 대해서 다루겠습니다.







분류모델은 어떤 정해진 값 중에서 하나의 결과를 도출해내는 것으로, 여러 선택지 중 하나의 결과를 도출하는 것이라 하였습니다.

이미 이전 글에서 분류모델에 대해서 언급하였지만, 다시 한번 재언급 해본것이고요.


kNN 모델의 원하는 결과가 방대한 데이터가 어떤 분류에 속해있는가를 나타내며,

SVM 역시 이와 마찬가지로 어떤 분류에 속해있는가를 선별하는 알고리즘입니다.


즉 알고리즘의 방식이나 접근 형태가 다른 것이지, 궁극적으로 목표하고자 하는 바는 동일하다고 보시면 됩니다.




(1) 퍼셉트론(Perceptron)의 정의 및 구성

서포트 벡터 머신을 다루는데 왠 시작부터 퍼셉트론인가 의문이 갈 수 있을 것입니다.

그 이유는, 서포트 벡터 머신(SVM)의 구현이 퍼셉트론의 개념을 가져와서 분류를 하는 방식이기 때문입니다.

그렇기 때문에 SVM을 이해하기 위해서는 먼저 퍼셉트론에 대한 이해가 선행되어야 합니다.




퍼셉트론은 인공신경망을 구성하기 위한 기본적인 토대이며, 기본 역할은 입력 신호를 받고 함수를 통해 출력값을 나타내는것입니다.




여기까지만 보면, 전산학 또는 수학 전공자한테는 이게 무슨 이론이냐 당연한 이치 아니냐고 생각할 수가 있겠죠.

하지만 프로그래밍 또는 수학적 함수의 개념과 원리는 똑같지만 약간은 다르게 접근해야 할 것입니다.


퍼셉트론은 인공신경망의 토대입니다. 

인공신경망의 기본 원리는 신경이 어떤 입력이 들어올때 어떻게 반응하는지를 구성하는 것입니다.

그러나 그 신경망은 단순히 하나의 입출력값이 고정된 것이 아니라, 수많은 학습과 반복에 의해서 특정 결과가 도출되는 것이죠.

즉 퍼셉트론은 입출력 간에 어떤 식으로 학습이 되어 어떤 함수를 만드는가를 나타내는 이론으로 보시면 됩니다.


그렇기 때문에, 퍼셉트론의 함수는 어떠한 고정된 형태가 아닌, 학습된 형태의 함수를 뜻하는 것입니다.

한마디로 퍼셉트론의 함수는 학습된 정도에 맞게 필요에 따라 변형될 수 있습니다.



그럼 퍼셉트론이 어떤 식으로 구성되는지를 설명해 보겠습니다.


퍼셉트론의 입력은 숫자값 1개에 국한되지는 않습니다. 벡터값 역시 퍼셉트론의 입력값이 됩니다.

그러므로 퍼셉트론의 구성은 벡터를 기준으로 간단히 설명하겠습니다.


(제가 그린 그림이므로 출처기재는 생략합니다만, 퍼셉트론 관련 예제에 많이 나오는 그림이므로 저작권표시 역시 생략)



벡터 x가 있고, x의 구성요소인 x1, x2, ..., xt 등이 있습니다.

이를 계산하는 함수는 상기 그림과 같이 Σ(Sum)으로 되어 있으며, 각 구성요소에 별로 가중치(w1, w2, ..., wt)를 가지고 있습니다. 

그러므로 여기에서의 기본 함수 형태는 다음과 같이 나타납니다.



그리고 그 다음에 f라는 함수가 또 있습니다. 여기에서 이 함수는 활성화 함수(activation function)이라고 하며,

활성화 함수의 결과값은 1,0으로 구성되어 있습니다. 즉 TRUE와 FALSE의 이진값으로 보셔야 되겠지요.


퍼셉트론이 인공신경망의 토대인 만큼, 인공신경망의 뉴런은 단일입력에 의한 단일출력이 아니겠지요.

하나가 입력되고 여러곳으로 출력되기도 하고, 그 출력값을 또 다른 뉴런의 입력으로 전달이 되고..


그래서 활성화 함수의 전달방식은 값이 TRUE일 경우 다음 뉴런으로 전달되고, FALSE일 경우 전달되지 않습니다.

그렇다면 활성화함수는 어떤 식으로 되어 있을까요.




상기 언급한 퍼셉트론 공식의 값과 t라는 임계값을 비교하게 됩니다.

위 공식이 TRUE일 경우 활성화 함수의 값은 1이고, FALSE일 경우 활성화 함수의 값은 0이 되는 방식입니다.



퍼셉트론의 기본개념은 여기까지입니다.

단일 퍼셉트론, 다중 퍼셉트론 등등 세부적으로 파고들면 다룰 내용이 계속 나오지만, 지금은 인공신경망 및 퍼셉트론쪽보다는 서포트벡터머신(SVM)을 다루는 글인 관계로 퍼셉트론의 기본 개념만 언급한 것이니 참고 바랍니다.

퍼셉트론, 인공신경망에 대한 세부 내용이 필요하다면 따로 포스팅하겠습니다.



그럼 이제 가장 중요한 부분까지 언급하고 SVM으로 들어가곘습니다.


퍼셉트론은 위와 같이 벡터 입력값, 가중치 및 연산함수, 활성화함수 및 이를 위한 임계값으로 구성되어 있습니다.

퍼셉트론의 함수는 고정된 형태가 아닌, 학습된 형태의 함수라고도 언급하였고요.

여기서 학습되었다라는 것은 무엇을 뜻할까요.


입력값이 들어왔을 때 원하는 결과를 도출해 내기 위해서는 가중치 및 임계값 설정이 잘 되어 있어야 합니다.

이를 초기에 설정한 후 다음 데이터를 입력했을 때 원하는 결과가 나온다면 문제가 없지만,

오차범위가 크게 발생한다면 가중치 및 임계값이 유효하지 않기 때문입니다.

그래서 이 때 가중치, 임계값을 변경하는 과정을 학습되었다라고 하며, 함수 역시 그에 맞게 변경이 됩니다.

퍼셉트론의 입력값이 계속 늘어나고, 이에 따른 오차범위가 줄어들고 충분히 학습된 함수가 있다면 결국 이 함수에 대한 신뢰도는 높아질 수밖에 없을 것입니다. 


SVM에서 다룰 퍼셉트론 역시 들어오는 입력값을 토대로 가중치, 임계값 등을 조정하면서 원하는 함수를 만들 것이고, 이를 기반으로 수많은 데이터를 분류하는 방식으로 이해하시면 되겠습니다.





(2) SVM의 정의 및 활용

SVM은 앞서 다뤘던 kNN과 마찬가지로 지도학습의 분류모델 중 하나로, kNN과 마찬가지로 훈련데이터/테스트데이터가 있어야 합니다.
SVM의 분류 방식은 크게 선형 분류와 비선형 분류가 있으며, 실습 예제는 선형 분류를 위주로 다룰 예정입니다.
비선형 분류의 경우 커널 트릭(Kernel Trick), 방사 기저 함수(RBF), 하이퍼볼릭 탄젠트(Hyperbolic tangent), 가우시안 방사 기저(Gaussian radial basis)함수, 다항함수(Polynomial function) 등등을 사용해야 하지만, SVM의 개념을 이해하고 기초적인 실습 및 학습을 하기에는 난이도가 있기 때문이지요.

지난 번 kNN에서도 언급했듯이, 먼저 기본 개념에 대한 이해가 선행이 되어야 세부 개념을 이해할 수 있습니다.



앞서 언급한 바와 같이, SVM은 퍼셉트론의 개념을 토대로 하여 데이터를 분류하는 방식입니다.
즉, kNN은 훈련데이터를 기반으로 나눠진 분류에 인접을 판단하여 테스트데이터를 분류하는 방식이면,
SVM은 훈련 데이터로 퍼셉트론 함수를 사전에 정의한 후, 테스트 데이터를 토대로 분류를 하면서 학습을 하는 형태입니다.

말 그대로 퍼셉트론 함수를 기반으로 분류하는 모델이므로, 해당 함수의 형태에 따라 선형 분류 및 비선형 분류로 나눠지게 됩니다.

SVM은 이미지 인식, 패턴 인식에 활용된다 하였으며, 텍스트 분류 또한 가능하다고 책에 명시가 되어있으며,
인공신경망과도 유사하다는 점에서 의료 분야에서도 SVM을 많이 사용한다고 합니다.



(3) 선형 분류

선형분류는 아래의 그림을 보면서 설명하겠습니다.

출처: 스탠포드(Stanford)대학교 강의자료



위에 보시다 시피, 각 데이터가 그림 상에 분포가 되어 있습니다.
여기에서 분류할 객체는 점(point)라 부르고, 모든 점에는 여러 특성(set of features)을 가지고 있습니다.

눈으로 보면, 파란 점은 위에 있고 녹색 점은 아래에 있고 그 가운데에 선이 있습니다.
그러나 이 선은 단순히 생긴 선은 아니고, 수학적으로 계산이 되어서 이루어진 선입니다.
이 선을 분리선이라 부르고 초평면(hyperplane)이라 부르기도 합니다.

분리선은 하나의 함수로 분류되어 있으며, 함수의 결과값은 1과 -1로 나타납니다.
이 때 개체가 어떤 분류인지는 결과값으로 표현할 수가 있습니다.
예를 들어서 파란색 점을 나타내는 개체는 분리선의 결과값이 1인 경우가 될 수 있겠고, 녹색 점의 개체는 결과값이 -1인 경우로 보시면 됩니다.

그렇다면 이를 토대로 SVM에서 선형 분류가 어떤 방식으로 이루어지는 지를 살펴보겠습니다.

출처: Wikipedia


위 그림은 첫번째 그림과 유사한 면이 있지만, 초평면이 좌측 상단 점선에서 우측 하단 점선까지의 면으로 구성되어 있습니다.

실제 SVM에서 사용되는 초평면도 위 그림을 사용하고 있기 때문에, 위 그림에서의 초평면 개념을 먼저 알아두도록 합니다.


가운데 실선은 주 초평면 선(main hyperplane line)으로, 초평면의 가장 중심이 되는 선이며, 이에 대한 공식은 다음과 같습니다.



x는 개체를 나타내며, w는 개체 x에 대한 가중치를 나타냅니다.

그리고 w와 x 사이의 점은 어떠한 하나의 연산이 되며, b는 bias값으로 절편을 뜻하며, 위 그림에서는 y축과 만나는 지점이 됩니다.



다음은 초평면의 양쪽 바깥쪽에 있는 점선입니다. 

이들 점선은 에지 초평면(edge hyperplane)이라 하며, 각각 다음과 같이 나타납니다.


 



위 그림을 다시 보면, +1을 나타내는 초평면에 걸친 개체가 있고, -1을 나타내는 초평면에 걸친 개체가 있습니다.

이들 개체를 서포트 벡터(Support Vector)라 합니다.


즉 서포트 벡터 머신은 분리선(초평면)을 기준으로 하였을 때 +1에 걸친 개체와 -1에 걸친 개체를 찾아내고, 이를 바탕으로 분류를 형성하는 원리로 구성됩니다.

여기에서 테스트 데이터가 새롭게 들어오게 되면 어떻게 될까요.
만약 테스트 데이터가 SVM의 에지 초평면 바깥쪽에 있을 경우 +1이나 -1 값을 나타내면서 특정 분류로 들어갈 것이고,
그렇지 않을 경우에는 분류 함수 역시 이에 맞게 변형되어야 합니다. 

SVM이 퍼셉트론의 개념을 따른다는 점에서 SVM의 초평면 함수는 퍼셉트론과 동일하다 볼 수 있습니다.
퍼셉트론이 원하는 결과의 도출을 위해서 가중치와 임계값을 설정하면서 학습된 함수로 변형되듯이,
SVM의 초평면 함수 역시 가중치(w)와 바이어스 값(b)을 변형시키면서 원하는 분류를 형성할 수 있습니다.



그렇다면, 양쪽 에지 초평면의 마진(margin)은 클수록 좋을까요, 작을수록 좋을까요.
당연히 클수록 좋습니다.

에지 사이의 간격이 클수록 분류의 신뢰도가 그만큼 높아지기 때문입니다.


여기까지가 SVM에서의 선형 분류 방법입니다.
사실 수학공식도 다수 들어가 있고 저도 처음 이해하는 개념이다보니 여러가지로 어려운 것은 사실이지만,
분류 모델의 하나라는 점에서 어떤 방법으로 분류하는가를 이해하는 것에 초점을 두어서 설명했습니다.

실제 SVM을 프로그래밍하게 된다면, SVM 라이브러리를 사용하여 w와 b값을 도출해내면서 분류하는 방식이 되겠지요?




SVM을 이해하기 위해서 다양한 여러가지 개념의 이해가 선행되다보니까 게시물을 작성하는데에만 이틀이 걸리게 되었습니다.
저 또한 전문가의 입장이 아닌, 머신러닝을 공부하고 입문하는 한 사람으로서 쓰는 것이라 다소 어눌할 수도 있고 두서가 없는 부분이 있을 수도 있습니다. 

하지만, 처음 보는 사람이 알기 쉽게 작성하도록 노력하였다 생각하며, 이와 관련된 피드백이 있을 경우 지속적으로 개선해 나가도록 하겠습니다.

다음은 SVM을 R에서 어떻게 구현하는지 실습을 다루도록 하겠습니다.



WRITTEN BY
鬼風
생각이 깨어있지 않다면 살아갈 이유도 없다

트랙백  0 , 댓글  7개가 달렸습니다.
  1. 박은정 2017.02.09 07:33
    머신러닝 강의에 나왔을 때 정확히 이해 안하고 대강 넘어갔다가 생물정보학 강의에 다시 나와서 검색해보다가 여길 찾았습니다. 머신러닝뿐만 아니라 통계와 R로 프로그램을 짤 때 사용하면서도 그 뜻을 정확히 알지 못했던 것들까지 정확하게 알게 되었습니다. 감사합니다!!
  2. 베타고 2017.11.22 14:46
    svm 개념 알기 쉽게 쓰셧군요 ㅎ. 잘. 읽고갑니다
  3. 컴돌임 2017.12.11 15:56
    머신러닝에대해 공부하다 어려워서 잘 정리된 곳을 찾아보다 들어왔는데 아주 쉽게 정리를 잘해주셨네요. 잘보고 배워갑니다.
    • 답글 감사드립니다.
      지금은 게임기획 관련 연구가 진행중이라 머신러닝쪽 연구가 임시중단된 상태입니다만, 빠른 시일 내에 더욱 좋은 글로 보답하겠습니다.
      감사합니다~
  4. 공대생지디 2018.01.04 12:18
    좋은글 너무나 잘 읽고 갑니다.

    감사합니다.
  5. 잘읽었습니다 감사합니다. !
secret

이 글을 읽기 전에 반드시 참고하셔야 할 부분이 있음을 알려드립니다.

 

인터넷 상에 제 글이 검색이 되어 다른 분들도 한 번 혹은 그 이상은 거쳐가는 곳인 것은 사실이지만, 어디까지나 저는 Machine Learning을 처음 시작하는 사람인 만큼 연구 및 학습을 위한 자료 정리용으로 올리는 것입니다.

그렇기 때문에 전문가가 아닌 초심자가 올리는 그런 글이라는 점을 참고정도 해 두시기 바랍니다.

 

그렇다 하여 책이나 학습 자료를 통해서 그대로 베끼거나 그런 내용은 블로그의 수준을 스스로 떨어뜨리는 일밖에는 되지 않는다는 점에서 그럴 일은 전혀 없을 것임도 더불어 참고하시기 바랍니다.

 

 

(본문 중 주요 내용에 대한 모든 출처: 알고리즘으로 배우는 인공지능,머신러닝,딥러닝 입문 - 위키북스, 김의중 지음)

즉 본문에서 뭔가 어디서 많이 본 것 같은 문구나 주요 팩트 등에 대한 내용은 위 책을 출처로 생각하시면 되겠습니다.



위 문구는 제가 글을 올리면서 어느정도 숙지가 된 부분이 있다고 싶을때까지는 계속 나타낼 예정이니 참고바랍니다.




2016/11/23 - [Onik Lab./MachineLearning] - Machine Learning - (1) 기초 개념


바로 전에는 기초 개념에 대해서 써 봤습니다.


크게는 지도학습, 비지도학습으로 구분되고, 지도학습은 분류모델, 예측모델이 있으며, 비지도학습은 군집모델이 있습니다.

그렇기에 이번에는 지도학습의 분류모델에 대해서 정리하고 그 중 하나인 kNN 모델에 대해서 다루겠습니다.


kNN모델이 어떤 모델에 어떻게 속해있는지는 아래 그림과 같습니다.





먼저 분류모델이 무엇인지부터 간단히 언급하자면, 어떤 정해진 값 중에서 하나의 결과를 도출해내는 것이라 하였습니다.

즉 여러 선택지 중 하나의 결과를 도출해내는 것이겠죠.


그렇다면 방대한 데이터를 분류모델을 통해서 나타내는 결과는 어떨까요.

각 데이터가 어떤 그룹에 속해있는지 그 결과를 나타내는 것이겠지요.


그것에 기반해서 접근하시면 될 것입니다.




(1) kNN 모델 정의 및 개념


k-Nearest Neighbor 모델의 약자입니다.


미리 학습을 하지 않고, 새로운 데이터의 Task 요청이 올때 그 때 분류를 수행하는 절차로 이루어지며,

기본 개념은 새로운 데이터가 어느 그룹에 속하는지를 분류하기 위해 가장 가까이 있는 학습데이터의 그룹을 알아보는 것이라 합니다.

이를 위해서는, 먼저 학습된 데이터를 표현할 수 있어야 합니다. 그래야 새로운 데이터가 어느 그룹인지를 알 수 있으니까요.



(2) k값 및 구분 방법


다음 예제를 보시면 될 것입니다.


출처: ResearchGate.net



빨간색, 녹색은 기존에 학습된 데이터입니다.

그리고 새로운 데이터 파란색이 들어왔습니다.


새로운 데이터가 어느 그룹에 속해있는지를 판단하기 위해서, 인접한 학습데이터의 개수를 기준으로 판단을 합니다.

이때 인접한 학습데이터의 개수가 바로 kNN의 'k'가 되는 것입니다.


위 그림과 같이, k=1이면 인접 데이터 개수가 1개이므로, 빨간색 그룹에 속하게 됩니다.

k=3이면 인접데이터 개수가 3개이므로, 빨간색 2개, 녹색 1개로 역시 빨간색에 속하게 됩니다.

k=5이면 인접데이터 개수가 5개이므로, 빨간색 2개, 녹색 3개로 이 때에는 녹색에 속하게 됩니다.


인접데이터 개수는 항상 홀수여야 합니다. 짝수일 경우 다른 두 그룹이 동수가 나버려서 판단이 어렵기 때문입니다.


그렇다면 여기에서 제일 중요한 것은 무엇일까요.


당연히 k값입니다.


k값이 무엇인가에 따라서 올바르게 분류할 수도 있고 아닐 수도 있기 때문입니다.


출처: PerClass.com



위 사진을 볼까요.

k값이 2일때, 19일때, 50일때입니다.

물론 제가 만든 사진이 아닌 외부 자료를 가지고 온 것인데 위 설명과는 다르게 짝수도 있네요.

(그렇다고 해도 짝수보다는 홀수를 k값으로 하는것을 권장합니다)


어떤 k값이 가장 올바를까요. 

k=19 가 가장 올바른 결과입니다.


k=2일 때에는 너무 민감하게 반응하고 있는데다가, 평균값과 큰 차이가 있는 데이터(Noise)가 많이 있습니다.

k=50일 때에는 너무 둔감하게 반응하고 그룹의 경계에 대한 변별력이 없는 상태입니다.


이 때 k=2와 같은 경우를 오버피팅(Overfitting)이라 하고, k=50과 같은 경우를 언더피팅(Underfitting)이라 합니다.


한가지 헷갈릴 수 있는 부분을 언급하자면, 색깔로 칠해진 부분과 특정 표식을 가진 포인트(점)의 차이가 무엇인가겠지요.


kNN 모델은 분류모델입니다. 데이터에 라벨이 있는 것이죠. 

즉 포인트로 나타낸 데이터는 라벨이 모두 붙어있는 것입니다.


그렇기 때문에 각 라벨 별로 어떤 Task의 어떤 k값을 가지고 이들 라벨링된 데이터를 분류해내는가가 kNN모델의 관건이 됩니다.



(3) 오버피팅(Overfitting) 및 에러 검증


정확한 데이터 분류를 위해서는 언더피팅을 검증하는 것보다는 오버피팅을 검증하는 것이 올바를 것입니다.

통상적으로 완벽하게 맞아떨어지는 데이터는 찾기가 힘들기 때문일까요.

그래서 오버피팅이 나타날 때 발생하는 노이즈, 즉 에러율을 비교하면서 에러율을 줄이기 위한 k값을 찾을 수 있어야 합니다.


이 때의 오버피팅을 해결하기 위한 방법으로는 대표적으로 규제화(Regularization) 방법으로 해결한다고 책에는 기술되었는데, 규제화에 대한 것은 따로 또 다룰 예정입니다. 간단히 설명하자면, 노이즈의 영향력을 최소화하기 위해 이에 대한 구속조건을 추가한다 정도로만 나타나 있네요.


먼저 참고하시고, 나중에 규제화를 따로 다룰 때 다시 언급토록 하겠습니다.




kNN 모델은 여기까지입니다.

아마 다음 글은 kNN 모델을 위한 R프로그래밍 예제 실습이 될 것으로 보이며, 해당 부분은 R Programming 카테고리에 다루겠습니다.




WRITTEN BY
鬼風
생각이 깨어있지 않다면 살아갈 이유도 없다

트랙백  0 , 댓글  0개가 달렸습니다.
secret

먼저 이 글을 읽기 전에 반드시 참고하셔야 할 부분이 있음을 알려드립니다.

 

인터넷 상에 제 글이 검색이 되어 다른 분들도 한 번 혹은 그 이상은 거쳐가는 곳인 것은 사실이지만, 어디까지나 저는 Machine Learning을 처음 시작하는 사람인 만큼 연구 및 학습을 위한 자료 정리용으로 올리는 것입니다.

그렇기 때문에 전문가가 아닌 초심자가 올리는 그런 글이라는 점을 참고정도 해 두시기 바랍니다.

 

그렇다 하여 책이나 학습 자료를 통해서 그대로 베끼거나 그런 내용은 블로그의 수준을 스스로 떨어뜨리는 일밖에는 되지 않는다는 점에서 그럴 일은 전혀 없을 것임도 더불어 참고하시기 바랍니다.

 

 

(본문 중 주요 내용에 대한 모든 출처: 알고리즘으로 배우는 인공지능,머신러닝,딥러닝 입문 - 위키북스, 김의중 지음)

즉 본문에서 뭔가 어디서 많이 본 것 같은 문구나 주요 팩트 등에 대한 내용은 위 책을 출처로 생각하시면 되겠습니다.

 

 

 

(1) 정의

 

Machine Learning의 첫 등장은 카네기멜론 대학교의 Tom Mitchell 교수의 저서를 통해서 알 수 있었으며, 그 정의는 다음과 같습니다.

 

"컴퓨터 프로그램이 특정 Some Task 'T'를 수행할 때 Performance Measure 'P'만큼 개선되는 Experience 'E'을 보이면 그  프로그램은 T,P에 대해 E를 학습했다고 할 수 있다."

 

 

 

그리고 실무적 관점에서는 다음과 같이 정의될 수 있다고도 합니다.

 

학습(Learning) = 표현(Representation) + 평가(Evaluation) + 최적화(Optimization)

(출처: A Few Useful things to Know about Machine Learning, Pedro Domingos, CACM, 2012)

 

 

 

머신러닝, 즉 기계학습이라는 것은 그 정의가 위와 같이 여러 관점에서 정의되어 있습니다.

하지만 여기서 공통적으로 봐야 할 것은,

 

주어진 방법을 가지고

데이터 입력값을 처리하였을 때

어떻게 최적의 결과를 도출할 지를 프로그램이 인식하는 것

 

저는 일단 그렇게 이해를 해 봤습니다.

(사실 이 부분에 대한 이해가 그리 쉽지는 않았습니다. 시간이 난다면 더욱 많은 자료를 봐야 할 것 같습니다)

 

그리고, 이를 바탕으로 새로운 데이터에 대한 예측까지도 할 수 있는 것이 머신러닝이 추구하는 목표가 되겠죠.

사람도 무언가를 학습하면 다른 예제를 가지고 새로운 문제를 해결해야 되니까요.

그러한 관점에서 이해하면 될 것입니다.

 

 

 

(2) 분류

 

지도학습과 비지도학습으로 구분이 된다 합니다.

 

이 부분은 머신러닝 분류 관련하여 굉장히 대중화되어 있는 내용이기도 하죠.

 

먼저 지도학습은,

 

(출처: 카카오프렌즈 홈페이지)

 

 

위와 같이 어떤 특정 사물에 이름(Label)을 붙여놓은 것을 뜻합니다.

즉 사람이 "첫번째 캐릭터"를 컴퓨터에 입력할 때, "이것은 라이언이다" 라고 정의를 한다는 것은,

반대로 컴퓨터 입장에서는 "지도(Supervised)"를 받은 것이기 때문에 이것을 지도학습이라고 일컫습니다.

 

비지도학습은 그 반대겠죠?

"이것은 무엇이다"라고 지도를 받지 않고, Label이 없는 데이터를 제공하는 것을 비지도학습이라 합니다.

 

 

지도학습은 크게 (A)분류(Classification), (B)예측(Prediction) 모델이 있고, 비지도학습은 (C)군집(Clustering) 모델이 있습니다.

 

 

(A) 분류모델 - kNN모델, 서포트벡터머신, 의사결정트리 등등의 모델

(B) 예측모델 - 회귀모델(Regression)

(C) 군집모델 - Partition-based Clustering, Hierarchical Clustrering

 

 

이 정도로 구분된다고 하는데, 자세한 것은 이후 글에 나타날 것입니다.

그보다 먼저, 분류모델 / 예측모델 / 군집모델이 무엇인지 정도는 알아놓는 것이 좋겠죠?

 

 

 

(3) 지도학습 - 분류모델, 예측모델

 

분류모델과 예측모델의 공통점은 당연히 지도학습 모델이니 Label이 있는 입력 데이터로 학습을 하는 것이고,

분류모델과 예측모델의 차이점은 분류는 결과값이 고정된 반면, 회귀는 결과값이 Dataset 범위 내 어떤 값도 가능하다는 것입니다.

 

더욱 쉽게 이해하자면.

 

분류모델의 결과값은 객관식 시험문제의 정답과 같은 개념이고(1,2,3,4번 중 한개)

예측모델의 결과값은 주관식 시험문제의 정답과 같이 이해했습니다(다만 범위가 존재하다는 점).

 

물론 일부 예측모델은 분류모델처럼 특정 결과값을 예측하는 경우도 있다 합니다

(이런것까지 다 쓰면 왠지 책 베끼는거같아서 생략..)

 

 

(4) 비지도학습 - 군집모델

 

'군집' 단어 개념 정도는 아실 것입니다.

수많은 것을 여러 그룹으로 만드는 그런 것이 군집이죠.

결국 비지도학습이라 함은 Label이 없기 때문에, 이를 어떻게 묶어서 분류하느냐가 최대 관건이 되겠죠.

 

출처: 매일경제TV

 

이거 구분 되세요? 당연히 되겠죠.

그렇다면 컴퓨터가 어떻게 구분할까요.

어떻게 LINE Friends와 Kakao Friend를 군집으로 묶을 수 있을까요.

그것이 머신러닝으로 개발되는 내용 중 하나가 될 수 있겠죠.

그것이 사소한 아이디어가 될 수도 있고요.

 

즉, 군집은 위와 같은 전체를 어떻게 묶어주는가.

그 방법을 제시하는 것으로 보시면 됩니다.

 

 

위 예제에서 한가지 더 언급하자면, 꼭 카카오프렌즈 - 라인프렌즈로 묶을 필요는 없어요.

큰 캐릭터 - 작은 캐릭터로 묶을 수도 있고,

남자캐릭터 - 여자캐릭터로 묶을 수도 있고,

사람 - 동물로 묶을 수도 있습니다.

 

어떻게 묶는 지는 만드는사람 마음이고, 이를 위한 알고리즘을 어떻게 짜는지 역시 개발자 마음입니다.

 

 

 

 

여기까지입니다.

머신러닝에 대한 개념을 다루었으니,

그 다음은 당연히 분류/예측/군집모델에 대해서 하나씩 정리해봐야 되겠죠?

 

다음편에 뵐게요.

 

 

 


WRITTEN BY
鬼風
생각이 깨어있지 않다면 살아갈 이유도 없다

트랙백  0 , 댓글  0개가 달렸습니다.
secret

이 글로 바로 넘어오신 분이 계신다면, 바로 앞의 개요 부분을 한번은 참고해주시기 바랍니다.

제가 어떤 배경으로 이런 글을 썼는지를 알 수 있을 것입니다.

 

2016/11/19 - [Onik Lab./General] - 머신러닝 / 빅데이터 연구를 시작하는 방법 - (1) 개요

2016/11/19 - [Onik Lab./General] - 머신러닝 / 빅데이터 연구를 시작하는 방법 - (2) 왜 머신러닝과 빅데이터인가?

2016/11/21 - [Onik Lab./General] - 머신러닝 / 빅데이터 연구를 시작하는 방법 - (3) R Programming

 

 

여태까지 앞선 글을 요약하면 다음과 같습니다.

 

1. AI를 연구하고 싶다.

2. AI 연구를 위해 머신러닝을 학습 및 연구하고 싶다.

3. 머신러닝의 데이터 관리를 위해 빅데이터를 연구하고 싶다.

4. 머신러닝의 프로그램 개발을 위해 R 언어를 사용하고 싶다.

 

 

그럼 이제 어떤 연구 Process를 가지고 할 것인지를. 이번 연재의 마지막 글로 올리겠습니다.

 

 

 

4. 연구를 위한 학습 방향 및 Process

 

위의 글을 요약해 보니. 제가 무엇을 어떻게 연구 및 학습하고 싶은 지는 매우 간단합니다.

하지만 사실 까놓고 말하자면, 이것도 하고싶고, 저것도 하고싶고. 다 하고 싶은거에요.

이래가지고 제대로 할 수 있겠습니까라고 생각할 수 있겠죠.

 

그래서 일반적인 연구방법과 제가 추진하려는 연구방법을 비교해보겠습니다.

일반적인 방법도 좋지만 제가 추구하는 방법은 특정 분야와 관련 학문을 일시다발적으로 공부하는 데에 좋을 수 있습니다.

(단, 본인의 의지가 제일 중요합니다)

 

 

먼저 일반적 연구방법입니다.

 

 

 

1. 머신러닝을 알려면 당연히 수학과 통계학은 필수이므로, 해당 학문을 먼저 공부해 나가죠.

2. 어느 정도 공부가 되었을때 머신러닝에 대한 이론의 이해를 돋구고.

3. 아이디어를 도출하기 위해서 생각을 해 나갑니다.

4. 이제 개발할 아이디어를 찾았다면 데이터를 수집해 나가고,

5. 그런 다음에 프로그래밍을 들어갑니다.

6. 그렇게 하면 구현이 완료됩니다.

 

 

이것은 사실 대학생들 또는 시간이 많으신 분들한테는 아주 좋은 방법론이 될 수 있습니다.

 

 

 

 

 

 

그러나 저같은 직장인은 시간은 많이 없고. 그렇다고 해서 자기계발을 하지 않을 수도 없고, 자기 하고싶은것도 해야되지요.

그래서 다음과 같은 방법을 고안해 봤습니다.

 

 

 

 

 

1. 머신러닝을 연구의 가장 큰 틀로 삼습니다.

 1-1) 학습 및 연구를 위한 예제를 하나씩 뜯어보면서 분석합니다.

 1-2) 하지만 통계학, 프로그래밍이 어느 정도 되어있지 않다면 어려울 것입니다.

 1-3) 그래서 예제 하나를 먼저 이해를 한 후, 그 사례에 맞춰서 통계학과 프로그래밍을 한단계씩 공부해 나갑니다.

 

2. 어느 정도 학습이 되었을 때 새로운 아이디어 도출을 위한 생각에 돌입하게 되고,

3. 실제 구현을 위해서 데이터를 수집하고 앞선 1번과 같은 방법으로 하면서 구현에 들어가게 됩니다. 여기서의 구현은 예제 구현이 아닌 자기가 구현하고자 하는 실제 포트폴리오(혹은 프로젝트)를 구현하는 것입니다.

 

 

이 방법의 최대 단점은, 학습해 나가는 지식이 뒤죽박죽이 될 수 있다는 것입니다.

 

그러나, 하나하나의 예제 또는 사례를 기반으로 공부를 해 나가면서 얻어나가는 지식은 스스로가 관리할 수 있어야 합니다.

이러한 지식을 어떻게 잘 관리하느냐가 위 사례를 통한 연구의 성패를 좌우할 수 있습니다.

 

 

제가 추구해 나가는 방법은 제가 임의대로 생각한 방법이긴 하지만, 그리 허구맹랑한 방법론 또한 아닙니다.

가장 유사한 방법론이 무엇인지를 찾아봤더니, 이를

 

사례기반학습(Case-Based Learning)이라고도 하더라고요.

 

(물론 100% 일치하다라고 단정짓기는 어렵지만, 가장 유사한 방법론을 찾자면 그렇다는 것입니다)

사례기반학습에 관련된 글은 찾다 보니까 아래와 같은 좋은 글이 있어서 같이 링크해 드리고요.

 

사례기반학습에 관한 자세한 설명: http://ttend.tistory.com/115 - 또루아빠님 블로그 글

 

 

 

다만 여기서 저보다 머신러닝이든. R 프로그래밍이든. 그 외 연구방법론 등등에 대해서 저보다 더 박식하신 분들은 많을 것입니다.

그렇기에 제가 AI 및 머신러닝 연구를 위해서 시작하려는 이 방법이 뭔가 문제가 있다거나, 아니면 더욱 좋은 방법이 있다면 누구에게나 피드백을 주시면 감사히 받겠습니다.

 

 

전 단지. 제가 지금 해 나가려는 연구와 학습 방향을 확실하게 정하고, 그것에 맞춰서 하나둘씩 진행을 하려는 것이고.

위와 같은 프로세스로 연구를 진행하는 것이 올바르게 이루어진다면, 향후에 저와 같은 방향의 연구를 하려는 사람에게도 분명히 조금의 도움은 될 수 있을 것으로 생각되어서 블로그에 이를 공유하고자 하는 것입니다.

 

 

쉬운 일은 아니지만, 한 단계 한 단계씩 나아가면서 제가 추진하려는 연구의 틀이 어느 정도 이루어졌으면 하는 바람입니다.

 

 

이상 머신러닝/빅데이터 연구를 시작하는 방법 4부작을 모두 마치겠습니다.

 

더 나은 피드백이 있다면 어떤 글이든 환영합니다.

 

 

 

 

 


WRITTEN BY
鬼風
생각이 깨어있지 않다면 살아갈 이유도 없다

트랙백  0 , 댓글  1개가 달렸습니다.
  1. 비밀댓글입니다
secret

이 글로 바로 넘어오신 분이 계신다면, 바로 앞의 개요 부분을 한번은 참고해주시기 바랍니다.

제가 어떤 배경으로 이런 글을 썼는지를 알 수 있을 것입니다.

 

2016/11/19 - [Onik Lab./General] - 머신러닝 / 빅데이터 연구를 시작하는 방법 - (1) 개요

2016/11/19 - [Onik Lab./General] - 머신러닝 / 빅데이터 연구를 시작하는 방법 - (2) 왜 머신러닝과 빅데이터인가?

 

 

앞의 글을 요약하면 다음과 같습니다.

 

현재 제가 준비하는 부분은 머신러닝을 통해서 AI를 학습 및 연구하는 것입니다.

그리고 빅데이터는 이러한 머신러닝 연구를 위한 또다른 방법이 될 수 있는 것이고요.

 

사실 일개 개인이. 그것도 심지어 백수도 아닌 일반 직장인이, 어디서 그렇게 큰 데이터를 가지고 있고, 대용량 스토리지를 보유하고 있겠습니까. 말이 안되는 일이죠.

심지어 회사의 데이터를 다룰 수 있다고 해도 그것을 제 연구용으로 사용하면 안됩니다. 그것은 명백한 불법이기 때문이죠.

 

그러나 다행스럽게도, 빅데이터까지는 아니더라도 인터넷에는 방대한 자료를 얻을 수 있는 방법이 많이 있으며, 그것도 모두에게 공개된 자료 역시 찾아보면 많습니다. 이러한 자료들이 빅데이터가 될 수 있고 수집 데이터가 될 수 있습니다.

 

 

 

이제 본론 들어갈게요.

 

3. R Programming

 

 

아마도 이러한 의구심은 있을 것입니다.

 

왜 R이냐? 할 것이면 Python을 해야 하는 것 아니냐?

 

네. 물론 할 수 있습니다. 경우에 따라서, 혹은 필요에 따라서는 Python도 제 연구를 위한 프로그래밍 수단이 될 수 있습니다.

그렇기 때문에 나중에 Python도 같이 사용할 수 있습니다.

 

그럼에도 불구하고 R을 선택한 이유는 그냥 단순하게.. 끌려서 하게 된 것입니다.

단순하게 끌려서 하게 되었다. 그것만큼 중요한 이유가 있을까요.

 

다행스럽게도 R Programming을 통해서 구현할 수 있는 것은 매우 많이 있습니다.

비록 최근에 나온 언어는 아니지만서도, CRAN에서 제공하는 수많은 패키지들도 있고.

그것까지는 아니더라도, R 언어 자체가 정말 간단한 문법을 가지고도 통계에 대한 수많은 결과를 표현하고 개발하는 것이 가능합니다.

 

사실 그래요. Python이 만능일 수는 있습니다.

하지만 좀 더 통계와 관련된 부분에 특화된 언어를 하는 것도 괜찮을 것이라고 생각됩니다.

통계하면 SPSS가 가장 먼저 떠오르는 것은 누구나 아는 사실이지만, SPSS는 도구일 뿐이지 언어가 아니라는 것은 알고 계실 것입니다.

 

그런 의미에서 R을 접하게 된 것입니다.

 

실제로, R 관련해서 인터넷, 서적 등등을 보더라도 머신러닝에 사용되는 기초 알고리즘이나 예제 등을 생각하는 것 이상으로 상당수 많이 제공하고 있습니다. 그렇기 때문에 누구나 학습 및 연구하는 데 도움이 될 수 있을 것이라 생각합니다.

 

그 중에서 제가 몇 가지 책을 추천하자면,

 

데이터 분석으로 배우는  알짜 R 테크닉 - 인사이트(원저자 재리드 랜더, 조민구 옮김)

R을 활용한 데이터 시각화 - 인사이트(유충현, 홍성학 지음)

빅데이터(Big Data) 활용서. 1 : R을 이용한 중 고급 데이터 분석의 바이블 - 시대인(김경태, 안정국, 김동현 지음)

빅데이터(Big Data) 활용서. 2 : R을 이용한 중 고급 데이터 분석의 바이블 - 시대인(김경태, 안정국, 김동현 지음)

 

 

뭐 이 정도 있겠습니다.

물론 원서나 외부 인터넷 자료 등등도 많이 있지만, 인터넷 자료같은 경우는 좋은 자료 있으면 별도로 제가 따로 올릴 예정입니다.

글 제목이 '머신러닝 연구를 시작하는 방법'이기 때문에, 말그대로 시작하는 사람들을 위해서 한글로 번역 및 집필된 서적을 우선적으로 보면서 전진해 나가는 것이 순서이지 않을까 생각합니다.

 

 

그렇다면 이 책들은 머신러닝 및 R프로그래밍을 위한 분석이 기초부터 하나씩 잘 나와있을까요.

사실 그렇지는 않습니다. 아무래도 이론서가 아닌 프로그래밍 서적이라는 점에서 프로그래밍 코드 작성 및 함수(Function), 구현(Implementation) 등을 위주로 나타낼 수밖에 없겠죠.

 

당연합니다.

이들 책에서 요구하고자 하는 바는 (책의 내용은 각자 다르지만서도) R 프로그래밍을 어떻게 공부하고, 이를 통해서 어떤 방향으로 응용하면 좋을 지를 알려주고자 하는 것이지, 머신러닝, 빅데이터, 통계공부를 위해서 R프로그래밍을 소개하는 책이 아니거든요.

 

 

그래서 R프로그래밍을 학습하면서도 머신러닝에 대한 연구를 하고 싶은 저같은 사람이 있다면, 위 부분은 반드시 유념해야 합니다.

 

 

출처: Edureka

 

 

 

여태까지 썼던(이 글 뿐 아닌 앞선 글 포함하여) 글을 요약하면 다음과 같습니다.

 

1. AI를 연구하고 싶다.

2. AI 연구를 위해 머신러닝을 학습 및 연구하고 싶다.

3. 머신러닝의 데이터 관리를 위해 빅데이터를 연구하고 싶다.

4. 머신러닝의 프로그램 개발을 위해 R 언어를 사용하고 싶다.

 

 

자 그러면 이를 바탕으로 어떤 방법으로 연구해 나가야 할 것인지.

다음 편에 이어서 작성하겠습니다.

 


WRITTEN BY
鬼風
생각이 깨어있지 않다면 살아갈 이유도 없다

트랙백  0 , 댓글  0개가 달렸습니다.
secret

이 글로 바로 넘어오신 분이 계신다면, 바로 앞의 개요 부분을 한번은 참고해주시기 바랍니다.

제가 어떤 배경으로 이런 글을 썼는지를 알 수 있을 것입니다.

 

2016/11/19 - [Onik Lab./General] - 빅데이터 / 머신러닝 연구를 시작하는 방법 - (1) 개요

 

 

 

 

인공지능에 대한 연구는 사실 최근에 있었던 일도 아니고.

제가 대학원에서 연구했을 때에도 제 연구실 바로 아래층에는 인공지능 연구실이 사실 별도로 있었습니다.

 

당시에는 인공지능쪽도 대학원 수업을 들으면서 좀 같이 공부하려고도 했었는데..

너무 어려워서 성적이 별로 좋지 못했죠. 정말 열심히 했지만 어려웠더라고요.

 

아무래도 당시에는 많은 국내자료가 있었던 것도 아니고, 연구했던 사람도 한정적이였기 때문이겠지요.

(제가 의지가 부족해서는 절대로 아닙니다)

 

 

 

인공지능을 연구하는 분야가 사실 굉장히 다양해요.

 

1. 전문가 시스템(Expert System)

2. 퍼지이론(Fuzzy Theory)

3. 기계학습(Machine Learning)

4. 유전 알고리즘(Genetic Algorithm)

 

등등..

 

 

 

스마트폰이 등장하고, Apple에서는 Siri도 더불어 등장하면서 사람과 대화할 수 있는 지능형 AI라는 것이 대두되었고,

Google에서도 학습하는 AI 개발이 박차를 가하고 있다고 하다가 뜬금없이 대형 건을 하나 터트리게 되었죠.

 

 

 

바로 이세돌과 알파고의 대결. 1년도 안 된 일입니다.

모두가 알다시피 알파고의 4:1 승리로 끝.

 

 

 

그 때부터였어요.. 머신러닝이 본격적으로 대중들에게 알려진 것이.

사람들 특성 있잖아요. 평소에는 관심도 안가지다가 뭔가 대중적인 것이 하나 생기면 관심을 가지게 되는 것.

 

하지만 저도 그것때문이라고 볼 수만은 없습니다.

왜냐. 그것 때문이였으면 지금 이맘때 쯤이 아니라 4월부터 당장 책 찾아보고 공부하고 그랬어야죠.

 

다만 저는 무려 6년이라는 시간 동안 IT 쪽 관련 연구를 할 겨를도 없었고. 하지도 못했었고.

다시 IT 분야로 스스로가 돌아오면서 주변에 아무런 도움도 받지 않고 스스로가 연구할 수 있는 분야가 무엇이 있을까.

그리고 앞으로 떠오를 분야가 무엇일까를 검토를 해봐도

 

결국은 머신러닝쪽으로 기울어지게 되더라고요.

 

 

즉 구글이 알파고의 인기를 등에 업어서 '머신 러닝'이 대세가 되었고 그로 인해서 연구를 해보자는 것이 아닙니다.

앞으로의 IT를 이끌 핵심 기술 중 하나가 '머신 러닝' 이였던 것이고, 단지 Google이 알파고를 통해 먼저 대중에게 선보였을 뿐입니다.

 

전후 관계가 바뀐 것이죠.

 

사진출처: ZDNet

 

 

MS에서도 머신러닝을 위한 Azure를 제공하기 시작했으며,

네이버 / 삼성전자 / 카카오 등에도 AI와 관련된 연구를 지속적으로 하고 있고 일부 상용화도 현재 진행중입니다.

 

그들 역시 똑같을 것입니다.

Google이 먼저 해서 우리도 해야지가 아니라, 어차피 차세대 핵심 기술이라는 방면에서 연구를 하고 결과물이 나오는것뿐.

 

 

 

제가 이런 굴지의 기업에 맞서서 무언가를 만든다는 것을 기대하는 것은 당연히 아니지만,

머신러닝을 제 스스로가 학습하고 연구하면서. 제가 평소에 꿈꿔왔던 여러 가지 다방면의 분야와 결합했을 때

뭔가 새로운 솔루션을 만들 수 있을 것이라는 기대감을 가지고 있는 것도 사실이고요.

제 자신이 뭔가 한단계 발전해나갈 수 있을 것으로 보입니다.

 

 

 

 

그런데 말입니다.

 

제목이 '왜 빅데이터와 머신러닝인가?'인데 정작 빅데이터는 빠져있네요.

그 이유는 사실.. 굉장히 단순합니다.

 

사진출처: SK채용블로그

 

 

머신러닝을 통한 AI를 학습하기 위해서는 무엇이 필요할까요?

 

당연히 데이터가 필요하겠죠?

 

그런데 스마트폰, SNS의 시대에서 방대한 정보를 수집하고 이를 통해서 무언가 새로운 것을 도출해 내기 위해서는

빅데이터 관련된 기술이나 자료가 없이는 절대로 얻을 수 었습니다.

 

즉 빅데이터는 새롭게 뭔가를 학습하기 위한 분야라기 보다는 머신러닝에 대한 연구를 위한 기초 데이터를 수집하기 위한 방편으로 이해하시면 될 것입니다.

 

 

2편은 여기서 마치겠습니다.

3편부터는 좀 더 Detail한 내용으로 찾아뵙겠습니다.


WRITTEN BY
鬼風
생각이 깨어있지 않다면 살아갈 이유도 없다

트랙백  0 , 댓글  0개가 달렸습니다.
secret

먼저 참고로 말씀드리자면,

이 글을 작성한 본인은 빅데이터 또는 머신러닝 전문가는 커녕 거의 Beginner 정도의 지식 수준밖에 되지는 않습니다.

 

하지만 제가 해당 분야에 대해서 어떤 식으로 연구를 해야 하는가를 거의 10일을 고민을 하고 관련된 자료도 많이 찾아보았으며. 여러 다양한 문헌 및 방법 등도 세부적으로 보면서 고민을 하여 쓰게 되었습니다.

 

그러니 전문가들이 이 글을 본다면 뭔가 지식도 없으면서 아는 척을 하는 것인가 생각할 수도 있을 것이고, 혹은 아직도 모르는게 많이 있구나 그렇게 느낄 수도 있을 것입니다.

 

다만 제가 그럼에도 불구하고 연구방법에 대해서 구지 글을 올리고자 하는 이유는

 

제가 이제 막 새로운 분야에 대한 연구 및 학습을 시작하면서 학습 방향을 잡기 위해서 수없는 고민을 한 결과를 이 게시물을 통해서 정리를 하고자 함이 그 첫번째 목적이요, 

 

저와 같은 고민을 하고 계신 몇몇 분들에게 아주 조금의 도움이라도 될 수 있을 것 같은 기대감이 두번째 목적이요,

 

제가 생각하는 방향을 저보다 잘 알고 계시는 많은 분들이 보면서 좀 더 올바른 방향으로의 피드백을 구하고자 함이 세번째 목적입니다.

 

 

그래서 써 보는 겁니다.

 

 

 

빅데이터 / 머신러닝 연구방법 역시 시리즈물로 연재할 예정입니다.

현재 연재 중인 Fitbit Charge 2와는 달리, 미리 구체적인 순서부터 정해놓고 쓸 예정이고요.

그 순서는 아래와 같이 구성하겠습니다.

 

 

1. 개요

 

2. 왜 빅데이터와 머신러닝인가?

 

3. R Programming

 

4. 연구 및 학습 Process

 

 

이렇게 한번 구성해 보겠습니다.

 


WRITTEN BY
鬼風
생각이 깨어있지 않다면 살아갈 이유도 없다

트랙백  0 , 댓글  0개가 달렸습니다.
secret