ML(machine learning): 에이전트*가 데이터를 분석하고 이해하는 알고리즘이다.
*에이전트: 자동화된 행동을 수행하는 프로그램이다. 강화학습에서의 에이전트는 주어진 환경에서 정보 수집 및 분석하여 목표 달성을 위해 수행할 행동을 선택한다.
즉, 데이터에서 패턴을 찾아 모델을 생성하는 기법이다.
머신러닝은 지도학습, 비지도학습, 강화학습으로 나뉜다.
지도학습(supervised learning): label(레이블)된 train data를 활용해 모델을 학습하여, 학습하지 않은(처음 보는) 데이터를 예측 및 분류하는 학습 방법이다.
지도(supervised): label된 데이터
지도학습은 두 기법으로 나뉜다.
1. 분류(classification): 클래스 예측
2. 회귀(regression): 연속적인 값을 출력
비지도학습(unsupervised learning): label이 안 되어 있거나 구조 파악이 불가한 데이터를 다루는 학습 방법이다.
비지도학습의 대표적 기법은 아래와 같다.
1. 군집화(clustering): 사전 정보 없이 모여 있는 그룹의 정보를 의미 있는 서브 그룹 또는 클러스터로 탐색하는 데이터 분석 기법이다.
2. 차원 축소(dimension reduction): 고차원 데이터의 정보를 유지하며 작은 차원의 부분 공간(subspace)으로 데이터를 압축한다.
강화학습(reinforcement learning): 환경(environment)과 상호작용하여 에이전트의 성능을 높이는 것이 목적이다.
환경으로부터 에이전트의 현재 상태 정보를 받는다. 이때 상태 정보에 보상(reward)을 포함하고 있어 지도학습과 헷갈릴 수 있으나, 강화학습은 정답 레이블(or 값)이 아닌 보상함수를 통해 행동에 대한 스코어를 책정하므로 지도학습과는 차이가 있다.
보상을 최대화하는 행동을 강화학습으로 학습하며, 이 행동으로는 에이전트의 시행착오(trial and error) 또는 세워진 계획을 사용한다.
성능 지표에는 정밀도(precision), 재현율(recall), F1-score 등이 있다.
이것들에 알기 위해서는 혼동행렬에 대해 알아야 한다.
혼동행렬(confusion matrix): 분류 모델의 예측 결과를 평가하는 데 사용하는 행렬이다.
실제 클래스와 예측된 클래스가 양성(positive)이냐 음성(negative)이냐에 따라 아래와 같이 4가지 요소로 구성된다.
True Positive(TP): 실제 클래스 양성, 예측 클래스 양성 (참)
False Positive(FP): 실제 클래스 음성, 예측 클래스 양성 (거짓)
True Negative(TN): 실제 클래스 음성, 예측 클래스 음성 (참)
False Positive(FP): 실제 클래스 양성, 예측 클래스 음성 (거짓)
혼동행렬을 이용하면 분류 모델의 성능 지표를 구할 수 있다.
정확도: (TP+TN)/(TP+TN+FP+FN)
정밀도: TP/(TP+FP)
재현율: TP/(TP+FN)
F1-score: 2*((정밀도)*(재현율)/(정밀도)+(재현율))
회귀에서 사용하는 지표에는 평균절대오차(MAE), 평균제곱오차(MSE), 평균제좁근오차(RMSE), R^2 score가 있다.
평균절대오차(Mean Absolute Error): 모델의 예측값과 실제값의 차이인 오차의 절댓값의 평균이다. 즉, 오차의 절댓값을 모두 구한 다음, 평균을 낸 지표이다. 평균절대오차의 값이 낮을수록 좋은 모델이다.
평균제곱오차(Mean Squared Error): 평균제곱오차도 값이 낮을수록 예측을 잘한 모델이다. 이름 그대로 오차를 제곱하므로, 오차가 1 미만이면 평균제곱오차는 작아지고, 1 이상이면 커진다. (= 특잇값에 민감한 지표)
평균제곱근오차(Root Mean Squared): 평균제곱오차에 루트를 씌운 수치이다. 마찬가지로 값이 낮을수록 좋은 모델이다.
R^2 score: 실제값의 분산 대비 예측값의 분산 빈율을 의미한다. 상대적인 성능을 나타내므로 비교가 쉬우며, 위 지표들과 달리 1에 가까울수록 좋은 모델이다.