(해당 포스트는 "Head First Go"에 대한 서평으로, 해당 책은 한빛미디어로부터 제공받았음을 알려드립니다.) 현업에서도 데이터 분석이랑 시각화 관련 작업을 하다보니, R과 Python, 어쩌다가 C로 업무를 하게 되는데, 최근 트렌드 중에 "Go" 라는 언어가 많이 나오고 있는 것 같았다. 그래서 언젠가는 어떤 포인트로든 내가 하는 업무에 Go 를 접목시켜서 좀 배워볼 기회를 가지면 좋겠다 싶었는데, 마침 책으로써 미리 다뤄볼 기회가 생겨서, 이에 대한 글을 좀 남겨보고자 한다. Go는 2009년, Google의 Rob Griesemer와 Rob Pike, Ken Thompson이 만든 functional language이다. 원래의 목적은 google 내부에서 많이 다뤄지는 network기반의..
(해당 포스트는 "이것이 데이터 분석이다 with 파이썬"에 대한 서평으로, 해당 책은 한빛미디어로부터 제공받았음을 알려드립니다.) 요즘들어서 데이터를 가지고 하는 일들이 많아졌다. 소위 "빅데이터"의 시대인만큼 어마어마하게 수집된 데이터들 사이에서 남들이 발견하지 못한 insight를 찾고자 하는 사람들도 많아지고, 수요도 늘었다. 물론 이 insight를 부여하는 것을 사람에 따라서 다르게 수행하고 있다. 어떤 사람은 데이터들 사이에서 특징을 잘 추출할 수 있도록 정리해주는 일을 할 수도 있다. 이해당사자들에게 데이터가 가진 의미를 잘 설득할 수 있도록 시각화를 하는 일도 있고, 아마 요새 가장 핫한 일이겠지만, 이런 데이터에 머신러닝이나 딥러닝 같은 인공지능을 적용해서 미래의 일을 예측하거나, 최적..
보통 딥러닝에서 Model의 size를 줄이거나 동작 속도를 향상시키기 위해서 수행하는 Optimization 기법으로 크게 3가지 방법을 드는데, accuracy 측면에서 약간 손해보면서 Model Size를 줄이는 Quantization, training시 필요한 metadata나 Operation을 안쓰게끔 하는 Freezing, 그리고 Layer의 복잡성을 줄이기 위해서 여러 Operation을 하나의 Operation으로 바꾸는 Fusion 등이 있다. Quantization Quantization은 Model을 구성하는 weight이나 bias들이 과연 몇 bit으로 표현하느냐와 연관된 내용이다. 물론 정확성 측면에서는 각 weight와 bias들이 소수점 자리까지 정확히 update하고 계산..
개인 기록 유지 차원에서 정리해봄 Slack은 협업하는 Task내에서 의사소통으로 많이 쓰이는 수단이다. 단순히 유저별 message만 주고 받을 수 있는게 아니라, file upload같은 것도 되고, 더 좋은 것은 Custom Application을 channel내에 설치함으로써 업무내에서 확장할 수 있는 영역이 넓다는 것이다. 실제 사례로 이렇게 사용할 수 있다. git으로 file upload시 CI내에서 자동으로 전체 소스를 다운받아 빌드후 테스트 결과를 channel에 알려주는 용도 업무용 calendar 및 알림 Event API를 활용한 자동화 구현 일단 내가 사용하려던 용도는 실험이 원격으로 진행되는지라, 원격에서 data를 수집한 후, 수집된 data의 summary를 slack에 올려..
팁이라고 하기도 그런데 기억차원에서 남긴다. 데이터가 서버한곳에 모아져 있을 경우, 거기에 저장되어 있는 데이터를 처리하고 싶은 경우가 있다. 보통 가장 쉽게 할 수 있는 방법은 아래와 같이 서버의 데이터를 로컬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을 ..
(해당 포스트는 "Generative Deep Learning"에 대한 서평으로, 해당 책은 한빛미디어로부터 제공받았음을 알려드립니다.) 혹시 인공지능이 적용된 예시중에 이런 그림을 본적 있는지 모르겠다. 위에 소개된 기술은 CycleGAN을 활용한 Style Transfer라는 기술로, 기존의 유명한 명화들을 학습한 모델을 바탕으로 실제 사진을 넣었을 때 해당 화풍을 적용한 것처럼 변형시켜준다. 사실 인공지능이 미래의 데이터를 예측하고, 이미지를 분류하는 예제만 봐왔던 사람들한테는 이렇게 직관적으로 결과가 나타나고, 시각적으로도 딱 보여주기 좋았기에 사람들에 전달하는 의미가 매우 컸었다. 이밖에도 MuseGAN이나 World Model과 같이, 이미지 생성에만 한정짓지 않고, 새로운 음악도 만들어내기도..
이전 포스트에서도 계속 언급했다시피, 딥러닝 모델을 모바일이나 임베디드 환경에서 그대로 돌리기 어려운 이유는 일반 PC와 달리 메모리나 성능, 저장공간 등의 제한이 있기 때문이다. 이 때문에 해당 모델을 어떻게 최적화(Optimization)하느냐가 임베디드 환경상에서도 최적의 성능을 낼지 여부를 결정하는 요소가 된다. Tensorflow Lite도 결국은 Model deploy시 이 최적화를 해주는 기능이 포함되어 있는 것인데, 이 때 Quantization이 적용된다.치ㅑ Quantization은 간단히 말해서 Neural Network의 내부 구성이나 표현되는 형식을 줄이는 과정을 말한다. 예를 들어서 현재 구성된 Neural Network의 weight이나 activation output이 32b..
며칠전에 Tensorflow Lite 관련해서 Google 쪽이랑 미팅을 했다. 우리 회사도 MCU를 많이 쓰다보니까 MCU를 타겟팅한 Tensorflow Lite가 올라가면 좋겠지만, 실제 현업에서 적용하기에는 고려할 사항이 많다. 아무래도 optimization에 초점을 맞춘 framework다 보니, 모델 사이즈 측면도 있고, 과연 Tensorflow Lite를 지원하게끔 MCU compiler가 기능을 지원하냐 그런 문제도 있고, 아직까지는 갈길이 좀 먼거 같다. 그래도 그쪽 엔지니어가 이런거 많이좀 써보고 미리 경험해보라면서 EVB 하나를 줬었는데, 보니까 Sparkfun Edge였다. 아마 짐작하기로는 Google이 ARM Cortex-M계열 MCU에도 올릴 수 있다는 것을 보여주기 위해서 출..
(해당 포스트에서 언급되는 "파이썬을 활용한 머신러닝 쿡북" 책은 한빛미디어로부터 제공받았고, 이에 대한 서평을 쓴 것 임을 알려드립니다.) 현업이나 학교 과제 중에서 머신러닝 관련 일을 하게 되면, 제일 번거로운게 API의 사용이나 내가 원하는대로 고치는 것이다. 물론 Tensorflow나 Scikit-learn과 같이 유명한 프레임워크는 API documentation도 제공하고, 많은 사람들이 실제로 접해보면서 나름 쉽게 풀어쓴 예제들이 많이 제공되지만, 꼭 찾다보면 내가 필요한 것을 설명한 게 없는 경우가 많다. 나같은 경우에는 얼마 전에 언급한 Exploratory Data Analysis (EDA)에 필요한 문제를 해결하다가 딱 맞게 설명된 예제도 없어서 나름 응용해본 케이스를 소개했었는데, ..
홈페이지에는 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..
- Total
- Today
- Yesterday
- Offline RL
- Kinect for windows
- 강화학습
- Distribution
- Policy Gradient
- windows 8
- arduino
- TensorFlow Lite
- ColorStream
- 딥러닝
- 파이썬
- Variance
- Gan
- reward
- Off-policy
- Kinect SDK
- 한빛미디어
- processing
- bias
- Pipeline
- DepthStream
- RL
- Python
- dynamic programming
- End-To-End
- PowerPoint
- Windows Phone 7
- SketchFlow
- Expression Blend 4
- Kinect
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |