본문 바로가기
데이터사이언스

머신러닝의 정의와 구분 (지도학습, 비지도 학습, 강화학습)

by 미스터탁 2020. 6. 26.

머신러닝의 정의와 그리고 머신러닝의 분류로 볼수 있는 지도학습, 비지도 학습, 강화학습의 개념과 차이점에 대해서 알아보도록 하겠습니다.

 

머신 러닝의 정의

머신 러닝의 정의

머신 러닝의 정의 : 4-5년 전만해도 머신 러닝 (Machine Learning)을 인공지능과 비슷한 개념으로서 많이 사용해 왔습니다. 인공지능이라고 해 봤자, 무언가 분류하거나 예측하는 것 이상 할 수 가 없었기 때문이죠. 하지만, 4-5년전부터 딥러닝 (특히, GAN과 강화학습)이 발전하면서 머신 러닝과 인공지능을 분류해서 부르기 시작하였습니다.
머신 러닝의 '정의'에 대해서 이야기 할 때에는 인공지능의 정의와 같다라고 보시면 될 것 같습니다. 다만, 사용하는 분야가 조금 다르다라고 보시면 될 것 같습니다. 최근에 부르는 머신 러닝은 행과 열이 존재하는 행렬 (정형 데이터)을 가지고 무언가 예측 또는 분류 하고 싶을 때 사용한다라고 보시면 됩니다. 이미지 또는 텍스트와 같은 정형화 되어있지 않은 (비정형 데이터) 데이터를 사용할 때에는 인공지능 (딥러닝)을 사용한다라고 보시면 됩니다. 크게 보았을 때에 머신 러닝이 인공지능 안에 포함되는 개념이라고 볼 수 있습니다.

 

모델 학습

모델 학습 : 머신 러닝과 딥러닝의 공통 단어인 Learning, 즉 학습을 위해서는 가이드가 필요합니다. 머신 러닝 모델의 학습 목표는 데이터 (Input)에 대한 모델의 결과 (Output)가 정답 (Label)에 가깝게 나오게끔 학습시키는 것이라고 볼 수 있습니다.
예를 들자면, 고양이 사진 (Input)을 모델에 입력하면 고양이 (Output)로 분류하는 모델을 학습시키거나, 과거의 주가 데이터 (Input)을 입력하면 미래의 주가 데이터 (Output)를 예측하는 모델을 만드는 것이라고 볼 수 있습니다.
그렇다면 어떤 방법으로 학습을 시킬까요? 전반적으로 머신 러닝은 아래와 같은 방식을 사용합니다.
    1. 데이터를 모델에 넣고, 결과를 낸다.
    2. 결과를 정답과 비교해서 다른 만큼 모델을 변경한다.
    3. 특정 조건이 만족할 때까지 1,2번을 반복한다.

 

손실 함수 (Loss Function) 

손실 함수 (Loss Function) : 위 2번 단계에서 모델의 결과값이 실제 정답과 얼마나 차이가 있는지 수치화 할 필요가 있습니다. 이를 위해 정의하는 것을 손실 함수 (Loss Function) 혹은 비용 함수 (Cost Function) 이라고 합니다.  정확한 정의는 모델의 선택 (결과)에 대해 얼마나 손실이 일어났는가를 정의하는 함수로, 이 의미의 맞게 손실 함수 값을 줄이는 방향으로 모델을 학습합니다. 보통 Scalar 값으로 정의하는데, 모델이나 Task에 따라 다양한 종류가 존재합니다

 

머신 러닝의 구분

머신 러닝의 구분 : 머신 러닝을 구분 할 때에 크게 지도 학습 (Supervised Learning)과 비지도 학습 (Unsupervised Learning) 두가지로 구분 할 수 있습니다. 최근에는 강화학습이 발전하면서 머신 러닝을 구분할때에 강화학습을 넣어 세가지로 구분하기도 합니다.

 

 

반응형

지도학습 

지도학습 : '지도한다 (Supervise)'라는 단어의 뜻을 생각해보면 이해가 쉽습니다. 컴퓨터에게 '56세인 남성이 담배를 하루에 2갑씩 피는 사람은 폐암에 걸릴 확률이 높고, 25세의 비흡연자 남성은 폐암에 걸릴 확률이 높아!' 라고 지도한다라고 생각해시면 쉽게 이해 할 수 있습니다. 지도 학습은 데이터가 주어졌을 때 무엇 (x)으로 무엇 (y)을 예측하고 싶을 때 사용합니다. 우리는 머신 러닝을 통해 아래와 같은 함수 f 를 만들고자 하며, 이 때의 함수 f 를 머신 러닝 모델이라고 합니다.

 

 

여기서 x 를 독립변수 (Independent Variable) 또는 Feature라고 이야기하며, y 를 종속변수 (Dependent Variable), 반응변수 (Response Variable) 또는 타겟변수 (Target Variable)라고 이야기합니다. 머신 러닝 또는 인공지능 분야에서 중요한 독립변수만 선택하는 것도 매우 중요한 분야로 여겨집니다. 이러한 분야를 Feature Selection 또는 Variable Selection이라고 이야기합니다.지도학습 내에서도 크게 두가지의 종류로 나뉩니다. 첫번째는 회귀 (Regression) 문제이며 두번째는 분류 (Classification) 문제입니다. 위의 수식에서 y 가 실수형 값을 가질 때 풀어야하는 문제를 회귀 문제라고 하며 이때의 함수 f 를 회귀 모델 (Regression Model)이라고 부릅니다. 반면에, y 가 명목형 변수일때, 다시 말해 특정 Class (성별, 흡연 유무 등)를 가질 때 풀어야하는 문제를 분류 문제라고 하며 이때의 함수 f 를 분류 모델 (Classification Model)이라고 합니다. 키를 가지고 몸무게를 예측하고 싶을 때 또는 아파트 가격이나 주식의 가격을 예측하고 싶을 때에는 회귀모델을 고려 해야 하고 비만 여부, 아파트 또는 주식의 가격 상승여부를 예측하고 싶을 때에는 분류모델을 고려해야합니다

 

비지도학습 

비지도학습 : 비지도학습은 지도학습의 반대 개념입니다. 여기서는 x 변수와 y 변수 모두 존재 하지는 않고, x 변수만 존재합니다. 독립 변수들만 가지고 새로운 Feature를 찾아 낸다거나 군집화를 하는 등 X 데이터내에서 새로운 패턴을 찾아 내는 것에 초점을 맞춥니다. 대표적인 방법으로는 군집화 (Clustering), 차원축소법 (Dimension Reduction), 추천시스템 등이 있습니다

 

강화학습 

강화학습 : 앞서 서술한 바와 같이 일반적으로 머신 러닝의 종류를 나눌 때에는 지도학습과 비지도학습 두가지 종류만 이야기하였습니다. 그런데, 최근에는 강화학습을 머신 러닝의 종류에 추가하자는 의견이 나오기 시작하였습니다. 강화학습을 지도학습과 비지도학습 외에 다른 종류로 부르는 이유는 강화학습의 가지는 학습의 특성이 지도학습과 비지도학습과는 다르기 때문입니다. 강화학습은 수많은 시뮬레이션을 통해 컴퓨터가 현재 상태에서 어떠한 행동을 취해야 먼 미래의 보상을 최대로 할 것인가에 대해 학습하는 알고리즘입니다. 강화학습을 하기 위해서는 현재 상태 (State), 행동 (Action), 보상 (Reward), 다음 상태 (Next State)가 있어야 학습을 진행 할 수 있습니다. 즉, 기존의 머신 러닝처럼 데이터의 행이 각각 독립적으로 구성 되어있는 것이 아니라, 일련의 Episode가 있어야합니다. 즉, 시뮬레이션된 연속적인 데이터의 값들이 존재 해야 하는 거죠. 

 


알파고를 예로 들면, 현재의 바둑판이 현재 상태, 바둑의 수를 행동, 바둑의 수를 두고 난 뒤의 바둑판이 다음 상태가 될 것입니다. 보상은 바둑의 수를 두고 난 뒤에는 이길지 질지 알 수 없으므로 기본적으로는 0으로 부여하고 대국이 끝난 뒤에 이겼는지 졌는지의 여부로 부여합니다. 대국이 끝나고 승/패 여부로 과거에 두었던 수가 좋은 수였는지 좋지 않은 수였는지 알 수 있게 됩니다. 수많은 시뮬레이션을 거치면서 점차 학습이 진행되는데, 현재 바둑판에서 어떠한 수를 두어야 먼 미래에 이길 수 있을지에 대해서 학습이 진행 되는 것입니다. 수없이 많은 경우의 수에 대해서 학습하기 위해서 알파고는 강화학습과 딥러닝을 결합한 심층 강화학습 (Deep Reinforcement Learning)을 이용하였습니다. 강화학습은 알파고가 등장하면서 나온 알고리즘이 아니라, 이전부터 계속 연구가 되어오던 알고리즘입니다. 다만, 딥러닝이 발전하면서 강화학습과 딥러닝을 결합하면서 강화학습의 성능을 높일 수 있는 조건이 마련되었고, 알파고의 등장으로 많은 사람들이 연구를 하게 되었습니다.

 

 

딥러닝에 대한 기본적인 내용과 PyTorch 실습 내용을 결합하여 책으로 출판하였습니다.

 

m.yes24.com/Goods/Detail/93376077?ozsrank=10

 

파이썬 딥러닝 파이토치 (Python Deep Learning PyTorch)

파이썬은 선택이 아닌 필수! 파이토치로 딥러닝 입문하기!딥러닝 기술에 초점을 두고 딥러닝을 구현하기 위해 파이썬을 이용하는데, 머신러닝 라이브러리인 파이토치를 활용하여

m.yes24.com

mbook.interpark.com/shop/product/detail?prdNo=339742291&is1=book&is2=product

 

싸니까 믿으니까 인터파크도서

 

book.interpark.com

 

 

 

 

반응형

댓글