추천 글

“머신 러닝 교과서: 파이토치 편”이 출간되었습니다!

아마존 베스트 셀러 <머신 러닝 교과서>의 파이토치 버전인 <머신 러닝 교과서: 파이토치 편>이 드디어 출간되었습니다!

머신러닝 파트는 최신 라이브러리 버전에 맞춰 내용을 보강하고 딥러닝 파트는 파이토치를 사용하여 인공 신경망, 합성곱 신경망, 순환 신경망을 설명합니다. 거기에다가 트랜스포머와 그래프 합성곱도 추가되었습니다. 마지막으로 파이토치 라이트닝 라이브러리 설명까지! 와우!

  • 온라인/오프라인 서점에서 판매 중입니다! [Yes24], [교보문고], [알라딘]
  • 876페이지, 58,000원 -> 52,200원, 전자책: 46,400원

책을 출간하는데 도움을 주신 길벗 출판사에 감사드립니다. 올해 마지막 도서입니다. 모두 한 해 마무리 잘 하시고 즐거운 연말되세요! 🙂

추천 글

“핸즈온 머신러닝 3판”이 출간되었습니다!

전세계에서 가장 많이 팔린 머신러닝 도서인 <핸즈온 머신러닝 3판>이 출간되었습니다! 네 오늘은 <만들면서 배우는 생성 AI>와 함께 하루에 두 권이 출간되는 경험을 하네요! 🙂

핸즈온 머신러닝 1판이 2018년에 처음 나와서 정말 선풍적인 인기를 얻었습니다. 그리고 2020년에 2판, 2023년에 3판이 출간되었습니다. 원서의 인기가 번역서에 잘 이어지지 않는 도서도 꽤 많습니다. 하지만 <핸즈온 머신러닝>은 많은 분들의 도움으로 원서 못지 않은 인기를 얻고 있습니다.

3판은 자연어 처리(트랜스포머 + 허깅 페이스)와 생성 모델을 추가로 다루고 시계열 예제를 실전 데이터를 사용하도록 바꾸었습니다. 또한 사이킷런과 케라스의 최신 변경 사항을 알차게 담고 있습니다. 오렐리앙의 실감나는 설명은 여전하구요! 변경 사항에 대한 자세한 내용은 Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 3rd Edition 번역 완료!를 참고하세요.

3판에서 쪽수가 더 늘어나 천 페이지가 넘게 되었습니다. 독자들이 조금 더 편하게 책을 볼 수 있도록 두 권으로 쉽게 분권할 수 있도록 제본되었습니다. 어느 책상, 어느 책장에서도 가장 유용한 책 중 하나가 되리라 믿습니다!

추천 글

“혼자 공부하는 머신러닝+딥러닝”이 출간되었습니다!

혹시 머신러닝, 딥러닝을 이제 막 배우려고 마음 먹으셨나요? 또는 어려워서 중간에 포기하신 적이 있나요? 더이상 이 공부를 미룰 수 없는 “혼공족”을 위해 <혼자 공부하는 머신러닝+딥러닝>이 출간되었습니다! 🙂

머신러닝과 딥러닝의 중요한 개념과 예제를 많은 삽화와 함께 친절히 설명하는 책입니다. <혼자 공부하는 머신러닝+딥러닝>은 동영상 강의와 함께 합니다.

책의 코드는 구글 코랩(Colab)엘리스 아카데미 강의를 통해 실습할 수 있습니다.

풀 컬러, 580 페이지에 맛깔스런 삽화를 한 가득 준비했습니다. 모두연의 인공지능 학교 아이펠의 공식 교재로 채택되었습니다! 손계원 님의 책 리뷰도 참고하세요. 지금 온라인/오프라인 서점에서 판매 중입니다! [교보문고] [Yes24] [알라딘] [한빛미디어] [전자책]

책에 넣기 위해 제가 손으로 직접 그린 혼공 머신러닝의 로드맵입니다. 당연히 책에는 풀컬러 그래픽으로 완전 멋지게 들어가 있습니다. ㅎ

감사합니다! 🙂

핸즈온 머신러닝 3판, 생성 AI 2판 노트북 재실행 및 에러타 반영

<핸즈온 머신러닝 3판>과 <생성 AI 2판>의 주피터 노트북을 사이킷런 1.2.2, 텐서플로 2.15 버전에서 재실행하여 깃허브에 반영했습니다. 다음은 핸즈온 머신러닝 3판 원서 노트북의 주요 변경 사항을 반영한 내용입니다.

  • (p230) 사이킷런 1.5에서 LinearSVC의 dual 매개변수 기본값이 True에서 "auto"로 바뀔 예정입니다. 동일한 결과가 유지되도록 명시적으로 True로 지정합니다. 중간 코드 블록에서 LinearSVC(C=1, random_state=42)를 LinearSVC(C=1, dual=True, random_state=42)로 수정합니다.
  • (p309) 사이킷런 1.4버전에서 fetch_openml() 함수의 parser 매개변수 기본값이 'liac-arff'에서 'auto'로 바뀌었습니다. 이전 버전에서도 동일한 결과를 내도록 명시적으로 'auto'로 지정합니다. 코드 블록에서 fetch_openml('mnist_784', as_frame=False)를 fetch_openml('mnist_784', as_frame=False, parser='auto')로 수정합니다.
  • (p329, p341, p343) 사이킷런 1.4 버전에서 KMeans의 n_init 매개변수 기본값이 10에서 "auto"로 바뀔 예정입니다. 이전 버전과 호환을 위해 KMeans 객체를 생성할 때 n_init=10으로 지정합니다.
  • (p335) 사이킷런 1.4 버전에서 MiniBatchKMeans의 n_init 매개변수 기본값이 3에서 "auto"로 바뀔 예정입니다. 이전 버전과 호환을 위해 MiniBatchKMeans 객체를 생성할 때 n_init=3으로 지정합니다.
  • (p418) tensorboard.dev 서비스가 종료됨에 따라 페이지 중간의 팁을 삭제합니다.
  • (p472) 페이지 아래쪽 코드 블록에서 weight_decay=1e-4를 decay=1e-4로 수정합니다. 50번 주석을 다음과 같이 바꿉니다. “옮긴이_ 옵티마이저의 decay 매개변수는 사용 중지되었습니다. decay 매개변수를 가진 구형 옵티마이저는 tf.keras.optimizers.legacy에 아직 있습니다. 하지만 그대신 tf.keras.optimizers.schedules를 사용해야 합니다. 자세한 사용 방법은 주피터 노트북을 참고하세요.”

감사합니다!

“실무로 통하는 ML 문제 해결 with 파이썬”이 출간되었습니다!

2024년 첫 도서가 출간되었습니다! <실무로 통하는 ML 문제 해결 with 파이썬>은 2019년에 출간된 <파이썬 라이브러리를 활용한 머신러닝 쿡북>의 2판에 해당됩니다.

2판에서는 딥러닝 라이브러리로 파이토치를 사용하고 많은 내용이 보강되었습니다!

SciPy Korea 2024!

작년에 이어 SciPy Korea가 다시 돌아왔습니다. 올해에는 5월 3일(금) 오후 6시 역삼동 마루180에서 네 분의 연사자를 모시고 데이터 과학 분야에서 가장 뜨거운 주제를 다루어 볼까 합니다. 티켓은 페스타에서 4월 24일 오전 10시부터 판매합니다. 티켓 가격은 1만원입니다. 올해에도 많은 출판사에서 후원을 해 주셨습니다. 80명의 참가자에게 나눠드릴 80권의 IT 도서가 여러분을 기다리고 있습니다! 이 기회를 꼭 놓치지 마세요! 🙂 자세한 내용은 페스타 페이지를 참고하세요.

Machine Learning with Python Cookbook 2nd Ed. 번역 완료

<Machine Learning with Python Cookbook 2판>의 번역을 완료했습니다. 2판에서는 1판의 큰 틀을 유지하면서 1판에서 부족했던 레시피를 많이 추가했습니다.

특히 2판에서는 딥러닝 파트의 해결책을 만드는데 사용하는 라이브러리를 케라스에서 파이토치로 변경했고 딥러닝 부분의 레시피도 훨씬 늘렸습니다. 파이토치를 주로 사용하는 사용자들의 입맛에 잘 맞을 것 같다는 생각이 드네요.

그럼 조판이 되어 출간이 준비되면 다시 알려 드리겠습니다. 기대해 주세요! 🙂

Scikit-Learn 1.4, TensorFlow 2.16 릴리스

얼마전 사이킷런 1.4 버전이 릴리스되었습니다. 이번 버전에서 추가된 주요 기능으로 HistGradientBoosting 모델에서 데이터프레임의 범주형 특성을 지원합니다. 또한 Polars 데이터프레임을 지원합니다. 랜덤 포레스트에서 누락된 값을 지원합니다. 이에 대한 자세한 내용은 사용자 가이드 문서를 참고하세요.

텐서플로 2.16 버전이 릴리스되었습니다. 2.16버전부터 케라스 3.0이 기본이 됩니다. 만약 케라스 2.0버전을 사용하고 싶다면 tf-keras 패키지를 설치하여 사용하세요. 2.16버전부터 tf.estimator가 삭제되었습니다. 파이썬 3.12 버전을 지원하기 시작합니다. CUDA 12.3과 cuDNN 8.9.7을 사용합니다. 자세한 내용은 릴리스 노트를 참고하세요.

아직 코랩의 사이킷런 버전은 1.2.2이고 텐서플로 버전은 2.15입니다. 🙂

Essential Math for Data Science 번역 완료!

작년 말부터 작업해 오던 <Essential Math for Dat a Science> 번역을 드디어 마쳤습니다! 이 책은 데이터 과학과 머신러닝에 꼭 필요한 수학을 소개하고 익힐 수 있는 책입니다. 벡터, 선형대수학, 미적분, 확률, 통계, 그리고 선형 회귀, 로지스틱 회귀, 신경망 훈련을 위한 경사 하강법까지 한 권에 알차게 담았습니다. 각 장의 내용은 다음을 참고해 주세요.

  • 1장은 오랫동안 잊고(!) 있었던 기본 수학을 다시 곱씹어 봅니다. 정수론, 변수, 함수, 거듭제곱, 로그, 자연 상수, 극한, 미분, 편미분, 연쇄법칙, 적분 등입니다. 다루는 개념이 많지만 꼭 필요한 것만 담고 있기 때문에 지루하지 않게 읽을 수 있습니다. 간간히 수학 공식이 나오지만 오래전(!) 다 배웠던 것들이라.. 콜록.. 파이썬으로 식을 계산하여 결과를 확인할 수 있습니다. 특별히 이 책은 기호 계산을 위해 심파이(sympy)를 사용합니다. 덕분에 결괏값이 깔끔하게 딱 떨어지죠.
  • 2장은 무시무시한 확률을 다룹니다. 먼저 확률과 가능도의 차이를 소개하고 오즈 비를 설명합니다. 그다음 결합 확률과 합 확률을 설명합니다. 그리고 조건부 확률과 베이즈 정리가 나옵니다. 커피를 마시는 사람이 암이 걸릴 확률이란 질문으로 언뜻 복잡하게 보이는 조건부 확률을 (모든 사람이 동의하지는 않을 수 있지만) 아주 쉽게 설명해 줍니다. 마지막으로 여러 가지 상황에서 유용하게 사용할 수 있는 이항 분포와 베타 분포를 설명하고 장을 마칩니다.
  • 3장은 기술 통계와 추론 통계를 다룹니다. 둘 사이의 차이점을 간단히 소개하고 모집단과 편향을 설명합니다. 특히 자기 선택 편향과 생존 편향을 예로 들어 설명합니다(네 생존 편향에는 영국 전투기 이야기가 빠질 수 없죠). 이어서 대표적인 기술 통계인 평균, 중앙값, 모드, 분산, 표준 편차를 소개합니다. 특히 분산과 표준 편차는 모집단과 표본의 경우를 나누어 설명합니다. 그다음 정규 분포를 소개하고 확률 밀도 함수와 누적 분포 함수(CDF), 역 CDF를 파이썬으로 계산하는 방법을 소개합니다. 책을 읽다보면 이런 개념이 어디에 사용되는지도 잘 이해할 수 있습니다. z 점수를 소개하면서 기술 통계를 마치고 추론 통계로 넘어갑니다. 추론 통계의 핵심인 중심 극한 정리, 신뢰 구간, p 값을 차례로 설명합니다. 표본이 늘어날 수록 중심 극한 정리가 어떻게 맞아 떨어지는지 확인할 수 있습니다. 단측 검정과 양측 검정을 활용한 가설 검정을 배우고 마지막으로 t 분포를 소개하는 것으로 장을 마칩니다.
  • 4장은 선형대수학을 다룹니다. 추상적이라 늘 헷갈리는 벡터와 선형 변환에 대해 넘파이를 사용해 차근차근 이해도를 높이는 식으로 글을 전개합니다. 이 과정에서 기저 벡터와 선형 종속에 대해 배울 수 있고, 행렬 곱셈을 익히게 됩니다. 넘파이 dot()과 matmul()의 차이도 엿볼 수 있습니다. 넘파이로 행렬식을 계산하는 방법과 행렬식이 기하학적으로 어떤 의미를 가지는지 알 수 있습니다. 이어서 몇가지 특수 행렬에 대한 소개가 이어집니다. 정방 행렬, 항등 행렬, 역행렬, 대각 행렬, 삼각 행렬, 희소 행렬입니다. 역행렬을 이용하여 연립 방정식의 해를 구하는 방법을 배웁니다. 이때 넘파이와 심파이 둘 다 사용해 이를 구현합니다. 마지막으로 고윳값과 고유 벡터를 설명하고 마칩니다.
  • 5장은 선형 회귀를 다룹니다. 먼저 간단하게 선형 회귀를 소개하고 사이킷런을 사용해 토이 데이터셋에서 회귀 모델을 훈련해 봅니다. 그다음 잔차와 제곱 오차에 대해 설명하고 최적의 직선을 찾기 위한 세가지 방법을 차례대로 나열합니다. 닫힌 형식 방정식, 역행렬, 경사 하강법입니다. 이 장에서는 손실 함수의 도함수를 구해 경사 하강법을 파이썬으로 직접 구현합니다. 그리고 과대적합과 분산에 대해서도 배웁니다. 만드는 것에 그치지 않고 상관계수, 통계적 유의성, 예측 구간 등을 사용해 모델을 평가하는 방법을 배웁니다. 마지막으로 훈련/테스트 세트 분할 방법과 다중 회귀를 소개합니다.
  • 6장은 선형 회귀의 짝궁인 분류 문제를 위한 로지스틱 회귀를 다룹니다. 오즈 비, 로그 오즈, 로지스틱 함수를 설명하고 5장과 마찬가지로 경사 하강법을 사용해 로지스틱 회귀 모델을 최적화하는 방법을 설명하고 구현합니다. 분류 모델을 분석하기 위해 널리 사용하는 오차 행렬, 정밀도, 재현율을 소개하고 ROC 곡선과 AUC 값을 사용해 모델을 평가하는 방법을 설명합니다. 마지막으로 클래스 불균형에 대해서 언급하네요.
  • 7장은 신경망을 다룹니다. 은닉층이 하나인 간단한 피드포워드 신경망을 소개하고 각 노드에서 어떻게 계산이 수행되는지 그림과 함께 설명합니다. 그리고 여러 종류의 활성화 함수를 소개하고 장단점과 일반적으로 사용되는 층을 안내합니다. 랜덤하게 초기화된 신경망으로 일단 정방향 계산을 수행하여 출력 결과를 얻는 방법을 보여줍니다. 그다음 랜덤하게 초기화된 가중치를 최적화하기 위해 역전파를 소개합니다. 이를 위해 연쇄 법칙으로 각 가중치에 대한 손실 함수이 도함수를 구하는 방법을 그림과 함께 자세히 안내합니다. 마지막으로 사이킷런이 다층 퍼셉트론 클래스를 사용하는 예제를 소개합니다. 또한 신경망과 딥러닝의 한계에 대해 이야기하면서 끝을 맺습니다.
  • 8장은 이 책의 나머지 장과 사뭇 다릅니다. 이 장은 데이터 과학자로서 어떻게 커리어를 성장시켜야 하는지 조언이 담겨 있습니다. 또한 기존 시장에 대한 비판적 시각도 읽을 수 있습니다. 먼저 정의할 수 없는(?) 데이터 과학을 다시 정의해 봅니다. 어디까지 데이터 과학의 범주일까요? 그리고 데이터 과학의 간략한 역사를 되짚어 봅니다. 이어서 데이터 과학자로서 자신만의 강점을 기르기 위해 SQL, 프로그래밍, 데이터 시각화에 대해 자세히 안내합니다. 백미는 데이터 과학자의 역할에서 주의해야 할 점을 나열한 부분입니다. 직함은 데이터 과학자인데 불량 IT 팀이 되어 버렸나요? 그렇다면 8장을 꼭 읽으세요!

2023년을 회고하며

SciPy Korea 2023 행사를 도와주신 스탭과 발표자

2023년에도 마음의 평화는 쉽게 오지 않았습니다. 세상과 주변의 어지러움은 혼자만의 시간을 가질 때도 마음을 흔들어 놓기 쉽상입니다. 그래서 더 책에 몰두했는지도 모르겠습니다.

올해는 7권의 책을 냈습니다. 아마도 1년에 이보다 더 많은 책을 내기는 힘들지 않을까 생각됩니다. 집필서 2권, 번역서 5권입니다. <생성 AI>과 <핸즈온 머신러닝> 개정판은 전작의 성공에 힘입어 독자들의 선택을 많이 받고 있어 기쁩니다. 기대했던 <챗GPT로 대화하는 기술>과 <코딩 뇌를 깨우는 파이썬> 책은 만족스러운 성과를 내지 못하고 있네요. 그래도 올해가 가기전에 <스티븐 울프럼의 챗GPT 강의>와 <머신 러닝 교과서: 파이토치 편>을 내놓게 되어 정말 기뻤습니다. 연초에 냈던 <혼자 공부하는 데이터 분석 with 파이썬>도 혼공 시리즈의 하나로 잘 자리잡고 있는 것 같아 다행입니다. 내년에는 지금 번역하고 있는 <Essential Math for Data Science>와 <Machine Learning with Python Cookbook 2nd Ed.>이 예정되어 있습니다. 이 외에도 집필과 번역을 조금 더 하게 될 것 같습니다.

책 쓰는 일 이외에 강의도 병행을 하려고 노력하고 있습니다. 올해 KEA(한국전자정보통신산업진흥회)에서 진행하는 온라인 강의를 하나 맡았습니다. 온라인 강의라 쉬울 줄 알았는데 정작 꽤 힘들었습니다. 다른 강의 선배님들에게 물어보니 온라인이 힘들다 하시더라구요. 내년에는 KEA에서 주관하는 오프라인 강의를 몇 개 더 진행하게 될 것 같습니다. 그리고 숙명여대 비교과 과정으로 여름에 딥러닝 강의도 맡았습니다. 강의와 집필이 시너지를 내어 서로 보완재 역할을 하기를 기대하고 있습니다.

올해는 의도적으로 커뮤니티에 적극 참여했습니다. 연초에 2023Langcon의 스탭으로 참여했고, SciPy Korea 2023을 오거나이징했습니다. 이 두 행사에서 많은 분들을 알게 되었고 커뮤니티 행사에 대한 이해도가 많이 늘었습니다. <핸즈온 머신러닝> 3판 출간 기념으로 튜링의 사과에서 진행한 강의가 기억에 많이 남습니다. 작은 공간이지만 독자와 직접 만나서 소통할 수 있어 뜻 깊었습니다. 앞으로도 이런 시간이 많이 마련되어지길 기대합니다. 제주대학교 이노베이션 특강, 사법정보와연구회, 중앙이음터도서관에서 챗GPT와 관련된 발표를 했습니다. 데보션 테크 데이, AAiCON2023에서 머신러닝 도서 작가에 대한 이야기를 했고, 판교 DevFest에서는 파이썬 타입 힌트에 대해 소개했습니다. 모두연과 대구에서 열린 커뮤나이티드 행사는 선배 오거나이저들의 노하우를 엿들을 수 있는 좋은 기회였습니다. 또 책프협(책쓰는프로그래머협회)의 비어 파티도 모두 참가해 동료 작가, 역자와 친분을 나누고 인프런 네트워킹 파티에도 초청받아 갔습니다. 오프라인 커뮤니티에 참가하면 혼자 동떨어져 글만 쓰는 외로움을 달랠 수 있고 다른 사람과 오해없이 의견을 나눌 수 있어 좋은 것 같습니다.

대전 AAiCON2023에서 제 책을 보고 꿈을 키워 창업을 했다는 한 분을 만나 반갑게 인사한 기억이 납니다. 부디 2024년에는 그 분의 사업이 번창하고 좋은 일만 일어나기를 바랍니다. 며칠이 지나면 이제 한 살을 더 먹습니다. 부디 스스로 조금 더 의연해지기를 기대합니다. 내년엔 모두 건강하시고 행복이 가득하시길 기원드립니다. 감사합니다!

“혼자 공부하는 머신러닝+딥러닝”, “혼자 공부하는 데이터 분석 with 파이썬” 주피터 노트북 재실행 완료

<혼자 공부하는 머신러닝+딥러닝>의 주피터 노트북과 <혼자 공부하는 데이터 분석 with 파이썬>의 주피터 노트북을 코랩, 사이킷런 1.2.2, 텐서플로 2.14.0, 판다스 1.5.3에서 모두 다시 테스트하여 업데이트했습니다! 코드 실행에 문제가 있거나 궁금한 점이 있으면 언제든지 블로그나 깃허브로 알려 주세요!