2019년 9월 16일 월요일

Hyperparameter optimization

Input-Output 간 예측을 위한 파라미터 최적화가 아닌,
머신러닝 구조자체의 파라미터를 하이퍼파라미터라고 함



일반적으로 하이퍼파라미터에 포함되는 파라미터는

- batch size
- hidden layer 개수
- hidden layer 활성화함수
- hidden layer 내 노드 개수
- dropout 비율
- 최적화 방법
- 에러값계산법


하이퍼파라미터 최적화 방법에는

- 격자 탐색 (grid search)
- 임의 탐색 (random search)
- 베이즈 최적화 (Bayesian optimization)
http://research.sualab.com/introduction/practice/2019/02/19/bayesian-optimization-overview-1.html

- 유전 알고리즘 (genetic algorithms)
- 하이퍼파라미터에 대한 머신러닝



이를 구현하기 위한 방법으로

<사이킷 런을 활용한 방법>

- 격자 탐색 (grid search) => sklearn.model_selection.GridSearchCV
- 임의 탐색 (random search) =>sklearn.model_selection.RandomizedsearchCV
    http://ethen8181.github.io/machine-learning/keras/nn_keras_hyperparameter_tuning.html


<개발자들이 만들어 놓은 방법>

- hyperband (임의 탐색) => https://arxiv.org/pdf/1603.06560.pdf
   : 위의 논문 저자들이 개발한 최적화 기법
   https://github.com/PacktPublishing/Deep-Learning-Quick-Reference 의 chapter 6에 hyperband.py 코드가 있음.

- keras-tuner : keras-tuner설치에 관한 글은 따로 포스팅해놓았음.


<talos 활용방법>

https://github.com/autonomio/talos



나는 전부다 사용해보았는데 talos 를 활용한 방법이 제일 좋았다.
데이터 용량이 커지면, 진행과정을 눈으로 보면서 해야 남은 시간도 예상가능하고 좋은데
사이킷 런은 내가 아직 텐서보드 연동을 안해서 그런지 하염없이 기다리고만 있어야함..

hyperband는 내가 데이터를 받아오는 방법이 조금 달라서 적용하기가 어려움.
keras-tuner는 기존 나의 텐서플로우의 버전과 맞지 않아 사용이 불가함.



댓글 없음:

댓글 쓰기

vba로 새창 띄우기

 일반적으로 vba에서 새창을 띄우는 명령어를 사용하면,  workbook.add  계속 vba 창이 떠있는 경우, 새로 열린 창에서 내용 수정이 되지 않는다 (락이 걸린상태처럼) 그래서 vba 창을 계속 켜놓은 상태로 새창을 실행하고 거기서 문서 편...