머신 러닝 프로그램
일반적인 프로그램은 우리가 정해준 대로 일을 하는데,
머신 러닝 프로그램은 경험을 통해서 스스로 업무 능력을 키웁니다.
인공 지능, 빅 데이터, 머신 러닝
빅 데이터
간단하게 표현하자면 많은 양의 데이터를 다루는 분야입니다.
많은 양의 데이터를 효율적으로 보관/처리하고,
많은 양의 데이터를 분석해서 의미 있는 결과물을 만들어내는 것입니다.
머신 러닝도 일반적으로 많은 양의 데이터를 쓰기 때문에 빅 데이터와 겹친다고 볼 수 있습니다.
인공 지능
인공 지능은 컴퓨터 프로그램이 인간처럼 생각하거나 동작하게 하는 학문입니다.
영화에서 보는 인공 지능 로봇들은 사실상 인공 지능의 최고 목표이고,
그걸 달성하기 위한 수단 중 하나로 머신 러닝을 사용하는 것입니다.
딥 러닝
딥 러닝은 머신 러닝에 포함된 개념입니다.
머신 러닝은 프로그램이 직접 학습을 통해 발전하는 거라고 했는데,
학습시키는 방법 중 하나가 딥 러닝입니다.
머신러닝 시스템의 종류
머신러닝 시스템을 넓은 범주에서 분류하면 아래와 같습니다.
- 지도, 비지도, 강화 학습
- 배치 학습, 온라인 학습
- 사례 기반 학습, 모델 기반 학습
먼저 지도, 비지도, 강화 학습 먼저 살펴보겠습니다.
지도 학습 (Supervised learning)
지도 학습에는 알고리즘에 주입하는 훈련 데이터에 레이블 이라는 원하는 답이 포함됩니다.
분류(classification)와 회귀(regression)가 전형적인 지도 학습입니다.
분류는 몇 가지 옵션 중에 고르는 건데,
스팸 필터가 좋은 예입니다.
회귀는 예측 변수(predictor variable)라 부르는 특성(feature)을 사용해
중고차 가격 같은 타깃(target) 수치를 예측하는 것입니다.
일부 회귀 알고리즘은 분류에 사용할 수 있고,
반대로 일부 분류 알고리즘을 회귀에 사용할 수도 있습니다.
예를 들어, 분류에 널리 쓰이는 로지스틱 회귀는 클래스에 속할 확률을 출력합니다.
다음은 가장 중요한 지도 학습 알고리즘들입니다.
- k-최근접 이웃 (k-nearest neighbors)
- 선형 회귀 (linear regression)
- 로지스틱 회귀 (logistic regression)
- 서포트 벡터 머신 (support vector machine (SVM))
- 결정 트리(decision tree)와 랜덤 포레스트(random forest)
- 신경망 (neural networks)
비지도 학습 (Unsupervised learning)
비지도 학습에는 말 그대로 훈련 데이터에 레이블이 없습니다.
시스템이 아무런 도움 없이 학습해야 합니다.
다음은 가장 중요한 비지도 학습 알고리즘들입니다.
- 군집 (clustering)
- k-평균 (k-means)
- DBSCAN
- 계층 군집 분석 (hierarchical cluster analysis (HCA))
- 이상치 탐지(outlier detection)와 특이치 탐지(novelty detection)
- 원-클래스 (one-class SVM)
- 아이솔레이션 포레스트 (isolation forest)
- 시각화 (visualization)와 차원 축소 (dimensionality reduction)
- 주성분 분석 (principal component analysis (PCA))
- 커널(kernal) PCA
- 지역적 선형 임베딩 (locally-linear embedding (LLE))
- t-SNE (t-distributed stochastic neighbor embedding)
- 연관 규칙 학습 (association rule learning)
- 어프라이어리 (Apriori)
- 이클렛 (Eclat)
답이 주어지지 않았을 때 답을 맞추는 게 학습의 목적입니다.
지도 학습과는 달리 입력값에 대한 목표치가 주어지지 않아
데이터가 어떻게 구성되었는지를 파악해 나름의 기준을 세워 답을 구해냅니다.
강화 학습 (Reinforcement learning)
강화 학습에서는 학습하는 시스템을 에이전트라고 부르고
이 시스템은 환경을 관찰해서 행동을 실행하고 그 결과로 보상 또는 벌점을 받습니다.
시간이 지나면서 가장 큰 보상을 얻기 위해 정책(policy)라고 부르는 최상의 전략을 스스로 학습합니다.
이번에는 배치 학습과 온라인 학습을 살펴보겠습니다.
머신러닝 시스템을 분류하는 데 사용하는 다른 기준은
입력 데이터의 스트림으로부터 점진적으로 학습할 수 있는지에 대한 여부입니다.
배치 학습 (batch learning)
배치 학습에서는 시스템이 점진적으로 학습할 수 없습니다.
가용한 데이터를 모두 사용해 훈련시켜야 합니다.
일반적으로 이 방식은 많은 시간과 자원을 필요로 하므로 보통 오프라인에서 수행됩니다.
먼저 시스템은 다 학습시킨 후 제품 시스템에 적용하는 방식으로 사용하는데,
이를 오프라인 학습(offline learning)이라고 합니다.
배치 학습 시스템이 새로운 데이터에 대해 학습하려면
새로운 데이터와 이전 데이터를 합친 전체 데이터를 사용해서
시스템의 새로운 버전을 처음부터 다시 훈련해야 합니다.
이 방식이 간단하지만 전체 데이터셋을 사용해 학습하는 데 많은 시간이 소요될 수 있습니다.
또한 전체 데이터셋을 사용해 훈련하므로 많은 컴퓨팅 자원이 필요합니다.
대량의 데이터를 갖고 있는데 매일 새로 훈련시키도록 자동화를 한다면 큰 비용이 발생할 것입니다.
데이터 양이 아주 많으면 배치 학습 알고리즘을 사용하는 게 불가능할 수도 있습니다.
또한, 자원이 제한된 시스템이 스스로 학습해야 할 때
많은 양의 훈련 데이터를 나르고 학습을 위해 매일 몇 시간씩 많은 자원을 사용하면 큰 문제가 될 수 있습니다.
이럴 경우에는 점진적으로 학습할 수 있는 알고리즘을 사용하는 것이 좋습니다.
온라인 학습 (online learning)
온라인 학습에서는 데이터를 순차적으로 한 개씩 또는 미니배치(mini-batch)라 부르는
작은 묶음 단위로 주입하여 시스템을 학습시킵니다.
매 학습 단계가 빠르고 비용이 적게 들어서 시스템은 데이터가 도착하는 대로 즉시 학습이 가능합니다.
온라인 학습은 연속적으로 데이터를 받고 빠른 변화에 스스로 적응해야 하는 시스템에 적합합니다.
컴퓨팅 자원이 제한된 경우에도 좋은 선택입니다.
온라인 학습 시스템이 새로운 데이터 샘플을 학습하면
학습이 끝난 데이터는 더는 필요하지 않으므로 버리면 됩니다.
이렇게 하여 많은 공간을 절약할 수 있습니다.
컴퓨터 한 대의 메인 메모리에 들어갈 수 없는 큰 데이터셋을 학습하는 시스템에도
온라인 학습 알고리즘을 사용할 수 있습니다.
알고리즘이 데이터 일부를 읽어들이고 훈련 단계를 수행하는 과정을
전체 데이터가 모두 적용될 때까지 반복합니다.
온라인 학습을 할 때 중요한 파라미터 하나는
변화하는 데이터에 얼마나 빠르게 적응할것인지를 나타내는 학습률 (learning rate)입니다.
학습률을 높게 하면 시스템이 데이터에 빠르게 적응하지만 이전 데이터를 금방 잊어버리고,
반대로 학습률을 낮게 하면 시스템의 관성이 더 커져서 느리게 학습되지만,
새로운 데이터에 있는 잡음이나 대표성 없는 데이터에 덜 민감해집니다.
머신러닝 시스템은 어떻게 일반화되는가에 따라 분류할 수도 있습니다.
대부분의 머신러닝 작업은 예측을 만드는 것입니다.
즉, 주어진 훈련 데이터로 학습하여 새로운 데이터에 대해 좋은 예측을 만들어야 한다는 것입니다.
일반화를 위한 두 가지 접근법은 사례 기반 학습과 모델 기반 학습입니다.
사례 기반 학습 (instance-based learning)
시스템이 훈련 샘플을 기억함으로써 학습합니다.
그리고 유사도 측정을 사용해 새로운 데이터와 학습한 샘플을 비교하는 식으로 일반화합니다.
모델 기반 학습 (model-based learning)
샘플들의 모델을 만들어 예측에 사용하는 것입니다.
'DATA > 머신 러닝' 카테고리의 다른 글
[머신 러닝] 더 빠르게, 더 정확하게 (0) | 2022.01.06 |
---|---|
[머신 러닝] 로지스틱 회귀 (Logistic Regression) (0) | 2022.01.05 |
[머신 러닝] 다항 회귀 (Polynomial Regression) (0) | 2022.01.04 |
[머신 러닝] 다중 선형 회귀 (Multiple linear regression) (0) | 2022.01.04 |
[머신 러닝] 선형 회귀 (Linear Regression) (0) | 2022.01.03 |