검증세트 분할, 데이터 스케일 과적합 및 모델 튜닝

과적합 및 모델 튜닝에 대하여..



    요새 Tensorflow나 Keras에 들어가면,  우리가 필요한 소스코드가 API 형태로 되어 있다.  따라서 데이터 전처리가  수행 되고 나면,    CNN인 경우  필터의 크기  및   dens의 크기 epochs 배치 사이즈, 데이터 분할 등  같은 파라메터 만 조정 하게 된다.    사실상 프로젝트에 들어가면,  모델 돌리는 것 보다  더욱 중요 한 것이,  데이터 셋 준비하는 것이다.  

특히 CNN 같은 경우에는 사람 눈으로 식별 할 수 있을 정도로 데이터 셋이 준비가 되어야 하는 것은 필수 적이다. 


검증 세트 분할 

    테스트 세트는 실전에 투입된 모델의 성능을 측정하기 위해 사용함 그런데 테스트 세트로 모델을 튜닝 하면 '테스트 세트'에 대해서는 좋은 성능을 보여주는 모델이 실제로 만들어 진다.  이것은 답안지 외우는 것과 같은 것과 같다.     따라서 아래 그림과 같이 모델을 튜닝 하기 위한 검증 세트(validation set)를 준비 한다. 

데스트셋과 검증 셋


데이터 Scale (Standardization)

  데이터 특성의 스케일의 어떠한 데이터 값의 범위로써  Scale은 데이터의 영향을 주어,   경사 하강법 적용시 그래프가 많이 흔들린다.    




위의  같이 데이터의 범위가 너무 큰 것이 있으면, 아래와 같이 표본 평균 0, 표본분산 1로 -1~1로 변환 할 수 있는 표준 공식을 적용 하여야 한다. 

  • x = 값
  • μ = 표본평균
  • s = 표준편차
      

가중치 기록과 학습율 파라미터 추가 

 Class 인스탄스에  에포크마다 가중치 값을 저장 하여,  가중치의 변화량을 측정 하는 이유는 learning 파라메터가 값에 따른 변화량을 보기 위함 이다.  프로젝트 할때는 학습율에 대해서 크게 변경을 하거나  조정을 한 적이 없는 것으로 기억 된다. 

  learning rate는 하이퍼파라미터의 변수 이름 그대로 '학습률'을 의미 하며,  이 값으로 가중치의 업데이트 양을 조절 한다. 

아래 그림과 같이 가중치를 큰폭으로  업데이트 하여, 손실 함수가 최소가 될 수 있는 지점인 전역 최소값을 지나처 버리게 되면 최적의 해(최적의 가중치와 절편)을 구할 수 없음,   따라서 전역 최소값을 놓치지 않도록 가중치의 업데이트 양을 조절 할 필요가 있다. 



아래는 지금까지 설명한 내용에 대한 코드 이다. 






댓글 없음:

댓글 쓰기

css cheat sheet 클래스 선택자, margin(마진), display , center 조정 간단한 구성 요소

 앞에서는 html의 간단한 sheet를 소개 하였습니다.   html은  주로 골격을 나타나는 것이라, 디자인을 하는데는 css로 하여야 합니다.  아래 코드와 같이 css 관련 하여 매우 간단하게 코딩 하겠습니다.  body 부분의 css 코딩  ...