명시적인 프로그래밍 없이 컴퓨터가 학습하는 능력을 갖추도록
훈련 세트
: 시스템이 학습하는 데 사용하는 샘플
훈련 사례
: 각 훈련 데이터
훈련 데이터
: 경험
정확도
: 성능 측정(정확히 분류된 x의 비율)
문제가 어렵다면 전통적인 프로그래밍 기법으로는 유지 보수하기 매우 힘들어짐 ➡️ 패턴을 감지하여 자동으로 학습하여 판단해준다면? ➡️ 유지 보수가 쉬우며 정확도가 높아진다!
머신러닝 기반의 포르개래밍은 자동으로 훈련 사례를 인식하고 별도의 작업을 하지 않아도 알아서 처리한다
지도
, 비지도
, 준지도
, 강화학습
: 사람의 감독하에 훈련하는 것인지 그렇지 않은 것인지온라인 학습
과 배치 학습
: 실시간으로 점진적인 학습을 하는지 아닌지사례 기반 학습
과 모델 기반 학습
: 단순하게 알고 있는 데이터 포인트와 새 데이터 포인트를 비교하는 것인지 아니면 과학자들이 하는 것처럼 훈련 데이터셋에서 패턴을 발견하여 예측 모델을 만드는지이 범주들은 서로 배타적이지 않으며 원하는 대로 연결 할 수 있다
지도 학습
에는 알고리즘에 주입되는 훈련 데이터에 레이블
이라는 원하는 답이 포함된다.
분류
: 전형적인 지도 학습 (ex. 스팸)
예측 변수(predictor variable)
: 특성(feature)
을 사용해 중고차 가격 같은 타깃(target)
의 수치를 예측하는 것
이런 종류의 작업을 회귀라고 한다.
일부 회귀 알고리즘은 분류에 사용할 수 있다. 반대로 일부 분류 알고리즘은 회귀에 사용할 수도 있다. 널리 쓰이는 로지스틱 회귀는 클래스에 속할 확률을 출력한다.
훈련 데이터에 레이블이 없다 ➡️ 시스템이 아무런 도움없이 학습해야한다
계층 군집
알고리즘을 사용하여 각 그룹을 더 작은 그룹으로 세분화 할 수 있다.
시각화
알고리즘은 레이블이 없는 대규모의 고차원 데이터를 넣으면 도식화가 가능한 2D나 3D 표현을 만들어준다.
차원 축소
는 너무 많은 정보를 잃지 않으면서 데이터를 간소화하려고 한다.
특성 추출
: 두 특성을 하나의 특성으로 합치는 것
이상치 탐지
: 새로운 샘플을 보고 정상 데이터인지 혹은 이상치인지 판단한다.
특이치 탐지
: 훈련 세트에 있는 모든 샘플과 달라보이는 새로운 샘플을 탐지하는 것이 목적이다.
연관 규칙 학습
: 대량의 데이터에서 특성 간의 흥미로운 관계를 찾는다.
구글 호스팅 서비스가 좋은 예시다. 가족 사진을 모두 올리면 이 사람들이 누구인가에 대해서 레이블을 하나만 추가하면 모든 사람을 알 수 있게된다.
대부분의 준지도학습은 지도학습과 비지도학습의 조합으로 이루어져있다.
에이전트
: 학습하는 시스템
환경을 관찰해서 행동을 실행하고 그 결과로 보상을 받는다. 시간이 지나면서 가장 큰 보상을 얻기 위해 정책
이라는 최상의 전략을 스스로 학습한다
시스템이 점진적으로 학습할 수 없다 ➡️ 가용한 데이터를 모두 사용해 훈련
➡️ 시간과 자원을 많이 소모하므로 오프라인에서 수행된다.
먼저 시스템을 훈련시키고 다음 제품 시스템에 적응하면 더 이상의 학습없이 실행된다.
오프라인 학습이라고 한다.
순차적으로 한 개씩 또는 미니배치
라 부르는 작은 묶음 단위로 주입하여 시스템을 훈련시킨다.
컴퓨터 한 대의 메인 메모리에 들어갈 수 없는 아주 큰 데이터셋을 학습하는 시스템에도 온라인 학습 알고리즘을 사용할 수 있다. (외부 메모리➡️보통 오프라인으로..➡️그냥 점진적 학습이라 기억)
학습률
: 온라인 학습 시스템에서 중요한 파라미터 하나는 변화하는 데이터에 얼마나 빠르게 적응할 것인지 (높을 경우, 시스템이 데이터에 빠르게 적응하지만, 예전 데이터를 금방 잊어버림.)
성능이 일시적으로감소한다.
유사도 측정
을 통해 분류한다. ➡️ 사례 기반 학습
시스템이 훈련 샘플을 기억함으로써 학습
샘플들의 모델을 만들어 예측
에 사용하는 것
대부분의 머신러닝 알고리즘이 잘 작동하려면 데이터가 많아야 한다.
일반화가 잘되려면 우리가 일반화되기 원하는 새로운 사례를 훈련 데이터가 잘 대표하는 것이 중요하다.
샘플링이 작으면 샘플링 잡읍
이 생기고, 매우 큰 샘플도 표본 추출 방법이 잘못되면 샘플링 평향
이 생기기도 한다.
훈련 데이터가 에러, 이상치, 잡음이 많다면 머신러닝 시스템이 내재된 패턴을 찾기 어려워 잘 작동하지 않는다. 따라서 아래의 경우에는 훈련 데이터 정제가 필요하다.
성공적인 머신러닝 프로젝트를 위해 훈련에 사용할 좋은 특성을 찾는다. ➡️ 특성 공학
특성 선택
: 가지고 있는 특성 중에서 훈련에 가장 유용한 특성을 선택한다.특성 추출
: 특성을 결합하여 더 유용한 특성을 만든다. (차원 축소 알고리즘)훈련 데이터에 있는 잡음의 양에 비해 모델이 너무 복잡할 때 일어난다. 해결방법은 아래와 같다.
규제
: 과대적합의 위험을 감소시키기 위해 모델에 제약을 가하는 것
하이퍼 파라미터
: 학습하는 동안 적용할 규제의 양을 결정한다.
특성공학
).규제
하이퍼파라미터
를 감소시킨다.)훈련 데이터를 훈련 세트
와 테스트 세트
두 개로 나눈다. 훈련 세트
를 사용하여 모델을 훈련하고 테스트 세트
를 사용하여 모델을 테스트한다.
새로운 샘플에 대한 오류 비율을 일반화 오차
(또는 외부 샘플 오차
)라고 하며, 테스트 세트에서 모델을 평가함으로써 이 오차에 대한 추정값을 얻는다.
모델 평가는 그냥 테스트 세트를 사용하면 된다.
홀드아웃 검증
을 통해 훈련 세트의 일부를 떼어내어 여러 후보 모델을 평가하고 가장 좋은 하나를 선택한다. 이 새로운 홀드 아웃 세트를 검증 세트
라 부른다. (개발 세트
또는 데브 세트
라고도 한다.)
하이퍼파라미터
값을 가진 여러 모델을 훈련한다.교차 검증
을 수행한다.훈련-개발 세트
: 훈련 사진의 일부를 떼어내어 또 다른 세트를 만드는 것
모델을 규제하거나 더 많은 훈련 데이터를 모으거나 훈련 데이터 정제를 시도해봐야한다.