본문 바로가기

딥러닝

[Meta-Learning] 1. 메타, 메타러닝이란 뭘까? 메타, 메타러닝이란 뭘까? What is Meta? 메타 라는 용어는 한 단계 더 위에 있는 것을 가리킬 때 사용됩니다. 대표적인 예시로, 데이터에 대한 정보를 나타날 때, 데이터에 대한 데이터인 meta-data가 있고, 생각을 잘하고 있는지 생각한다면, 메타인지라고 부르게 됩니다. Meta-Learning? 머신러닝 분야를 공부하다보면 메타러닝이라는 말이 자주 등장합니다. 아마도 대부분의 사람들은 학습하는 방법을 학습한다는 표현은 많이 들어봤을 거에요. 메타의 뜻에 의하면, 메타러닝이랑 러닝에 대해서 한 단계 더 위에 있는 것을 가리킵니다. 여기서 나타나는 학습을 두 단계로 나눠서, 두 단계의 학습에 대해서 알아보겠습니다. 첫 번째 학습 모델이 학습이라는 것은 주어진 데이터로부터 패턴이나 특징을 찾고.. 더보기
[🤖Bumjin's RL - 1] 강화학습 소개 및 구분 강화학습이란? 강화학습은 주어진 환경에서 에이전트의 최적의 행동을 하도록 유도하는 것을 목표로 합니다. 행동을 이끄는 방법들 중에서 행동의 결과에 대한 즉각적인 보상으로 에이전트가 올바른 행동을 하도록 이끌 수 있습니다. 행동 한 번을 유도하고 싶은게 아니라 연속적인 행동을 이끌어내고 싶다면 문제는 조금 복잡해집니다. 주어진 환경에서 최적의 행동 1개를 하는 것과 여러번의 행동을 통해서 결국에는 더 많은 보상을 이끌어 내야 합니다. 예를 들어서, 학생들이 공부를 할 때, 당시에는 보상이 적지만, 공부의 결과로 얻는 것들은 더 많은 보상을 줄 수 있습니다. 그래서 현재의 보상에 초점을 맞추는 게 아니라, 미래의 보상까지 고려된 행동을 유도해야 합니다. 강화학습 문제를 정의하기 위해서는 우선적으로 두 가지 .. 더보기
🧐 Sequence Labeling with Tagging 🧐 Tagging이란 무엇인가? 단어들은 문장 내에서 어떠한 역할을 지니고 있습니다. 이 역할을 선정하는 작업이 Tagging입니다. 여기서 역할이라고 한 것은, 문장의 구조(Part of Speech) 를 나타낼수도 있고, 아니면 현실에 있는 객체를 지칭하고 있는 경우(Name Entity)도 있습니다. Part of Speech : Noun, Verb, Adverb, ... (이과라서 나머지는 잘 모릅니다. ) Penn Treebank에는 45가지의 Tags가 있다는 이것도 버전마다 다르다고 합니다. Named Entity : 기본적으로 4가지 (사람, 위치, 기관, 지형)에 대한 Named Entity가 있지만, 시간, 돈과 같은 더욱 다양한 Named Entity가 있을 수 있습니다. 보통 Nam.. 더보기
[Analyse RLLib] 6 Multi Agent Two Step Game and MADDPG Two Step Game Actions State Observations Rewards MADDPG with TwoStepGame MultiAgent Environment configuration tune References Appendix What I found MADDPG full code Two Step Game Actions 각각의 agent는 0 또는 1을 선택할 수 있고, 결과는 state에 따라서 다릅니다. 밑의 표 참고. State state global_reward done 0 0 False (0,*)->state(1) (1,*)->state(2) 1 7 True 2 (0,1)->0 (1,0)->8 otherwise->1 True (a,b)에서 a :agent_1's action, b :.. 더보기
[Analyse RLLib] 5. Explore and Curriculum Learning Explore Curriculum Learning 1. Using modification of train 2. Using Callback References Explore 모든 Policy는 Exploration Object를 가지고 있습니다. Policy가 Model에 의해서 정해지지 않고 탐색을 하는 방식으로 장기적으로 return값을 높이기 위해서 강화학습에 필수적입니다. 아래와 같은 방식으로 Explore를 설정할 수 있습니다. Explore 방식과 hyperparameter setting은 Ray.io에서 확인할 수 있습니다. # DQN config = { "explore": True, 'expolration_config : { "type": "EpsilonGreedy", "initial.. 더보기
[Analyse RLLib] 4. RLlib CallBacks RLlib Callbacks Functions How to write a CallBack Class How to use callbacks RLlib Callbacks Trainer에서 Batch에 대해서 훈련을 진행하면서, 진행되는 전처리, 후처리를 모두 처리하는 부분입니다. Functions 아래의 CallBack Method 들은 모두 상황에 따라서 필요한 경우가 다르겠지만, 훈련 중간에 각 부분에서 어떤 처리를 하고 싶다면 반드시 구현해야 하는 부분입니다. 예를 들어서, MultiAgent환경에서 각각의 Agent의 Observation을 합치고 싶다면, on_postprocess_trajectory()부분을 구현해서 Batch의 형태를 바꿔주면 됩니다. CallBack Class Functions.. 더보기
[Analyse RLLib] 3. Train Model with Ray Trainer Train Model with Ray Trainer DQN with simple environment Tainer Compute Action inside of compute_action() inside policy, MODEL!!(Neural Network) Getting Q-values from a DQN References Train Model with Ray Trainer DQN with simple environment 주어진 환경에 대해서 빠르게 강화학습 코드를 돌리는 방법은 다음과 같다. First Register Environment Train the model with tune.run 필요한 라이브러리를 import합니다. import ray from ray.tune.registry imp.. 더보기
[Analyse RLLib] 2. RLlib 기본 훈련 코드 돌리기 RLlib Basic Training 간단한 훈련(Cmd 창) 결과 파일 구조 테스트 해보기(Cmd 창) Basic Python API(.py File) Tune API References RLlib Basic Training Trainer Class 는 다음과 같은 기능이 있습니다. Policy Optimizer를 가지고 있고, 외부 환경과 상호작용을 책임집니다. Policy에 대해서 훈련, Checkpoint, 모델 파라미터 복구, 다음 action을 계산해줍니다. (train, save, restore, compute) multi-agent환경에서는 여러 개의 Policy를 한번에 Optimize 해줍니다. trainer는 환경(Env)와 상호작용하면서 처리하는 모든 것들을 해줍니다. Ray 와 R.. 더보기