본문 바로가기
Programming/AI

머신러닝이란? 머신러닝 개요 (교사학습, 비교사학습, 강화학습, 머신러닝 플로우 차트)

by 제타 2018. 6. 30.
반응형

머신러닝이란 인공지능의 한 분야로 인간의 뇌가 배우는 과정, 즉 "학습"을 컴퓨터로 구현하는 것이다.


컴퓨터가 학습한다는 것은 스스로 공부하여 예측할 수 있다는 것이고 이는 텍스트, 이미지, 게임, 의료, 로봇 등 산업 전반에 접목할 수 있어서 현재 각광받는 분야이고 앞으로는 더욱 활발하게 연구가 진행될 분야이다.


보통 머신러닝과 딥러닝을 처음 접하면 오해하고 있는 것이 있는데 데이터를 넣기만 하면 알아서 분석 및 예측이 되는 줄 알지만 전혀 그렇지 않다.

일반 프로그램처럼 컴퓨터가 똑같이 "계산"하는 것으로 봐야한다.


머신러닝에서는 벡터가 매우 중요하다. 흔히 그래픽스 분야에서 벡터를 노가다 하는 수준으로 다루기때문에 이 분야를 접해봤다면 쉽게 이해할 수 있다.

벡터란 수학/물리 시간에 크기와 방향을 가진 것을 의미한다.(크기만 가진 것이 스칼라겠죠?)


머신러닝을 목적으로 텍스트, 이미지 등 각종 데이터를 모았다면 이 데이터의 특징을 찾고 벡터로 만들어야 한다.

이런 변환을 특징 추출이라고 하는데  예를 들어 뉴스 본문을 스크래핑 하였다면 이 뉴스에서 글자의 출현 빈도, 단어의 출현 빈도 등을 구하는 과정이라고 볼 수 있다.




머신러닝의 종류

종류 

설명 

교사 학습 

데이터와 답을 입력한다.

다른 데이터의 답을 예측한다. 

비교사 학습

데이터만 입력하고 답을 입력하지 않는다.

다른 데이터들의 규칙을 찾는다. 

강화 학습 

답을 부분적으로만 입력한다.

데이터를 기반으로 적당한 값을 찾아낸다.


즉 정리를 하면 

1. 교사 학습이란 문제와 답을 알려주면서 새로운 문제의 답을 찾아내는 것이다

2. 비교사 학습이란 문제만 알려주고 문제의 본질을 찾아내는 것. 클러스터 분석, 주성분 분석, 벡터 양자화, 자기 조직화 등이 예이다.

3. 강화 학습이란 교사학습과 비슷하지만 답 전체를 알려주지 않는다. 

강화학습에서는 "행동의 주체"와 "환경"이 존재하는데 행동의 주체는 환경을 관찰하면서 의사 결정을 내리고 더 좋은 보상을 얻는 방향으로 행동을 학습하는 것이다.



머신러닝의 플로우차트는 위의 그림과 같다.

1. 데이터를 수집 및 가공.(사실 이 부분이 가장 어려운 부분이다. 많은 양을 수집하고 적당히 가공을 해야 하기 때문이다.)

2. 데이터를 학습시켜야하는데 어떤 알고리즘을 선택할지를 정하고 변수들을 적절히 조정한다.(SVM, 랜덤포레스트, K-means 등)

3. 마지막으로 모델을 평가해서 얼마나 만족스러운 결과가 나왔는지 평가해서 별로다 싶으면 다시 돌아가서 알고리즘이나 변수를 조정하는 식으로 반복시행한다.




머신러닝은 다음과 같은 분야에서 응용할 수 있다.


1. 클래스 분류

특정 데이터(문제)에 레이블(답)을 붙여 분류할 수 있다. 예를 들어 스팸 메일 분류, 필기 인식 등


2. 클러스터링 - 그룹 나누기

값의 유사성을 기반으로 데이터를 여러 그룹으로 분류할 수 있다. 예를 들어 사용자의 취향을 그룹으로 묶어서 그 사용자들에게 적절한 광고를 제공


3. 추천

특정 데이터를 기반으로 다른 데이터를 추천하는 것이다. 예를 들어 상품구매 내역을 기반으로 다른 상품을 추천하는 기능.


4. 회귀

과거 데이터를 기반으로 미래 데이터를 예측하는 것. 예를 들면 주가 예측 등이 있다.


5. 차원 축소

데이터의 특성을 유지하면서 양을 줄이는 것이다. 고차원->저차원 데이터로 변환하는 것으로 계산하는 양을 줄여 CPU나 메모리를 절약한다.




반응형