본문 바로가기

자기개발/Programming

머신러닝(Machine Learning) 기초 - 1 (codecademy)

얼마 전까지 그리고 지금도 머신러닝, 딥러닝 혹은 AI라는 단어를 자주 접할것이다. 세 단어 모두 '학습', '기법'을 통해 '결과'를 도출한다는 공통점을 갖고 있는데 각각 단어가 뜻하는 의미는 다르지만 방법에 대해서는 이러한 공통점을 갖고 있다.

 

내가 머신러닝을 접하게된 계기는 온라인 SCM 공부를 시작하면서부터인데 이미 SCM과 같은 IT에 민감한 분야에서는 이러한 기법들을 도입하고 사용하며 학습하는 단계에 이르렀다.

기존 포스팅에서도 언급했던 것처럼 머신러닝은 수요, risk 예측에 많이 사용되며 개인적으로도 해당 분야에 대해 실무적인 능력을 기르고자 파이썬을 거쳐 머신러닝을 학습하고 있다.

해당 포스팅은 내가 배우면서 jot down 했던 내용을 기반으로 기록을 남겨볼 예정이다.

레츠 기릿!


머신러닝은 복잡한 프로그래밍 없이도 컴퓨터가 학습할 수 있는 능력을 부여하는 것이다.

 

하기 연대기를 보면 AI에 대한 study는 이미 오래전부터 진행되고 있었다. 1차, 2차 AI wave가 1970말, 1990년대 일었었고 최근 들어 알파고의 역대급 퍼포먼스로 인해 급부상중에 있다.

 

출처 : codeacademy.com

머신러닝은 크게 2가지로 분류되며 지도 학습 유, 무로 번역되며 지도 학습은 데이터에 라벨을 달아주는 행위로 묘사될 수 있다.

1. Supervised Learning

2. Unsupervised Learning

 

Supervised는 데이터셋을 일정 비율로 학습, 검증, 테스트로 나누고 각 할당된 데이터로 프로그래밍을 실행, 학습된 데이터/룰에 의거하여 이후 피팅되는 테스트 데이터의 결괏값을 산출한다.

 

두 가지 형식의 결과 도출이 가능한데,

1.  Regression : 연속적인 수치를 갖는 값에 대한 결괏값을 도출한다

예) 뉴욕의 아파트 가격 예측, 가상화폐의 가격 예측

2. Classficiation : 단일 값을 갖는 값에 대한 결괏값 도출

예) 사진을 보고 사람인지 동물인지 사물인지 인식, 수신된 이메일이 스팸인지 아닌지 여부 확인

 


Unsupervised의 경우 러닝을 위한 데이터 피딩 없이 clustering (군집 분류)를 통해 유사한 characteristic / structure를 갖고 있는 데이터끼리 뭉치기를 통해 컴퓨터가 알아서 결과를 산출하는 방법이다.

예) SNS 상 유사 토픽끼리 클러스터링, 온라인 쇼핑몰 상품 추천

클러스터링 모델 예시. 출처 : codeacademy.com


머신러닝 프로세스 (Machine learning Processes)

- 머신러닝은 데이터 분할, 예측, 인사이트 공유를 전체 프로세스로 함축하고 있으나 실제 방법에서는 예측기법 전, 후에 실행해야 할 훨씬 복잡한 프로세스를 갖고 있다.

 

1. 질문/문제 (Question) 공식화

2. 데이터 찾기 및 이해

3. 데이터 및 기능 엔지니어링 정리

4. 모델 선택

5. 조정 및 평가

6. 모델 사용 및 결과 제시

 

프로세스부터 세부 사항, 실행 방법까지 순차적으로 포스팅을 통해 정리, 알아보겠다!