Data/딥러닝 & 머신러닝

5장 : 머신러닝의 기본요소 ***

희디 2024. 10. 28. 23:29

 

몇번의 에포크 후에 이전에 본적 없는 데이터에 대한 성능이 훈련 데이터의 성능에서 크게 벌어지기 시작. 훈련데이터의 성능은 룬련이 진행될수록 계속 향상됨. ⇒ 과대적합 ⇒ 점점 일반화 성능이 나빠짐

 

최적화와 일반화

최적화(optimization) : 가능한 훈련 데이터에서 최고의 성능을 얻으려고 모델을 조정하는 과정 - 머신러닝에서 학습에 해당

일반화(generalization) : 훈련된 모델이 이전에 본적없는 데이터에서 얼마나 잘 수행되는지 의미

 

과소적합과 과대적합

훈련 초기에 최적화와 일반화는 상호 연관 : 훈련데이터의 손실이 낮아질수록 테스트 데이터의 손실도 낮아짐 : 과소적합(inderfitting) - 모델의 성능이 발전될 여지가 있음. 아직 모든 관련 패턴학습X

점점 훈련 반복 → 일반화성능 어느순간부터 유지, 검증세트 성능 멈추고 감소 → 과대적합 시작.

과대적합 : 데이터에 잡음, 불확실성 존재, 드문 특성 포함시 발생 가능성 높음

 

[잡음 섞인 훈련 데이터]

 

 

 

[불확실한 특성]

객관적인 경계가 없어서 레이블할당하는 사람마다 동일한 사진을 다르게 분류할 수 있다.

[드문특성과 가짜 상관관계]

가짜 상관관계를 만들어내는 데 특성값이 몇번만 등장할 필요X

의미없는 특성의 연결은 데이터의 기존정보에 전혀 영향을 미치지 않는다.

잡음을 더 많이 섞을수록 정확도는 더 감소될 것이다.

잡음특성은 필연적으로 과대적합을 유발시킨다.

⇒ 특성이 모델에 유익한지 혼란스럽게 만드는지 확실하지 않다면 훈련전에 특성 선택을 수행하는 것이 일반적.

 

 

딥러닝에서 일반화의 본질

[매니폴드 가설]

매니폴드 : 국부적으로 선형 유클리드 공간과 비슷하게 보이는 부모 공간의 저차원 부분 공간이다. ex) 평면상의 매끄러운 한 곡선은 2D 공간 안에 있는 ID 매니폴드.

매니폴드 가설은 실제 세상의 모든 데이터가 고차원 공간안에 있는 저차원 매니폴드에 놓여있다고 가정함.

  • 샘플 사이를 보간하는(보간(Interpolation)은 인접한 데이터 점에 적합한 함수(일반적으로 다항식) 조각을 맞추어 데이터의 중간 값을 찾는 프로세스) 연속적인 경로를 따라 한 입력에서 다른 입력으로 변형할 때 능력은 딥러닝에서 일반화를 이해하는 열쇠이다.
    • 머신러닝 모델은 가능한 입력 공간안에서 비교적 간단하고 저차원적이며 매우 구조적인 부분공간만 학습하면 된다.

[일반화의 원천인 보간]

지역일반화 - 이전에 본 것과 매우 가까운 것을 이해하는데 도움을 주는 정도

 

[딥러닝이 작동하는 이유]

딥러닝은 잠재 매니폴드를 풀기위한 도구

딥러닝 모델은 근본적으로 매우 고차원의 곡선 + 미분할 수 있어야하므로 매끄럽고 연속적인 곡선,

 

[가장 중요한 훈련 데이터]

딥러닝 일반화의 능력은 데이터의 자연적인 구조로 인한 결과로, 데이터가 보간할 수 있는 매니폴드를 형성하는 경우에만 일반화가 가능하다.

입력공간을 샘플링하여 훈련을 해야함.

머신러닝 모델 평가

훈련, 검증, 테스트 세트

하이퍼파라미터 - 모델 개발 시 층이나 층의 유닛 개수를 선택하는 파라미터

정보누설 - 검증세트의 모델 성능에 기반하여 모델의 하이퍼파라미터를 조정할때마다 검증 데이터에 관한 정보가 모델로 새는 것.

[모델 평가 방법]

  • 단순 홀드아웃 검증
    • 데이터의 일정량을 테스트 세트와 검증 세트로 떼어놓는 방법
  • K-겹 교차 검증
    • 데이터를 동일한 크기의 k개로 분할하고, 각 분할 i에 대해 남은 k-1개의 분할로 모델 훈련 및 분할 i에서 모델평가
    • k개의 점수를 평균하여 최종 점수를 냄
  • 반복 K-겹 교차 검증
    • 가용 데이터가 적고 가능한 정확하게 모델을 평가할 때 사용하는 방법
    • 최종 점수는 모든 K-겹 교차 검증을 통해서 얻은 점수의 평균

[모델평가에 대해 유의해야 할 점]

  • 대표성이 있는 데이터 : 훈련 세트와 테스트 세트가 주어진 데이터에 대한 대표성이 있어야 함
  • 시간의 방향: 훈련 세트에 있는 데이터보다 테스트 세트에 있는 모든 데이터가 미래의 것이어야 함.
  • 데이터 중복 : 훈련 세트와 검증 세트가 중복되지 않는지 확인이 필요하다.

훈련 성능 향상하기

경사 하강법의 핵심파라미터 튜닝하기

훈련이 시작되지 않거나 너무 일찍 중단된 경우, 대부분 경사 하강법 과정에 대한 설정에 문제가 있다. → 나머지 파라미터는 고정하고 학습률과 배치크기 튜닝으로 문제 해결

  • 학습률을 낮추거나 높임
  • 배치크기를 증가 (잡음이 적은 그레이디언트 생성)

구조에 대해 더 나은 가정하기

구조에 대한 올바른 가정을 내리고 해결하려는 작업의 종류에 대한 적절한 구조가 무엇인지 찾아보기!!

모델 용량 늘리기

: 모델을 과대적합시키기

일반화 성능 향상하기

데이터셋 큐레이션

  • 데이터가 충분한지 체크하기, 좋은 데이터는 데이터가 많을수록 좋게 형성될 수 있다
  • 레이블 할당 에러를 최소화, 입력 시각화로 이상치 확인 및 레이블 교정
  • 데이터를 정제하고 누락된 값을 처리
  • 많은 특성 중에서 어떤 것이 유용한지 확실하지 않다면 특성 선택을 수행

특성공학

데이터의 일반화 가능성을 향상시키는 매우 중요한 방법

조기종료 사용하기

훈련 중 일반화 성능이 가장 높은 최적적합의 지점(과소적합-괴대적합 사이의 정확한 경계)을 찾는 것은 일반화 성능을 향상시킬 수 있는 가장 효과적인 방법 중 하나

모델 규제하기

가중치 규제추가 : 가중치가 작은 값을 가지도록 강제하는 방법

드롭아웃 추가 : 모델 층에 드롭아웃을 적용하면 훈련하는 동안 무작위로 층의 출력 특성을 일부 제외시킨다.