일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Machine Learning
- Artificial Intelligence
- 빅 데이타
- node.js
- 통계
- nodeJS
- Statistics
- 딥러닝
- 김양재
- WebGL
- R
- 인공지능
- MongoDB
- 몽고디비
- 데이터 과학
- probability
- 확률
- 빅데이타
- 김양재 목사
- 주일설교
- 빅데이터
- Deep learning
- 김양재 목사님
- 빅 데이터
- No SQL
- Big Data
- c++
- 우리들교회
- data science
- openCV
- Today
- Total
Scientific Computing & Data Science
[Artificial Intelligence / Posts] Machine Learning 분류 본문
[Artificial Intelligence / Posts] Machine Learning 분류
cinema4dr12 2017. 4. 3. 15:52이번 포스팅에서는 머신러닝의 분류에 대하여 정리해 보기로 한다.
머신러닝의 목적은 인간이 개입하지 않고 컴퓨터가 어떠한 일을 수행할 수 있도록 학습시키는 것이다. 유전학, 사회관계망, 광고, 위험분석 등과 같은 응용분야의 증가에 따라 프로세스, 고객, 조직에 필요한 정보 추출하 또는 인사이트 제공을 위한 엄청난 양의 데이터를 분석할 수 있는 데이터가 생성되고 있다. 궁극적으로 머신러은 모델을 세우고 평가를 위해 과거, 현재 미래의 데이터를 이용하여 성능 조건을 최적화하는 알고리즘으로 구성된다.
1. Unsupervised Learning (비지도 학습)
비지도 학습의 목표는 어떠한 관찰 데이터 집합에 대한 일정한 규칙성과 불규칙성을 발견해 내는 것이다. 통계학에서 Density Estimation으로 알려진 과정은 두 개의 카테고리로 나뉜다: 데이터 클러스터 발견 및 잠재적 요소 발견.
방법론은 유아 또는 동물의 자연적 학습 과정과 유사한 학습 패턴을 이해하기 위한 입력 데이터 처리로 구성된다. 비지도 학습은 라벨링 된 데이터를 필요로 하지 않으므로 결과 검증을 위한 전문적 역량이 요구되지 않아 구현하기 쉽다. 그러나, 클러스터링 알고리즘의 결과를 라벨링하는 것은 가능하며 이는 향후 분류를 위한 목적으로 사용가능하다.
1.1. Clustering (군집화)
데이터 클러스터링의 목표는 수집된 데이터를 다수의 클러스터 또는 데이터 그룹으로 분리하는 것이다.
실질적으로 클러스터링 알고리즘은 클러스터에 속하는 관찰 데이터를 최소화하거나 클러스터 중간의 관찰 결과를 최대화하여 관찰 데이터를 클러스터로 조직화하는데 사용된다.
클러스터링 알고리즘은 아래의 단계로 구성된다:
입력 데이터에 대한 가설을 세워 모델 생성하기
목적 함수 또는 클러스터링의 목표 선택하기
목적 함수를 최적화하기 위해 하나 이상의 알고리즘 평가하기
데이터 클러스터링은 데이터 세그먼테이션(Data Segmentation)또는 데이터 파티셔닝(Data Partitioning)으로도 알려져 있다.
1.2. Dimension Reduction (차원 감소)
차원 감소 기법은 데이터세트 신뢰성을 모델링하는 가장 작지만 가장 관련있는 피쳐(Features) 그룹을 찾는 것을 목표로 한다. 피쳐 또는 파라미터의 개수를 줄이는 다양한 이유들이 있는데, 대표적인 것이 계산량을 줄여 과도적합(Overfitting)을 피하기 위함이다. 비지도 학습을 이용하여 데이터로부터 지식을 이끌어낼 수 있는 다양한 유용한 기법들을 분류하는 방법들이 존재한다.
아래 이미지는 이러한 기술들을 그 목적에 따라 분류한 것이다.
2. Supervised Learning (지도 학습)
지도 학습과 가장 유사한 기법은 함수 근사화 또는 커브 피팅(Curve Fitting)이다. 지도 학습은 학습 데이터세트 {x, y}로부터 이들 간의 관계식 또는 함수 f: x → y 를 얻는 것을 목표로 한다. 지도 학습은 다른 어떠한 학습 전략보다도 훨씬 정확하고 믿을만하지만, 어떤 유형의 문제에 대하여는 데이터를 라벨링하기 위한 도메인 전문 지식이 필요할 수도 있다.
지도 학습 알고리즘들은 다음과 같이 크게 두 개로 나눌 수 있다:
• 생성 모델 (Generative Models)
• 차별화 모델 (Discriminative Models)
2.1. 생성 모델 (Generative Models)
통계학에서의 설명을 단순화하기 위해 다음과 같이 설명하고자 한다: 사건 X의 확률은 이산 랜덤 변수 X가 값 x를 갖는 확률과 같다, 즉 p(X) = p(X = x). 결합 확률 (또는 조건부 확률)은 다음과 같이 표현한다: p(X, Y) = p(X=x, Y=y) (또는 p(X|Y) = p(X=x | Y=y).
생성 모델은, 관찰된 변수 X와 은닉(잠재) 변수 Y를 표현하는 두 개의 사건(랜덤 변수) X와 Y의 결합 확률 p(X,Y)를 적합을 시도한다. 차별화 모델은 관찰된 변수 x의 사건 또는 랜덤 변수 X가 주어질 때 은닉 변수 y의 사건 또는 랜덤 변수 Y의 조건부 확률 p(Y|X)을 학습한다.
생성 모델은 보통 베이지안 룰(Rule)을 통해 소개된다. 사건 X가 주어질 때 사건 Y의 조건부 확률은 사건 Y가 주어질 때 사건 X의 조건부 확률과의 곱으로 계산되며, 사건 X의 확률은 사건 Y의 확률에 의해 정규화된다.
2.2. 차별화 모델 (Discriminative Models)
생성 모델과는 달리, 모델은 학습과 분류에 대한 동일한 알고리즘으로 조건부 확률 p(Y|X) 를 직접 계산한다. 생성 모델과 차별화 모델은 각각의 장점과 단점을 가지고 있다. 초보 데이터 과학자들은 실험을 통해 각각의 문제에 적합한 알고리즘을 매칭하는 법을 배운다.
다음 표는 프로젝트의 목적이나 특성에 따라 어떤 종류의 모델이 적합한지를 설명하는 간단한 가이드라인이다:
목적 |
생성 모델 |
차별화 모델 |
정확도 |
학습 데이터세트에 매우 의존적임. |
확률 추정은 매우 정확한 편임. |
모델링 요구사항 |
관찰변수와 은닉변수가 모두 요구되며, 이는 |
학습 데이터의 품질은 생성 모델만큼 높지 않아 |
계산량 | 계산량이 보통 적다. 예를 들어, 베이지언 룰 | 대부분의 알고리즘들은 상당한 성능 오버헤드를 요구하는 컨벡스(Convex) 최적화에 의존한다. |
제약사항 | 이 모델들은 모델 피쳐들(Features) 간에 어 | 대부분의 차별화 모델 알고리즘들은 피쳐들 간에 |
3. Reinforcement Learning (강화 학습)
강화 학습은 로보틱스나 게임 전략의 영역 외에서는 지도 학습 및 비지도 학습만큼 잘 이해되고 있지는 않다. 그러나, 90년대부터 도메인 전문가와 협업하여 문제를 해결하는데 있어 유전자 알고리즘 기반 분류자(Classifier)가 점점 유명해졌다. 몇몇 어플리케이션에 있어서는 강화 학습 알고리즘들이 적응형 시스템에 대한 몇 가지 행동을 추천한다. 강화 학습 알고리즘들은 가장 단순하게는 최선의 행동 코스를 계산하거나 평가한다. 강화 학습에 기반을 둔 대부분의 복잡한 시스템들은, 전문가들은 기각할지도 모르는 정책을 수립하고 업데이트한다. 강화 학습 개발자들의 최우선 도전과제는 추천 행동이나 정책이 부분적으로 관찰되는 상태와 불확실성을 어떻게 다루어야 할 것인가이다.
유전자 알고리즘은 보통 강화 학습 툴박스의 일부로 여겨진다. 그러나, 학습 분류자 시스템과 같은 고도화된 모델들은 규칙과 정책을 분류하고 보상하기 위해 유전자 알고리즘을 사용한다. 앞선 두 개의 학습 전략과 같이, 강화 학습 모델은 마르코프(Markov) 또는 진화형으로 분류될 수 있다:
상기 이미지는 제안한 분류 방법에 의해 머신러닝 알고리즘에 대한 간단한 개요이며, 데이터 과학자들과 컴퓨터 과학자들이 하듯이 머신러닝을 소개하는 방법은 매우 많다.
by Geol Choi | April
'Artificial Intelligence > Posts' 카테고리의 다른 글
[Artificial Intelligence / Posts] 역전파 (Backpropagation) Part 2. (1) | 2017.06.03 |
---|---|
[Artificial Intelligence / Posts] 역전파 (Backpropagation) Part 1. (1) | 2017.05.06 |
[Artificial Intelligence / Posts] R에서의 딥러닝 (0) | 2017.04.20 |
[Artificial Intelligence / Posts] 핵심 머신러닝 용어 (3) | 2017.03.19 |
[Artificial Intelligence / Posts] 모두가 즐길 수 있는 Deep Learning에 대한 생각 (2) | 2017.03.01 |