본문 바로가기

학교공부/머신러닝

머신러닝 1장

더보기

기계학습 정의

 

 

지식기반 -> 기계학습

데이터 중심 접근방식으로 변화 

 

문제는 회귀 문제와 분류 문제로 나뉜다.

회귀는 목표치가 실수 분류는 부류값

 

훈련집합(traning set)

가로축은 특징, 세로축은 목표치 

관측한 4개의 점이 훈련집합을 구성

 

 

 

데이터를 어떻게 모델링할 것인가

눈대중으로 직선이면 될거같으니까 직선 선택

 

학습하면서 최적의 매개변수 w,b를 찾는게 기계학습니다.

 

기계학습의 목표

훈련집합에 없는 새로운 샘플에 대한 오류를 최소화 (테스트 집합)

테스트 집합에 대한 높은 성능을 일반화(generalization) 능력이라 부름

 

 

특징 공간에 대한 이해

특징 공간이란 쉽게 설명해서 관측 값들이 있는 공간. 이 특징 공간은 여러 차원으로 구성이 될 수 있음

 

1차원과 2차원 특징 공간

1차원 특징공간 단순히 x,y

2차원 특징 공간

 

 

 

 

 

 

d-차원 데이터

b는 바이어스

모델이 복잡해지면 기계학습이 추정해야하는 매개변수 수가 많아진다.

 

특징 공간 변환과 표현 학습

(a)라면 직선모델로는 아무리해봐야 75% 근데 (b)처럼 특징 공간을 변환한다면 더 분류에 유리해짐

 

T는 transpose인데 행과 열을 바꾸는거같음 왜하는지는 모르겠음. 

 

 

 

 

표현학습

좋은 특징 공간을 자동으로 찾는 작업

[그림 1-7]은 표현 학습을 사람이 직관으로 수행한 셈

 

 

 

 

 

 

 

데이터베이스

기계학습이 푸는 문제는 훨씬 복잡하다. 단순한 수학 공식으로 표현 불가능, 자동으로 모델을 찾아내는 과정 필수.

실제 기계 학습에는 데이터 생성 과정을 알 수 없음. 단지 주어진 훈련집합 X,Y로 예측 모델 또는 생성 모델 근사 추정

 

데이터베이스는 방대한 특징공간에 비해 희소하다.

 

그렇다면 왜소한 데이터베이스로 어떻게 높은 성능을 달성할까?

매니폴드 가정 : 이 희소한 공간이 어떤 매니폴드, 유사한 특징을 가지고 분포해있다는 가정.

 

 

요약

 

1. 분류와 회귀의 차이

회귀 : 목표값이 실수 ex) 키와 몸무게를 통해서 예측하는 근력의 양

분류 : 목표값이  실수가아닌 분류값   ex) 얼굴 사진보고 여자인지 남자인지 구분

 

2. 훈련 집합과 테스트 집합의 차이

훈련집합은 모델을 학습할 때 쓰는거 테스트집합은 생성된 모델을 평가할 때 쓰는 집합. 테스트 집합을 통해 모델의 일반화 알 수 있다.

 

3. 모델링

모델을 만드는 과정. 데이터를 분석해서 특정한 함수식(1차방정식 등등)이나 머신러닝 알고리즘을 만드는것.

 

4. 표현학습

좋은 특징공간을 자동으로 찾는 방법. 좋은 특징 공간이란 직선, 분류가 쉽게 되는 공간.

입력되는 특징을 선형분류가 더 잘되는 공간으로 변환시켜주는 것.

 

5. 매니폴드 가정이란

데이터 특징 공간은 겁나 크다. 모든 공간에서 샘플이 존재하진 않음. 희소한 공간에 존재한다. 이때 이 희소한 공간이 어떤 매니폴드, 유사한 특징을 가지고 분포해있다는 가정. 

 

 

 

간단한 기계 학습 예

선형 회귀 문제

linear regression : 목표값이 실수값이고 모델을 선형으로 만드는 것.

 

가장 알맞은 w와 b, 최적의 세타를 찾는게 목표 

 

 

목적 함수(비용 함수)

기계학습에서는 어떤 목표를 갖고있어야한다.

모델이 가지고있는 목표를 함수로 만든 것을 목적 함수라고 한다.

비용을 최소화를 목적으로 매개변수를 찾는다.

예제 1-1

 

 

 

기계 학습이 할 일을 공식화하면

기계 학습은 작은 개선을 반복하여 최적해를 찾아가는 수치적 방법을 위 식을 사용. 

위 식을 해석하자면 목적함수 J(θ)는 매개변수에 대한 함수 minJ(θ)는 0이 나온다.

 argminJ(θ)는 최소값 J(θ)를 만족하는 θ(hat)를 반환함. // hat은 개선되어서 나온값을 의미

기계학습에서는 가장 작은값이 몇인건 안중요함 가장 작을 때 매개변수 값이 궁금한거다.

 

알고리즘 형식으로 쓰면

 

 

좀 더 현실적인 상황

현실에서는 선형이 아니며 잡음이 섞임 -> 비선형 모델이 필요

 

여기서 아무리 직선 잘그어도 한계가 있음.

 

 

 

 

 

모델선택


과소적합(under-fitting)과 과잉적합(over-fitting)

과소적합

모델의 용량이 작아 오차가 클 수밖에 없는 현상 -> 과소적합(under-fitting)

1차 2차 모델 같은 경우 매개변수 자체(용량)가 작기 때문에 맞추기 불가능하다.

근본적으로 모델을 너무 작게 맏늘면 과소적합이 발생해서 오차가 클 수 밖에 없다.

 

과잉적합

3차도 잘맞고 4차도 좋음.

근데 12차를 보면 훈련집합에 거의 완벽하게 근사함. 하지만 과잉적으로 매개변수를 많이 만듬. 이러면 뭐가 문제냐?

1. 학습 과정에서 노이즈까지 학습해버린다. -> 과잉적합 현상

2. 학습할 때는 트레이닝 데이터에 대해서는 모두 맞추지만 새로운 데이터를 검증했을 때는 못맞출 확률이 높다. -> 일반화 성능 매우 낮아짐.

따라서 적절한 모델 선택이 중요하다.

 

1차~12차 다항식 모델의 비교 관찰

1~2차는 훈련집합과 테스트 집합 모두 낮은 성능

12차는 훈련집합에 높은 성능을 보이나 테스트 집합에서는 낮은 성능 -> 낮은 일반화 성능

3~4차는 훈련집합에 대해 12차보다 낮겠지만 테스트집합에는 높은 성능 -> 높은 일반화 능력

그럼 내 모델이 과잉적합인지 과소적합인지 어떻게 판단하냐? 

 

 

 

바이어스와 분산

바이어스 : 학습 데이터에 대한 오류, 오차

분산 : 만든 모델들이 가지는 파라미터에 대한 분산, 차이값

 

위 그림을 보면 2차 모델에서는 바이어스가 크다. (트레이닝 집합에서 높은 오차율)

하지만 여러개의 모델을 만들었을때 그 모델의 차이는 적다(매개변수의 차이가 적다) -> 분산은 작음.

여기서 여러개의 모델을 어떻게 만들까? 만약 데이터 샘플이 100개라고하면 여기서 랜덤하게 50개를 뽑아서 여러개의 샘플과 모델을 만들 수 있다.

12차 모델은 바이어스는 작지만 샘플마다 모델의 차이가 크다. (훈련집합마다 모델의 변화가 크다)

따라서 12차 모델은 바이어스는 작고 분산은 크다.

바이어스와 분산은 trade off 관계이다. 적절한 모델을 고르는게 중요하다.

 

즉 

under fitting -> 바이어스 큼 낮은 분산

over fitting -> 바이어스 작음 높은 분산

 

기계학습의 목표

낮은 바이어스와 낮은 분산을 가진 예측기 제작이 목표. 왼쪽 아래 그림이 목표다.

 

 

 

하지만 바이어스와 분산은 trade off 관계

따라서 바이어스 희생을 최소로 유지하며 분산을 최대로 낮추는 전략 필요.

왼쪽 위 그림은 과소적합 오른쪽아래는 과잉적합 상태.

 

 

 

 

 

 

 

검증집합과 교차검증을 이용한 모델 선택 알고리즘

검증집합

훈련집합과 테스트집합과 다른 별도의 검증집합(validation set)을 가진 상황

검증집합은 있을 수도 없을 수도 있는데 모델을 선택하기 위해서 만들어진 집합.

 

 일반적으로 테스트 집합은 미래에 나올 데이터를 의미하니까 현재는 존재하지 않음 못씀.

트레이딩 집합에서 어느정도 떼서 validation 집합을 만듬

각 모델을 traning 집합을 통해 학습을 한후 validation 집합을 통해 성능을 측정

즉, validation 집합은 학습이 끝난 모델들을 대상으로 가장 좋은 모델 집합을 찾기 위해 사용되는 집합.

 

 

 

 

 

알고리즘으로 표현하면

2. 훈련집합으로 학습하고 학습된 모델 성능을 측정한다.

그럼 m1, m2, m3의 성능이 나올 것이다(validation set에 대한 성능) 이중 가장 높은 성능을 보인 모델을 테스트집합으로 측정한다.

 

단점 : 트레이딩 할 데이터 개수가 줄어듬. 검증집합 만드는데 비용 또 듬.

 

 

교차검증

비용 문제로 별도의 검증집합이 없는 상황에 유용한 모델 선택기법

훈련집합을 등분하여, 학습과 평가 과정을 여러 번 반복한 후 평균 사용

 

교차검증 알고리즘

 

 

 

 

 

4등분을 예시로 들면, 4등분된 데이터들이 돌아가면서 validation 집합이 되어 모델을 테스트한다.

이렇게 나온 각각의 성능의 평균을 모델의 성능으로 취한다.

 

 

 

 

 

 

 

 

 

부스트트랩

난수를 이용한 샘플링 반복

만약 100개의 데이터가 있다면 랜덤하게 40개씩 뽑아서 validation으로 만든다. 

교차검증과 비슷하긴한데 통계를 이용한 방법. p가 0.4인 경우 40개 뽑는다.

대치를 허용하기때문에 뽑은 샘플이 또 뽑힐 수 있다. (40 40 40 40 뽑은 데이터 간에 중복이 있을 수 있다는 말)

 

 

 

 

 

모델 선택의 한계와 현실적인 해결책

위에 예제는 차수가 다른 거였다. 1차냐 2차냐 3차냐 등등

현실에서는 다양한 모델이 존재

신경망, 강화 학습, 확률 그래피컬 모델 등등

 

따라서 현실에서는 경험으로 큰 틀 선택한 후 모델 선택 알고리즘으로 세부 모델을 선택한다.

현대 기계 학습의 전략은 용량이 큰 모델을 선택 한 후, 선택한 모델이 정상을 벗어나지 않도록 여러가지 규제 기법을 적용.

처음부터 1차 2차 이런게아닌 12차 13차 모델을 쓴 다음 overfitting이 일어나지 않도록 규제하는 방법을 사용.

 

 

 

 

 

 

요약

목적함수란

모델의 성능, 오류율을 나타내는 모델의 목표를 의미하는 함수

 

 

 

의미는 ?

 

과소적합 과잉적합이란

 

 

바이어스 분산 트레이드 오프란

서로 역관계, 반비례 관계

검증집합

최적의 모델을 선택하기 위한 집합

교차검증

k개로 나눠서 1개로 검증 나머지로 학습

부트스트랩

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'학교공부 > 머신러닝' 카테고리의 다른 글

pytorch lstm  (0) 2021.03.12
머신러닝 3 (수학)  (0) 2020.09.17
머신러닝 2장 (규제...)  (0) 2020.09.16