[CS229] [8] Lecture 8 - Data Splits, Models & Cross-Validation

2025. 1. 22. 12:27· DS Study/CS 229(Machine Learning)
목차
  1. 1. Bias / Variance
  2. 2. Regularization
  3. 3. Model Complexity와 Overfitting과의 관계
  4. 4. Data Splits
  5. 4.1. Hold-out validation
  6. 4.2. K-fold Cross Validation

1. Bias / Variance

- 다음과 같이 같은 데이터셋이 3개가 있다고 생각해보자.

- Regression Problem을 푼다고 생각했을 때 다음과 같이 3개로 나타낸다고 생각해보자.

- 첫번째 : 일차함수 , 두번째 : 이차함수, 세번째 : 오차함수

- 우리는 이중에 가장 적합하다고 생각하는 건 아마 두번째 그림이 가장 잘 설명한다고 생각할 것이다.

- 첫번째 일차함수 같은 경우 데이터를 덜 설명하게 된다. 이를 Under fitting이라고 한다.(High bias를 가진다.)

- 세번째 오차함수 같은 경우 데이터를 과하게 설명하게 된다. 이를 Over Fitting이라고 한다.(HIgh Variance를 가진다.)

 

2. Regularization

- Overfitting을 방지하기 위해 나오게 된 기법인데

- Stanford강의에선 L2 Regularization을 설명한다.

- 간단하게 기존의 Loss Function에 Regularization을 더해주면 된다. (이걸 Minimization하면 된다.)

- lambda를 0이라고 뒀을때 regression한 모습을 확인해보자.

- 여기서 lambda에 수치를 부여해주면 과하게 fitting되었던게 조금 느슨해지게 된다.

- 즉, Variance를 낮추고 데이터를 느슨하게 맞추는 역할을 하게 된다.

 

- 과하게 lambda에 수치를 부여하면 Underfitting된다.

 

- 여기서 우리는 SVM이 왜 Overfitting이 될 가능성이 적은지를 알 수 있다.

- SVM은 다음을 minimize하는 것과 같다.

- 마치 L2 Regularizaiton과 비슷하기 때문에 Overfitting을 억제시켜준다.

 

3. Model Complexity와 Overfitting과의 관계

 

- 모델이 복잡하면 복잡할수록 Train Data는 error가 계속 감소하지만,

- Test Data는 error가 줄다가 늘어나는 모습을 볼 수 있다.

- 즉, Model Complexity가 늘어나면 늘어날수록 데이터에 더 fitting된다는 의미이다.

 

4. Data Splits

- 우리는 모델을 학습시키기 위해 Data를 Train/validation/test 로 나누게 된다.

- 더 자세히 알아보자.

4.1. Hold-out validation

- 다음과 같이 딱 한번 데이터를 Train/validation/test로 나누는 방식을 의미한다.

 

- 보통 Validation set 과 Test set의 크기는 동일하게 두는게 좋다.

-각각의 Data set이 하는 역할은 다음과 같다.

"""

1) Train set

- 어떤 모델을 적용할 것인가, 어떻게 구조를 작설할것인가를 결정하게 된다.

- 가설을 세운다는 의미를 갖는다.

 

2) Validation set

- Hyperparameter tuning을 하게 된다.

- 좀 더 error가 가장 작은 쪽으로 조정한다고 생각하면 된다.

 

3) Test set

- Model의 성능을 평가하는 Data set이 된다.

"""

 

4.2. K-fold Cross Validation

- 데이터셋이 적을때 k-fold cross validation을 사용하는 것도 좋다고 한다.

- 밑의 그림과 같이 test를 제외한 train을 K개로 나누고 각 조각마다 val set으로 두어 계속 튜닝하게 된다.

- 그리고 결과적으로 나오게 되는 parameter를 가지고 test set을 돌려 성능을 평가한다.

- 보통 k = 10 이라고 둔다고 한다.

 

- Deep Learning을 학습시킬 땐 K-fold Validation을 사용하는건 그렇게 의미있지 않다고 한다.

- 이에 대해 교수가 말하길 애초에 딥러닝모델을 학습시키는데 오래걸리기도 하고,
- 딥러닝의 본질적인 원리 때문에 k-fold validation을 사용하는 것보단,
- 입력 데이터의 feature를 수정하거나, transfer learning이라든가 이런 방향으로 제시한다고 한다.

'DS Study > CS 229(Machine Learning)' 카테고리의 다른 글

[CS229] [10] Lecture 10 - Decision Trees and Ensemble Methods  (0) 2025.02.07
[CS229] [9] Lecture 9 - Approx/Estimation Error & ERM  (1) 2025.02.07
[CS229] [7] Lecture 7 - Kernels  (2) 2025.01.22
[CS 229] [6] Lecture 6 - Support Vector Machines  (1) 2025.01.20
[CS229] [5] Lecture 5 - GDA & Naive Bayes  (0) 2025.01.17
  1. 1. Bias / Variance
  2. 2. Regularization
  3. 3. Model Complexity와 Overfitting과의 관계
  4. 4. Data Splits
  5. 4.1. Hold-out validation
  6. 4.2. K-fold Cross Validation
'DS Study/CS 229(Machine Learning)' 카테고리의 다른 글
  • [CS229] [10] Lecture 10 - Decision Trees and Ensemble Methods
  • [CS229] [9] Lecture 9 - Approx/Estimation Error & ERM
  • [CS229] [7] Lecture 7 - Kernels
  • [CS 229] [6] Lecture 6 - Support Vector Machines
23학번이수현
23학번이수현
밑바닥부터 시작하는 AI보안전문가23학번이수현 님의 블로그입니다.
23학번이수현
밑바닥부터 시작하는 AI보안전문가
23학번이수현
전체
오늘
어제
  • 분류 전체보기 (243)
    • Statistic Study (47)
      • Mathematical Statistics(수리통.. (47)
    • Mathematics Study (15)
      • Linear Algebra (선형대수학) (15)
    • CS Study (74)
      • CLRS (자료구조 | 알고리즘) (49)
      • Database(DB) (11)
      • C++ (11)
      • 컴퓨터 구조 (2)
      • MongoDB (1)
    • DS Study (56)
      • CS 229(Machine Learning) (19)
      • CS 224n(NLP) (5)
      • Web Scraping (7)
      • R4DS(R언어) (20)
      • 밑바닥부터 시작하는 딥러닝 1 (5)
    • Hacking Study (0)
      • Web Hacking (0)
    • 코딩테스트 (5)
      • 백준-Python (5)
    • Paper Review(논문 리뷰) (43)
      • Deep Learning (16)
      • TCGA 관련 논문 (4)
      • Computer Vision (18)
      • NLP (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 시간복잡도
  • Algorithms
  • NLP
  • introduction to algoritmhs
  • 논문 리뷰
  • web scraping
  • 파이썬
  • graph
  • clrs
  • LSTM
  • Introduction to Algorithms
  • C++
  • 딥러닝
  • 데이터분석
  • 알고리즘
  • cs229
  • R4DS
  • R언어
  • Data Structure
  • AI
  • 자료구조
  • 수리통계학
  • 정렬
  • 선형대수학
  • cs 224n
  • deep learning
  • 백준
  • db
  • Machine Learning
  • Linear Algebra

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
23학번이수현
[CS229] [8] Lecture 8 - Data Splits, Models & Cross-Validation
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.