메뉴

문서정보

Practical Machine Learning Tutorial with Python Introduction

이 문서는 응용과 실용에 촛점을 맞춘 기계 학습을 다루고 있다. 문서의 목적은 머신러닝의 이론, 응용, 슈퍼바이저, 딥러닝의 내부 작동과 머신러닝에 대한 전반적인 이해를 제공하는데 있다.

몇 개의 문서를 통해서 선형회구, K nearest Neighbors, SVM(Support Vector Machines), Flat clustering, hierarchical clustering 과 뉴럴 네트워크를 다룬다.

이들 각 알고리즘에 대해서, 알고리즘을 높은 수준에서 조망하고 논리적으로 어떻게 작동하는지를 살펴볼 것이다. 다음으로 Scikit-Learn과 같은 모듈과 실제 데이터를 이용해서 알고리즘을 코드화 할 것이다. 마지막으로 알고리즘의 각 요소를 포함하는 코드를 작성하면서 알고리즘의 내부 동작을 살펴볼 것이다. 이렇게 해서 알고리즘의 작동방식, 장점과 약점을 완벽하게 이해하게 된다.

이 문서를 읽기 위해서는 파이썬언어에 대한 기본지식을 가지고 있어야 한다. 만약 파이썬을 사용해본적이 없다면 Introduction to python의 pip와 모듈설치까지는 읽는 것을 권장한다. 파이썬에 대한 기본지식과 배우고자하는 의지가 있다면, 여기있는 내용은 문제 없이 따라갈 수 있을 것이다. 대부분의 기계학습 알고리즘은 사실 아주 간단하다. 대량의 데이터셋을 다루는게 문제인데, 이건 파이썬 언어가 해결해 줄 것이다. 머신러닝과 관련된 수학은 선형 대수학으로, 이들을 설명하기 위해서 최선을 다할 것이다. 이문서를 읽고 따라하려면 Scikit-Learn과 Pandas를 설치해야 한다.

기계학습의 아이디어는 새로운 것이 아니며, 지금까지 몇번의 유행이 있었다. 최근에는 개인수준에서도 강력한 하드웨어 혹은 클라우드기반의 컴퓨팅 파워를 사용할 수 있게 되면서 개인이 기계학습을 학습할 수 있는 여건이 마련됐다. 의지만 있다면 한시간에 수십달러 정도를 투자해서 10만 달러짜리 GPU 클러스터를 대여해서 사용 할 수 있다.

그리고 기계학습은 많은 부분이 추상화 됐다. 우리는 즉시 사용할 수 있는 라이브러리와 API를 가지고 있다. 그래서 어떻게 작동하는지 거의 알지 못해도 쉽게 기계학습에 참여 할 수 있다. 쉽게 참여 할 수 있기 때문에, 깊이가 얕을 수 있다고 걱정 할 수 있겠다. 클라우드를 생각해 보면 된다. 우리는 네트워크와 로드밸런서, 데이터베이스 인스톨과 운영, ElasticSearch, 메시지큐, 푸시 시스템, 오브젝트 스토리지, DNS에 대해서 아는게 거의 없는 상태에서도 서비스를 만들 수 있다. 그렇게 서비스를 만들면서 지식을 깊게 할 수 있다.

Scikit-learn의 데이터를 사용하면 많은 작업에 대해서 90~95% 정도의 정확도를 얻을 수 있다. 너무 쉽게 높은 수준의 결과물을 얻어낸다는게 믿음직 스럽지 못할 수 있겠는데, 검색을 생각해보라. 이제 여러분은 검색 알고리즘을 몰라도 ElasticSearch와 Solr을 사용하는 것만으로도 90% 정도의 품질을 가지는 검색서비스를 만들 수 있다.

물론 성능과 효율성 더 높은 품질을 얻기 위해서는 세부적인 과정이 어떻게 진행되는지는 이해해야 한다. 문서에 있는 예제를 다루면서, 이해를 넓힐 수 있을 것이다.

Regression »