본문 바로가기

머신러닝22

RL (강화학습) 기초 - 1. OpenAI의 Gym 설치 및 예제 돌려보기 강화학습을 이론적으로 공부를 하기 위해서는 보통 Sutton 교수님의 책으로 시작을 하는데 이 책의 내용이 수학적이고 어려운 내용들이 많이 있다보니 접근하기가 쉽지는 않는 것 같습니다. 이후에는 이러한 이론적인 내용들도 시간이 되면 차근차근 정리해 보도록 할 것인데요. 이번에시작은 가볍고 재미있게 할 수 있는 방법으로 해보려고 합니다. openAI 에서 간단한 게임들을 통해서 강화학습을 테스트 할 수 있는 Gym 이라는 환경을 제공하고 있습니다. Gym을 설치하고 간단한 예제를 돌려보면서 강화학습이란 것이 어떤 것인지 먼저 감을 잡아 볼 수 있을 것 같습니다. 제가 맥북에서 주로 작업을 하다 보니 우선은 Mac OS를 기준으로 해보겠습니다.(Windows 에서도 설치해보니 동일한 방식으로 설치가 잘 됩니.. 2017. 7. 12.
자유로운 가상환경에서 Pycharm 사용하기 (window, tensorflow, cpu/gpu) 이전 포스팅을 따라서 Anaconda와 tensorflow-gpu를 설치했다면, 로컬 가상환경에서 특정 환경을 생성하고 Pycharm에서 개발환경을 변경해가면서 개발 및 테스트를 해볼 수 있습니다. 이에 대한 문의도 주시고 계시고, 관련 포스팅이 없는거 같아서 올려보겠습니다. 이미지들은 클릭하면 확대됩니다. 처음 설치시 처음 설치하시는 분들은 아래 링크의 포스팅을 먼저 봐주세요 Window 에서 tensorflow-gpu 설치하기 Anaconda prompt를 실행 먼저 기본적인 설치가 되었다면 Anaconda prompt를 실행합니다. Anaconda 가상환경 목록 확인 실행하면 아래와 같이 콘솔 창이 열립니다. 현재 생성이 되어 있는 아나콘다 가상환경이 있는지 목록을 확인해 보기 위해서 아래 명령어를.. 2017. 4. 27.
RNN LM (Recurrent neural network based language model) 언어모델에 사용된 RNN 관련 논문을 읽고 발로 요약정리한 내용입니다.흠. 좀 심하게 막장 요약이라서 올리기가 좀 그랬지만, 시간이 되면 정리해서 다시 올리겠습니다.^^혹시라도 관련해서 궁금하신 내용이 있으시면 댓글에 남겨주시면 겸사겸사 수정/정리하는 것으로 일단 하려고 합니다 Recurrent neural network based language model, 2010http://www.fit.vutbr.cz/research/groups/speech/publi/2010/mikolov_interspeech2010_IS100722.pdf AbstractLanguage model 기반의 RNN이 음성인식에서 perplexity가 50% 감소하는 결과를 보였다. 여러개의 RNN LMs를 사용했다. 1.Intro.. 2017. 3. 21.
Hadoop & Spark Resources spark summit 2016https://spark-summit.org/2016/schedule/ Apache Spark로 시작하는 머신러닝 입문https://www.youtube.com/watch?v=PRLz11vv7VA Hadoophttp://hadoop.apache.org/ Spark guide & bookhttp://spark.apache.org/docs/latest/programming-guide.htmlhttps://jaceklaskowski.gitbooks.io/mastering-apache-spark/content/https://www.pdf-archive.com/2016/04/21/learning-spark-o-reilly-2015/learning-spark-o-reilly-2015... 2017. 1. 16.
15. Tensorflow 시작하기 - Logging & Monitoring 이번에는 Tensorflow를 이용해서 모델을 학습하는 알고리즘을 구현할 때,Tensorflow의 로깅하는 기능과 모니터링 할때 사용하는 api에 대해서 알아보겠습니다.이번 내용에서는 이전에서 다뤘던 tf.contrib.learn Quickstart 에서 사용했던 내용을 기반으로 합니다. 안보신 분들은 한번 읽어보시고 오시면 좋을 것 같습니다. 이 예제는 Iris 3개종 중에서 하나를 예측하는 내용입니다.이를 위해서 Neural Net classifier 를 사용하여 학습을 하게 됩니다.그런데 이 예제 소스를 그냥 실행시키면 현재는 결과 값만 볼 수 있습니다. 학습이 진행되는 과정에 대한 내용을 볼 수 없는 상태입니다. 로깅을 하지 않으면 일종에 눈가리고 프로그래밍을 하는 것과 같습니다. 실제 어떻게 동.. 2016. 11. 13.
50. 머신러닝(Machine Learning) Summary 지금까지 머신러닝의 기본적인 개념과 다양한 분석방법에 대해서 모두 배웠습니다. 저도 주말에 도서관등에 다니면서 공부하고 블로그에 정리하면서 많은 것을 배웠네요. 참 재미있고 흥미가 커지는 주제가 아닌가 싶습니다. 실질적으로 적용을 할 수 있는 분야도 다양하고 거의 모든 곳에 활용되어 질 수 있을 것 같습니다. 알파고와 딥마인드 덕분에 세상에서 화두가 된지 아직 1년도 되지 않았지만, 이미 많은 사람들이 관심을 가지고 공부하고 이미 적용도 많이 되어 있는 것 같습니다. 조만간 멋진 머신 비서를 이용할 날도 멀지 않은 것 같네요^^ 저도 평생 공부한다고 생각하고 다음 주제를 찾아서 계속 해볼 생각입니다. 좋은 정보가 있으면 서로 공유하고 나누면서 같이 공부하실 분을 만날 수 있기를 기대해보면서 이번 주제는 .. 2016. 9. 13.
49. 머신러닝 시스템 예제 : Ceiling analysis 머신러닝 시스템을 구축하는데 있어서 가장 중요한 리소스는 개발 시간입니다.많은 사람들이 이 시스템을 개발하면서 감이나 운에 의거해서 task를 선택하고 성능 개선을 위해서 여러가지 시도를 하고 있습니다. 하지만 때로는 이렇게 보내는 많은 시간들이 실제적으로 시스템의 성능 개선에 미치지 못하는 경우가 있어 안타깝기도 합니다.이러한 시간 낭비가 되는 것을 방지하기 위해서 지금까지 여러가지 분석 방안에 대해서 이야기 했습니다. 이번에는 앞에서 다룬 예제와 pipeline을 통해서 Ceiling analysis에 대해서 알아보겠습니다. 아래와 같이 Photo OCR의 pipeline이 3가지의 모듈로 구성이 되어 있습니다. 이 각각의 모듈은 작은 팀으로 구성되어 업무를 수행하고 있을 것입니다. 혹은 한사람이 전.. 2016. 9. 12.
48. 머신러닝 시스템 예제 : Aritificial data synthesis 지금까지 우리가 알고리즘들을 배워오면서 또 바로 앞에 내용에서 학습을 위해서는 다양한 이미지 데이터들이 필요하다는 것을 이해하고 있습니다. 이런 기초 학습을 위한 데이터가 많으면 많을수록 머신러닝의 시스템의 성능에 많은 영향을 준다는 것도 이미 알고 있지요 그러면, 이렇게 많은 데이터들을 어떻게 수집하고 생성해야 할까요?실제적으로 데이터를 수집하기 위해서 많은 노력을 들여야 하게 되는데 이것을 좀더 유용하게 하는 방법이 있습니다. 그것은 바로 인공적으로 데이터를 만들어내는 것입니다. 이것을 Artificial data synthesis라고 합니다. 데이터를 수집하는 주요 경로는 웹이나 인터넷상에서 수집하는 방법이 있고, 현재 보유하고 있는 작은 데이터셋(small labeled training set)으.. 2016. 9. 11.
47. 머신러닝 시스템 예제 : Photo OCR 지금까지 배운 머신러닝에 대한 내용을 토대로하여 photo OCR 시스템을 만들어 보도록 하겠습니다.이것을 통해서 우리는 지금까지 배운 모든 내용들을 종합적으로 사용하는 것을 배우며, 또 머신 러닝 시스템을 구축하기 위한 pipeline에 대해서 알아볼 것입니다. 먼저 photo OCR이란 photo optical character recognition을 말합니다. 즉 사진에 찍혀있는 문자들을 인식하는 것입니다. 최근에 스마트폰등의 보급으로 디지털 카메라를 모두 사용하기 때문에 이러한 사진을 많이 가지고 있습니다. 이런 사진들을 인식하기 위한 하나의 방법이 되는 것입니다. 이를 이용해서 다양하게 실생활에 활용도 가능할 것입니다. 예를들어, 사진 정보를 이용해서 사진을 분류하거나 검색하는데 사용도 될 수 .. 2016. 9. 10.
46. 빅데이터 대응하기 : 분산환경 처리하기 (Map Reduce & data parallelism) 지금까지 배운 알고리즘들을 수행하는 것은 하나의 컴퓨터나 서버에서 처리되는 방식이였습니다. 만약 데이터가 너무 커서 하나의 머신에서 학습이 어려울 경우에는 어떻게 하면 좋을까요? 이를 위해 나온것이 Map Reduce입니다. 아래와 같은 공식의 Batch gradient descent 가 있습니다. m = 400 개인 dataset을 가지고 있습니다. Map Reduce의 개념은 이 400개의 데이터를 한번에 연산하는 것이 아니라 100개씩 4개의 컴퓨터나 서버로 나누어 계산하고 최종적으로 하나의 master 개념의 컴퓨터에서 통합시켜서 처리하는 방법입니다. 아래 공식과 같이 4개로 dataset을 분리하여 각각 100개씩 처리하도록 공식을 나누는 것을 볼 수 있습니다. 그리고 최종적으로 연산된 4개의 .. 2016. 9. 7.