카테고리 보관물: Book

“[개정판] 파이썬 라이브러리를 활용한 머신러닝”이 출간되었습니다!

x9791162241646안드레아스 뮐러Andreas Mueller와 세라 가이도Sarah Guido의 베스트 셀러 “Introduction to Machine Learning with Python“의 번역서인 “파이썬 라이브러리를 활용한 머신러닝“이 개정판으로 새롭게 출간되었습니다!

지난해 10월 원서 저자들이 최신 사이킷런 버전에서 추가된 내용을 반영하여 새롭게 원서를 릴리스했습니다. 원서에서 바뀐 부분을 번역서에 반영하기에는 변경사항이 너무 많아 난처했습니다.

다행히 출판사와 협의하여 새롭게 개정판을 준비할 수 있었습니다. 그동안 많은 독자들에게 사랑을 받았던 책이라 개정판은 특별히 컬러 인쇄가 되었습니다! 여러가지 배려를 아끼지 않은 한빛미디어에 감사드립니다. 시원한 컬러 그래프를 볼 생각을 하니 너무 기쁘네요. 🙂

개정판에 추가, 변경된 내용은 [개정판] 파이썬 라이브러리를 활용한 머신러닝 페이지를 참고하세요. 이 책은 YES24, 교보문고와 같은 온라인 서점과 오프라인 서점에서 판매 중입니다!

Python Machine Learning 2nd Ed. 번역 후기

cover_1

세바스찬 라시카의 Python Machine Learning 2nd Ed. 의 번역과 역자 교정을 마쳤습니다. 작업된 책이 조판으로 넘어가면 늘 아쉽습니다. 이때는 지식보다는 끈기가 더 중요한 것 같습니다. 작업 과정을 되돌아 보며 후기를 남깁니다.

개인적으로 머신 러닝 분야의 실용서 베스트 네 개를 꼽으라면 안드리아스 뮐러와 사라 가이도의 “Introduction to Machine Leaning with Python“, 오렐리앙 제롱의 “Hands-On Machine Learning with Scikit-Learn and TensorFlow“, 프랑소와 숄레의 “Deep Learning with Python“, 세바스찬 라시카의 “Python Machine Learning”입니다. 제가 이 네 권을 모두 번역했다는 사실이 믿기지 않습니다. 사실 가장 먼저 보았던 세바스찬의 책은 1판의 번역서가 이미 다른 곳에서 출간되었기 때문에 2판을 번역할 기회를 얻기 힘들거라 생각했습니다. 정말 큰 행운이 따랐기 때문에 이 책을 번역할 수 있었습니다. 기회를 주신 길벗 출판사에 다시금 감사드립니다.

네 권의 책은 모두 나름대로 저마다 다른 색깔을 가지고 있습니다. 앤디의 책은 머신 러닝 파이프라인 전반의 흐름을 잘 정리하였습니다. 역시 사이킷런의 핵심 개발자답습니다. 오렐리앙의 책은 이론과 코드가 균형을 잘 잡고 있고 머신러닝과 딥러닝 부분을 잘 설명하고 있습니다. 프랑소와의 책은 이론보다 코드를 중심으로 딥러닝 특히 케라스 라이브러리를 중점적으로 다룹니다. 케라스 창시자인 그가 바라보는 딥러닝과 인공지능의 청사진을 엿볼 수도 있습니다.

세바스찬의 책은 이들 중 가장 먼저 아마존 인공지능 분야 베스트셀러가 된 책입니다. 오렐리앙의 책처럼 머신러닝과 딥러닝을 모두 아우르고 있지만 넘파이를 사용해 알고리즘을 밑바닥부터 만들기 시작합니다. 이론과 코드가 잘 안배되어 있고 사이킷런과 텐서플로를 함께 사용합니다. 다른 책에서는 잘 설명되지 않는 선형 판별 분석과 커널 PCA를 자세히 다루고 있습니다. 웹 애플리케이션에 머신러닝 모델을 임베딩하여 배포하는 장은 이 책의 특징 중 하나입니다.

Python Machine Learning 2판이 2017년에 출간되었기 때문에 사용한 라이브러리 버전이 낮습니다. 번역서에서는 사이킷런의 최신 버전 0.20을 기준으로 새롭게 바뀐 점과 중요한 변화를 포함시켰습니다. 딥러닝 챕터를 바꾸는 작업이 어려웠습니다. 작년 말에 텐서플로 2.0 프리뷰가 나왔지만 아직 정보가 부족했고 정식 릴리스 일정을 알 수 없기 때문입니다. 출판사와 협의한 끝에 출간 일정이 조금 늦춰지더라도 텐서플로 2.0을 기준으로 딥러닝 부분을 바꾸기로 결정했습니다. 덕분에 13~16장에 텐서플로 2.0 알파 버전에서 새롭게 바뀐 부분을 반영할 수 있었습니다.

작년 9월부터 작업을 시작했습니다. 다른 일들도 있었지만 너무 오래 걸렸네요. 매년 겨울마다 큰 곤욕을 치르는 것 같습니다. 친절하게도 저자 세바스찬이 직접 에러타로 인해 수정된 pdf와 이미지를 보내주었습니다. 제가 추가로 찾은 에러타는 원서 깃허브에 올렸고 신중하게 판단하여 번역서에 반영하였습니다. 세바스찬이 에러타와 함께 덕담도 건네 왔습니다. “It’s good to know that the translation will be in good hands! :)”.

복잡한 수식과 많은 주석 때문에 고생하셨을 디자이너와 교정자에게 감사드립니다. 편집과 번역 전반의 과정을 잘 안내해 주신 안윤경 님께도 감사드립니다. 부디 많은 사람들에게 사랑받는 책이 되었으면 좋겠습니다. 감사합니다! 😀

“머신 러닝 교과서” 베타 테스터 모집합니다!

 

“머신 러닝 교과서”의 정오표 페이지는 여기입니다.

 

지난 겨울내내 끙끙맸던 세바스찬 라시카의 “Python Machine Learning” 2nd Ed. 번역을 마쳤습니다. 원서와 달리 번역서는 사이킷런 0.20과 텐서플로 2.0을 기준으로 출간됩니다. 특히 딥러닝을 설명하는 후반 챕터는 텐서플로 2.0에 맞게 많은 부분을 새롭게 작성하였습니다.

길벗 출판사에서 이 책의 베타 테스터를 모집합니다. 페북 글을 참고하시고 관심있으신 분은 신청해 주세요. 감사합니다! 🙂

Grokking Deep Learning

IMG_0282

trask_gdl_hires오래 끌어왔던 Grokking Deep Learning 책이 출간되어 드디어 책상에 도착했습니다. 이 책은 넘파이로 밑바닥부터 신경망을 구현하면서 배우도록 구성되어 있습니다. 전체가 300 페이지로 두껍지 않고 훌륭한 일러스트가 돋보이네요. 원래 계획했던 강화학습 부분이 빠져서 아쉽습니다. 저자가 NLP 연구자라서 그런지 합성곱 신경망 부분은 간략히 다루어져 있습니다. 대신 순환 신경망과 LSTM에 충분한 지면을 할애하고 있습니다. 목차는 아래를 참고하세요. 🙂

  1. Introducing deep learning: why you should learn it
  2. Fundamental concepts: how do machines learn?
  3. Introduction to neural prediction: forward propagation
  4. Introduction to neural learning: gradient descent
  5. Learning multiple weights at a time: generalizing gradient descent
  6. Building your first deep neural network: introduction to backpropagation
  7. How to picture neural networks: in your head and on paper
  8. Learning signal and ignoring noise: introduction to regularization and batching
  9. Modeling probabilities and nonlinearities: activation functions
  10. Neural learning about edges and corners: intro to convolutional neural networks
  11. Neural networks that understand language: king – man + woman == ?
  12. Neural networks that write like Shakespeare: recurrent layers for variable-length data
  13. Introducing automatic optimization: let’s build a deep learning framework
  14. Learning to write like Shakespeare: long short-term memory
  15. Deep learning on unseen data: introducing federated learning
  16. Where to go from here: a brief guide

Architects of Intelligence & Dive into DL

‘Rise of the Robots’의 작가 마틴 포드가 새 책 ‘Architects of Intelligence‘를 출간했습니다. 지구 최고의 인공지능 연구자들을 인터뷰했네요. 요슈아 벤지오, 제프리 힌튼, 얀 리쿤, 앤드류 응 등등. 인터뷰이 목록이 후덜덜합니다. 🙂

현재 인공지능 기술과 향후 발전에 대한 소견이 주를 이루는 것 같습니다. 너무 기술적이지 않으므로 가벼운 마음으로 읽을 수 있을 것 같네요. 팩트에서 출간했고 사파리온라인북스를 구독하고 계시다면 바로 읽을 수 있습니다.

아마존 딥러닝 연구자들이 쓴 오픈소스 책 ‘Dive into Deep Learning‘이 공개되었습니다. 웹 사이트와 깃허브, PDF로 제공됩니다. 원래 먼저 중국어 버전이 쓰여진 것 같네요. 소스코드는 아직 영어로 번역되지 않았습니다.

이 책은 MXNet을 라이브러리를 사용합니다. MXNet에 관심있는 사람에게 좋을 것 같네요. 🙂

Free Copy of Pattern Recognition and Machine Learning

springer-cover-image크리스토퍼 비숍(Christopher Bishop)의 “Pattern Recognition and Machine Learning” PDF가 무료로 풀렸습니다. 사실 공공연하게 PDF가 돌아다녔는데요. 공식적으로 오픈되었으니 맘 놓고(?) 봐도 좋을 것 같네요. 🙂

블로그에서 직접 다운로드할 수 있도록 원서 PDF연습문제 해답, 에러타를 올려 놓았습니다.

Deep Learning with Python 번역 후기

chollet-dlp-hi원래는 좀 더 일찍 시작했어야 했지만 ‘핸즈온 머신러닝‘ 작업이 늦어지면서 4월에 들어서 시작하였습니다. 케라스를 만든 프랑소와 숄레가 직접 쓴 책이라 이전부터 기대가 컸습니다. 역시나 아마존에서 높은 인기를 끌고 있네요. 4개월 동안의 작업을 마무리하면서 번역의 후기를 남깁니다.

‘Deep Learning with Python’은 케라스를 사용하여 딥러닝의 다양한 모델을 배울 수 있도록 안내합니다. 합성곱, 순환 신경망을 포함하여 컨브넷 필터 시각화, 딥드림, 뉴럴 스타일 트랜스퍼, VAE, GAN까지 다루고 있습니다. 재미있게도 수학 공식을 극도로 줄이고 대부분의 이론 설명을 파이썬 코드로 풀어갑니다. 딥러닝을 공부하려는 소프트웨어 엔지니어를 주요 독자층으로 생각하기 때문입니다.

순조롭게 진행되던 번역 작업은 6장을 만나면서 암초에 부딪혔습니다. 눈에 띄는 에러타(프랑소와가 왜 이렇게 썼을까..)가 많이 나왔습니다.  반면 매닝의 에러타 포럼 페이지는 사용자들이 올린 에러타만 쌓일 뿐 이에 대한 반응이 거의 없습니다. 저자가 바쁘기 때문인지 아니면 출판사의 게으름인지 알 도리가 없습니다. 신중하게 에러타를 선별하여 번역서에 반영하였습니다.

또 한번의 암초는 이번 여름의 더위입니다. 너무나 더워서 자정이 넘어서도 키보드를 두드릴 수가 없었죠. 거북이 같던 걸음마였지만 조금씩 진행된 것이 쌓여 결국 모든 번역을 마무리할 수 있었습니다. 이젠 조금 선선해진(?) 날씨에 1차 역자 교정을 마치고 홀가분한 마음으로 이 글을 적습니다. 남은 것은 머릿말과 저자 소개 정도네요.

이 책은 1부와 2부로 나뉘어져 있습니다. 1부(1장~4장)는 딥러닝의 기초, 2부(5장~9장)는 실전 딥러닝의 내용을 담고 있습니다. 간단한 목차는 다음과 같습니다.

  1. 딥러닝이란 무엇인가?
  2. 시작하기 전에: 신경망의 수학적 구성 요소
  3. 신경망 시작하기
  4. 머신 러닝의 기본 요소
  5. 컴퓨터 비전을 위한 딥러닝
  6. 텍스트와 시퀀스를 위한 딥러닝
  7. 딥러닝을 위한 고급 도구
  8. 생성 모델을 위한 딥러닝
  9. 결론

이 책에서 맘에 드는 두 개의 장을 고르라면 6장과 9장입니다. 6장은 시퀀스 처리를 위한 딥러닝을 소개합니다. 기본 RNN으로 시작해서 LSTM, GRU, 양방향 RNN, 1D 컨브넷과 이들의 조합으로 텍스트와 시계열 데이터를 처리하는 다양한 예를 소개합니다. 다른 딥러닝 책에 비해 RNN에 대한 내용이 좀 더 풍부합니다. 9장은 책의 전체 내용을 정리하면서 딥러닝의 한계와 발전 방향에 대해 소개를 합니다. 이 장에서 저자가 생각하는 딥러닝의 방향과 비전을 엿볼 수 있어 아주 좋았습니다.

번역서는 <케라스 창시자에게 배우는 딥러닝>이란 제목으로 출간될 예정입니다. 8월 말부터 베타 테스트를 시작합니다. 조판과 디자인까지 완료되면 10월 초에는 받아볼 수 있을 것 같습니다. 🙂

머신러닝 Yearning 01~27

앤드류 응Andrew Ng 박사가 쓰고 있던 머신러닝 Yearning이 잠시 업데이트가 없었습니다. 코세라Courseradeeplearning.ai 강좌 때문이었다고 하네요. 강의 개발을 모두 끝내고 나서 다시 드래프트 버전을 업데이트하고 있습니다. 총 55개의 챕터가 쓰여질 예정인데 현재 27개의 챕터가 완료되었습니다. 아직 못 보신 분 들을 위해 지금까지 업데이트된 PDF를 모아서 블로그에 올려 놓았습니다!(다운로드) 🙂

(업데이트) 28~30장이 릴리즈되었습니다!(Ng_MLY05), 31~32장이 릴리즈되었습니다!(Ng_MLY06), 33-35장이 릴리즈되었습니다!(Ng_MLY07), 36-39장이 릴리즈되었습니다!(Ng_MLY08), 40~43장이 릴리즈되었습니다!(Ng_MLY09), 44~46장이 릴리즈되었습니다!(NG_MLY10), 47~49장이 릴리즈되었습니다!(NG_MLY11), 50~52장이 릴리즈되었습니다!(Ng_MLY12)

[Review] Hands-On Machine Learning with Scikit-Learn & TensorFlow

lrg 이 책의 번역을 시작한지 벌써 6개월이 훌쩍 넘어가 버렸습니다. 개인적인 핑계가 없는 것은 아니지만, 그럼에도 불구하고 이렇게 오랜 시간이 걸린 것은 번역 작업이 어떤 병렬화도 불가능한 노동 집약적인 일이기 때문일 것입니다 🙂 작업이 거의 마무리되어 가는 시점에 원서 전체에 대한 리뷰와 작업에 대한 기록을 위해 글을 남깁니다.

이 책은 500페이지가 넘어 두툼한 편이고, Scikit-Learn 라이브러리를 사용한 머신러닝Machine Learning텐서플로TensorFlow를 사용한 딥러닝Deep Learning 파트 두 부분으로 크게 나누어 집니다(실제 최근 프랑스어 판은 두 권의 책으로 출판되었다고 합니다). 분량만으로 비교했을 때에도 약간 딥러닝 쪽에 더 무게를 두고 있습니다. 간간히 Scikit-Learn과 텐서플로를 함께 다루고 있는 책들이 있는데, 아마도 딥러닝만을 설명하기엔 머신러닝 개념이 꼭 필요하기 때문인 것 같습니다. 물론 텐서플로만 다루는 책이더라도 도입부에 회귀와 분류 모델을 간단히 텐서플로로 만들어 봄으로써 머신러닝에 대한 개념을 다루고 진행하는 것이 일반적입니다. 이 책은 두 라이브러리를 모두 다루고 있으며 유사한 책 중에서는 가장 포괄적이고 세세한 내용을 담고 있습니다. 또 이론서와 실용서의 중간 형태라고 볼 수 있습니다. 수식없이 코드만 있지 않고, 코드는 없고 이론만 늘어 놓지도 않습니다.

작업을 시작하고 나서 7월, 10월에 원서의 내용이 크게 개정되었습니다. 주로 딥러닝 파트였으며, 원서의 여러가지 오류 때문이기도 하지만 아마도 이 분야의 변화가 빠른 것도 한 몫 했을 것입니다. 바뀐 부분을 PDF로 받았는데 책으로 옮겨 적기에는 너무 양이 많아 출력해서 책에 오려 붙이고 작업을 진행했습니다. 그 외에도 괴장히 많은 에러타가 있고, 아직 컨펌되지 않은 에러타도 남아 있습니다(에러타가 많이 발견되었다는 것은 그 만큼 높은 인기를 반증합니다). 최근에는 에러타와 개정판에도 언급되지 않은 변경사항이 사파리온라인에서 발견되어 저의 멘탈을 붕괴 직전까지 몰고 가기도 했습니다. 😦

이 책이 다른 책과 구별되는 한 장을 고르라고 한다면 저는 2장을 선택할 것 같습니다. 2장은 회귀 모델을 사용해 머신러닝 프로젝트의 준비에서부터 런칭까지 모든 단계를 짚어가고 있습니다. 이 책에는 특성 공학feature engineering에 대한 장을 따로 할당하지 않았는데 2장에서 이런 부분이 다소 해소됩니다. 다른 책에서도 프로젝트 운영에 대한 가이드라인이 다소 포함되어 있기도 하지만, 여기에서처럼 실제 프로젝트를 진행하듯이 자세히 기술되어 있지는 않습니다. 이런 부분은 저자의 프로젝트 경험을 엿볼 수 있는 좋은 사례인 것 같습니다.

이 책은 구성상 독특한 점이 두 가지가 있습니다. 첫째는 다른 책들과는 달리 샘플 코드 전체를 싣지 않고 있는 것입니다. 비교적 많은 주제에 대해 상세히 논하고 있기 때문에 만약 코드를 모두 썼다면 이보다 훨씬 더 두꺼운 책이 되었을 것입니다. 설명을 위해 꼭 필요한 코드 부분만 실었으며 전체 코드는 깃허브github.com의 주피터 노트북Jupyter Notebook을 참고하도록 안내하고 있습니다. 둘째, 각 장의 끝에 연습문제를 포함하고 있습니다. 그렇다고 이 책이 대학 교재스러운 편집 구성을 가지는 것은 아닙니다. 일반 컴퓨터 과학 도서에서 연습문제를 가진 경우는 드물기 때문에 신선하기도 하고 저자의 노력을 느낄 수 있습니다. 연습문제는 크게 본문의 내용을 질문하는 것과 실습을 하는 것, 두 종류로 나누어 집니다. 내용에 대한 질문의 답은 책의 부록에 실려 있습니다. 실습 문제는 깃허브의 장별 주피터 노트북 말미에 포함되어 있습니다. 다만 아직 모든 연습문제의 답이 올려져 있지 않고 점진적으로 추가되고 있습니다. 번역서가 출간될 쯤에는 깃허브의 주피터 노트북의 내용도 모두 한글로 번역되어 제공됩니다. 추후 업데이트되는 연습문제도 함께 번역이 될 것입니다.

Scikit-Learn을 이용해서는 회귀, 분류에 대한 기본 내용으로 시작해서 서포트 벡터 머신Support Vector Machine, 결정 트리Decision Tree, 앙상블emsemble, 차원 축소Dimensionality Reduction까지 다룹니다. 아무래도 ‘파이썬 라이브러리를 활용한 머신러닝‘처럼 머신러닝 파이프라인의 모든 부분을 다루기엔 지면이 부족합니다. 하지만 다루는 모델의 이론(수식)을 충분히 설명하고 예제 코드를 병행하고 있습니다. 텐서플로를 사용해서는 기본 인공 신경망과 텐서플로에 대한 소개를 먼저 시작합니다. 그리고 심층 신경망을 학습하기 위해 당면한 문제들을 해결하는 여러가지 방법을 소개합니다. 모델 재사용, 여러가지 최적화 알고리즘, 초기화, 규제 등입니다. 보통 GPU나 분산처리 부분은 딥러닝 책의 말미에 나오는 경우가 많은데 이 책에서는 합성곱Convolution 신경망 보다도 먼저 나오고 비중이 비교적 큽니다. 그 다음 합성곱 신경망Convolution Neural Networks에서 합성곱, 패딩, 스트라이딩에 대한 설명 뿐만 아니라 LeNet-5, AlexNet, GooLeNet, ResNet 구조를 상세히 설명하고 있습니다. 순환 신경망Recurrent Neural Networks에서는 직접 간단한 RNN 연산을 만들어 보면서 순환 신경망에 대한 이해를 돕고 있으며, LSTM, GRU와 기본적인 기계번역 RNN 구조까지 설명하고 있습니다. 그 다음 오토인코더Autoencoder, 강화학습Reinforcement Learning을 다루는 장으로 이어집니다.

아래 장별 제목을 옮겨 놓았습니다. 책에 관련하여 궁금한 점이나 리뷰, 추천사에 의향이 있으시면 언제든지 댓글이나 메일 주세요. 앗 그리고 새해 복 많이 받으세요! 🙂

  1. 한눈에 보는 머신러닝
  2. 머신러닝 프로젝트 시작부터 끝까지
  3. 분류
  4. 모델 훈련
  5. 서포트 벡터 머신
  6. 결정 트리
  7. 앙상블 학습과 랜덤 포레스트
  8. 차원 축소
  9. 텐서플로 시작하기
  10. 인공 신경망 소개
  11. 심층 신경망 훈련
  12. 다중 머신과 장치를 위한 분산 텐서플로
  13. 합성곱 신경망
  14. 순환 신경망
  15. 오토인코더
  16. 강화학습
  • 연습문제 정답
  • 머신러닝 프로젝트 체크 리스트
  • SVM 쌍대 문제
  • 자동 미분
  • 인기 있는 다른 인공 신경망 구조

**Complete Draft** Reinforcement Learning: An Introduction

리차드 서튼Richard Sutton 교수의 강화학습 책 “Reinforcement Learning: An Introduction”의 2판의 드래프트가 끝났다는 소식입니다. 이 책은 온라인에서 무료로 읽을 수 있습니다. 이 책은 총 449페이지이고 파일 사이즈는 16M 정도로 아주 크지 않지만 혹시 네트워크가 느릴 경우를 대비해 블로그에 다운로드 링크(bookdraft2017nov5)를 추가했습니다.

다음은 전체 책의 목차입니다.

  1. Introduction
  2. Multi-armed Bandits
  3. Finite Markov Decision Processes
  4. Dynamic Programming
  5. Monte Carlo Methods
  6. Temporal-Difference Learning
  7. n-step Bootstrapping
  8. Planning and Learning with Tabular Methods
  9. On-policy Prediction with Approximation
  10. On-policy Control with Approximation
  11. *Off-policy Methods with Approximation
  12. Eligibility Traces
  13. Policy Gradient Methods
  14. Psychology
  15. Neuroscience
  16. Applications and Case Studies
  17. Frontiers

(업데이트) 2018년 1월 1일에 마이너한 업데이트가 있었던 것 같습니다. 새로운 PDF를 참고하세요.