주뇽's 저장소
1-4 간단한 기계 학습의 예 본문
기계학습 요소
- 카드 승인 예제
위 사진처럼 카드승인을 위한 여러개 (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개의 (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
- 12차 곡선은 가중치가 매우 크다
- 가증치 감쇠는 개서된 목적함수를 이용하여 가중치를 작게 조절하는 규제 기법
위 식은 두 번째 항은 규제 항으로서 가중치 크기를 작게 유지해준다.
# 규제 중 가장 많이 쓴다
극단적 예시
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 |