기계학습 이해를 위한 기본 수학 개념 이해
모델 훈련 관련 주요 용어 이해
기계 학습에서 수학의 역할
선형대수: 벡터
벡터
- 샘플을 특징 벡터로feature vector 표현
- 예) Iris데이터에서 꽃받침의 길이, 꽃받침의 너비, 꽃잎의 길이, 꽃잎의 너비라는 4개의 특징이 각각 5.1, 3.5, 1.4, 0.2인 샘플
- 여러 개의 특징 벡터를 첨자로 구분
선형대수: 행렬
행렬
- 여러 개의 벡터를 담음
- 예) Iris데이터에 있는 150개의 샘플을 설계 행렬 X로 표현
전치행렬(Transpose)
예를 들어, A = (304512)라면, AT = ⎝⎜⎛341052⎠⎟⎞
- Iris dataset을 전치행렬로 표현하면,
1차원 특징 공간
2차원 특징 공간
- 특징 벡터 표기 x=(x1,x2)T
- 예시
x=(몸무게,키)T,y=장타율
x=(체온,두통)T,y=감기 여부
다차원 특징공간
- 복잡한 차원에 대해서 때로는 차원의 축소가 필요할 수도 있다.
다차원 공간 -> 행렬, 텐서
- 벡터의 배열 → 행렬(matrix) 또는 2D 텐서(Tensor)
- 텐서는 임의의 차원 개수를 가지는 행렬의 일반화된 모습 (텐서에서는 차원(dimension)을 종종 축(axis)이라고 부름)
텐서(Tensor)
- 3D 텐서와 고차원 텐서
- numpy에서 3D 텐서를 나타내면,
4D Tensor
- 4D 이미지 데이터 텐서(채널 우선 표기)
선형 분리 불가능linearly non−separable한 경우
- (a)는 어떠한 직선으로도 분리가 불가능하다 = 선형 분리 불가능
- (a)의 선형 분리 불가능 해결을 위해 축을 바꿈 → 특징 공간 변환
- (b)는 분리가 가능 = 선형 분리 가능
확률과 통계
기초
- 간단한 확률실험 장치
- 주머니에서 번호를 뽑은 다음, 번호에 따라 해당 병에서 공을 뽑고 색을 관찰함
- 번호를 y, 공의 색을 x라는 확률변수로 표현하면 정의역은
y∈{1,2,3},x∈{파랑,하양}
- 카드는 1번, 공은 하양일 확률은 P(y=1,x=하양)=P(1,하양)
→ 결합확률(jointprob.)
- 곱규칙: P(y,x)=P(x∣y)P(y)
베이즈 정리
- 베이즈 정리(식(2.26))
P(y,x)=P(x∣y)P(y)=P(x,y)=P(y∣x)P(x)→P(y∣x)=P(x)P(x∣y)P(y)
- 다음 질문을 식(2.27)로 쓸 수 있다.
"하얀 공이 나왔다는 사실만 알고 어느 병에서 나왔는지 모르는데, 어느 병인지 추정하라."
y^=yargmaxP(y∣x) = 함수를 최대화하는 y를 찾아라(x의 범위는 주어짐)
x=input, y=output이라 가정
- 기계학습에 적용
- 예) Iris 데이터 분류 문제
- 특정 벡터 x, 부류 y ∈{setosa,versicolor,virginica}
정보이론
= 엔트로피 이론
- 메시지가 지닌 정보를 수량화할 수 있나?
- "고비 사막에 눈이 왔다"와 "대관령에 눈이 왔다"라는 두 메시지 중 어느 것이 더 많은 정보를 가지나? 고비 사막에 눈이 왔다
- 정보이론의 기본 원리 → 확률이 작을수록 많은 정보
- 자기 정보selfinformation
- 사건(메시지)ej의 정보량(단위:bit) (반비례 관계를 보임)
h(ei)=−log2P(ei) 또는 h(ei)=−logeP(ei)
- 엔트로피
- 확률변수 x의 불확실성을 나타내는 엔트로피
이산확률분포
연속확률분포
- 자기 정보와 엔트로피 예제
주사위의 경우가 더 낮은 확률을 가지고, 더 많은 정보량을 가진다.
최적화
최적화
- 순수 수학 최적화와 기계학습 최적화의 차이
- 순수 수학의 최적화 예) f(x1,x2)=−(cos(x12)+sin(x22))2이 최저점을 찾아라.
- 기계학습의 최적화는 단지 훈련집합이 주어지고, 훈련집합에 따라 정해지는 목적함수의 최저점을 찾아야 함 (완벽한 최저점을 찾는 것만이 목적은 아닐 수도 있고, 근사값을 찾을 수도 있다.)
- 데이터로 미분하는 과정 필요 → 오류 역전파 알고리즘
- 주로 스토캐스틱 경사 하강법(SGD) 사용
- 최적화를 이용한 기계학습의 문제풀이 과정
- J(θ)에서 θ: 학습에 필요한 모든 정보
- θargminJ(θ)에서 J(θ)가 최소가 되도록 하는 θ를 찾아야 한다. → 머신 러닝의 목표
- 선형회귀: 미분을 통해 최저점을 도출
- fθ(xi): 식을 통해 나온 결과값, yi: 실제값
J(x)는 제곱값이므로 0보다 크다.
x^은 전역 최적해, x2와 x4는 지역 최적해
기계학습이 해야 할 일을 식으로 정의
J(θ)를 최소로 하는 최적해 θ^을 찾아라.
즉, θ^=θargminJ(θ)
기계학습이 사용하는 전형적인 탐색 알고리즘의 pseudocode
미분
미분에 의한 최적화
- 1차 도함수 f′(x)는 함수의 기울기, 즉 값이 커지는 방향을 지시함
- 따라서, −f′(x) 방향에 목적함수의 최저점이 존재
- 알고리즘2_3에서 dθ로 −f′(x)를 사용함 ← 경사 하강 알고리즘의 핵심 원리
편미분
- 변수가 여러 개인 함수의 미분
- 미분값이 이루는 벡터를 Gradient라 부름
- 예)
경사 하강 알고리즘
- 식 (2.58)은 경사 하강법이 낮은 곳을 찾아가는 원리
- g=dθ=∂θ∂J이고, ρ는 학습률
- 식 (2.58) θ=θ−ρg
배치 경사 하강 알고리즘
- 샘플의 gradient를 평균한 후 한꺼번에 갱신
스토캐스틱 경사 하강SGD(stochastic gradient descent)알고리즘
- 한 샘플의 gradient를 계산한 후 즉시 갱신
- 라인 3~6을 한 번 반복하는 일을 한 세대라 부름 (1번 학습)
전형적인 탐색 알고리즘과 배치 경사 하강 알고리즘, 스토캐스틱 경사 하강 알고리즘의 차이 확인
모델 훈련
Underfitting
- fitting이 너무 부족함
- 차수가 적을수록 과소적합, 차수가 많아질수록 과잉적합
- 차수가 적다 = 학습시킬 파라미터가 적다.
Overfitting
- 12차 다항식 곡선을 채택한다면 훈련집합에 대해 거의 완벽하게 근사화함
- 하지만 '새로운' 데이터를 예측한다면 큰 문제 발생
- x0에서 빨간 막대 근방을 예측해야 하지만 빨간 점을 예측
- 훈련집합이 모든 데이터를 표현할 수 있는 것이 아니기 때문에 무조건 고차방정식을 사용한다고 해서 좋은 것만은 아님
검증집합
- 훈련집합과 테스트집합과 다른 별도의 검증집합을 가진 상황
훈련집합과 검증집합의 차이를 체크하여 "overfitting"을 체크 (차이가 크면 overfitting)
모델 선택의 한계
- SVM, Decision tree, GMM, PCA, MLP, CNN, RNN, GAN, etc.
- 현실에서는 경험으로 큰 틀 선택 (경험적 접근방법)