top of page
검색

지도학습, 비지도학습, 준지도학습, 강화학습

  • yssskim1
  • 2022년 12월 19일
  • 3분 분량



지도학습은 정답을 알려주면서 학습을 시키는 것으로,

데이터를 구분할 수 있는 분류(Classification), 데이터의 특징을 바탕으로 값을 예측하는 회귀(Regression)분석과 일정 시간 간격으로 배열된 데이터를 통해 예측하는 시계열(Time Series) 분석이 여기에 해당한다. 선형 회귀, 의사 결정 트리 등 머신러닝 외 딥러닝에서도 시간의 흐름에 따른 연속된 데이터를 반복해서 학습하고 적용하기에 적합한 구조인 순환신경망(RNN, Recurrent Neutral Network)과 이미지의 부분적 특징을 추출하여 데이터를 분류하는 데 사용되는 합성곱 신경망(CNN, Convolutional Neural Network)이 지도학습의 일종이다. 지도학습에서는 데이터에 이미 레이블(Label, 정답)이 지정되어 있으므로 대상 변수를 알고 있다. 이 학습 방법을 사용한 시스템은 과거의 데이터를 기반으로 분류를 하거나, 미래의 결과를 예측할 수 있게 된다.

앞에서 언급한 분류 분석은 레이블이 달린 학습 데이터로 학습한 후에 분류를 끝내고, 새로 입력된 데이터가 학습했던 어느 그룹에 속하는지를 찾아내는 방법이다. 여기에는 종양이 암인지 아닌지를 둘 중 하나를 밝히는 것과 같은 이진분류(Binary-Classification)와 와인 맛의 특징을 가진 데이터를 가지고 레드와인, 화이트와인, 샴페인 등 3개 이상의 값 중 하나로 분류하는 다중분류(Multi-Classification)가 있다.

분류에는 가장 단순한 분류기(Classifier) 중 하나인 의사결정트리(Decision Tree), 의사결정트리가 여러 개 사용된 랜덤 포레스트(Random Forest), 데이터가 집단 각각에 속하는 확률을 계산해 분류하는 로지스틱 회귀(Logistic Regression), 나이브 베이즈 확률을 사용하는 나이브 베이즈(Naïve Bayes), 그리고 SVM(Support Vector Machine), KNN(K Nearest Neighbor) 등이 포함된다. 그리고 회귀는 서울시 자전거 이용자 수의 예측, 음식점 메뉴별 판매 예측 등 주로 수치 예측에 활용되며, 독립 변수가 커질 때 종속 변수가 크거나 작게 변하는 관계를 모델링하는 기법인 선형회귀(Linear Regression)가 대표적인 예시이다. 분류와 회귀에 둘 다 사용되는 알고리즘으로는 서포트 벡터 머신(SVM), 랜덤 포레스트, KNN 등이 있고, 딥러닝도 여기에 해당한다.

시계열 분석은 주로 과거 데이터를 입력하여 미래의 값을 예측하는 것으로, 미래 주가 예측, 강수량 예측 등에 사용되며, 의사결정트리의 변형인 CART(Classification and Regression Trees), KNN 등과 딥러닝의 RNN, LSTM(Long Short-Term Memory) 등이 여기에 활용된다.

비지도학습은 정답을 알려주지 않고 데이터 속의 패턴을 학습시키는 것으로, 비슷한 데이터들을 군집화하는 클러스터링(Clustering)과 차원 축소, 연관 분석 등이 대표적인 비지도학습이다. 딥러닝에서는 생성적 적대 신경망(GAN, Generative Adversarial Networks) 모델이 여기에 해당하는데, 이는 가짜를 만들어 내는 생성자(Generator)와 이를 다시 진짜 데이터와 구분하는 판별자(Discriminator)를 서로 경쟁시켜, 속이고 구별하는 능력을 더욱 발전시키고, 진짜와 가짜를 구분할 수 없는 수준에 이르는 데이터를 생성해내는 것인데, 궁극적으로는 가짜를 판별하기 위한 목적이다. 이 기술을 통해 특정인의 다양한 표정 사진을 진짜와 비슷하게 만들 수 있고, 특정 콘텐츠를 매우 높은 수준으로 인간이 만들어 낸 결과물과 비슷하게 만들 수도 있다.

비지도 학습 알고리즘은 레이블이 없는 데이터를 사용하여 데이터에서 패턴을 스스로 발견한다. 시스템은 제공된 입력 데이터로부터 숨겨진 특징을 식별할 수 있다. 클러스터링은 라벨링이 되어 있지 않은 데이터들 내에서 비슷한 특징이나 패턴을 가진 데이터들끼리 군집화한 후, 새로운 데이터가 어떤 군집에 속하는지를 추론하는 기법인데, K평균(K-means) 알고리즘이 대표적이며, 이는 k 값이 주어져 있을 때, 주어진 데이터을 k개의 기준점을 중심으로 가장 가까운 데이터를 합쳐 보는 방식이다. 또한 데이터에 여러 개의 집단이 있을 때는 가우시안 혼합 모델(Gaussian mixture model)을 사용한다.

차원축소는 복잡한 데이터의 변수의 수를 논리적으로 줄여 그 특성을 가장 잘 나타내는 변수들로 구성하여 분석하는 기법이다. 변수들의 모든 군집이 서로 잘 구별될 만큼 가치가 다른지를 알려면 군집의 구성에 초점을 맞춰 살펴봐야 한다. 변수가 많으면 군집화 알고리즘이 데이터셋에 과적합 될 수 있기 때문이다. 그래서 변수의 수를 줄여야 하지만 무작위로 줄여서는 안 되고, 데이터셋의 특성을 가장 잘 나타내는 변수를 선택해야 한다. 그리고 AI 모델은 보통 수십 가지에서 수백 가지의 변수를 활용하여 차원적인 분석을 하게 되는데, 결과치를 보면 너무 복잡하여 이해하기가 힘들 때가 많다. 이를 2차원으로 차원 축소하고 그 결과를 그래프로 출력하면 더 쉽게 이해되어 분석이 편해져서 많이 사용한다. 여기에는 데이터의 변수를 줄여서 상관관계에 있는 다변량 데이터를 주성분으로 간결하게 사용하는 주성분 분석(PCA, Principal component analysis), 많은 문서 데이터의 단어에 있는 잠재 관련성을 분석하는 잠재 의미 분석(LSA, Latent semantic analysis), 높은 차원 공간에서 휘어지거나 뒤틀린 구조를 낮은 차원 공간에 단순한 구조로 나타내는 기법인 국소 선형 임베딩(Local linear embedding)이 여기에 포함된다.

연관분석은 대표적인 예가 쇼핑의 장바구니 분석이다. 그 유명한 ‘맥주를 구매하는 사람은 기저귀를 구매할 확률이 높다.’라는 예시처럼 고객이 A 상품 구매 시 어떤 제품을 추가로 구매하는지 분석하는 데 많이 활용되고, 암 분석 시 빈번히 발생하는 DNA 패턴과 단백질 서열 검사 등에도 활용되고 있다. Apriori 알고리즘, DHP(Direct Hashing and Pruning) 연관 규칙 탐사 알고리즘 등이 여기에 해당한다.

지도학습과 비지도학습 외에도 최근에 주목받고 있는 강화학습(Reinforcement Learning) 방법이 있다. 강화학습도 정답 데이터가 없어 비지도학습의 일종이라 할 수 있지만, 여기에는 에이전트(Agent)와 환경(Environment)이 존재하며, 에이전트(행동하는 주체)가 환경(지금 당장 풀어야 할 문제)에 대해 어떤 행동(문제를 해결하기 위해 하는 Action)을 하고, 그 결과에 대해 환경이 에이전트에게 보상하며, 이때 받은 보상에 따라 에이전트가 이전에 행한 행동에 대한 평가를 한 뒤 그다음 행동을 결정(상태 변화, State)한다. 강화학습의 목표는 불확실한 환경 내에서 작업을 완료하도록 에이전트를 훈련하는 것이다. 에이전트는 환경으로부터 관찰 및 보상을 받고 환경에 작업을 전송한다. 작업 목표의 완료와 관련하여 얼마나 성공적인 조치인지를 측정하고 보상이 주어진다. 강화학습 알고리즘의 예로는 Q-러닝과 딥러닝 신경망이 있다.

강화학습 알고리즘은 Model-Free와 Model-Based로 구분되는데, Model-Based는 환경에 대한 모델을 이미 갖고 계획을 수립할 수 있는 모델이다. 또한 보상 함수에 따라 Value-Based와 Policy-Based로 구분되기도 한다. 보상에 대한 Value Function이 완벽하다면 최적의 정책(Policy로 Agent가 판단하는 방식)은 자연스럽게 얻을 수 있다. 각 상태에서 가장 높은 가치를 주는 행동만을 선택하면 되기 때문이다. 이를 Value-based Agent라고 부른다. DQN(구글 딥마인드가 개발한 Deep Q-Network) 등이 여기에 해당한다. 반대로 정책이 완벽하다면 Value Function은 굳이 필요하지 않다. Value Function이 없이 정책만을 학습하는 Agent를 Policy-based라고 부른다. Policy Gradient 등이 여기에 해당한다.


 
 
 

최근 게시물

전체 보기
워드투벡터 Word2vec 설명 및 실제 코딩

‘13년 구글에서 개발한 Word2vec은 이름 그대로 단어(Word)를 벡터(Vector)로 수치화시키는 방법(임베딩, Embedding)이고, 이 방법을 통해 텍스트 같은 비정형 데이터를 좌표 평면에 나타낼 수 있다. 보통 여러 단어로부터 한...

 
 
 
회사나 학교 등에서 AI 시스템을 구축할 때 나의 역할

모든 회사원이나 구성원이 직접 AI에 관심을 두고 시작해야 한다. ​ 왜냐하면 첫째로 Business AI는 이제 시작 단계이기 때문이다. 의사 결정이나 전략 수립을 위한 Decision Intelligence도 이제 걸음마 단계이다. 새로운...

 
 
 

Commentaires


bottom of page