본문 바로가기

머신러닝(Machine Learning)/실무

머신러닝의 양분, 빅데이터(BigData)와 활용




이 포스팅은 서적 '머신러닝, 딥러닝 실전개발 입문'을 참고한 포스팅입니다.





컴퓨터가 개발된 이래로 우리는 컴퓨터를 이용하여 무수히 많은 데이터를 양산해오고 있다.


1991년 2월 26일 팀 버너스리의 WWW(World Wide Web)의 개발이후로 더욱 가속화되었으며,


스마트폰 보급 및 개인 SNS의 확산은 폭발적인 데이터의 양산을 촉매시켰고 


현재 이 포스팅을 작성하는 것도 하나의 데이터의 양산으로 볼수있다.




그렇다면 머신러닝에 있어서 무수히 많은 데이터들이 어떠한 역할을 할까 생각해볼 필요가 있다.




머신러닝이란 인간의 뇌가 자연스럽게 수행하는 "학습"이라는 능력을 컴퓨터로 구현하는 방법이다.


조금더 구체적으로 말하자면 "수많은 데이터를  학습시켜 거기에 있는 패턴(규칙성)을 찾아내는 것"이다.


패턴(규칙성)을 찾아낸다면 그러한 패턴(규칙성)을 기반으로 데이터를 분류하거나 미래를 예측할 수 있다.



머신러닝은 데이터를 기반으로 사람이 찾아내기 힘든 패턴(규칙성)까지 찾아내는 능력을 지닐수 있으며


이는 미래사회에서 강력한 도구가 될 것임을 확신한다.



한마디로 정리하자면 빅데이터는 머신러닝에서 학습을 시키기 위한 양분이라고 할 수 있다.










빅데이터와 머신러닝을 이용해 가능한 것들


■ 블로그와 SNS - 트렌드 분석

    블로그와 SNS에서는 매일매일 좋은 정보들이 업로드된다. 일상이든 지식에 관한 글이든, 모두 유행을 따르게 되어있다.

    이러한 정보를 수집하고 분석하면 다양한 트렌드를 분석할 수 있다.


■ 인터넷 전자상거래 - 상품 데이터베이스

    쿠팡, 인터파크 등의 인터넷 쇼핑몰에서 매일 수많은 상품의 데이터가 업로드된다. 이를 이용하여 최저가 비교 등 소비자가

    가장 효율적으로 구매할 수 있는 솔루션을 만들 수 있다.


■ 금융 정보

    인터넷에는 환율, 주식 등의 다양한 금융정보가 있다. 실시간적으로 이 데이터들을 추출할 수 있고, 만약 특정한 규칙성을

    찾아낸다면 환율 및 주식의 등락에 관한 예측 또한 할 수 있다.


■ 이미지 데이터

    플리커, 인스타그램 같은 유명한 이미지 서비스를 활용하면 다양한 이미지 데이터를 얻을 수 있다.

    이미지 데이터를 기반으로 학습시키면 스마트 글라스에서 특정 물건을 본 후 구분할 수 있게되면 어떠한 물건이고 가격은 얼마인지 실시간적으로

    정보를 얻는 것도 가능하다


■ 위키

    인터넷에는 다양한 데이터가 있는데, 세계 최대의 인터넷 사전이라고 불리는 위키피디아를 이용할 수 있다.

    이를 이용하여 실시간적으로 정보를 확인할 수 있다면 걸어다니는 사전이라는 말이 정말 실현화 될 수 있다.


■ 문학 작품

    예부터 내려온 고전 띵작 셰익스피어, 헤밍웨이등 명작가들의 소설을 기반으로 데이터를 학습시키면 

    머신러닝을 통해 해당 작가 스타일의 새로운 소설을 창작해낼 수 있다.







스크래핑, 크롤링, 데이터 가공


머신러닝에 있어서 데이터의 필요성을 파악했다.

그렇다면 머신러닝을 개발함에 있어 먼저 필요한 것이 데이터이다.

실무적으로 데이터를 추출하고 가공하는 방법을 포스팅할 것인데 포스팅하기에 앞서 기본적인 용어정리를 하자.


■ 스크래핑

    스크래핑(Scraping)이란 웹 사이트에 있는 특정 정보를 추출하는 기술이다.

    웹에 공개된 정보는 대부분 HTML 형식으로 되어 있는데, 여기서 필요한 데이터를 추출하려면 

    광고 등의 불필요한 정보를 제거하고, 핵심적인 정보만 추출하여야한다.

    이는 웹문서의 구조를 분석해야 한다.

    따라서 스크래핑이란 기술은 웹에서 데이터를 추출하는 것 뿐만 아니라 그러한 구조를 분석하는것도 포함된다.



■ 크롤링

    크롤링(Crawling)이란 프로그램이 웹 사이트를 정기적으로 돌며 정보를 추출하는 기술이다. 

    크롤링 하는 프로그램을 '크롤러(Crawler)' 또는 '스파이더(Spider)'라고 부른다.

    이를 이용하면 검색 엔진을 구현할 때 사용하는 크롤러는 웹 사이트의 링크를 타고 돌며 웹사이트를 돌아다닌다. 

    그리고 웹사이트의 데이터를 긁어 데이터베이스에 저장하게 되면, 항상 사용자에게 최신 정보를 제공할 수 있게 되는 것이다.






머신러닝에 사용할 수 있는 데이터 구조


수집한 데이터는 머신러닝을 사용해 다양하게 활용할 수 있지만, 웹에서 내려받은 HTML 데이터를 곧바로 머신러닝에 사용하는 것은 아니다.

데이터의 구조를 분석하고, 필요한 부분만 추출하는 과정이 필요하다.


추출한 데이터를 어떻게 저장할 것인지도 중요하다. 머신러닝에 활용하려면 일단 데이터를 다루기 쉬운 형태로 저장하는 것이 좋은데 

파일로 저장할 것인지, 데이터베이스에 저장할 지 용도에 따라 결정할 수 있다.


머신러닝에 활용되는 대표적인 데이터 형식으로는 "쉼표로 구분하는 CSV 형식의 데이터", "계층을 통해 구조화할 수 있는 JSON, XML, YAML 형식의 데이

"등이 있다.