728x90

Train/Dev/Test Sets (C2W1L01)

- 이번 주에는 신경망을 잘 동작하기 위한 : 하이퍼 파라미터 튜닝, 데이터 설정, 최적화 알고리즘 등에 대해 살펴봄.

 

 

실제로 ML 사용하는것은 매우 반복적인 과정

- 레이어의 개수, 은닉층 유닛 개수, 학습률, 활성화 함수 등을 고려해야하나 처음에는 어떻게 골라야할지 모름.

- 더 나은 신경망을 얻기 위해서 직접 지정해보고, 구현해서, 돌려보고 반복하여야 함.

- 신경망의 현재 활용 분야 NLP, Vision, Speech, 구조화된 데이터로 웹검색, 추천 등

- 한 분야의 내용이 다른 분야에서도 적용시킬수도 있음.

- 아무리 전문가라해도 한번에 하이퍼파라미터를 잘 지정하는건 어려움.

 => 여러번 반복 과정을 거쳐야함

훈련/개발/테스트 셋

- 빠르게 개발하기 위해서 효율적으로 위 사이클을 돌고, 데이터를 잘 모아야 함.

- 전체 데이터셋을 테스트셋/검증셋(개발셋)/테스트셋 으로 나누어 사용.

- 워크플로는 훈련셋으로 학습하고, 검증셋으로 어떤 모델의 성능이 최적인지 봄. 최종 모델에다가 테스트셋을 돌림.

- 관행 : 70 훈련, 30 테스트    혹은    60 훈련, 20 검증, 20 테스트

- 빅데이터 시대(현대) : 검증, 테스트셋의 비율을 최소한 평가할수 있을 만큼 줄여도 괜찬음. 

일치하지 않은 훈련/테스트셋 분포

- 현대에는 일치하지 않는 훈련/테스트셋을 사용하고 잇음.

- 고양이 분류시 훈련셋은 웹에서 구한 고양이 사진, 테스트셋은 앱에서 사용자로부터 얻은 고양이 사진

 * 웹에서 구한 사진은 고해상도고, 전문가스러우나, 앱에서 올라온것은 흐릿하고, 저해상도의 이미지들

 => 훈련셋과 테스트셋의 분포가 일치하지 않는다. => 같은 분포로 하는 것이 좋다.

- 테스트셋은 없어도 괜찬음. 테스트셋은 최종 신경망의 비편향성 추정치를 구하기 위함. 이게 필요없다면 테스트셋없이 검증셋만 있어도 됨. 검증 셋으로 서로 다른 아키텍처를 비교해서 더 나은걸 고르면 되겠다. 

 

 

 

 

 

 

 

 

 

 

300x250

+ Recent posts