티스토리 뷰

반응형

이 글은 고려대학교 김현철교수님의 인공지능 수업 (2016년) 강의자료를 토대로 하고 있습니다.

너무 좋은 강의여서 프린트물을 아직도 간직하고 있었는데, 다시 정리도 하고 프린트물을 보내주려고 글을 적습니다. 

 

혹시 문제가 된다면 말씀해주세요


 

[1] 머신러닝 등장 배경

 

1) 지식 기반 방식 (expert system)

 

전문가의 지식을 추출해서 모델을 만드는 방식 입니다.

이 방식의 한계는 무엇일까요?! 

 

- incomplete

- inconsistent

- fuzzy (애매한, 불분명한) 

 

오직 전문가의 경험에만 의존하고

전문가가 경험한 데이터 양도 적기 때문에

신뢰성이 떨어집니다. 

 

2) 데이터 기반 방식

 

데이터로부터 지식을 추출해서 모델을 만드는 방식입니다. 

이 방식에는 품질 좋고 많은 데이터가 꼭 있어야하겠죠?!

(데이터가 힘이고 권력이라는 교수님의 말씀이 떠오릅니다) 

 

과거에는 데이터가 부족해서 문제였는데,

점차 데이터가 많이 쌓이면서 지식 기반 방식에서 데이터 기반 방식으로 넘어오게 됩니다. 

(요즘은 오히려 데이터가 너무 많아서 문제라고 하네요,,)

 

[2] 머신러닝(기계 학습) 이란?

 

수집된 데이터로부터 모델을 만드는 것을 말합니다. (쉽게 말하면 숨겨진 패턴을 찾는 것!)

이 과정에서 학습이 일어나기 때문에 머신러닝이라고 부릅니다. 

 

예를 들어 도메인이 이 세상의 사람들이고 

그것을 가지고 어떤 사람이 남자인지 여자인지 구분하는 것을 학습시켜서

남, 여를 구분하는 모델을 만든다고 생각해볼 수 있습니다.

 

수학의 함수(f(x))에 해당하는 것이 모델이라고 할 수 있습니다.

x에 어떤 값이 들어오면 f(x)를 사용해서 y를 구하고 싶은 것입니다.

 

[3] 머신러닝 기본용어

 

< DataSet 관련 >

 

- 각각의 항목을 feature, attribute, column 라고 부릅니다. 

ex) 나이, 성별

 

- 데이터 하나(?)를 instance라고 부릅니다.

ex) 사람1, 사람2

 

- 결과를 class, label, dependant variable(종속 변수) 라고 부릅니다. 

ex) 남, 여

 

< 그외 >

 

도메인이 이 세상의 모든 사람이라고 해도 실제 모든 사람의 데이터를 가지고 모델을 만들 수는 없겠죠?!

그 중의 일부만 가지고 모델을 만드는데, 그 모델을 만드는데 사용된 데이터를 training data 라고 말합니다. 

 

training data를 가지고 모델을 만드는 것을 보통 training시킨다고 말합니다. 

 

[4] 머신러닝 쪽 혼용되는 용어 정리

용어 정리한 김에(?)

혼용되어 많이 사용하는 용어도 정리해봅시다. 

 

- 인공지능 (목표)

사람의 지능을 흉내내는 모델을 만들겠다. 

 

- 머신러닝 (방법)

그런 목표를 위해 데이터로부터 공통점을 찾아내서 모델을 만들겠다.

 

- 딥러닝 (방법의 심화)

데이터의 feature까지도 학습시키겠다.

어떤 feature(특징)이 숨겨져있는지도 발견하고 싶다. 

 

(머신러닝 + feature)

 

- 데이터 마이닝 (절차)

많은 데이터 수집 -> 패턴찾기 -> 마케팅 등에 전략적으로 사용 

 

 

[5] 머신러닝 컨셉

4가지 컨셉이 있습니다. 

 

1) classification (분류)

- supervised learning

- 대표 알고리즘: Decision Tree, Neural Network

 

2) clustering (군집)

- unsupervised learning

- 대표 알고리즘: K means

 

3) association (연관)

 

4) numerical prediction (수치값 예측)

 

[5.1]  Classification (Supervised learning)

 

Supervised learning은 training dataset에서 

instance (ex. 사람1) 와 instance의 class (ex. 남자) 를 제공하는 경우를 말합니다. 

 

일정량의 데이터를 계속 받아서 남자와 여자를 구분하는 모델(classifier)을 만들어냅니다. 

 

이렇게 instance 데이터를 class 1 (남자) 또는 class 2 (여자) 로 분류하는 것을

classification이라고 부릅니다. 

(특정 데이터에 너는 이거야!! 하고 클래스를 붙여준다고 생각하면 쉬워요)

 

그럼 이렇게 만든 모델을 어디에 사용할 수 있을까요?!

 

1) unknown data 예측

training에 사용되지 않은 새로운 unknown data가 들어왔을때 그것이 남자인지 여자인지 예측하는 데 사용될 수 있습니다.

 

2) 도메인 이해 

또한 도메인 자체를 이해하고 분석하는데 사용될 수 있어요 (남자와 여자를 구분하는 기준을 파악하는 등) 

 

[5.2] Clustering (Unsupervised learning)

Unsupervised learning은 training dataset을 줄때 

instance에 대한 class가 주어지지 않는 경우를 말합니다. 

(ex. training dataset에는 사람들만 있고 그 사람이 남자인지 여자인지 클래스가 주어지지 않는 경우) 

 

trainig dataset을 관찰하다보면 

데이터들을 어떠한 유사성에 따라서 여러 그룹으로 분류하게 됩니다.

(ex. 나이에 대해 그룹핑, 키에 대해 그룹핑) 

 

어떠한 유사성에 따라서 여러개의 군집을 만드는 것을 clustering(군집화) 라고 합니다. 

 

그럼 이렇게 만든 모델을 어디에 사용할 수 있을까요?!

 

비슷한 성향을 가진 고객들을 그룹화하여 그룹별 맞춤 마케팅(?)을 할 수 있겠습니다. 

 

[5.3] Association (연관성 분석)

feature간의 연관성을 찾아내는 것을 말합니다. 

 

예를들어 

'국제 전화 횟수' 라는 feature와 '이사 횟수'라는 feature의 연관성을 찾아서 

국제 전화 많이하는 사람들은 이사 횟수가 많다!! 와 같은 정보를 아는 것을 말합니다. 

 

그럼 이렇게 만든 모델을 어디에 사용할 수 있을까요?!

 

마트에서 샴푸와 린스가 같이 팔린다, 기저귀와 맥주가 같이 팔린다. 와 같이

사람들이 물건을 사가는 패턴에 대한 연관성을 찾아서 (장바구니 분석)

마케팅 전략에 적극 활용할 수 도 있고

 

수능 영어 데이터를 분석해보니 3번 맞은 학생들이 15번도 같이 맞았다. 

이런 연관성을 파악해서 수능문제를 겹치게 잘못냈다!! 라는 이의제기(??)를 할 수 도 있겠습니다. 

 

 

[5.4] Numerical Prediction (수치값 예측)

 

특정 수치값을 예측하는 것을 말합니다.

(ex. 주택 가격 예측하기 , 자동차 연비 예측하기 )

 

그럼 이렇게 만든 모델을 어디에 사용할 수 있을까요?!

 

네이버페이의 카드 결제 시스템에서는 사용자의 거래량을 예측하고 

평소와 다른 문제 상황을 감지해 알림을 보내는 모니터링 시스템을 운영한다고 합니다. (출처: 딥러닝을 활용한 거래량 예측 기능 개선)

 

특정 고객이 다음 달에 얼마를 쓸거다! 라고 예측해서

기대한 것보다 금액이 적으면 그 고객에게 마케팅을 더 하는 등에도 쓰일 수 있겠습니다. 

 

 

반응형
댓글