머신러닝

본 포스팅은 Andrew Ng교수의 Machine Learning 코세라 강좌를 정리한 내용입니다.
https://www.coursera.org/learn/machine-learning
머신러닝이란?
- 머신러닝 실무자들 사이에서도 머신러닝의 정의가 무엇인가에 대해 의견이 분분하다.
- Arthur Samuel의 정의: 컴퓨터가 단순히 명시적으로 프로그램 되지 않고도 학습할 수 있게 하는 분야.
- Tom Mitchell의 정의: 어떠한 태스크 T에 대하여, 경험 E를 성능 P로 배우는 프로그램, T에 대한 성능 P가 E를 개선시킨다.
스팸분류 예제)
사용자가 이메일이 스팸인지 아닌지 판별하는 것을 지켜보는 프로그램이 있다고 하자, 이 프로그램은 사용자의 행동에 따라 스팸을 더 잘 필터 할 수 있도록 학습니다. 이 상황에서 태스크 T는 무엇인가?
- 어떠한 이메일이 스팸인지 아닌지 판별하는 것이 태스크 T가 된다.
- 사용자가 스팸인지 아닌지 판별하는것을 지켜보는 것은 E가 된다.
- 몇개의 스팸메일이 정확히 스팸이라고 판별 되었는지가 P가 된다.
머신러닝의 카테고리
머신러닝은 다음과 같은 카테고리로 나뉜다:
- 지도학습
- 비지도학습
- 기타: 강화학습, 추천시스템
이 강의에서는 지도학습과 비지도학습에 대해서 더 자세히 살펴볼 것이다.
지도학습
집값 예측 예제)

위와 같이 집값을 예측하는 도표가 있다고 하자.
X축은 집의 크기를 제곱 feet로 측정한 것이고,
Y축은 $1000단위의 집의 가격이다.
이 도표에 새로운 750제곱 feet의 데이터가 추가 되었고,
이 집의 가격이 얼마인지 알고싶다고 하자.
이 때 어떤 학습 알고리즘을 사용해 예측 할 수 있을까?
선형 회귀 모델

한가지 방법은, 위와 같이 데이터들과 가장 가까운 선을 그려 예측하는 것이다.
대략 예측해 본다면 집값은 $1,500,000가 될것이다.
하지만 이게 유일한 방법은 아닐것이다.
비선형 회귀 모델

2차 방정식을 이용해 곡선을 그려 위와 같이 예측 할 수도 있을것이다.
이렇게 예측한다면 집값은 $2,000,000가 될것이다.
지도학습과 회귀
위의 방법이 지도학습의 예제들이다.
지도학습은 먼저, 주어진 데이터들에 대해 "Right Answers"즉 정답이 함께 주어진다.
위의 예제에서는, 집의 사이즈에 대한 정확한 가격들이 주어졌다.
위의 예제에서 사용되었던 방법론을 Regression즉 회귀라고 한다.
회귀는 Continuous(연속적인)데이터에 대해서 예측을 하는 기법이다.
유방암 예제)
다른 지도학습 에제를 보도록 하자.
다음 예제는 유방암의 종양의 크기에 따라, 악성인지 양성인지 판별하는 예제이다.
데이터를 살펴보도록 하자.
X 축에는 종양의 사이즈. Y축에는 악성인지(1) 양성인지가(0) 기록되어있다.

이 문제에서는 Feature(특성)이 "종양의 크기" 한개밖에 없기 때문에 아래와 같이 표현할 수 있다.

그렇다면, Feature(특성)이 두가지인 경우를 살펴보자.
이번에는 X축에는 종양의 크기, Y축에는 나이가 기록되어 있다.
이러한 경우에는, 두 종류의 데이터 (o와 x)를 잘 분류할 수 있는 선을 그려 분류한다.

위에 있는 새로운 데이터(분홍색 점)이 들어왔을 때, 그 선에 비교해서
위에 있느냐 아래에 있느냐에 따라 양성인지 악성인지 예측해 볼 수 있을 것이다.
분류와 특성
기계학습 문제에서는 이러한 문제를 Classification(분류)문제라고 한다.
현실 환경에서 유방암을 분류할 수 있는 Feature(특성)은 두개 이상일 것이다.
만약 무한대 갯수의 특성을 가진 문제를 풀고 싶다고 하면,
기계학습 기법중에 서포트벡터머신(SVM, Support Vector Machine)이라는 방법론을 사용할 수 있을것이다.
이런 식으로, 기계학습은 자신이 가진 문제에서 특성(예, 집의 크기, 유방종양의 크기 등)을 최대한 찾아내고,
그 문제가 회귀 문제인지 분류 문제인지,
그리고 어떠한 방법론이 가장 알맞는 방법론 일지를 결정하는것이 문제를 푸는데 가장 중요한 부분일 것이다.
비지도학습
지도학습에서는 주어진 데이터에 대한 정답들이 함께 주어졌다.
비지도학습에서는 데이터에 대한 정답이 주어지지 않는다.
알고리즘이, 주어진 데이터에 대한 구조/군집(cluster)을 찾을 수 있는지가 관건이다.

유전자 예제)
비지도학습을 이용하면, 아래와 같은 것을 자동화 할 수 있습니다.
아래는 여러 사람의 유전자 정보이고,
이 정보로부터, 각 사람이 유전적 특성을 가지고 있는지를 판별하는 예제입니다.

비지도학습(클러스터 알고리즘)을 이용하면 별다른 정답을 주지 않아도,
알고리즘이 위와 같은 분류를 하게 만들 수 있습니다.
비지도학습 적용 예제

비지도학습은 여러 적용분야들이 있습니다
- 컴퓨터 클러스터링
- SNS 분석
- 시장 세분화
- 천문학 데이터 분석
예제) 지도 vs 비지도 분류
다음 문제들이 지도학습인지 아닌지 분류해보시오:
- 이메일이 스팸인지 스팸이 아닌지 분류, 스팸필터를 학습
- 웹상의 뉴스기사들이 주어지고, 그것을 내용 그룹별로 나누는 것
- 고객 데이터베이스가 주어지고, 그룹별 시장 세분화를 시키는 것
- 환자가 당뇨병이 있는지 없는지 분류, 환자 분류모델 학습
답은 아래에 나와있습니다
답:
- 지도학습
- 비지도학습
- 비지도학습지도학
- 지도학습
'데이터사이언스 > 머신러닝' 카테고리의 다른 글
머신러닝 공부 6 - 경사하강법 트릭 (0) | 2019.06.29 |
---|---|
머신러닝 공부 5 - 다중 선형 회귀 (0) | 2019.06.27 |
머신러닝 공부 4 - 경사하강법 (0) | 2019.06.26 |
머신러닝 공부 3 - 비용함수 (0) | 2019.06.25 |
머신러닝 공부 2 - 단일변수 선형회귀 (0) | 2019.06.25 |