상세 컨텐츠

본문 제목

[머신러닝] 머신러닝이란?

IT/프로그래밍

by James Lee. 2015. 12. 1. 12:25

본문

머신러닝을 공부하기 전에 배경지식을 알아야 할 필요가 있기 때문에 관련된 기사를 찾아서 정리해보았다.


머신러닝이란

기계 학습처럼 기계(컴퓨터)가 스스로 학습하여 무엇인가를 예측하는 것


굉장히 이슈가 되고 있는 기술(대규모 IT기업들이 눈독을 들이고 있음)

왜냐하면 사용자로부터 모아지는 데이터들의 양이 점점 증가하고 있고, 이것을 어떻게 활용하는가에 따라 굉장한 가치가 창출될수도 있기 때문


머신러닝과 빅데이터, 인공지능과의 차이점

 - 빅데이터는 대규모 데이터를 처리하는 기술, 머신러닝은 대규모 데이터로부터 어떻게 유용한 정보를 얻을지 유도하는 기술

 - 인공지능은 범위가 매우 크고, 머신러닝은 '예측'이라는 범위로 한정됨, 즉 인공지능이 머신러닝보다 상위개념


기계는 어떻게 스스로를 학습(모델링)하는가?

수많은 데이터들에서 패턴을 찾고, 정형화는 것.

패턴을 찾고 정형화하면 2가지 형태로 활용됨.

첫번째, 예측.

예를 들어서 머신러닝을 활용한 주가 예측 어플리케이션을 만들고 싶은 경우, 주식 종목인 주가 데이터가 오랫동안 쌓이면 2차원 평면 위에 점들로 표현할 수 있다. 그 점들을 이어주는 선의 형태를 알게 되면 앞으로의 주가 추이를 예측하는데에 도움이 된다고 한다. (간단한 비유이고, 실제로는 이것보다 훨씬 복잡한 알고리즘들이 들어가겠지만)

두번째, 패턴 비교 분석

동영상이나 사진에서 객체를 인식하는데 활용

예시 : 네이버 N드라이브 사진 분류(사진이나 동물들의 형태를 계속 학습해놓아서 기억한다. 그다음 임의의 사진이 들어왔을 때, 그 사진의 패턴을 분석하고, 기존에 기억된 패턴들중에 일치하는 것이 있는지 확인, 개의 패턴과 일치하면 개, 돼지의 패턴과 일치하면 돼지라고 판단한다.)

나 구글 컴퓨터가 유튜브에서 고양이를 찾아냄(구글 슈퍼컴퓨터가 유튜브에서 공유된 많은 이미지들을 분석하여 일정한 형태를 가지고 있다는 사실을 알았고, 결국 그 캐릭터를 고양이로써 인식해 냈다..라고 하는데 뭔소리야 ㅋㅋㅋㅋ)


이 외에도 페이스북, MS, 아마존 등의 거대 IT기업들이 자신들의 목적에 맞춰서 머신러닝을 점차 활용하는 추세


머신러닝의 환상과 현실을 구분하자

이상적으로는 영화 'Her'처럼 만능 인공지능일것 같다.

하지만 현실은 다르다.

1980년대에 이미 한차례 붐을 일으켰다가 침체를 겪었다고 한다.

너무 환상적인 이미지를 가지고 기대하면 실제로 나오는 결과물에 실망을 가지게 되고 이러한 과정이 반복되면 대중들은 머신러닝이라는 기술이 별거 아니라고 생각할 수 있다. 그러면 기업들이 머신러닝에 대한 지원이 끊기게 될 것이고, 머신러닝의 무한한 가능성을 결국 잃게 될 지도 모른다.


머신러닝을 제대로 쓰기 위한 3가지 키워드!


데이터

사람은 학습을 위하여 교재를 사용한다.

하지만 컴퓨터에게 있어서 이 교재는 데이터이다.

데이터의 양과 질이 풍부할수록, 학습효과는 높아진다. (10개의 데이터에서 배우는 것과, 10만개의 데이터에서 배우는 것.. 어느 것이 학습 효과가 높겠는가, 어느 것이 보다 진실에 가까운 추론을 할 수 있겠는가?)

하지만 한국에서는 오랜 기간 데이터를 충실히 쌓아놓은 기업이 없다..무려 네이버조차도.

그만큼 우리나라의 머신러닝 단계는 출발점이라는 것


인력

데이터가 아무리 많이 있어도 결국 기계를 학습하는것은 사람이라고 한다

사람이 기계에 데이터를 부어 넣지 않으면, 학습은 이루어 지지 않는다.

머신러닝이 기존의 다른 알고리즘보다 발전한 점은, 기존에는 아웃풋의 형태를 미리 계산된 알고리즘으로 입력해야 했지만 머신러닝은 내부에서 자신이 학습한 알고리즘으로, 데이터만 입력해주면 아웃풋을 자체적으로 생산한다는 점이다. 이것이 머신러닝의 학습 개념이지, 기계가 진짜 사람처럼 뭐든지 혼자 배우는 것은 아니라는 의미다.

결국 사람이 기계에 데이터를 부어 넣어줘야 하는데, 데이터를 모르는 사람이 아무 데이터나 막 넣어주면 되겠는가?

머신러닝도 데이터를 이해하는 사람을 필요로 한다. 이것이 바로 최신 화제가 되고 있는 '데이터 사이언티스트'

국내는 역시나 아직 초기단계

수학적 기술을 많이 알아야 한다고 한다.

어떤 수학적 기술들?

김정희 수석연구원은 “머신러닝의 기본 지식은 컴퓨터 과학쪽이고. 그 기본은 수학”이라며 “코딩하는 개발자 이상의 수학실력을 갖고 있어야 알고리즘 자체를 설계하고 지능 높은 시스템을 만들 수 있다”고 말했다.  
 
티그레이프의 유인관 박사의 좀 더 자세한 설명을 들어보자.  

“폴리노미아 함수, 일반함수 피팅, 시그노이드 함수. 확률 피팅, 리그레션, 뉴럴넷, 서포트백터머신 등이 많이 쓰이는 알고리즘들이에요. 머신러닝을 잘하고 싶으면 고급수학을 잘 알아야 합니다. 공업수학 수준은 아니더라도, 확률(제1), 미적분 정도인데 학부수준이 아니라 수학과 전공수준의 해석학 정도는 해야 합니다. 그래야 고급 확률을 할 수 있을 거에요. 선형대수학도 아주 중요합니다. 처음 시작하는 사람이라면 선형대수학과 확률해석학, 함수해석 정도를 공부하는 게 좋겠습니다.” 


컴퓨팅 파워

머신러닝은 막대한 데이터를 연산하므로 상당량의 컴퓨팅 파워를 요구한다.

뭐 당연한 것이겠지만 얼마나 필요한지 예시를 볼까?


구글이 만든 고양이 식별 시스템!!!

무려 서버 3천대 동원..

MS의 아담은 신경 네트워크를 구성하는데 18개월 걸렸고 (구성에만..)

분석에 사용된 사진 자료만 1천400만장, 14,000,000...


여기까지 써놓고 시간되면 수정하도록 하겠다.

관련글 더보기

댓글 영역