1. 머신러닝 소개
인공지능 ) 머신러닝 ) 딥러닝
인공지능: 인간의 지능을 모방하여 문제해결을 위해 사람처럼 학습하고 이해하는 기계를 만드는 분야
약인공지능: 기계가 지능적인 것처럼 행동 ex. 알파고: 지능 소유 여부와는 관계 없이 목적 달성 여부가 중요
강인공지능: 스스로 문제 정의, 해결, 지속적인 학습
1.2. 머신러닝의 처리 과정
학습 단계learning stage
추론 단계inference stage
1.3. 머신러닝의 기본 요소
하나의 데이터는 n차원의 열벡터로 표현
n차원 벡터는 n차원 공간상의 한 점
특징추출 - 2차원의 두 좌표값을 모두 쓰는 대신 하나만 사용하는 방법
- 가로축에나 세로축이 아닌 임의의 2차원 단위 벡터 u상으로의 사영값, 즉 x(T)u를 특징값으로 사용할 수 있다.
특징추출의 목적 - 단순히 차원을 줄이는 것이 아닌 데이터 처리를 위한 핵심적인 정보를 추출하는 것이 목적
목적함수: 학습 시스템이 달성해야 하는 목표를 기계가 알 수 있는 수학적 함수로 정의한 것, 이를 최적화하는 것이 학습의 목적
일반화 오차 - 관찰될 수 있는 모든 데이터를 대상으로 하는 오차
- 전체 데이터 집합의 확률밀도함수를 알고 있을 때만 계산 가능하므로 실제 응용에서는 일반화 오차 대신 테스트 오차를 이용
교차검증법: 제한된 데이터 집합을 이용하여 일반화 오차에 좀 더 근접한 오차를 얻어내는 방법
1.4 머신러닝에서의 주제
분류: 입력 데이터가 어떤 class에 속하는지를 자동으로 판단
- 베이즈 분류기, K-최근접이웃 방법(K-NN), 신경망(MLP, CNN, LSTM), SVM(Support Vector Machine), 결정 트리, 랜덤 포레스트
회귀: 입력변수와 원하는 출력변수 사이의 매핑 관계 분석, 이산적인 출력 -> 분류는 회귀의 특별한 경우
- 시계열 예측이 회귀에 해당
- 선형회귀, 비선형회귀, 로지스틱 회귀, SVM, 신경망(MLP, RBF, CNN, LSTM)
군집화: 임의의 복수 개의 그룹으로 나눈다
- 군집화 학습의 목표: 각 클러스터 내의 분산은 최소화하고 클러스터간의 분산을 최대화하는 최적의 클러스터들을 찾는 것
- K-평균 군집화, 계층적 군집화, 가우시안 혼합 모델, SOM(Self-Organizing Map) 신경망
특징추출
- 주성분분석(PCA), 선형판별분석(LDA), MDS
1.5 학습 시스템 관련 개념
준지도학습: 지도학습과 비지도학습을 적절히 결합
약지도학습: 부정확한 레이블도 부여해서 사용 가능
자기지도학습: 학습 데이터에 레이블을 자동으로 부여할 수 있는 새로운 태스크 활용
과다적합: 학습 데이터에 대해서만 지나치게 적합한 형태로 결정경계가 형성되어 결국 전체 데이터 집합이 가지는 특성을 제대로 학습하지 못한 것에 기인한다. 오히려 일반화 성능이 떨어지게 한다.
머신러닝의 고급 주제
- 앙상블 학습: 복수 개의 간단한 학습 시스템을 결합하여 일반화 성능을 향상하는 방법
- 능동학습: 학습 과정에서 데이터를 선별적으로 선택하여 수행하는 방법
- 메타 학습과 자동 머신러닝: 학습 시스템의 복잡도 등의 하이퍼파라미터까지 학습을 통해 최적화하는 방법
- 지속/증분 학습: 기존에 학습된 내용에 대한 손실 없이 새로운 내용을 추가로 학습하는 방법
2. 데이터 표현: 벡터와 행렬
2.1 벡터
벡터의 정규화:벡터를 norm으로 나누어 방향은 동일하면서 크기가 1인 단위벡터를 구하는 것
랭크: 행렬에서 서로 독립인 행벡터의 수와 서로 독립인 열벡터의 수 중 작은 값
두 벡터가 서로 수직이면 내적값은 0이 된다.
코사인 거리 d(c)가 0이면 두 벡터는 같은 방향, 1이면 수직, 2이면 반대 방향
일반적인 단위벡터들도 기저를 만들 수 있다. 이를 다르게 표현하면, 기저가 정해지면 그 기저에 따라 데이터를 표현하는 좌표값이 정해진다.
2.2 행렬
직교행렬: 정방행렬 X의 각 행벡터가 상호직교인 단위벡터로 이루어짐
- 직교행렬과 전치행렬을 곱하면 단위행렬
- 곧 역행렬이 전치행렬
직교행렬이 중요한 이유
- 길이, 각도를 보존하여 회전, 대칭 등의 변환을 수행한다
- 좌표만 바꾸고 벡터의 성질은 바꾸지 않을 수 있음
데이터의 선형변환 - 입력으로 주어진 데이터의 원래 값을 그대로 사용하지 않고, 데이터 특성을 더 잘 반영할 수 있는 새로운 특징값(좌표값)으로 변한하여 사용하는 것
3. 데이터 분포: 확률과 통계
3.1 확률변수와 확률분포함수
확률분포: 확률변수 X가 가질 수 있는 임의의 값에 대해 이 값을 가질 확률들의 분포
확률함수: 확률변수 X가 가질 수 있는 모든 값에 대한 확률을 대응시키는 함수
- 이산확률변수 -> 확률질량함수pmf
- 연속확률변수 -> 확률밀도함수pdf
베이즈 정리: P(A|B) = P(B|A)P(A) / P(B)
3.2 랜덤벡터와 통계량
랜덤벡터: 두 개 이상의 확률변수로 이루어진 다변량 확률변수
결합확률분포: 랜덤벡터의 확률분포
결합확률밀도함수: 결합누적분포함수의 각 변수에 대한 편미분으로 정의, 연속확률변수가 특정 범위의 값을 가질 확률을 계산하는데 사용될 수 있다.
공분산행렬: 두 확률변수에 대한 공분산을 원소의 값으로 가지는 행렬
단일확률변수에서 분산은 단순히 데이터의 흩어진 정도를 나타내는 값이지만, 랜덤벡터의 경우 공분산행렬은 벡터의 각 요소 간의 상관관계를 나타내므로 데이터의 분포 특성을 나타내는 중요한 통계량으로 사용된다.
공분산행렬로부터 새롭게 정의되는 상관계수는 각 요소 간의 상관관계를 -1에서 1 사이의 실수값으로 대응시켜서 나타낸다.
X의 조건분포: 두 확률변수 X와 Y에 대해 Y가 특정한 값으로 주어진 조건에서의 X의 확률분포
4. 지도학습: 분류
4.2 베이즈 분류기
선험확률: 데이터가 관찰되기 이전의 각 클래스에 대한 확률 p(C1), p(C2)
후험확률: 데이터가 관찰된 후에 그로부터 추정할 수 있는 각 클래스에 대한 확률 P(C1|x), P(C2|x)
베이즈 확률을 이용한 후험확률값: p(Ck|x) = p(x|Ck)p(Ck) / p(x)
결정경계 g(x) = p(x|C1)p(C1) / p(x) - p(x|C2)p(C2) / p(x)
gLRT(x) = p(x|C1) / p(x|C2) - p(C2) / p(C1) = 0
* 위 식에서 결정에 영향을 미치지 않는 p(x)를 제거하고 각 항에 p(x|C2)p(C1)을 나누어서 구함
우도비: 위 식의 첫번째 항 p(x|C1) / p(x|C2) -> 각 클래스에서 데이터 x가 관찰될 확률밀도의 비율
두 번째 항의 p(C1)과 p(C2)는 각각 전체 데이터 집합에서 각 클래스가 차지하는 비율
오류확률: 결정경계를 이용하여 얻어진 결정규칙이 오류를 일으킬 확률
마할라노비스 거리: 데이터 x에서 평균까지의 거리를 계산할 때 공분산도 함께 고려하여 거리를 계산
4.3 K-최근접이웃 분류기
최근접이웃 분류기나 K-최근접이웃 분류기는 가우시안 베이즈 분류기보다 매우 비선형적인 결정경계를 가지며, 데이터의 분포 형태에 따라 성능이 크게 좌우되지 않는다.
5. 지도학습: 회귀
5.2 선형회귀
평균 제곱 오차MSE: 잔차 ei의 제곱을 모두 더한 오차