'기계학습'에 해당되는 글 4건

  1. 2015.12.14 가트너 2015 기술 트랜드 분석 - 시민 데이터 과학에서 IoT까지
  2. 2013.04.29 기계학습(Machine Learning) 관련 자료들~
  3. 2013.04.02 기계학습이란?
  4. 2013.02.12 구글 독감 트렌드 분석 - Big Data, Big Insight

가트너 2015 기술 트랜드 분석 - 시민 데이터 과학에서 IoT까지

|



작년과 올해 발표된 가트너의 Hype Cycle을 기반으로 빅데이터, IoT 기술의 동향을 정리해 보려고 한다. 


2014년에는 "빅데이터", "데이터 과학", "사물인터넷" 이 언급되었었는데, 

2015년에는 "빅데이터"가 사라지고 "기계학습", "고급 분석", "시민 데이터 과학", "사물인터넷", "사물인터넷 플랫폼"이 등장했다. 


Gartner's 2014 Hype Cycle


빅데이터는 이제 환상을 점차 걷어내고 있는 추세로 2014년 가트너는 이야기했다. 

그래도 안정화까지는 5~10년 정도 소요 될 것으로 보고 있다. 


데이터 과학은 떠오르고 있는 분야로 설명하고 있고, 

최고 정점에 올라 있는 것으로는 사물인터넷(IoT)를 이야기 하고 있다. 


Gartner's 2015 Hype Cycle


2015년에는 위에서 언급한 대로 빅데이터가 사라졌다. 

대신 기계학습(Machine Learning)과 고급분석(Advanced Analytics With Self-Service Delivery)이 그 자리를 차지하고 있다. 

즉, 빅데이터의 개념보다는 기계학습이나 분석을 통한 활용의 가치에 더 주목하고 있다고 보면 된다. 


또 하나의 특징이 "데이터 과학"이 "시민 데이터 과학"으로 용어를 살짝 바꾼 점이다. 

데이터 과학이 통계학이나 분석학에서 비즈니스 측면으로 이동한다고 해석하면 될 것 같다. 

이제는 기술이 발전하고 있으므로 실제로 비즈니스 전문가들이 파워 유저로서 데이터 과학자로 활동하게 될 것이라고 예측한 셈이다. 


마지막으로 사물인터넷(IoT) 뿐만 아니라 IoT 플랫폼이 추가되었다. 

IoT가 활성화되면서 수집되는 데이터의 양이 많아져서 빅데이터 분석은 더 활성화 될 전망이다. 





Trackback 0 And Comment 0

기계학습(Machine Learning) 관련 자료들~

|



기계학습(Machine Learning)에 대해서 관심이 높아지는 것 같습니다. 

하지만 관련된 자료가 많지 않은 듯 해서 올려봅니다. 


먼저 최근 Facebook 친구가 되신 분의 타임라인에 올라와서 확인한 자료인데요. 

빅데이터에서의 기계학습(Machine Learning on Big Data)로서 잘 구성된 것 같습니다. 

이 자료에 대한 설명과 함께 들으면 좋겠다는 생각이 들기도 하네요.. 


Machine Learning on Big Data from Max Lin


그리고 스탠포드 대학의 Andrew Ng 교수의 Machine Learning 강의도 훌륭합니다. 

iTunes University에서 "Machine Learning"으로 검색해도 나오구요. 

Coursera에서도 무료로 볼 수 있습니다. (https://www.coursera.org/course/ml)

모두들 참고하세요~






Trackback 0 And Comment 0

기계학습이란?

|



Christoper M. Bishop이 쓴 "Pattern Recognition and Machine Learning" 이란 책을 스터디하고 있습니다. 

기계학습(Machine Learning)을 배워보기 위해서 살펴보고 있는데요. 

책이 재미있으면서도 조금은 난이도가 있네요. 



기계학습이란?

기계학습은 컴퓨터가 학습할 수 있도록 알고리즘과 기술을 개발하는 분야를 의미합니다. 

이를 통해 다양한 패턴 인식이나 예측등을 수행할 수 있겠죠. 


기계학습을 하기위해서는 수학적 배경 지식들이 중요한데요. 

이 책에서도 1장에서 베이즈확률(Bayesian probabilities)와 함께 정규분포를 다룬 Gaussian Distribution 등 여러가지 이야기들이 나오고 있습니다. 

앞으로 계속 하나씩 정리해 보도록 하죠. 


먼저 관련 용어부터 가볍게 이야기 해보죠. 

"training set"은 기계학습을 위한 데이터라고 생각하면 됩니다. 

보통 과거의 데이터들이 축적되어 있으면 이 데이터를 기반으로 훈련을 해서 패턴을 인식하게 되는 것이죠. 

이러한 데이터를 training set이라고 하는데요. 


기계학습에서는 어떤 알고리즘도 데이터의 양을 이길 수 없다고 합니다. 

그만큼 훈련할 수 있는 데이터의 양이 중요하다는 것이겠죠. 그래서 요즘 빅데이터에 관심이 많은가 봅니다. ^^


이어서 "target vector" 즉, t라고 하는 것이 있는데요. 

실제 결과값이라고 보시면 됩니다. 

만약 사람이 손으로 쓴 숫자를 인식한다고 하면 미리 알고 있는 결과값이 t가 되겠죠. 

기존의 사람들의 손글씨를 training set으로 보고 훈련해서 나오는 예측값과 결과값 t가 최대한 일치하게 만드는 것이 바로 기계학습이라고 보면 됩니다. 


기계학습의 종류


Supervised learning

Supervised learning은 training set으로 부터 하나의 함수를 유추해 내기 위한 기계학습의 한방법인데요. 

입력 값에 대한 결과값, 즉 target vector가 무엇인지 미리 알고 있는 경우라고 합니다. 

즉 "training set"과 "target vector"를 모두 알고 있는 경우를 말하는 것이죠. 


이 중에서도 주어진 입력 값이 어떤 종류의 값인지 표시하는 것을 "Classification"이라고 하구요. 

유추된 함수에서 연속적인 값을 출력하는 것을 "Regression"이라고 합니다. 


Unsupervised learning

unsupervised learning은 입력값에 대한 결과값, 즉 target vector가 주어져 있지 않은 경우입니다. 

그러므로 데이터가 어떻게 군집되었는지 모르기 때문에 이러한 구성을 알아내는 문제를 해결하기 위한 기계학습이라고 할 수 있습니다. 

그래서 unsupervised learning은 밀도를 측정하고 시각화하는 것과 연관을 가지고 있습니다. 


주로 비슷한 범주끼리 묶어주는 역할을 하는 "Clustering"이 unsupervised learning의 하나라고 할 수 있습니다. 


Reinforcement learning

보통 good dog, bad dog으로 이야기를 많이 하는데요. 

어떤 환경을 탐색하는 에이전트가 현재의 상태를 인식해서 어떤 행동을 했을 때, 보상을 얻게 되는 것을 의미합니다. 

그래서 보상을 최대화하는 행동으로 정의되는 정책을 찾는 것이라고 할 수 있습니다. 


강아지가 훈련을 잘 따라오면 먹이를 보상으로 주는 것과 비슷해서 good dog/bad dog이라는 사례를 많이 드는 것 같습니다. 


간단한 사례

정의만 하고 마무리 하면 아쉬우니 Polynominal curve fitting이라고 하는 다항식 관련 예제를 정리하도록 할께요. 

먼저 training set인 X가 다음과 같이 N개 주어져 있다고 가정해 보죠. 



여기에서 T는 column vector를 의미합니다. 

만약 T가 없다면 행렬에서 이야기하는 row vector가 되겠죠. 


그리고 X에 대응하는 target vector인 t를 다음과 같이 나타냅니다. 



이럴때 X들을 잘 연결해서 하나의 곡선을 만들어 주는 것이 바로 curve fitting 입니다. 



그리고 입력값 X에 대한 이러한 함수를 만들어 보니 다항식이 된다는 것이죠.

(예제 그림에서는 sin 함수로 나오네요)



여기에서 M은 바로 다항식의 차수가 되겠죠. 

위 식에서 w값인 weight만 잘 계산하면 실제 결과와 근사치가 가능하다는 것입니다. 


이런 경우, w를 최소화 하는 것이 중요하므로 이를 활용해 error function을 만들어 볼 수 있다고 하네요. 



마치 분산이나 표준편차를 계산하듯 실제 결과값인 target vector에서의 예측치의 거리를 계산하고 있는 것을 알 수 있습니다. 

2로 나눈 것은 나중에 계산이 편리하기 때문이라고 합니다. 


x, w, t를 제외한 나머지 변수인 M과 N에 대해서 잠깐 설명하면 

M은 다항식의 차수를 이야기 하는데요. 

너무 클 경우, overfitting이라고 해서 오히려 안좋은 결과가 나올 수 있다고 합니다. 

다음 그림과 같이 M=9일때, 더 이상한 곡선이 나오고 M=3일때 원하는 곡선이 나오는 것을 알 수 있습니다. 



N은 training set 의 개수를 이야기 하는데요. 

앞서 언급한 것처럼 데이터 양이 많을수록 좋은 결과를 얻게 됨을 이 그림으로도 알 수 있을 겁니다. ^^



앞으로 기계학습도 꾸준이 올려보도록 하겠습니다. 

다음에는 기계학습에서 주로 사용하는 확률 이론에 대해서 정리해 보도록 하죠. 





Trackback 0 And Comment 0

구글 독감 트렌드 분석 - Big Data, Big Insight

|



빅데이터의 사례로 가장 많이 이야기하는 것이 바로 "Google 독감 트렌드"입니다. 

구글에 집계된 검색어를 기반으로 세계 여러 국가의 독감 유행 수준에 대한 예상 수치를 제공하는 것인데요. 

이를 기반으로 빅데이터에 대한 전략이 어떻게 만들어졌는지 한번 생각해 보기로 했습니다. 


데이터 수집

구글 검색어가 자동으로 구글의 서버에 쌓이게 되므로 데이터의 축적은 기본적으로 이루어졌을 것입니다. 

또한 검색어는 시간에 따른 분포를 나타낸다는 점과 IP를 통한 위치를 파악할 수 있다는 것을 활용한 것이라 볼 수 있습니다. 

즉, 검색어, 시간대, 그리고 위치 정보를 활용해서 독감 트렌드를 분석해 낸 것이죠. 


먼저 독감(ILI - influenza likeness illness)과 관련된 키워드(ILI-related query)들을 정리해서 추출했을 겁니다. 

예전에 뉴스 자동분류 시스템을 개발할 때, 키워드와 시소러스를 정리해서 정확도를 높인 적이 있었는데요. 

여러가지 뜻을 가진 단어들이 많아서 고생했던 기억이 있습니다. 

그라나 독감과 같은 전문적인 단어는 상대적으로 관련 키워드를 추출하기가 용이했을 듯 하지만 여기에도 많은 검증이 있었겠죠. 


데이터 분석

데이터를 분석하기 위해서는 수집된 데이터의 지표들을 기반으로 상관관계를 만들어낼 필요가 있었을 겁니다. 

즉, 해당 지역에서 "실제 병원을 방문한 환자의 수"와 "구글에서 독감 관련 키워드를 검색한 사용자의 수"의 관계가 되겠죠. 


이것은 구글에서 2009년 네이처(Nature)에 발표한 논문을 보면 잘 나와 있습니다. 



"Detecting influenza epidemics using search engine query data"란 제목으로 발표되었는데요. 

(위 제목을 클릭하면 PDF 파일을 받아 볼 수 있습니다.)

여기에 나와 있는 수식을 보면 다음과 같습니다. 



수식을 보면 "실제 병원을 방문한 환자의 수"와 "독감 관련 키워드를 검색한 수"의 관계가 로그를 취했을 때 선형 관계라는 것을 알 수 있습니다. 

절편(intercept), 계수(multiplicative coefficient) 등을 통해 보정값을 설정하고, 자연로그를 사용해서 비선형인 회귀식을 선형 방정식으로 만든것 같네요. 

일반적으로 비선형 방정식은 추정이 어려운 것으로 알고 있습니다. 그래서 선형 방정식으로 바꾸어야 하는데요. 

원래는 다음과 같은 수식이 만들어졌을 것입니다. 



여기에 자연로그를 취해서 선형 방정식으로 만들면 다음과 같이 되겠죠. 



이 함수는 2003년부터 2008년까지 쌓인 데이터를 Training Set으로 해서 기계학습(Machine Learning)을 통해 만들어졌을 것입니다.

실제로 MapReduce를 사용해서 분산 환경에서 쿼리 추출부터 함수 생성까지 수많은 모델을 테스트해서 만들어낸 것이라고 하네요. 

그리고 훈련된 결과를 검증하기 위해서 테스트에 포함되지 않은 유타지방의 42주 데이터와 논문 발표 전 최신 데이터를 사용했다고 하네요. 

어쨋든 데이터가 워낙 방대하게 모아져 있을테니 그만큼 정확도도 높게 나왔을 것 같네요. 


시각화

구글은 검색어를 기반으로 독감을 예측하는 시스템을 구축함으로써 Big Data에서 Big Insight를 찾아냈습니다. 

그리고 마지막으로 이를 2008년부터 google.org를 통해 Google 독감 트렌드라고 시각화(Visualization)해서 보여줍니다. 



지역별로 매우높음, 높음, 보통, 낮음, 매우낮음의 5단계로 정보를 한눈에 보여주고 있습니다. 

역시 시각화의 핵심은 아무리 어렵게 분석했더라도 사용자는 직관적이고 쉽게 알 수 있도록 보여주는 것인 듯 하네요. 


구글 분석 결과를 실제 각국의 보건 당국이 발표한 자료와 비교해 보면 매우 유사하게 나옵니다. 

이를 확인해 주기 위해서 각국의 실제 자료와 비교해서 다음과 같이 보여줍니다. 



마치면서

이상으로 빅데이터하면 가장 많이 이야기하는 구글의 독감 트렌드를 기반으로 실제 빅데이터 구축이 어떻게 되는지 간단히 정리해 봤습니다. 

이런 사례를 살펴보면서 느끼는 점이 많습니다. 

실제 프로젝트를 진행해 보니, 빅데이터에서 내가 원하는 인사이트에 적합한 함수를 만들어내는 것도 상당한 노력을 필요로 하더라구요. 

또한 이를 여러 설명이 필요없도록 단순하면서도 명확하게 시각화 하는 것도 많은 생각을 하게 합니다. 





Trackback 0 And Comment 0
prev | 1 | next