컬쥐네 다락방
머신 러닝 기초 본문
데이터 준비
모델을 학습시키기 위해서 좋은 데이터셋이 필요하다. 데이터 셋을 확보한 뒤 Feature Engineering을 거쳐서 최종 데이터 셋을 준비하고, 이를 Training, Validation, Testing(훈련, 검증 ,테스트) 3그룹으로 나눈다.
Training Set이 모델이 학습하는데 사용될 데이터이고 Validation Set은 학습 과정에서 모델의 성능 향상과 최적화를 위해 검증용으로 사용된다. Test set은 학습이 완료된 모델의 최종 성능을 평가하는데 사용된다.
작은 데이터 셋에서는 보통 6:2:2 비율로 나뉘고, 큰 데이터 셋(백만개 이상)에서는 98:1:1로 나누어 사용한다.
나누는 이유는 너무 작은 데이터 셋에서 학습 데이터의 비중이 클 경우 모델이 학습 데이터에만 심하게 맞춰져서 (Overflitting) 정확도가 낮아질 수 있ㄱ 때문이다.
검증 데이터와 테스트 데이터를 나눌만큼 데이터가 충분하지 않다면 K-fold cross validation을 사용한다. 전체 프로세스를 N번 수행하고 모든 수행에서 나온 정확도의 평균을 구하는 방법. 모든 데이터 셋이 학습과 평가에 이용될 수 있다는 장점이 있다.
머신 러닝의 목적 : Perform well on unseen data
머신 러닝의 최종 목적은 관측되지 않은 데이터를 정확히 예측하는 것이다. 이를 위해 모델을 학습시키고 Generalization error가 0이 되도록 모델을 평가한다. 하지만 이를 측정하는 방법이 적절하지 않아 2가지 목표로 나누게 된다.
1. Training Error를 0으로 만들기.
학습 데이터 셋을 활용하여 모델을 학습시키고 모델 최적화(Optimization)에 집중한다. 전체 데이터의 특징을 모두 학습하기 위해 충분히 복잡한 모델을 사용한다 (Underfitting 방지)
2. Test Error를 Training Error와 같게 만들기.
Generalization error를 줄이기 위해 모델의 복잡도를 줄이는 regularization(Overfitting 방지)와 학습모델에 너무 의존하지 않도록 많은 트레이닝 데이터 셋을 추가한다.
머신 러닝 문제의 분류
Classification:
데이터셋이 인풋데이터 X, 클래스 레이블 Y에 N개로 구성되어있을때 인풋 데이터 X로부터 해당 인풋데이터가 각 클래스 레이블에 속할 수 있는 확률을 예측도록 학습하여 새로운 데이터가 들어왔을 때 어떤 클래스 레이블에 속할지 예측하는것이 분류 테스크의 목표이다.
Regression:
회기 테스크. 통계학에서도 많이 연구되는 테스크. 데이터 셋이 인풋데이터 X, 아웃풋 데이터 Y의 페어 N개로 이루어져있을 때 인풋데이터를 아웃풋데이터로 랩핑하는 모델 f를 찾는 것이 목표이다. ex) Linear regression, Logistic regression.
Density Estimation
인풋데이터 X로만 이루어진 테스크. X에 숨겨진 패턴을 분석하여 데이터들의 분포를 추정하여 인풋 데이터 X의 확률 분포를 찾아내는 것이 목표이다.
머신 러닝 학습 방법
Training data의 형태에 따라 분류한다.
- Supervised Learning(지도학습)
가장 흔하고 성공적인 학습 방식. 인풋 데이터에대한 아웃풋 데이터가 페어로 주어져 있어서 둘 사이의 맵핑을 찾아내는 것이 목표. 아웃풋 데이터 Y가 유한한 값인지 연속적인 값인지에 따라 Classification, Regression으로 나뉘게된다.레이블링에 대한 코스트가 있지만 정확한 레이블링덕에 학습의 결과가 보장된다. (알파고의 바둑판 상태에 따른 학습, 구글 번역기) - Unsupervised Learning(비지도학습)
인풋 데이터에서 의미있는 패턴을 찾는 것이 목표. Clustering을 통한 Density estimation이 대표적인 예시이다. 인풋데이터만의 분포를 학습하기 때문에 분류 등의 테스크에 바로 적용하면 적확도가 낮지만, 효율적인 학습을 위한 Pre-Training이나 feature extraction에서 활용하기 좋다. - Reinforcement Learning(강화학습)
개를 훈련시키는 방식과 비슷하다. 개에 직접 앉는 방법을 가르치는 것이 아니라 앉으면 보상을 주는 방식으로 가르치듯 어떤 Observation을 에이전트가 관측했을 때 취해야 하는 액션을 알려주는 것이 아니라, 어떤 액션을 취하면 그것에 대한 리워드 값을 알려줘서 이를 학습시킨다. 직접 액션을 알려줄 수 있다면 더 쉬운 방법이겠지만, 로봇의 관절을 하나 하나 컨트롤해야될 때같이 복잡한 과정이 필요할 경우에는 그럴 수 없기 때문이다. 다른 학습들과는 달리 Sequential하게 decision making 문제를 푸는게 특징이다. 당장은 액션을 취했을 때 별 이득이 없지만 미래에 손해를 볼 수 있기에 복잡한 문제이다. 다만 게임처럼 액션에 따르는 리워드 값이 분명할 경우에는 유용한 행동 패턴을 쉽게 학습할 수 있기때문에 머신러닝의 꽃으로 불린다.
'공부방 > IT' 카테고리의 다른 글
우아한 테크코스 4기 프리코스 후기 (0) | 2021.12.14 |
---|---|
[프리코스 1주차] Random 함수에 관한 공부 (0) | 2021.11.26 |
Index와 SQL 기초 (0) | 2021.10.25 |
AL/ 머신러닝 / 딥 러닝 이란? (0) | 2021.10.17 |
운영 체제 공부 - 작성중 (0) | 2021.08.11 |