팁이라고 하기도 그런데 기억차원에서 남긴다. 데이터가 서버한곳에 모아져 있을 경우, 거기에 저장되어 있는 데이터를 처리하고 싶은 경우가 있다. 보통 가장 쉽게 할 수 있는 방법은 아래와 같이 서버의 데이터를 로컬PC로 다운로드한다. (혹은) Jupyter server가 실행된 PC상으로 업로드를 해서 처리한다. 일텐데, 굳이 이런 다운로드/업로드 과정을 생략하려면, python의 requests library를 사용해서 url로 직접 접속할 수 있게 할 수 있다. 보통은 github같이 공개된 곳에 올리면 해당 dataset의 url에 requests.get를 하고 그 데이터의 text를 pd.read_csv()등을 통해서 처리할 수 있다. 예시는 아래와 같다. import pandas as pd imp..
보통 computer vision에 활용되는 model은 수행 task에 따라서 크게 3가지 형태로 나눠볼 수 있다. 이미지를 분류하는 Classification, 이미지를 인식하는 Detection, 그리고 이미지를 따오는 Segmentation이다. Classification은 말 그대로 이미지나 이미지내 특정 object에 대한 class를 결정하는 것이다. 이에 대한 결과는 참/거짓 과 같은 2진으로 나올 수도 있지만, class가 여러 개라면 그 class의 종류만큼 나올 수 있다. (참고로 일반적으로 많이 사용되는 ImageNet Dataset은 약 20000여개의 class로 구성되어 있다고 한다.) 보통은 예측된 class에 대한 확률값으로 표기되어, 사람이 딱 봤을 때 가장 높은 확률을 ..
일반적으로 pre-trained model이란 말그대로 training을 끝낸 이후에 산출물로 나온 모델을 말한다. 보통 training을 할 때 가장 큰 문제가 데이터의 특성을 이해하기 위해서 데이터 자체도 많이 모아야 할 뿐더러, 이에 필요한 비용이나 시간적인 문제가 발생하는데, pre-trained model을 사용하면 이런 문제를 피할 수 있다. Pre-Trained Model은 Intermediate Representation (IR) format으로 구성되어 있고, 보통 xml같은 markup language나 binary 형태로 이뤄져 있다. 그래서 이걸 Inference Engine, 간단하게 말해 학습된 모델로부터 결과를 얻어내는 영역에 넣어주면 우리도 pre-trained model을 ..
이전 포스트에서도 계속 언급했다시피, 딥러닝 모델을 모바일이나 임베디드 환경에서 그대로 돌리기 어려운 이유는 일반 PC와 달리 메모리나 성능, 저장공간 등의 제한이 있기 때문이다. 이 때문에 해당 모델을 어떻게 최적화(Optimization)하느냐가 임베디드 환경상에서도 최적의 성능을 낼지 여부를 결정하는 요소가 된다. Tensorflow Lite도 결국은 Model deploy시 이 최적화를 해주는 기능이 포함되어 있는 것인데, 이 때 Quantization이 적용된다.치ㅑ Quantization은 간단히 말해서 Neural Network의 내부 구성이나 표현되는 형식을 줄이는 과정을 말한다. 예를 들어서 현재 구성된 Neural Network의 weight이나 activation output이 32b..
홈페이지에는 Tensorflow Lite로 구현할 수 있는 Image Classification이나 Object detection, Question Answering 같은 예제들이 소개되어 있다. 참고로 Raspberry PI같이 Embedded 환경에서 Test해볼 수 있는 Image Classification이랑 Object Detection 같은 것만 예제로 제공되고 있다. 아무튼 전반적인 Tensorflow Lite가 어떻게 돌아가는지를 확인해볼 수 있는 예제를 살펴보고자 한다. 우선 Keras로 간단한 Linear regression을 위한 model을 한번 만들어본다. import tensorflow as tf x = [-1, 0, 1, 2, 3, 4] y = [-3, -1, 1, 3, 5, ..
보통 Deep Learning을 생각하면, 엄청 복잡한 모델, 예를 들면 Image Classification을 할 때 CNN으로 구성한다던지, 뭔가 예측을 할때 LSTM같은 특정 기능을 하는 모델을 생각할 것이다. 이런 것들을 실제 폰이나 전자 제품에 올라가있는 Microcontroller 같은데에서도 동작할까? 기본적으로 Deep Learning 모델을 학습시키는 PC를 생각하면, 일반적으로 x86 cpu를 쓰고 별도로 GPU같은 가속기를 달기도 하며, 모델을 읽어오거나 저장할 공간이 충분하고, Windows나 Linux같은 OS가 올라가 있겠지만, 폰에는 ARM cpu가 들어있고, PC에 비해서는 상대적으로 저성능이고, 심지어 Microcontroller에는 OS도 없는 환경이 대부분일 것이다. 이..
(해당 글은 OpenAI Engineer인 Lilian Weng의 포스트 내용을 원저자 동의하에 번역한 내용입니다.) Meta Reinforcement Learning Meta-RL is meta-learning on reinforcement learning tasks. After trained over a distribution of tasks, the agent is able to solve a new task by developing a new RL algorithm with its internal activity dynamics. This post starts with the origin of meta-RL an lilianweng.github.io Meta-RL은 강화학습 task에 meta l..
(해당 포스트는 Coursera의 Prediction and Control with Function Approximation의 강의 요약본입니다) 이전 포스트들을 통해서 설명하고자 했던 것은 기존의 Q-table과 같은 Tabular 방식이 아닌, Value를 하나의 Function, 즉 Value Function으로 근사하는 방법이 존재하고, 이때 이 근사된 Value Function과 실제 Value Function과의 오차를 줄일 수 있는 방법으로 Gradient Descent를 적용할 수 있다는 것이었다. 그래서 Function Approximation을 Monte Carlo에 적용한 Gradient MC과 제한적이기는 하나, Gradient를 TD Learning에 적용한 Semi-Gradien..
(해당 포스트는 Coursera의 Prediction and Control with Function Approximation의 강의 요약본입니다) 역시 Function Approximation 기법을 Monte Carlo Method처럼 TD Learning에다가도 접목시킬 수 있다. 우선 Monte Carlo method에 Function Approximation을 접목한 Gradient Monte Carlo에서 weight이 update되는 과정을 다시 돌아보면 다음과 같다. $$ \mathbf{w} \leftarrow \mathbf{w} + \alpha[ G_t - \hat{v}(S_t, \mathbf{w})] \nabla \hat{v}(S_t, \mathbf{w}) $$ 이를 사용하면 estima..
(해당 포스트는 Coursera의 Prediction and Control with Function Approximation의 강의 요약본입니다) 이전 포스트를 통해서 기존의 tabular method가 아닌 Function Approximation으로 value function을 정의하는 방법을 대략적으로 설명했다. 일단 뭐가 되던 간에 우리가 만들 value function은 각 state에 대한 value function이 차별성을 잘 띄고 있어야 하고(high discrimination), 전체 state에 대한 일반화도 잘되어야 한다.(high generalization) 그렇게 해서 어떤 linear value function \( \hat{v}(s, \mathbf{w})\) 을 만들었다고 가..
(해당 포스트는 Coursera의 Prediction and Control with Function Approximation의 강의 요약본입니다) 이전 포스트까지 다룬 알고리즘들은 기본적으로 state/action에 따른 value가 table 형식으로 정의된 tabular value function을 사용했다. 이런 케이스 value function을 정의하기는 쉽지만, 일반화(generalization)을 하기가 어렵다. 예를 들어서 action이나 state가 table처럼 구분할 수 있는 discrete한 값이 아니라 continuous한 값을 가진 경우라면, 위와 같은 tabular value function을 사용하기 어렵다. 또한 state space나 action space의 scale이 ..
(해당 포스트는 Coursera의 Sample-based Learning Methods의 강의 요약본입니다) 이전 포스트들을 통해서 얘기한 내용은 결국 model을 활용해서 planning을 할 수 있어서 sampling efficiency도 높이고, 효율적으로 policy를 학습할 수 있다고 했었다. 여기서 던질 수 있는 질문은 "그럼 정확하지 않은(inaccurate) model로 planning 등을 수행하면 policy를 improve할 수 있을까?" 이다. 예를 들어서 앞에서 다뤘던 maze example 상에서도 policy를 improve시키기 위해서는 가능한한 많은 state와 action을 취해서 얻은 value function이 있어야 하는데, 아무래도 exploration도 하고 중간..
(해당 포스트는 Coursera의 Sample-based Learning Methods의 강의 요약본입니다) 이전 포스트를 통해서 강화학습 상에서의 Model의 정의에 대해서 소개하고, Model을 통해서 생성한 simulated experience를 바탕으로 model을 update하는 Planning에 대해서 다뤘다. 사실 이런 planning과정과 별개로 실제 environment로부터 얻은 experience를 바탕으로 update하는 것을 Direct RL이라고 표현한다. 이번 포스트에서 소개할 Dyna algorithm (sutton)은 앞에서 소개된 Planning과 Direct RL이 결합된 형태로 되어 있다. 우선 기존의 Q-learning과 마찬가지로 실제 environment로부터 e..
(해당 포스트는 Coursera의 Sample-based Learning Methods의 강의 요약본입니다) 강화학습을 공부하다보면 state나 action같은 기본 notation만큼이나 자주 나오는 단어가 Model이 아닐까 생각된다. 이전 포스트에서 Monte Carlo method나 Temporal Difference Learning을 다뤘고, 이 둘의 차이가 여러가지가 있지만, 그래도 넓은 관점에서 보자면 두 알고리즘은 Model이 있냐(Model-based) 없냐(Model-free)로 나눠서 볼 수 있다. sutton 책에 있는 표현을 가져오자면 Model-based RL은 planning에 초점이 맞춰져 있고, Model-free RL은 learning에 중점을 두고 있다. 그럼 여기서 말..
(해당 포스트는 Coursera의 Sample-based Learning Methods의 강의 요약본입니다) 이전 포스트를 통해 배울 수 있었던 것은 크게 다음과 같다. Episode가 끝나야 Value function을 update할 수 있었던 Monte Carlo Method와 다르게 TD Learning은 BootStrapping 기법을 사용해서 Value function을 update할 수 있었다. TD Learning 중에서도 Target Policy와 Behavior Policy의 일치여부에 따라서 On-policy method인 SARSA와 Off-policy method인 Q-learning으로 나눠볼 수 있다. 아무튼 두가지 방법 모두 state action value를 활용한 Bellm..
- Total
- Today
- Yesterday
- Kinect SDK
- processing
- PowerPoint
- Off-policy
- bias
- ColorStream
- Expression Blend 4
- Windows Phone 7
- 강화학습
- Distribution
- Gan
- Policy Gradient
- End-To-End
- windows 8
- 딥러닝
- SketchFlow
- 파이썬
- DepthStream
- Python
- Variance
- TensorFlow Lite
- Kinect for windows
- Offline RL
- RL
- dynamic programming
- 한빛미디어
- reward
- Kinect
- arduino
- Pipeline
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |