목록
들어가며
- 베이킹 소다를 사용할 때 참고할 수 있습니다.
- 베이킹 소다를 사용하기 전 용어나 사용 방법을 확인할 수 있습니다.
내용
Simulator 란
: 시뮬레이터란 모델이 데이터를 잘게잘게 읽어 학습을 잔행하고, 학습된 데이터를 기반으로 데이터를 생성하는 것입니다.
- 베이킹 소다의 SIMULATOR 흐름
- Create Code : Simulators > simulator > notebook
- 베이킹소다에서 제공하는 notebook 양식에 맞춰 코드를 작성합니다.
- 작성된 코드를 GITLAB 에 commit & push 를 진행합니다.
- gitlab 에 push 한 버전을 통해 server 를 생성할 수 있습니다.
- Create Server : Simulators > simulator > server
- 학습을 생성하기 위해서는 시뮬레이터와 통신할 서버가 필요합니다.
- 시뮬레이터는 rest server 로 작동합니다.
- GITLAB 에 업로드한 버전을 통해 서버를 생성합니다.
- 정상적으로 생성된 서버는 endpoint 를 통해 외부에서 호출이 가능합니다.
- 학습을 생성하기 위해서는 시뮬레이터와 통신할 서버가 필요합니다.
- Create Experiment
- Simulator 를 확인할 수 있습니다.
- Select Simulator : 시뮬레이터 생성 시 Server 가 생성된 version 을 선택합니다.
- Server 생성 시 endPoint 가 설정되어야 합니다.
- State : 시뮬레이터에 지정된 variable 을 확인합니다.
- 시뮬레이터가 가지고 있는 정보를 조회하여 보여주는 값입니다.
- Action
- Reward : 보상함수를 작성합니다.
- Create Code : Simulators > simulator > notebook
Experiment 란
: Parameter 와 model 이 학습할 수 있는 코드(시뮬레이터) 를 기반으로 진행되는 학습입니다.
Experiment 가 생성되면 NNI 동작을 위해 nni-proxy 가 동작하여 Trial 을 생성합니다.
NNI 란
: 학습 (Experiment) 를 생성하면 가장 먼저 사용하게 되는 라이브러리입니다. 생성된 NNI 는 TUNER 를 이용하여 자동으로 최적의 PARAMETER 의 값을 결정하고, TRIAL 을 생성합니다.
TRIAL 란
: Experiment 가 최적의 값을 내기위해 Parameter 값을 바꿔가며 시도하는 것입니다.
- Trial Concurrency : NNI 를 생성할 때 Trial 을 생성하는데 이 때, 동시에 생성할 수 있는 Trial 의 갯수입니다. 최대 생성 가능 개수는 4개 입니다.
- Number of Maximum Trials: 생성할 Trial 의 개수를 지정합니다.
- Number of Maximum Duration : 학습이 진행되는 최대 시간을 지정합니다.
TUNER 란
: Trial 을 생성할 때 마다 자동으로 파라미터 값을 바꾸어 최적의 parameter 값으로 결정해주는 것입니다.
tuner 의 알고리즘에 따라 parameter 를 결정하는데 차이가 있습니다.
▶️ Algorithm
베이킹소다에서 제공하는 타입을 확인할 수 있습니다.
- State Type
Model | Description |
MLP Model | 일반 데이터들의 정렬 |
CNN Model | 이미지 데이터들의 정렬 |
Multi Model | MLP + CNN 이 합쳐진 데이터들의 정렬 |
- Hyperparameter Tuner
Tuner | Description |
Random Search | 주어진 범위 내에서 임의의 조합을 추출하여 최적의 조합을 탐색하는 방법 |
Grid Search | 주어진 값 내에서 적용할 수 있는 모든 조합의 하이퍼 파라미터를 사용하여 최적의 하이퍼 파라미터를 탐색하는 방법 |
Tree-Structured Parzen Estimator | Grid Search 와 동일한 목적으로 동작하지만 진행방식에 차이가 존재 |
- RL Algorithm
Algorithm | Description |
PPO | 안좋은 행동에 대해 clipping 하고 trust region 에 한해서 학습하여 안정적인 성능을 보이는 알고리즘 |
PG | 높은 reward 를 얻는 방향의 Gradient 를 따르도록 policy 의 parameter 를 취하는 알고리즘 |
A2C | 행동을 결정하는 Actor 의 상태와 가치를 판단하는 Critic. 두개의 네트워크를 이용하여 학습하는 알고리즘 |
DQN | 강화학습에서 Deep Neural Network 를 이용하여 Q-value 를 사용해 학습하는 알고리즘 |
SAC | 기존의 강화학습에서 샘플 효율성을 높이기 위해 MaxEntropy 기법을 적용한 알고리즘 |
PARAMETER 란
: Experiment 가 최적의 값을 낼 수 있도록 값을 지정하는 trial 의 configuration 입니다.
▶️ Hyperparameter tunning
: NNI 가 학습의 값을 비교해가며 자동으로 trial 을 생성할 수 있도록 옵션을 설정합니다.
옵션 값은 지정하는 Algorithm, Tuner 에 따라 기본값이 다르고 사용자가 value값을 수정할 수 있습니다.
value
마무리
- 용어를 확인하여 베이킹소다를 이해하는데 도움을 줄 수 있습니다.
아티클이 유용했나요?
훌륭합니다!
피드백을 제공해 주셔서 감사합니다.
도움이 되지 못해 죄송합니다!
피드백을 제공해 주셔서 감사합니다.
피드백 전송
소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.