Loading...
2024. 5. 30. 00:57

딥러닝 시대의 parameter search

1. history 사람이 프로그래밍을 통해 모델을 설계하여 일을 자동으로 해주는 도구를 만들었지만  초기에는 hyperparameter밖에 없어서 사람이 모든 모수를 직접 정해야했다 머신러닝 시대로 오면서 데이터의 어떤 feature를 주로 쓸 지 모델 설계를 사람이 여전히 해야했지만 일부 parameter를 모델이 자동으로 찾아주었다. 물론 여전히 많은 hyperparameter가 존재했다. 딥러닝 시대로 오면서 사람이 input, output을 던져주면 모델이 알아서 feature를 잡아 모델을 설계했고 대부분의 parameter도 알아서 찾아준다. 극히 일부의 hyperparameter는 여전히 존재했다. 추후에는 진짜 모델 설계부터 parameter search까지 기계가 알아서 해주는 시대가 ..

2024. 4. 2. 01:45

머신러닝에서 hyperparameter search를 도와주는 optuna 라이브러리 소개

1. introduction hyperparameter tuning을 도와주는 open source framework 파이썬을 이용하여 최적화된 hyperparameter를 자동으로 찾아줌 큰 공간을 더욱 빠르고 효과적으로 찾아주는 최신 알고리즘인 bayesian optimization을 사용? hyperparameter search가 특별한 코드 수정없이도 쉽게 병렬화가 가능해서 대규모 탐색도 분산 머신으로 탐색할 수있는 방법을 제공 쉽게 디자인 되어 있어서 상당히 쉽게 사용가능함 2. 기본적인 사용방법 optimize하고 싶은 objective function을 정의함 trial.suggest_uniform, trial.suggest_int 등으로 탐색하고자 하는 값의 범위를 설정함 실제 search..

2024. 4. 2. 01:32

hyperparameter 개념 간단하게

1. hyperparameter와 parameter의 차이? hyperparameter는 학습과정에서 control할 수 있는 parameter value를 의미하고 학습 전에 사람이 직접 설정해줘야함 parameter는 모델이 학습과정에서 자동으로 배워나가는 값 hyperparameter tuning이란 이러한 learning 알고리즘에서 hyperparameter를 최적화하는 과정임 2. hyperparameter optimization model system의 매커니즘에 영향을 줄 수 있는 여러 요소들 batch_size, learning rate, loss, k-fold, dropout, regularization, optimizer, hidden layer 종류는 많음 hyperparameter..

2024. 1. 12. 00:05

딥러닝 시대의 train, validation, test set에 대한 고찰(70:30으로 나눠야하는가? train과 test가 서로 다른 분포? validation vs test는 무슨 차이인가?)

1. train set, validation set, test set 가지고 있는 모든 학습 데이터(training data)에서 전통적으로, 그 일부를 training set으로 사용하고 일부를 hold out cross validation set(development set)으로 쓰고 그 나머지는 test set으로 쓴다. training set에서 어떤 모델의 training algorithm을 수행하고, validation set은 후보로 고른 모델들의 성능을 평가하는데 사용한다. 위 과정을 충분히 반복하고 나서, 최종적으로 고른 모델이 얼마나 잘 편향없이 추론하는지(unbiased estimate) 평가하기 위해 test set을 이용하여 평가를 한다. 2. 70:30으로 데이터를 나누는 것이 ..

2024. 1. 11. 01:11

2일차 activation, gradient descent, random initialization, deep neural network, hyperparameter 간단하게

1. non-linear activation z1 = W1x + b1 a1 = g1(z1) z2 = W2a1 + b2 a2 = g2(z2) 만약, g1 = px+q, g2 = rx+s의 선형함수라고 한다면, z2 = W2W1(px+q) + W2b1+b2이고, W2W1 = W3, W2b1+b2 = b3라고 한다면, z2 = W3(px+q)+b3이다. 따라서 몇개의 layer를 연결하더라도, activation이 linear라면, 하나의 layer로 만들어진다. 그래서 함수의 표현력이 떨어져서 hidden layer에서 linear activation은 사용하지 않는다. output layer에서 linear activation을 사용할 수 있으며, 그렇다면 hidden layer은 non-linear ac..

2022. 12. 31. 18:20

batch size는 어떻게 설정해야하는가?

그냥 아무거나 정해도 되는 것 같지만 대단히 중요한 parameter 데이터 10만개 전부를 batch하니 gpu가 터지고 1개씩만 쓰자니 너무 오래 걸림 batch size가 커질수록 train,test function의 sharp minimizer에 도달하고 batch size가 작아질수록 flat minimizer에 도달한다는 것이 실험적으로 증명한 논문이 있다 위와 같은 그림에서 flat minimum은 train에서 조금만 벗어나봤자 testing에서 여전히 비슷하다는 것 sharp minimum은 train에서 조금 벗어나면 testing에서 매우 큰 차이를 보인다 일반적으로 test에서 모형이 잘 동작하기를 바란다 그러므로 flat minimum에서 generalization performa..