카테고리 보관물: Book

A Course in ML

cover메릴랜드 대학의 조교수인 할 다움 3세(Hal Daumé III)의 ‘A Course in Machine Learning’이 최근 0.99버전으로 업데이트 되었습니다. 이 책은 웹사이트에서 무료로 책 전체를 다운받을 수 있으며 챕터 별로 나누어서 받을 수도 있습니다. 0.99 버전이라 완성도가 매우 높다고 볼 수 있습니다. 아마 정식 책으로 출간되기 보다는 자가 출판 형태로 판매가 되지 않을까 생각됩니다. 이 책은 약 1년전 부터 쓰여지기 시작했으며 깃허브에 책의 내용과 소스 코드를 공개되어 있습니다.

  1. Front Matter
  2. Decision Trees
  3. Limits of Learning
  4. Geometry and Nearest Neighbors
  5. The Perceptron
  6. Practical Issues
  7. Beyond Binary Classification
  8. Linear Models
  9. Bias and Fairness
  10. Probabilistic Modeling
  11. Neural Networks
  12. Kernel Methods
  13. Learning Theory
  14. Ensemble Methods
  15. Efficient Learning
  16. Unsupervised Learning
  17. Expectation Maximization
  18. Structured Prediction
  19. Imitation Learning
  20. Back Matter

[Review]Introduction to ML with Python

catIntroduction to ML with Python은 사이킷런(scikit-learn) 0.18 버전이 출시된 후 가장 먼저 나온(작년 10월 출간) 파이썬 머신러닝 책입니다. 이전 포스트에서도 잠깐 언급한 적이 있지만 사이킷런 0.18 버전에는 피드포워드(feed-forward) 뉴럴 네트워크 클래스가 추가되었습니다. 그래서 이 책에도 이와 관련된 섹션이 추가되어 있네요. 이 책의 저자 중 한명인 앤디(Andreas C. Muller)는 뉴욕 대학교의 리서치 엔지니어이면서 사이킷런의 핵심 개발자입니다. 머신러닝 PhD로서 머신러닝에 대해서 잘 알고 있을  뿐만 아니라 사이킷런에 대해서 누구보다도 잘 알고 있음은 두말할 필요가 없습니다.

머신러닝의 실용서와 이론서의 측면을 모두 담은 책은 쉽게 보기 힘듭니다. 특히나 여러 종류의 알고리즘에 걸쳐서라면 더욱 그렇습니다. 이 책은 후자 보다는 전자에 무게를 실었습니다. 수식은 과감히 덮고 가능하면 직관적으로 이해할 수 있도록 배려했으며 무엇보다도 상당히 많은 종류의 알고리즘을 설명하고 사이킷런으로 예시를 보여주고 있습니다. 이 책을 번역서로 내기 위해 제가 번역 작업을 진행하고 있고 대략 70% 정도 진척이 되었습니다. 전체 내용을 가늠하실 수 있도록 챕터별 내용을 요약했습니다.

계속 읽기

Python DS Handbook & ML with TF Repo.

얼마전 소개했던 ‘Python Data Science Handbook‘의 저자 제이크 반더플라스(Jake VanderPlas)가 깃허브에 코드와 텍스트를 포함한 책 전체를 주피터 노트북 형태로 공개하였습니다. 소스는 MIT, 텍스트는 CC BY-NC-ND 3.0 라이센스를 가지고 있습니다.

  1. IPython: Beyond Normal Python
  2. Introduction to NumPy
  3. Data Manipulation with Pandas
  4. Visualization with Matplotlib
  5. Machine Learning

title그리고 매닝(Manning) 출판사에서 MEAP 으로 나온 ‘Machine Learning with TensorFlow‘ 의 예제 소스 코드가 모두 깃허브에 MIT 라이센스로 공개되었습니다. 이 책은 아직 7장까지 밖에 쓰여지지 않았으니 글보다 코드가 먼저 나온 셈입니다.

 

  1. TensorFlow Basics
  2. Regression
  3. Classification
  4. Clustering
  5. Hidden markov models
  6. Autoencoders
  7. Reinforcement learning
  8. Convolutional Neural Networks
  9. Recurrent Neural Network

MLYearning Draft

바이두의 앤드류 응(Andrew Ng) 교수가 쓰고 있는 Machine Learning Yearning 의 첫 드래프트(v0.5)가 공개되었습니다. 저자가 앞서 밝혔던 의도대로 수학식이 가득한 알고리즘 책이 아니고 머신 러닝 개발자에게 필요한 실천전략을 담고 있습니다. 전체는 대략 100여 페이지가 조금 넘을 듯 하고 약 55개 장으로 각 장마다 1~2 페이지 정도의 내용을 담고 있습니다. v0.5 드래프트에는 12개의 장이 포함되어 있습니다. 그리고 지금이라도 메일링 리스트에 가입하면 앞으로 업데이트될 때마다 책을 받아 볼 수 있습니다.

(업데이트) 14장까지 업데이트 된 합본입니다.

Python for Data Analysis 2nd Ed.

rc_cat판다스(pandas) 라이브러리를 만든 웨스 맥키니(Wes Mckinney)의 ‘Python for Data Analysis‘의 2판이 준비되고 있습니다. 아직 절반도 채 못 쓰여졌지만 이북(ebook) 형태로 미리 구매하여 보실 수 있습니다. 2판은 조금 분량이 늘어나고 웨스의 전공 분야인 금융 어플리케이션에 대한 사례가 빠졌습니다. 대신 고급 판다스, 통계 모델과 사이킷런(scikit-learn)이 한 챕터씩 추가되었습니다. 그리고 표지의 두더지 사진이 반대 방향으로 바뀌었네요! 🙂

 

rc_cat1비슷한 성격의 또 하나의 데이터 과학 책인 ‘Python Data Science Handbook‘ 곧 출간될 예정입니다. 이 책은 워싱톤 대학의 연구원인 제이크 반더플라스(Jake VanderPlas)가 썼습니다. Python for Data Analysis 보다 조금 볼륨이 작고 겹치는 부분이 많이 있습니다. 총 6개 장으로 구성되어 있고 파이썬, IPython, 넘파이, 판다스, 맷플롯립, 사이킷런에 대해 한 챕터씩 할애하고 있습니다.

‘텐서플로 첫걸음’ 출간을 자축하며 :-)

l안녕하세요. 이 블로그에 글을 쓰는 박해선입니다. 처음엔 개인적인 관심사로 머신러닝을 공부하다가 알파고 역풍(!)에 블로그를 시작하게 되었습니다. 매스미디어와 깃허브 코드 사이에는 어느정도 간극이 있고 이런 부분들이 글이나 책등으로 많이 채워지면 좋을 것 같습니다. 아마 이 블로그는 그 사이 어딘가를 조금 메우려 하고 있을 것 같습니다.

블로그를 시작할 때 한참을 망설였지만 누군가 시작하면 도미노처럼 더 멋진 일들이 생겨날 것이라 생각했습니다. 사실 이 책도 기쁨보다는 두려움이 조금 더 앞섭니다. 하지만 누군가에게 도움이 될 수 있을 거라고 마인드콘트롤 하고 있습니다 🙂

이 책은 조르디 토레스 교수가 쓴 ‘First Contact with TensorFlow’의 번역본입니다. 온라인에 올린 것과는 달리 많은 교정을 거치고 추가 챕터를 넣어 부족한 부분을 보완했습니다. 정말 우연찮게 온라인에 공개한 글을 번역했는데 이글을 보시려 많은 분들이 찾아와 주셨기 때문에 출판사에서도 연락이 오지 않았을까 생각합니다. 그런점에서 페이스북의 TensorFlow KR, 바벨피쉬, Deep Learnng 그룹에 감사드립니다.  특별히 바벨피쉬의 강희석님은 원문과 번역본의 여러 오타와 문제점을 지적해 주셔서 큰 도움이 되었습니다. 그리고 흔쾌히 추천사를 써 주신 TensorFlow KR의 김성훈 교수님과 구글 코리아의 권순선님께 감사드립니다. 그리고 물심양면 늘 도와주시는 니트머스 김용재 대표님께 감사의 말을 드리지 않을 수가 없네요.

이 곳에 들러주신 모들 분들과 댓글과 메일로 잘못된 점을 지적해 주시고 또 격려를 해 주신 많은 분들께 진심으로 감사 드립니다. 우리 모두 옳은 방향으로 가고 있다고 믿습니다. 🙂

* 이 책의 오타와 잘못된 점은 이곳으로 알려 주세요. 블로그에 계속 업데이트 하도록 하겠습니다.

* 온라인 서점에서 예약판매 중입니다. [YES24], [교보문고], [알라딘]

Speech and Language Processing 3rd Ed. Draft

41m9fu8xtvl-_sx376_bo1204203200_댄 주라프스키(Dan Jurafsky)와 제임스 마틴(James Martin)이 쓴 ‘Speech and Language Processing’은 2008년에 2판이 나왔습니다. 이 책의 3판이 현재 작성되어 드래프트가 온라인에 공개되어 있습니다. 모든 챕터가 채워지려면 상당 시간이 필요할 것으로 보이지만 관련 분야에서 좋은 평가를 받고 있는 책 중에 하나로 알려져 있어서 기대가 됩니다. 딥러닝 분야가 빠르게 발전하고 있어서 이 책도 여러 부분에서 새로운 내용이 채워질 것으로 예상합니다.

New ML book & scikit-learn v0.18

rc_cat오라일리에서 새로운 파이썬 머신러닝 책인 ‘Introduction to Machine Learning with Python‘이 곧 출시될 예정입니다. 전체 챕터가 거의 다 써졌고 eBook 형태로 미리 구입해서 볼 수 있습니다. 이 책은 넘파이(numpy), 판다스(pandas), 사이킷런(sckit-learn)을 사용하며 최대한 수식은 줄인(아마 하나도 없는 것 같습니다) 실용서라고 볼 수 있습니다.

저자 중 한명인 안드리아스 뮐러(Andreas C. Mueller)는 뉴욕 대학교 리서치 엔지니어로 사이킷런의 코어 개발자 중 한명입니다. 누구보다도 사이킷런에 대해 잘 설명했으리라 생각됩니다. 그런데 이 책에서는 사이킷런의 안정버전인 0.17.x을 사용하지 않고 아직 개발버전인 0.18dev0을 선택했습니다. 혹시나 0.18 버전이 곧 릴리즈 되는건가 하는 생각에 저자에게 직접 물어 보았습니다. 역시나 이 책이 페이퍼백으로 출시될 때와 비슷한 시점인 대략 몇달 후에 0.18 버전이 릴리즈 될 것 같다고 합니다. 아마 늦어도 연내에는 0.18 버전이 나올 것으로 보입니다.

0.18 버전에 관심이 있는 것은 여러가지 기능 개선과 성능에 향상도 있겠지만 무엇보다도 뉴럴 네트워크 부분에 멀티레이어 퍼셉트론이 지원되기 때문입니다. MLPClassifier 와 MLPRegressor 클래스이며 사이킷런 개발버전 문서에서 확인할 수 있습니다.

주요 특징을 보면 활성화 함수로는 시그모이드, 하이퍼볼릭탄젠트, 렐루가 있고 최적화 옵션으로는 l-bfgs, SGD(Stochastic Gradient Descent), 아담(ADAM)이 있습니다. 모멘텀(Momentum)과 네스테로프 모멘텀(Nesterovs Momentum)을 설정할 수 있는 옵션도 보입니다. 옵션의 기본값을 보면 사람들이 어떤 것들을 선호하고 있는지를 미루어 짐작할 수 있는데요. 활성화함수는 렐루가 기본값이고 최적화는 아담입니다. 모멘텀과 네스테로프 모멘텀은 SGD와 함께 쓸 수 있는데 네스테로프 모멘텀의 기본값이 True로 되어 있습니다.

즉 사이킷런의 API는 렐루와 함께 아담이나 SGD+네스테로프 모멘텀을 사용하는 것이 기본으로 되어 있습니다. 올해 초에 작성되기 시작한 ‘Fundamental of Deep Learning‘ 책에서는 저자가 네스테로프 모멘텀에 대해 약간 보수적인 의견을 피력했었는데 사이킷런은 좀 더 적극적으로 적용하는 것 같습니다. 텐서플로우 0.9 버전에는 아직 네스테로프 모멘텀을 지원하지 않지만 바로 얼마전에 마스터 브랜치에 네스테로프 모멘텀을 지원하는 코드가 추가되었습니다! 아마 다음 릴리즈에서는 정식으로 포함되어 사용할 수 있을 것 같습니다. 현재 텐서플로우에 있는 네스테로프 모멘텀 옵션의 기본값은 False입니다.

사이킷런은 현재 GPU를 지원하지는 않습니다만 사이킷런의 장기 목표에는 GPU 지원도 포함되어 있는 것 같습니다. 사이킷런의 뉴럴 네트워크 사용에 관한 보다 자세한 설명은 가이드 문서를 참고하세요.

SciPy 2016 & Free eBooks

텍사스 오스틴에서 열린 SciPy2016의 스케줄이 끝나기가 무섭게 컨퍼런스와 튜토리얼 영상이 유투브에 올라왔습니다. 정말 놀라운 속도 입니다. 머신 러닝 관련 세션도 여러개가 눈에 띄입니다.

SciPy2016에 맞추어 오라일리에서 몇몇 신간 도서들을 무료로 배포하고 있습니다. 회원가입 하시고 http://www.oreilly.com/pub/get/scipy 에서 원하는 책을 선택하시면 이메일로 다운받을 수 있는 링크를 보내 줍니다. 다만 바로 메일을 보내 주지 않고 2일 정도 걸린다고 하네요. 😦

그래도 무료로 주는 게 어딘가요. 이 이벤트는 8월 9일까지 진행한다고 합니다.

scipy-free-ebook

(업데이트) 여러권을 신청했는데 메일이 와서 보니 마지막에 신청했던 것이 제공되네요. 결국 이틀에 한권씩 신청하라는 거죠. 귀찮지만 기간은 충분하니 원하는 책들은 다 받아 볼 수 있겠습니다.

(업데이트) 이상훈님이 댓글로 알려주신 것과 같이 한 계정당 한권만 보내 주네요. 저는 더 받으려고 계정을 추가로 만들었습니다. 🙂

Stanford UFLDL Tutorial

앤드류 응(Andrew Ng) 박사가 스탠포드 대학에 있을 때 제자들과 함께 만든 UFLDL(Unsupervised Feature Learning and Deep Learning) 튜토리얼을 소개해 드립니다. 깃허브 레파지토리 날짜로 보아서는 3년 정도 지난 것으로 보이지만 여전히 좋은 자료인 것 같습니다.

이 튜토리얼의 이전 버전도 있는데요. 이전 버전은 중국어 번역본이 이미 존재하고 있습니다.