머신 러닝이란

머신 러닝이란 무엇인가?

머신 러닝을 wiki 에 찾아보면 다음과 같이 정의 하고 있다.

기계 학습(機械學習) 또는 머신 러닝(영어: machine learning)은 인공 지능의 한 분야로, 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야를 말한다. 가령, 기계 학습을 통해서 수신한 이메일이 스팸인지 아닌지를 구분할 수 있도록 훈련할 수 있다.

1959년에 아서 사무엘은 기계 학습을 “기계가 일일이 코드로 명시하지 않은 동작을 데이터로부터 학습하여 실행할 수 있도록 하는 알고리즘을 개발하는 연구 분야”라고 정의하였다. 최근 많은 서비스 회사에서 제일 많이 관심을 갖는 부분이 인공 지능 기반의 서비스인 것 같다. 지금 현재 재직 중인 회사를 예로 들어 설명을 한다면 사용자가 어플에서 숙소를 검색을 할 때, 일치하는 정보를 뽑아서 보여주는 것은 단순하게 생각해본다면 사실 어렵지 않다. 말 그대로 비슷한 문자열을 뽑아서 보여주면 끝이기 때문이다. 하지만 만약 일치하는 데이터가 없을 경우는 어떻게 해야 할까? 혹은 비속어 혹은 부정 리뷰 등을 필터링을 해야한다거나, 아니면 자동 완성 키워드를 보여줘야 한다거나 혹은 역으로 사용자가 검색한 데이터 기반으로 추천을 해줘야 한다면 어떻게 해야할까? 이러한 경우 필요한게 결국 기계 학습이다. 사용자가 검색한 데이터가 없다면 역으로 사용자에게 비슷한 데이터로 보여주며 역으로 추천을 해줄 수도 있을 것이고, 키워드 자동 완성을 하는 경우에도 자연스러운 문장을 제공해주어야 할 것이다. 또한 현재 재직 중인 회사에서 제일 골치 아파하는 부정 리뷰 등에 대한 어뷰징도 할 수 있을 것이다. 머신 러닝이란 결국에 데이터를 가지고 기계를 학습해서 가진 데이터 그 이상의 데이터를 제공해주는 것이 아닌가 라는 생각이 든다.

머신 러닝의 분류

머신 러닝에는 크게 지도 학습, 비지도 학습 그리고 강화 학습 등 3가지 분야로 나누어서 볼 수 있다. 각자 어떠한 차이가 있을까?

일단 첫번째가 지도 학습이다. 지도 학습이란 주어진 데이터(입력: X)와 결과(출력: Y)를 이용해서 새로운 문제의 결과를 예측 할 수 있도록 학습하는 방법이다. 제일 많이 드는 예로는 공부 시간과 시험 합격률에 대한 예제이다. 1시간을 공부한 사람이 시험을 합격할 확률이 10%, 2시간을 공부한 사람이 시험을 합격할 확률이 20% … 4시간을 공부한 사람이 시험을 합격할 확률이 70% 라고 가정했을 때, 해당 데이터를 가지고 3시간을 공부한 사람이 시험을 합격할 확률을 구하는 것과 같다.

두번째는 비지도 학습이다. 비지도 학습이란 주어진 데이터(입력: X) 만 있고, 결과(출력: Y)가 없을 경우 시스템이 스스로 학습해서 패턴을 도출 할 수 있도록 학습하는 방법이다. 이 경우는 기계가 스스로 학습하도록 해서 각 데이터를 간의 패턴을 도출해서 군집화하는 경우라고 볼 수 있다. 이러한 경우는 카테고리 별 뉴스 같은 경우가 포함이 될 것이다.

마지막은 강화 학습이다. 강화 학습의 경우, 최근 화제였던 세기의 대결 이세돌과 알파고와의 대결을 예로 들 수 있다. 강화 학습이란 기계에게 주어진 환경 간의 상호 작용을 통해 큰 보상을 얻을 수 있도록 지속적으로 발전해나가는 학습 방법이다. 이 경우 제일 큰 특징은 데이터를 주어지는 것이 아니라 주어진 환경에서 제일 큰 보상을 얻기 위한 학습 방법이라는 것이다.

현재 이커머스회사에서 frontend 개발자로 업무를 진행하고 있는 Martin 입니다. 글을 읽으시고 궁금한 점은 댓글 혹은 메일(hoons0131@gmail.com)로 연락해주시면 빠른 회신 드리도록 하겠습니다. 이 외에도 네트워킹에 대해서는 언제나 환영입니다.:Martin(https://github.com/martinYounghoonKim
Awwwards 컨퍼런스 참관기
TensorFlow 란 무엇인가?