주뇽's 저장소

1-4 간단한 기계 학습의 예 본문

DeepLearning

1-4 간단한 기계 학습의 예

뎁쭌 2021. 10. 28. 20:56
728x90
반응형

기계학습 요소

  • 카드 승인 예제

위 사진처럼 카드승인을 위한 여러개 (x1....xn) 까지의 특징들을 보고 카드를 발급하는 것에대한 예제

 

input / output (data) 

target distribution : 규칙 P(y|x) x가 주어졌을 때 y값이 나오는 분포

hypothesis : 가설(모델) X → Y 로 발현되는 가설

 

카드 승인 교사학습 예제

 

#교사학습 

  • 교사학습이란 교사가 옆에서 문제제시한 다음 답을 알려주는 방식의 학습 방법입니다. 어떠한 데이터(문제 또는 참고자료)를 입력할 때 답을 함께 입력하여, 기계로 하여금 '이러이러한 데이터에 대한 답은 이러이러한 답이다'라는 것을 학습하도록 하는 것이 교사학습의 기본적인 원리입니다. 학습량이 많아지면 많아질수록 특정 유형의 문제에 대한 답을 찾을 확률이 높아진다.

#비교사학습

  • 교사학습 반대되는 비교사학습은 최종적인 정답정해져 있지 않은 데이터에 대한 학습입니다. 데이터의 유형분석하여 데이터그룹화하는 방식이 주로 사용됩니다. 예를 들어 입력데이터고양이를  계속해서 무작위로 입력한다고 했을 때, 데이터의 유형을 분석하여 고양이그룹화할 수 있도록 하는 식으로 동작하는 식입니다. 

교사학습의 경우

위 그림을 보면 특징나이와 소득 두 개로 구분하고 나이와 소득이 주어졌을 때 카드 발급승인해야 하는지 거부해야하는지에 대한 data set을 보면 파란색 f는 실제 값(target distributin)이고 g(직선)은 설정한 가설(모델)이다 

# 데이터가 많을수록 규칙은 명확해진다

1-5 모델 선택

 

과소적합과 과잉적합

 

과소적합(underfitting)

  • 모델의 용량작아 오차클 수 밖에 없는 상황

#용량 = 모델의 자유도 = paramiter 신경수와 비례된다 

 

대안 : 비선형 모델을 사용

  • 2차, 3차, 4차 ,12 차는 다항식 곡선선택한 예
  • 1차(선형)에 비해 오차가 크게 감소함

위 사진을 보면 1차(선형)는 주어진 데이터와 직선과의 거리가 멀다라는 점을 알 수 있다. (거리가 멀다 = 오차가 큼)

이렇게 주어진 데이터와 가설(모델)과의 오차가 큰 것과소적합이다 이를 해결하기 위해서비선형 모델을 사용해야 한다.

 

# 그렇다면 용량(자유도)이 클 수록 좋은것인가 ?

 

과잉적합(overfitting)

  • 12차 다항식 곡선을 채택한다면 훈련집합에 대해 거의 완벽하게 근사화
  • 하지만 '새로운' 데이터예측한다면 큰 문제 발생
    • ex) x0에서 빨간 막대 근방을 예측해야 하지만 빨간 점을 예측
  • 이유는 모델의 용량이 크기 때문에 학습 과정에서 잡음까지 수용과잉적합 현상
    • 훈련집합에 과몰입해서 단순 암기했기 대문이다
  • 적절한 용량의 모델을 선택하는 모델 선택 작업이 필요

과잉적합은 주어진 훈련집합만을 맞추는 것에만 집중하여 새로운 데이터가 들어왔을 경우 맞추기가 어렵다.

 

# 과소적합 : target → data  ← 모델이 못 따라감

# 과잉적합 : target → date → 모델을 data가 못 따라감  

 

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

  • 1~2차는 훈련집합과 테스트집합 모두 낮은 성능 : 과소적합
  • 12차는 훈련집합에는 높은 성능을 보이나 테스트집합에서는 낮은 성능낮은 일반화 능력 : 과잉적합
  • 3~4차는 훈련집합에 대해 12차보다 낮겠지만 테스트집합에는 높은 성능 높은 일반화 능력 : 적합 모델

# 높은 일반화 능력을 가진 적합 모델을 찾는것이 중요하다. 즉 data(자유도) 모델 자유도 

 

모델의 일반화 능력과 용량의 관계

 

위 그림에서 보는 거와 같이 모델의 용량이 작았을 때과소적합문제가 생기고 용량이 늘어날 수록 훈련집합과 테스트집합간의 차이가 심해져 과잉적합 문제가 생긴다. 그렇기 때문에 적절한 (빨간 선)모델선택하는 것이 중요하다.

 

# 현재의 인공지능과소적합보다는 과잉적합문제가 더 많다.  Deep learning의 경우 모델 자유도가 높기때문인데 이 과잉적합 해결하기 위해 규제라는 것을 통해 용량을 낮춰 일반화 성능 높인다.

 

  • 훈련집합에 대한 세가지 모델 적합도 예

 

편향(bias)과 분산(변동)variance

 

  • 훈련집합을 여러 번 수집하여 1차~12차에 반복 적용하는 실험
    • 2차는 매번 큰 오차편향이 크지만 비슷한 모델을 얻음 → 낮은 변동
    • 12차는 매번 작은 오차편향이 작지만 다른 모델을 얻음 → 높은 변동
    • 일반적으로 용량이 작은 모델편향이 크고 분산이 작음 복잡한 모델편향이 작고 분산이 큼
    • 편향과 분산상충 관계이다.

 위 그림 처럼 (a) 그림은 데이터와 모델차이가 많은 걸 볼 수 있다 하지만 3개 모두 비슷한 모델을 얻을 수 있다.

그에 반해 (b)그림은 데이터와 모델이 일치하지만 3개 모두 다른 모델을 얻는다  

 

  • 기계 학습의 목표
    • 낮은 편향과 낮은 분산을 가진 예측 모델을 만드는 것이 목표이다
    • 하지만 모델의 편향분산은 어느 한 쪽이 좋아지면 한 쪽은 나빠지는 상충 관계
    • 따라서 편향을 최소로 유지하며 분산도 최대로 낮추는 전략필요

# 위 그림처럼 낮은 분산과 낮은 편향(bias)를 가진 모델을 만드는 것이 목표이다.

 

어려운 이유

# 전체를 모르고 잡음도 추가 되므로 이러한 모델을 찾는 것은 상당히 어렵다.

 

  • 편향과 분산의 관계
    • 용량 증가편향 감소, 분산 증가 경향
    • 일반화 오차 성능 (=편향 +분산)은 U형의 곡선을 가진다.

# 위 그림처럼  용량이 클 수록 편향(bias)는 작아지고 , 분산(variance)은 커진다.

 

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

  • 검증집합을 이용한 모델 선택
    • 훈련집합과 테스트집합과 다른 별도의 검증집합을 가진 상황(데이터 양 많음)

# 검증집합

주어진 모델의 데이터가 100개라면 훈련집합(Training)이 80개  검증집합(Validation) 20개 로 80개로 학습한 모델을 검증집합 20개마치 Testing인 것처럼 성능을 측정하고 가장 높은 성능을 보인 모델선택하고 마지막으로 테스트집합으로 선택모델의 성능을 측정

 

  • 교차검증(cross validation)
    • 비용 문제로 별도의 검증집합이 없는 상황에 유용한 모델 선택 기법(데이터 양 적을 때 데이터를 재활용)
    • 훈련집합등분하여, 학습평가 과정을 여러 번 반복한 후 평균 사용

  • 10겹 교차검증의 예

10-fold cross validation

총 10개의 (x1...x10) 까지 성능 값의 평균값을 사용

  • 부트스트랩(bootstrap)
    • 임의의 복원 추출 샘플링 반복 (뽑았던 것을 다시 돌려놓는다)
    • 데이터 분포가 불균형일 때 적용(이상탐지 ,보안) 
      Class 1 : 1만개 데이터 
      Class 2 : 100개 데이터 
      # 데이터 분포가 불균형 할 때 2만개의 훈련집합을 만들기 위해 100개의 데이터를 반복적으로 복원 추출 하여 2만개의 데이터를 만든다.

복원 추출

 

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

1-6 규제

데이터 확대

  • 데이터를 더 많이 수집하여 일반화 능력을 향상 

훈련집합 즉 데이터를 더 많이 수집한다면 같은 12차여도 일반화 능력이 향상될 수 있다는 것을 볼 수 있다.

  • 훈련집합의 크기가 오차 성능에 미치는 영향 예시

위 그림을 보면 data가 올라갈 수록 성능도 올라간다는 것을 알 수 있다.

 

  • 하지만 데이터 수집은 많은 비용 소모
    • 실측자료를 사람이 일일이 표식을 해야 함 (교사 학습의 경우 문제와 정답을 모두 신경써야 함  P(Y|X)
  • 인위적으로 데이터 확대 (재활용)
    • 훈련집합에 있는 샘플을 변형함
    • 원 데이터의 고유 특성이 변하지 않게 약간의 횐전 또는 왜곡을 사용

위 그림처럼 왼쪽의 10개의 데이터를 약간의 변형으로 데이터를 확대 할 수 있다.

 

 

가중치 감쇠

  • 가중치를 작게 조절하는 기법
    • 12차 곡선은 가중치가 매우 크다
      y =1005.7x^12 - 27774.4x^11 + ... -22852612.5x^1 -12.8
  • 가증치 감쇠는 개서된 목적함수를 이용하여 가중치를 작게 조절하는 규제 기법
    위 식은 두 번째 항은 규제 항으로서 가중치 크기를 작게 유지해준다.

# 규제 중 가장 많이 쓴다 

극단적 예시

1차 모델 : y = wx + b

2차 모델 : y = w2x^2 + w1x^1 + b 

이 경우 2차 모델의 가중치(w2)를 극단적으로 0을 만들면 wx + b 로 1차 모델로 만들 수 있다. 

이런식으로 높은 차수부터 최적의 성능의 모델까지 가중치를 감쇠하여 찾는다. 

(가중치가 다 발현되지 못하도록 규제)

 

가중치가 너무 적으면 과소적합 가중치가 너무 많으면 과잉적합 적당한 가중치를 가지도록 규제!

 

 

'DeepLearning' 카테고리의 다른 글

NVIDIA 딥러닝 기초 0. Tensorflow  (0) 2023.07.01
1-2 데이터 , 1-3 기계학습  (0) 2021.10.27
1. 인공지능 소개  (0) 2021.10.27