머신러닝 알고리즘의 3가지 분류
Supervised Learning :인풋 데이터와 그에 대한 정답 쌍(x, y)를 이용해서 학습하는 방법론
Unsupervised Learning : 인풋 데이터 (x)만을 이용해서 데이터의 숨겨진 특징을 학습하는 방법론
Reinforcement Learning : Reward를 제공하는 Environment와 Environment내에서 행동을 수행하는 Agent의 상호작용을 통해 학습하는 방법론
지도학습
정답 데이터가 존재하는상황에서 학습하는 알고리즘.
입력 데이터 x와 그에대한 정답 레이블 y의 쌍을 이용해서 학습하는 알고리즘
예를들어, 28x28크기의 이미지인 MNIST데이터셋 이 있으면, 이를 이용해 학습을 진행할 때, 지도 학습의 트레이닝 데이터셋 은 다음과 같이 구성된다.
(0을 나타내는 28x28이미지, 0), (7을 나타내는 28x28 이미지 7), (6을 나타내는 28x28이미지 6)....
지도학습 알고리즘은 두가지로 나뉜다
분류문제 : 예측하는 결과값이 이산값 인 문제
이 이미지에 해당하는 숫자는 1인가 2인가?
회귀 문제 : 예측하는 결과값이 연속값 인 문제
3개월뒤 이 아파트의 가격은 2억1천만원 일 것인가? 2억 2천만원일 것인가?
주로 사용되는 구조는 CNN, RNN이다.
비지도 학습
정답 레이블 y 없이 입력데이터 x만을 이용해서 학습하는 알고리즘이다. 입력데이터(x) 형태로 진행한다.
비지도 학습은 지도 학습과 목적이 조금 다르다. 지도 학습의 목적이 어떤 값에 대한 예측을 수행하는 것이라면, 비지도 학습은 데이터의 숨겨진 특징을 찾아내는 것에 목적이 있다.
데이터가 무작위로 분포되어있을 때, 비지도 학습의 일종인 클러스터링 알고리즘을 이용하면 비슷한 데이터들 끼리 3개의 그룹으로 묶을 수 있다.
단독으로 사용하기 보다는, 비지도 학습으로 파악한 데이터의 숨겨진 특지을 원본 데이터 대신 지도학습의 인풋 데이터로 활용해서 지도학습의 성능을 끌어올리는 용도로 많이 사용한다.
주로 사용되는 방법론 으로는, 주성분 분석(PCA)와 오토 인코더 이다.
강화 학습
강화학습은 이미 데이터가 주어진 정적인 상태 에서 학습을 진행하지 않고,
에이전트가 주어진 환경에서 어떤 행동을 취하고 이에 대한 보상을 얻으면서 학습을 진행한다.
에이전트는 보상을 최대화 하도록 학습을 진행한다.
강화학습은 동적인 상태에서 데이터를 수집하는 과정까지 학습과정에 포함되어있는 알고리즘이다.
주로 Q-Learning, DQN기법을 주로 활용한다.
강화학습 의 학습방법론
강화학습의 기본 가정은 어떤 목표(Goal)든, 보상(Reward)를 최대화하는 것으로 표현된다.
강화 가정(Reward Hypothesis) 모든 목표는 보상을 최대화하는 것으로 나타낼 수 있다.
간단한 예로, 인간은 기본적으로 어떤 행동을 할 때 보상이 최대화되는 방향으로 행동한다.
예를 들어, 우리의 목표가 10만원을 버는 것이라고 생각해보자. 이 때, A라는 상점에서 하루 동안 청소를 하면 10만원을 주고 B라는 상점에서 하루 동안 청소를 하면 8만원을 준다고 생각해보자. 자연스럽게 우리는 A라는 상점에서 일을 하기로 결정할 것이다.
이제 문제는 이런 상식적인 명제를 구체적인 수학적인 형태로 표현하는 것이다.
이를 위해 강화학습은 상태 가치 함수(State-Value Function)와 행동가치함수(Action-Value Function)이라는 개념을 사용한다.
보상의 예시
현실을 예로 들어 다양한 문제를 보상의 관점으로 치환해보면 다음과 같다.
- 바둑에서의 보상
- + : 바둑게임 승리
- - : 바둑 게임 패배
- 주식 투자에서의 보상
- + : 포트폴리오의 수익률 +
- - : 포트폴리오의 수익률 -
- 추천 알고리즘에서 보상
- + : 사용자가 좋아하는 상품을 추천
- - : 사용자가 싫어하는 상품을 추천
- 휴머노이드 로봇에서의 보상
- + : 로봇이 쓰러지지 않고 제대로 보행한다.
- - : 로봇이 중심을 잃고 쓰러진다.
강화학습의 장단점
장점
환경과 상호작용을 통해 학습하기 때문에 훨씬 다양하고 범용적인 환경의 어려운 문제들을 학습할 수 있다.
단점
정답이 아닌 보상에 기반한 시행착오를 통해 학습을 진행하기 때문에, 상대적으로 학습하기가 어렵고 학습에 걸리는 시간이 오래걸린다.
또한 다양한 수학적 개념들에 대한 이해가 필요해서 지도학습에 비해 공부하기 어려운 편이다.
'알고리즘' 카테고리의 다른 글
강화학습 알고리즘 기초개요 (0) | 2024.06.24 |
---|---|
MP(Markov Process) (0) | 2024.06.24 |
TensorFlow 2.0 파라미터 저장 & 불러오기 (0) | 2024.06.21 |
TensworFlow 2.0을 이용한 Char-RNN구현 (0) | 2024.06.20 |
임베딩 & Char-RNN (0) | 2024.06.18 |