6. 머신러닝
• 데이터를 통하여 기계가 모델을 스
스로 찾아내는 과정
• 데이터에서 모델을 찾아내는 과정이
마치 기계가 데이터를 학습해 모델
을 알아내는 것과 비슷해서 붙은 이
름
• 모델을 통하여 입력값에 대한 예상
되는 출력값을 반환한다.
데이터
머신러닝
모델입력값 출력값
7. Linear Regression
2 3 9 10
30
50
80
90
5
?
y = ax + b
5시간을 공부 했을때 예측되는 점수?
• 주어진 점(데이터)들과 가장 가까운 직선을 찾는
다
• 기울기 (a) 와 절편 (b)
100
기울기(a) = W (weight)으로 표기
y는 예측되는 x에 대한 가설 (Hypothesis)의 결과값
y = H(x) = Wx + b
8. Cost
2 3 9 10
30
50
80
5
• 점과 직선사이의 거리가 멀면 나쁜것
• 가중치를 준다 (제곱)
• 거리에 제곱한것을 모두 더하고, x 항목의
개수로 나눠서 평균을 구한다. => 분산
9. Liner Regression
데이터 x
랜덤값 W, b
Wx + b
1
m
m
∑
I=1
(Wx − y)2 Gradient
descent
W, b
완성된 모델
Wx + b
Hypothesis
Cost Function
10. Logistics Regression
• Binary Classification
• 1 (True) or 0 (False)
• 악성 파일(1) or 정상 파일(0)
• 데이터를 이항 분류할 수 있는 이상적인 그래프를 찾는것
15. Softmax
• i번째 y값의 중요도를 지수적으로 증가시켜 각 값 사이의 편차를 늘린
다음 정규화 하는 함수
• 지수적으로 증가시켜 각 값의 편차를 확대시켜 큰 값은 상대적으로
더 크게, 작은값은 더 작게 만든 다음 Normalization 시키는 함수
• 전체 합은 1
22. Probability
• 우리는 일반적으로 동전 하나를 던졌을 때 앞 또는 뒤가 나올 확률은 같다고
가정하여 0.5라고 생각한다
• 하지만 이 0.5라는 확률 값은 정확한 값이 아니라 우리가 가정한 값이다.
• 때문에 몇 번 의 수행 결과로 동전의 앞면이 나올 확률 P(H)를 정하고자 한다.
23. Probability
• 동전은 앞,뒤 50%의 확률로 나온다고 한 가정(Hypothesis)는
• 100번의 동전 던지기를 수행 했을 때, 앞면이 56번 나왔다면
• 어느정도의 오차 (거리)를 갖고 있는가?
24. MLE (Maximum Likelihood Estimation)
• Likelihood
• 어떤 가설을 전제 하였을때, 사건이 얼마나 나타날 수 있는가에 대한 정도
• L(T|E) : 증거 E가 관측되었을 때 이론 T와 그럴듯한 정도
• 앞의 예에서 가설 𝜃 = p = 0.52 로 한다면? 그리고 가설을 바꿔가면서 측정한다면?
• Maximum Likelihood
• 관찰값의 확률을 가장 크게 만드는 p = 𝜃 를 선택하는 것
•
•
•
• 파라메터의 갯수가 많고 모델이 복잡한 경우 간단하게 사용할 수 있음
̂θ = argmaxθP(D|θ) = argmaxθ{θaH
(1 − θ)aT
}
̂θ = argmaxθln{θaH
(1 − θ)aT
= argmaxθ{aHlnθ + aTln(1 − θ)}
d
dθ
(aHlnθ + aTln(1 − θ)) = 0
aH
θ
−
aT
1 − θ
= 0 θ =
aH
aT + aH
25. Bayesian Theorem
• 어떤 사건 B가 일어났을 때 사건 A가 일어날 확률
• P(B) > 0 일때 사건 B가 일어났을때 사건 A의 조건부 확률
• P(A) : A의 사전확률. 어떠한 사건에 대한 정보가 없을 때의 확률
• P(A|B) : B에 대한 A의 사후확률. B라는 정보가 주어졌을 때의
확률
P(A|B) =
P(B|A)P(A)
P(B)
26. MAP
• MAP
• 주어진 관측 결과와 ‘사전지식(사전확률)’을 결합해서 최적의 𝜃를 찾는것
• 베타 분포(Beta distribution)에 의한 P(𝜃)의 계산
P(θ|D) =
P(D|θ)P(θ)
P(D)
Posterior =
Likelihood × PriorKnowldge
NormalizingConstant
27. MLE & MAP
• MLE
• 주어진 관측 결과의 발생 가능성을 가장 높게 만들어주는 𝜃를 찾는것
• 매우 직관적. 별다른 가정을 하지 않고 주어진 관측결과를 바탕으로 쉽게 계산 (관측결과가 이항분포를 따를것이라는 가정이 있음)
• 관측결과에 의존하기 때문에 관측결과의 정확성에 따라 모수(𝜃) 추정의 성패가 크게 좌우됨
• MAP
• 주어진 관측 결과와 ‘사전지식(사전확률)’을 결합해서 최적의 𝜃를 찾는것
• 단순히 관측결과에만 의존하는 것보다 기존의 알고 있는 정보를 반영한다는 점에서 매우 합리적인 방법
• 사전지식에 대한 모델링이 어려움, 사전지식에 대한 모델리에 따라 추론 결과인 사후 확률의 정확도가 크게 좌우됨
• Probably Approximate Correct (PAC) learning
31. Entropy & Information Gain
• Entropy
• 주어진 데이터 집합의 혼잡도
• 엔트로피는 0과 1사이의 값, 혼잡도가 높은 상태가 1. 하나의 클래스로 구성된 상태 0.
• 엔트로피가 높은 상태에서 낮은 상태가 되도록 나무 모양을 생성해 나감
• Conditional Entropy
• 특정 feature (주어진 X)에 대한 정보가 있을 경우 Y의 Entropy를 측정
• Information Gain
• 어떤 속성을 선택함으로 인해서 데이터를 더 잘 구분하게 되는 것을 의미함
• 상위노드의 Entropy에서 하위노드의 Entropy를 뺀것 IG(Y, Ai) = H(Y) − H(Y|Ai)
H(Y) = − ΣxP(X = x)logbP(X = x) H(Y) = −
10
16
log2(
10
16
) −
6
16
log2(
6
16
)
32. Decision Tree
• 세분화
• 전체 데이터를 비슷한 특성을 갖는 몇 개의 그룹으로 분할해 그룹별 특성을 발견하는 경우 또는 각 고객이 어떤 집단에 속하는지를 파악하
고자 하는 경우
• ex) 시장세분화, 고객세분화
• 분류
• 관측개체를 여러 예측변수들에 근거해 목표변수의 범주를 몇개의 등급으로 분류하고자 하는 경우
• ex) 고객을 신용도에 따라 우량/불량으로 분류
• 예측
• 자료에 규칙을 찾아내고 이를 이용해 미래의 사건을 예측하고자 하는 경우
• ex) 고객속성에 따라서 대출한도액을 예측
• 차원축소 및 변수선택
• 매우 많은 수의 예측변수중에서 목표변수에 큰 영향을 미치는 변수들을 골라내고자 하는 경우
• CART, ID3, CHAID, C4.5, C5.0 알고리즘이 활용도가 높은편
34. • Naive : 각각의 feature가 독립적(conditionally
independent)임을 가정
Naive Bayes Classifier
35. Naive Bayes Classifier
• Bag of words
• 안전한 문자 word list <광고, 베팅, 수익률, 택배, 청접장>
• Vector <0, 1, 1, 0, 0>
• 분류
• 스펨 / 정상
•
36. KNN (k-Nearest Neighbor)
• 분류에 사용하는 알고리즘
• 새로운 데이터가 들어왔을 때 기존 데이터의 그룹 중 어떤 그룹에 속하는지를
분류
• k-NN은 새로들어온 ‘★은 ■ 그룹의 데이터와 가장 가까우니 ★은 ■ 그룹이다’
• 여기서 k의 역할은 몇 번째로 가까운 데이터까지 살펴볼 것인가를 정하는 숫자
37. KNN (k-Nearest Neighbor)
• 기존 데이터 A~F, 신규 N
• k = 1 인 경우
• N = C 와 같은 그룹 ‘●’
• k = 3 인 경우
• C, D, E 그룹들과 비교
• 이때 그룹이 갈리면 다수결의 원칙에 따른다
• 여기서는 1 : 2가 되어 N은 ▲로 분류된다
• 이처럼 같은 데이터임에도 k가 얼마냐에 따라 N이 ●로 분류되기도 하고 ▲로 분류되기도 한다.
38. Euclidean Distance
• 유클리드 거리 = 두 점사이의 거리
• k-NN은 거리 측정 방법에 따라 결과가 크게 달라지는 알고리즘
• k-NN에서 가깝다는 개념은 유클리드 거리(Euclidean Distance)로 정의하는데, 유클리드 거리를 계산할 때는 단위가
매우 중요
• 예) Y축의 단위가 달라($)로 가정
• A-N 간 거리는 B-N간 거리는 B가 더 가까움.
• Y축의 단위가 원(KRW)로 가정
• A-N 간 거리는 B-N간 거리는 A가 더 가까움.
• 변수별 단위에 따라 거리가 달리지고, 가까운 순서도 달라짐
• 반드시 k-NN 알고리즘 적용 시 데이터 표준화를 해주어야함
(x1 − y1)2
+ . . . + (xn − yn)2
= Σn
i=1(xi − yi)2
10 8
32
+ 10002
22
+ 20002
39. Manhattan Distance &
Minkowski Distance
• 맨하튼 거리 (Manhattan Distance)
• A에서 B로 이동할 때 각 좌표축 방향으로 만 이동할 경우에 계산되는 거리
• 민스코스키 거리 (Minkowski Distance)
• Euclidean Distance와 Manhattan Distance를 한번에 표현하는 공식
• Manhattan Distance가 L1 Distance, Euclidean Distance가 L2 Distance
• m = 1 이면 manhattan, 2면 Euclidean
dManhattan(X,Y) =
n
Σ
i=0
|xi − yi |
Lm = m
n
Σ
i=1
(|xi − yi |)m
40. Other distance methods
• 코사인 유사도 (Cosine similarity)
• 두개의 실수값을 갖는 속성 벡터 x, y간에 사용
• 값이 1이면 완전 동일, 0이면 상호 독립, -1이면 완전 반대
• 자커드 거리 (Jaccard Distance)
• 객체 집합간의 거리를 표현, 두 집합이 얼마나 유사한지 표시
• 마할라노비스 거리 (Mahalanobis Distance)
• 두개의 실수 벡터 간에 사용
• 유클리드 거리에 비해 상관관계를 고려할 수 있고 단위와 무관한 거리
• 해밍 거리 (Hamming Distance)
• 두개의 문자열, 같은 길이의 DNA 서열간의 거리를 구하는데 사용
• 문자의 위치를 옮겨가며 그 위치에 있는 문자들이 서로 같은지 보고 다르면 1씩 늘려간다.
41. Support Vector Machine
• 패턴인식, 자료분석을 위한 지도학습 모델로 분류와 회귀분석을 위해 사용
• Decision Boundary with Margin
• 빨간 두점을 잇는 직선( )과 평행하게 이동하면서 파란점을 만나는 직선( )을 찾는다
• 두 직선의 가운데 직선 = Decision boundary
• Margin = Decision boundary에서 까지의 거리
• Support Vector : Decision boundary를 결정하는데 필요한 3개의 점
• w x + b = 0
• Positive case
• w x + b > 0
• Negative case
• w x + b < 0
• confidence level (신뢰수준)
•
⃗A ⃗B
⃗A
(wxj + b)yj
44. Support Vector Machine
• 장점
• 분류문제나 예측문제 동시에 사용할 수 있다
• 신경망 기법에 비해서 과적합 정도가 덜하다
• 사용하기 쉽다.
• Incremental learning : 새로운 학습 데이터가 추가 되었을 때 기존의 학습 데이터를 포함해서
재 학습 하는것이 아닌, 업데이트만 하면 됨
• 단점
• Kernel과 모델 파라미터를 조절하기 위한 테스트를 여러 번 해봐야 최적화된 모형을 만들 수 있
다.
• 모형 구축 시간이 오래 걸린다.
45. More SVM
• Support Vector Machine은 딥러닝과 경쟁하며 발전하고 있는 분류 및 회귀
분석 머신러닝 알고리즘
• 비선형 분류를 위한 추가 개념
• Soft Margin
• Error Handling
• Kernel trick
• Lagrange Multiplier Method
• 등등은 다음 기회에...
47. 비지도학습
• 라벨링이 되어있지 않은 데이터로부터 데이터들의 속성을 찾는것
• Clustering
• 특성에 따라 데이터의 패턴이나 규칙을 통해 여러 집단으로 나누는것
• 데이터가 분리되어있는지 (Categorial data)
• 연속적인지(Continuous data)
• 차원축소(Dimentionality Reduction)
• Hidden Markov Model 등
48. Clustering
• Classifier
• 데이터들을 이미 알고 있는 Tag의 집합으로 분류
• Clustering
• 데이터들 간에 어떤 내부 동력으로 군집화 되는가를 찾아내는 방법
• Clustering 의 목적
• 군집 간 분산을 최대화
• 군집 내 분산을 최소화 -4 -3 -2 -1 0 1 2 3 4 5
-2
-1
0
1
2
3
4
-4 -3 -2 -1 0 1 2 3 4 5
-2
-1
0
1
2
3
4
49. K-means
1. K개의 파라미터를 선택
• K개의 클러스터가 생성
2. 랜덤한 K 위치와 데이터들의 거리를
구한다.
• 모든 데이터들이 K개의 클러스터 중
가까운 클러스터에 할당한다
3. 클러스터의 중심을 재설정한다.
• 클러스터 내 데이터들의 평균점이
클러스터의 중심이 된다.
4. 2~3번의 과정을 반복한다.
50. K-means vs k-NN
• k-NN
• 하나의 데이터가 들어왔을때 어느 근접한 그룹으로 할당할것인가
• k의 의미 => 몇번째로 가까운 데이터까지 비교해볼 것인가
• K-means
• 전체 데이터를 k개의 클러스터로 분류
• k의 의미 => 분류되는 클러스터 개수 & 해당 클러스터의 중심
51. K-means Algorithm
• : 클러스터 K centroid 의 위치
• : 이 클러스터 K에 속해있는지 여부 값 (1 or 0)
• EM Algorithm (Expectation & Maximization)
• 클러스터 K의 centroid 위치를 조정하고 각 데이터들의 소속값을 조정하는 작업을 번갈아가면서 진행하는 알고
리즘
• Expectation
• 데이터들을 클러스터 K의 centroid에 소속시키는 과정
• 를 optimization 하는 과정
• Maximization
• centroid의 새로운 위치를 선정하는 과정
• 를 optimization 하는 과정
argminJ =
N
Σ
n=1
K
Σ
k=1
rnk∥xn − μk∥2μk
xnrnk
rnk
μk
52. Problem of K-means
• 랜덤으로 생성되는 초기 centroid의 위치에 따라 원하지 않은 결과가 나올수 있음
• K-means++
• 하드 클러스터링
• 한개의 개체가 한개의 클러스터에만 속하도록 하는 군집화 방법
• Binomial Distribution
• 소프트 클러스터링
• 한개의 개체가 여러개의 클러스터에 속 할 수 있도록 허용하는 군집화 방법
• Multinomial Distribution
• 가우시안 혼합 모델 (Gaussian Mixture Model)
• 다음 기회에...
53. Hiarchical Clustering
• 계층적 트리 모형을 이용해 개별
개체들을 순차적, 계층적으로 유사
한 개체 내지 그룹과 통합하여 군
집화를 수행하는 알고리즘
• K-means와 달리 군집수를 사전
에 정의하지 않아도 학습을 수행할
수 있음
• 개체들이 결합되는 순서를 나타내
는 덴드로그램(Dendrogram)을
생성한 후 적절한 수준에서 트리를
자르면 전체 데이터를 몇개의 군집
으로 나눌 수 있음
54. Hiarchical Clustering
• 모든 개체들간 거리나 유사도를 미리 계산
• 거리가 가까운 개체-개체들끼리 군집으로 묶음
• 군집-개체 혹은 군집-군집간 가까운 거리로 묶음
• 군집간 거리 선택
• 특징
• 사전에 군집수 k를 설정할 필요가 없음
• 계산복잡성은 K-means 보다 무거운편
•
55. DBSCAN Clustering
• Density-Based Spatial Clustering of Applications with Noise
• K-means와 같이 데이터의 위치 정보를 이용
• 하지만 데이터의 분포(평균과의 거리가 얼마나 떨어져있는지로 군집을 결정)를 통해 군
집을 정하지 않고, 데이터의 밀도(density)를 이용한다.
• 같은 군집내의 데이터들은 밀도가 높게 위치해 있을 것이라는 가정
• 두가지 파라미터 설정 필요
• 주변공간의 정의 : 데이터 벡터로부터 어느정도 거리( ) 까지를 군집으로 볼것인가
• 주변공간의 벡터수 : 주변공간에 몇개의 데이터 벡터(n)가 존재해야 군집으로 볼 것인
가
ε
56. DBSCAN Clustering
• 이웃벡터 : 한 데이터 벡터로부터 거리 내에 위치한 데이터 개체
• 핵심벡터 : n개 이상의 이웃벡터를 갖는 데이터 벡터
• 외곽벡터 : 핵심 벡터로부터 거리 내에 위치해서 같은 군집으로 분
류되나, 그 자체로는 핵심벡터가 아닌, 즉 군집의 외곽을 형성하는 벡
터
• 군집 : 한 핵심벡터 p에 대해서 접근 가능한 모든 데이터 벡터들의 집
합. 한 군집내의 모든 데이터 벡터들은 서로 연결되어 있다
• 노이즈 : 어떠한 군집에도 속하지 않는 데이터들
ε
57. DBSCAN Clustering
• 거리 , 벡터 수 n=5 인 경우
• p1은 거리 내 5개의 이웃벡터를 갖기 때문에 핵심벡
터
• p1의 직접 접근 가능한 다른 핵심벡터 p2또한 같은 군
집에 소속
• 푸른색 데이터 벡터들은 이웃벡터의 수가 5개 미만으로
핵심벡터는 아니지만 핵심벡터 p1, p2와 같은 군집의
외곽벡터
• 회색 데이터 벡터들은 이웃벡터의 수가 5개 미만이며
핵심벡터가 이웃에 있지 않으므로, 군집에 포함되지 않
는 노이즈로 분류
ε
ε
58. Dimensionality Reduction
• 차원의 저주 (Curse of Dimensionality)
• 차원이 증가하면 그것을 표현하기 위한 데이터 양이 기하급수적으로 증가
• 일정 차원을 넘으면 분류기의 성능은 점점 떨어져 0으로 수렴
• 차원 축소 (dimensionality reduction)
• 데이터의 의미를 제대로 표현하는 특징을 추려내는 것
• 특징(feature)이 너무 많기 때문에 학습이 어렵고 더 좋은 특징만 가지고 사용하겠다는
것
• LDA (Linear Discriminant Analysis)
• PCA (Principal Component Analysis)
59. Linear Discriminant Analysis
• 표본의 두 집단을 가장 잘 분리시키는 선에 투영 시키는 방법
• 가능한 클래스간의 분별 정보를 최대한 유지 시키면서 차원 축소
• 집단간 분산은 크고,
• 집단내 분산은 작게
60. Principal Component Analysis
• PCA는 데이터의 분포를 가장 잘 표현하는 성분을 찾아주는 것
• e1의 방향과 크기, 그리고 e2의 방향과 크기를 알면 이 데이터 분포
가 어떤 형태인지를 가장 단순하면서도 효과적으로 파악할 수 있다.
• 예) 국어, 영어, 수학, 과학, 미술, 체육 => 어학, 수리, 예체능
• eigenface와 영상인식 (다음시간에...)
•
61. 결론
• 수식없는 머신러닝 세미나 자료는 만들기 불가능.
• 수식을 빼면 깊게 들어갈 수 가 없음
• 이번 세미나들을 통해서 머신러닝/딥러닝의 개념을 먼저 익히고,
프로젝트에 들어갈때는 더 깊은 내용들로.
• 다음엔 다시 딥러닝
• 오늘 다루지 못한 내용들이 다시 나올 것임
• 실제 적용에는 좀 더 깊은 내용이 필요