“[개정판] 파이썬 라이브러리를 활용한 머신러닝” 사이킷런 0.23 업데이트

[개정판] 파이썬 라이브러리를 활용한 머신러닝“의 코드를 사이킷런 0.23에서 모두 테스트했습니다. 깃허브 코드에도 변경 사항이 모두 반영되었습니다. 자세한 변경 내용은 에러타 페이지나 아래 내용을 참고해 주세요.

감사합니다!

  1. 모델을 훈련할 때 반복 횟수를 늘리라는 경고가 출력되는 것을 막기 위해 max_iter 매개변수 값을 늘립니다.
    1. p87의 In[41], p137의 In[80]: LinearSVC에 max_iter=5000 매개변수 추가
    2. p135의 In[78]: LinearSVC에 max_iter=5000, tol=1e-3 매개변수 추가
    3. p89의 In[43], p90의 In[44]와 In[45], p306의 In[51], p308의 In[55], p310의 In[57], p424의 In[18], p426의 In[22], p428의 In[25], p430의 In[29], p436의 In[39], p442의 In[47]: LogisticRegression에 max_iter=5000 매개변수 추가
    4. p92의 In[47], p278의 In[8], p284의 In[17], p325의 In[5], p336의 In[2], p360의 In[46], p404의 In[23], p424의 In[17]: LogisticRegression에 max_iter=1000 매개변수 추가
    5. p151의 In[95], p152의 In[97]: MLPClassifier에 max_iter=1000 매개변수 추가
    6. p156의 In[102]: MLPClassifier에 max_iter=2000 매개변수 추가
    7. p215의 In[38], p218의 In[42], p234의 In[59]: NMF에 max_iter=1000, tol=1e-2 매개변수 추가
  2. (p156) Out[102] 아래에 출력된 ConversionWarning 메시지 삭제
  3. 사이키런 0.21 버전에서 사분위수보다 샘플 개수가 작을 때 적절히 처리하지 못하는 버그가 수정되었습니다. 샘플 개수가 1,000개보다 작을 때 경고 메시지를 출력하지 않기 위해 QuantileTransformer 클래스에 n_quantiles 매개변수를 지정합니다.
    1. p183의 In[4], p185의 In[9], p186의 In[10]: QuantileTransformer에 n_quantiles=50 매개변수 추가
    2. p185의 In[8]: QuantileTransformer에 n_quantiles=5 매개변수 추가
  4. (p360) 사이킷런 0.24 버전에서 DummyClassifier의 strategy 매개변수 기본값이 stratified에서 prior로 변경된다는 경고를 피하기 위해 strategy='stratified' 매개변수를 추가합니다.
  5. (p388) metrics.scorer 모듈이 사이킷런 0.24 버전에서 삭제됩니다. 맨 위 첫 줄의 “metrics.scorer 모듈의 SCORERS 딕셔너리를 봐도 됩니다” 문장과 In[77], Out[77]을 삭제합니다.

[핸즈온 머신러닝 2], [파이썬을 활용한 머신러닝 쿡북], [머신러닝 교과서] 사이킷런 0.23 업데이트 안내

핸즈온 머신러닝 2, 파이썬을 활용한 머신러닝 쿡북, 머신러닝 교과서의 깃허브 코드를 사이킷런 0.23에 맞추어 업데이트했습니다! 수정된 내용은 각 책의 에러타 페이지를 참고해 주세요.

감사합니다! 😀

TensorFlow 2.2의 사용자 정의 훈련 반복

텐서플로 2.2의 케라스 API에 train_step 메서드가 추가되었습니다. 이 메서드를 오버라이드하여 사용자 정의 훈련 반복을 케라스 모델 클래스에 통합하는 방법을 소개하는 짧은 영상을 만들었습니다. 재미있게 보세요! 🙂

Scikit-Learn 0.23.0 Release!

사이킷런 0.23.0 버전이 릴리스되었습니다! 0.23.0에서는 드디어 일반 선형 모델(GLM)이 추가되었습니다. PoissonRegressor, GammaRegressor, TweedieRegressor 입니다.

주피터 노트북에서set_config(display='diagram')로 지정하면 추정기를 다이어그램으로 시각화해 줍니다! 와우!

K-평균과 히스토그램 기반 그레이디언트 부스팅이 개선되었습니다. 또한 LassoElasticNet 클래스가 sample_weight 매개변수를 지원합니다.

0.23.0 버전의 주요 변경 사항은 릴리스 하이라이트를 참고하세요. 전체 변경 내용은 릴리스 노트를 참고하세요.

사이킷런 0.23.0은 pipconda 명령으로 설치할 수 있습니다(이 글을 쓰는 시점에는 아직 콘다 패키지가 제공되지 않습니다. 코랩도 아직 0.22.0 버전입니다).

$ pip install --upgrade scikit-learn

$ conda install scikit-learn

(업데이트) KMeans 버그를 수정한 0.23.1 버전이 릴리스되었습니다.

[Do It! 딥러닝 입문], [파이썬을 활용한 머신러닝 쿡북], [머신러닝 교과서] 텐서플로 2.2.0 업데이트 안내

Do It! 딥러닝 입문, 파이썬을 활용한 머신러닝 쿡북, 머신러닝 교과서의 깃허브 코드를 최신 텐서플로 2.2.0에 맞추어 업데이트했습니다.

[파이썬을 활용한 머신러닝 쿡북]의 20장과 21장이 멀티백엔드 케라스를 사용하고 있습니다. 이 두 장의 코드를 텐서플로의 tf.keras API를 사용하도록 업데이트했습니다. 깃허브를 참고해 주세요.

[핸즈온 머신러닝 2]의 깃허브 코드도 모두 텐서플로 2.2.0에서 확인하겠습니다. 🙂

TensorFlow 2.2.0 Release

텐서플로 2.2.0이 릴리스되었습니다. 주요 변경 사항은 다음과 같습니다.

  • 텐서플로 데브 서밋에 소개되었던 프로파일러가 추가되었습니다. 자세한 내용은 튜토리얼과 가이드 문서를 참고하세요.
  • 분산 환경에서 전역 배치 정규화를 지원하는 tf.keras.layers.experimental.SyncBatchNormalization 층이 추가되었습니다.
  • tf.distribute.experimental.MultiWorkerMirroredStrategy 성능이 향상되었습니다.
  • Model.train_step 메서드를 오버라이드하여 사용자 정의 훈련 루프를 만들 수 있습니다. 또한 Model.test_step, Model.predict_step을 사용해 검증과 추론 메서드도 오버라이드할 수 있습니다.

현재 코랩의 텐서플로 버전은 2.2.0-rc4입니다. 코랩의 텐서플로 버전이 2.2.0로 업데이트되었습니다. 2.2.0 버전의 자세한 변경 내용은 릴리스 노트를 참고하세요.

텐서플로 2.2.0 버전은 다음 명령으로 설치할 수 있습니다.

# for cpu and gpu
$ pip install --upgrade tensorflow
# cpu-only
$ pip install --upgrade tensorflow-cpu

[독서 후기] 은밀한 설계자들

이 책의 원제는 ‘Coders’입니다. 프로그래머에 대해 이야기하는 책이죠. 그런 면에서 ‘은밀한 설계자들’이란 제목은 조금 어색해 보였습니다. 왠지 프로그래머를 부정적으로 바라보는 것 같거든요. 책을 읽어 가면서 번역서의 제목을 왜 이렇게 붙였는지 조금은 이해되었습니다. 이 책의 전반부는 어디선가 읽어 보았음직한 익숙한 패턴을 따릅니다. 오래된 프로그래머의 전설적인 경험담이나 성공한 창업가의 이야기입니다. 책 후반부에 성별과 인종에 따른 편견을 꼬집고 있지만 앞부분은 오히려 프로그래머는 어떤거야라는 편견을 독자에게 주입하고 있는 듯한 모순이 있습니다.

책의 이야기는 조금씩 프로그래머 개인의 특질에서 공동체가 해결해야할 문제로 화두를 옮깁니다. 여성 개발자에 대한 편견을 정면으로 다룬 것은 특히 그렇습니다. 초기 프로그래머는 진짜 여성들이었습니다. 영화 히든 피겨스도 다시 생각이 났습니다. 머신러닝 분야도 다양성이란 측면에서 자유롭지 못한 것 같습니다. 백인 남성이 주류가 된 소프트웨어 시장의 문제를 보면서 우리도 학력과 성별에 어떤 편견을 가지고 있는지 돌아 볼 필요가 있습니다.

인공지능을 다루는 장에서 전통적인 프로그래머와 인공지능 프로그래머의 차이를 비교적 잘 설명하고 있습니다. 또 인공지능이 저지르는 편견은 결국 사람의 편견에서 시작된다는 것을 이해하도록 돕고 있습니다. 이런 편견은 현실은 반영하기 때문에 정당한 것일까요? 아니면 의도적으로 고쳐야 할까요? 설명 가능한 인공지능에 대해서도 고민할 것이 많은 것 같습니다. 페이스북과 구글과 같은 빅테크에 저항감을 느끼는 것은 남의 이야기가 아닙니다. 조금 더 사용자들을 붙잡아 두기 위해 게임과 웹툰, 광고에 쏟아 붓는 프로그래머들의 노력과 창의성을 자랑스러워할 수 있을까요?

이 책의 전반부는 프로그래머가 되고 싶은 분과 이들과 함께 일하는 분들이 읽어 보면 좋습니다. 후반부는 이미 프로그래머이거나 인공지능 개발자가 되고 싶은 분에게 권하고 싶습니다. 특히 7장, 9장은 읽어 둘 가치가 있습니다. 잠시 시간을 내면 서점에 가서 금방 읽을 수 있습니다. 🙂

핸즈온 머신러닝 2판의 변경 부분

핸즈온 머신러닝 2판의 주요 목표 6개는 다음과 같습니다:

  1. 추가적인 ML 주제를 다룹니다: 비지도 학습 기법(군집, 이상치 탐지, 밀도 추정, 혼합 모델), 심층 신경망 훈련 방법(자기 정규화 신경망), 컴퓨터 비전 기법(Xception, SENet, YOLO를 사용한 객체 탐지, R-CNN을 사용한 시맨틱 분할), CNN으로 시퀀스 다루기(WaveNet), RNN/CNN/트랜스포머를 사용한 자연어 처리, 생성적 적대 신경망.
  2. 추가적인 라이브러리와 API를 다룹니다: 케라스, 데이터 API, 강화 학습을 위한 TF-Agents, 분산 전략 API를 사용한 대규모 TF 모델 훈련과 배포, TF 서빙, 구글 클라우드 AI 플랫폼.
  3. 최근 딥러닝 연구 중에서 중요한 결과를 담습니다.
  4. 모든 텐서플로 관련 장을 텐서플로 2로 업그레이드하고 코드를 간소화하기 위해 가능하면 케라스 API(tf.keras)를 사용해 텐서플로 모델을 구현합니다.
  5. 사이킷런, 넘파이, 판다스, 맷플롯립 등의 최신 라이브러리에 맞춰 예제 코드를 업데이트합니다.
  6. 일부 섹션을 명확하게 바꾸고 에러를 고칩니다.

추가된 장과 새로 쓰거나 재배치된 장이 있습니다. 다음 표는 1판과 2판의 장 사이에 연관성을 보여줍니다:

1판의 장 2판의 장 변경량(%) 2판의 제목
1 1 <10% 한눈에 보는 머신러닝
2 2 <10% 머신러닝 프로젝트 처음부터 끝까지
3 3 <10% 분류
4 4 <10% 모델 훈련
5 5 <10% 서포트 벡터 머신
6 6 <10% 결정 트리
7 7 <10% 앙상블 학습과 랜덤 포레스트
8 8 <10% 차원 축소
N/A 9 100% 추가 비지도 학습
10 10 ~75% 케라스를 사용한 인공 신경망 소개
11 11 ~50% 심층 신경망 훈련하기
9 12 100% 재작성 텐서플로를 사용한 사용자 정의 모델과 훈련
12장 일부 13 100% 재작성 텐서플로에서 데이터 적재와 전처리하기
13 14 ~50% 합성곱 신경망을 사용한 컴퓨터 비전
14장 일부 15 ~75% RNN과 CNN을 사용해 시퀀스 처리하기
14장 일부 16 ~90% RNN과 어텐션을 사용한 자연어 처리
15 17 ~75% 오토인코더와 GAN을 사용한 표현 학습과 생성적 학습
16 18 ~75% 강화 학습
12장 일부 19 ~75% 추가 대규모 텐서플로 모델 훈련과 배포

조금 더 구체적인 2판의 주요 변경 사항은 다음과 같습니다(설명 보완, 오류 수정, 코드 업데이트는 제외합니다):

  • 1장 – 한눈에 보는 머신러닝
    • ML 애플리케이션 사례와 알고리즘 추가
    • 훈련 세트와 검증 세트/테스트 세트가 다를 때 처리 방법 추가
  • 2장 – 머신러닝 프로젝트 처음부터 끝까지
    • 신뢰 구간 계산 방법 추가
    • 설치 안내 보강 (예를 들어, 윈도우 환경)
    • 업그레이드된 OneHotEncoder와 새로운 ColumnTransformer 소개
    • 배포, 모니터링, 유지보수에 관한 상세 내용 추가
  • 4장 – 모델 훈련
    • 훈련 샘플이 IID를 만족해야 하는 필요성 설명
  • 7장 – 앙상블 학습과 랜덤 포레스트
    • XGBoost 절 추가
  • 9장 – 비지도 학습 (새로운 장)
    • K-평균을 사용한 군집, 클러스터 수를 선택하는 방법, 차원 축소 용도로 사용하는 방법, 준지도 학습, 이미지 분할 등
    • DBSCAN 군집 알고리즘과 사이킷런에 있는 다른 군집 알고리즘 소개
    • 가우시안 혼합 모델, EM 알고리즘, 베이지안 변분 추론, 혼합 모델을 군집, 밀도 추정, 이상치 탐지, 특이치 탐지에 사용하는 방법
    • 다른 이상치 탐지와 특이치 탐지 알고리즘 소개
  • 10장 – 케라스를 사용한 인공 신경망 소개 (거의 다시 씀)
    • 케라스 (시퀀셜, 함수형, 서브클래싱) API 소개, 모델 저장, (TensorBoard 콜백을 포함한)콜백 추가
  • 11장 – 심층 신경망 훈련하기 (변경 사항 많음)
    • 자기 정규화 신경망, SELU 활성화 함수, 알파 드롭아웃 소개
    • 자기 지도 학습 소개
    • Nadam 최적화 추가
    • 몬테 카를로 드롭아웃 추가
    • 적응적 최적화 방법의 위험에 관한 노트 추가
    • 실용적 가이드라인 업데이트
  • 12장 – 텐서플로를 사용한 사용자 정의 모델과 훈련 (완전히 재작성)
    • 텐서플로 2 소개
    • 텐서플로의 저수준 파이썬 API
    • 사용자 정의 손실 함수, 지표, 층, 모델 작성하기
    • 자동 미분을 사용하여 사용자 정의 훈련 알고리즘 만들기
    • 텐서플로 함수와 그래프 (트레이싱과 오토그래프 포함)
  • 13장 – 텐서플로에서 데이터 적재와 전처리하기 (새로운 장)
    • 데이터 API
    • TFRecord를 사용하여 효율적으로 데이터 적재/저장
    • 사용자 정의 전처리 층 작성, 케라스 전처리 층 사용, 원-핫 벡터/BoW/TF-IDF/임베딩을 사용해 범주형 특성과 텍스트 인코딩
    • TF 변환과 TF 데이터셋 소개
    • 저수준 신경망 구현을 연습문제로 이동
    • 데이터 API로 대체된 큐와 리더 내용을 삭제
  • 14장 – 합성곱 신경망을 사용한 컴퓨터 비전
    • Xception과 SENet 구조 추가
    • ResNet-34의 케라스 구현 추가
    • 케라스로 사전 훈련된 모델 사용하는 방법
    • 엔드-투-엔드 전이 학습 예제 추가
    • 분류와 위치 추정(localization) 추가
    • 완전 합성곱 신경망(FCN) 소개
    • YOLO 구조를 사용한 객체 탐지 소개
    • R-CNN을 사용한 시맨틱 분할 소개
  • 15장 – RNN과 CNN을 사용해 시퀀스 처리하기
    • Wavenet 소개 추가
    • 인코더-디코더 구조와 양방향 RNN을 16장으로 이동
  • 16장 – RNN과 어텐션을 사용한 자연어 처리 (새로운 장)
    • 시퀀셜 데이터를 다루기 위해 데이터 API 사용하는 방법 설명
    • 상태가 있는 경우와 상태가 없는 Char-RNN을 사용한 엔드-투-엔트 텍스트 생성 예제
    • LSTM을 사용한 엔드-투-엔드 감성 분석 예제
    • 케라스 마스킹 설명
    • TF 허브를 사용해 사전 훈련된 임베딩 재사용하는 방법
    • 텐서플로 애드온의 seq2seq를 사용해 신경망 기계 번역을 위한 인코더-디코더 만드는 방법
    • 빔 검색 소개
    • 어텐션 메커니즘 소개
    • 비주얼 어텐션에 대한 간단한 소개와 설명 가능성에 대한 노트 추가
    • 위치 임베딩과 멀티-헤드 어텐션을 포함한 완전한 어텐션 기반 트랜스포머 구조 소개
    • 최신 언어 모델에 대한 소개 추가 (2018년)
  • 17장 – 오토인코더와 GAN을 사용한 표현 학습과 생성적 학습
    • 합성곱 오토인코더와 순환 오토인코더 추가
    • 기본 GAN, 심층 합성곱 GAN(DCGAN), ProGAN, StyleGAN을 포함한 생성적 적대 신경망(GAN) 추가
  • 18장 – 강화 학습
    • 더블 DQN, 듀얼링 DQN, 우선 순위 기반 경험 재생
    • TF Agents 소개
  • 19장 – 대규모 텐서플로 모델 훈련과 배포 (거의 다시 씀)
    • TF 서빙과 구글 클라우드 AI 플랫폼을 사용한 텐서플로 모델 서빙
    • TFLite를 사용하여 모바일이나 임베디드 장치에 모델 배포하기
    • GPU를 사용하여 계산 속도를 높이기
    • 분산 전략 API를 사용해 여러 장치에서 모델 훈련하기

‘핸즈온 머신러닝 2판’이 출간되었습니다!

오렐리앙 제롱Aurélien Géron이 쓴 아마존 베스트 셀러 “Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow 2nd Edition“을 번역한 핸즈온 머신러닝 2판이 출간되었습니다.

1판도 좋았지만 2판은 더욱 더 알차고 폭넓은 주제를 다루고 있습니다. 1판에서 아쉬웠던 비지도 학습과 텐서플로 2로 바뀌면서 변경된 내용, 새로운 신경망 구조를 가득 담고 있습니다.

번역서도 원서와 마찬가지로 풀 컬러로 인쇄됩니다. 전체 페이지는 952페이지 입니다. 무엇보다도 딥러닝을 다루는 2부의 내용이 크게 늘었기 때문입니다. 케라스 뿐만 아니라 RNN의 최근 발전을 많이 포함하고 있고 GAN을 새롭게 추가했습니다. 또한 강화 학습 챕터도 크게 증가했습니다. 한마디로 백과사전이 따로 없죠! 🙂

이 책은 온라인/오프라인 서점에서 판매 중입니다! Yes24교보문고알라딘, 한빛미디어

  • 이 책의 주피터 노트북을 한글로 번역하여 제 깃허브에 올리고 있습니다.
  • 혼자 공부하시는 분들을 위해 유튜브에 동영상 강좌를 올리고 있습니다!
  • 이 동영상은 인프런에서도 볼 수 있습니다.

핸즈온 머신러닝 2/E 번역 후기

핸즈온 머신러닝 2판(Hands-on Machine Learning with Scikit-Learn, Keras & TensorFlow)의 번역을 마치고 후기를 남깁니다. 2판 원서는 작년 9월에 나왔습니다. 1판에 이어 역시 아마존 베스트 셀러가 되었네요. 번역 완료는 예상보다 조금 늦었습니다. 많은 분들이 기다리실텐데 죄송합니다. ㅠ.ㅠ 아마 4월 중순에 서점에서 만날 수 있을 것 같습니다.

도움을 주신 한빛미디어 윤나리 님, 교정을 봐주신 백지선 님께 감사드립니다.

2판은 1판에 비해 딥러닝 부분이 대폭 바뀌었고 분량도 크게 늘어났습니다. 텐서플로 2가 릴리스되었고 케라스가 핵심 API로 채택되면서 어느정도 예상되었습니다. 원서는 800페이지가 조금 넘습니다. 번역서는 900페이지를 훌쩍 넘길 것 같습니다. 또 원서와 마찬가지로 풀 컬러로 인쇄됩니다. 그럼 어떤 부분이 바뀌었는지 간단히 정리해 보겠습니다.

신경망을 소개하는 챕터를 유지하면서 케라스 소개를 추가했습니다. 특히 케라스를 사용한 사용자 정의 모델, 층, 측정 지표, 손실 함수 등을 자세히 소개한 점이 좋습니다. 새롭게 소개된 tf.data와 TFRecord, TF Datasets을 챕터 하나를 할애하여 자세히 설명하고 있습니다.

합성곱 신경망의 서두는 1판의 내용을 유지하면서 새로운 모델과 객체 탐지(object detection)와 시맨틱 분할(semantic segmentation)을 추가했습니다. 순환 신경망은 많이 바뀌었습니다. 기계 번역을 조금 더 자세히 설명하고 어텐션 메카니즘과 트랜스포머를 소개합니다. 2판에서는 RNN과 CNN을 사용한 시퀀스 처리에 별도의 장을 할애했습니다. 이름과는 달리 1D 합성곱이 끝에 살짝 나와서 사실 RNN 장이 거의 두 배로 늘어난 셈입니다.

1판의 오토인코더 장에 GAN이 추가되었습니다. DCGAN, ProGAN, StyleGAN을 포함합니다. GAN만 보아서는 조금 아쉽습니다. 미술관에 GAN 딥러닝을 함께 보면 도움이 될 것 같습니다. 강화학습 챕터도 TF-Agents를 추가하면서 거의 두 배로 분량이 늘어났습니다. 늘어난 분량 덕택에 쪽수로 보면 2/3 정도가 딥러닝을 다루게 되었습니다.

1부는 비지도 학습 장이 추가된 것 외에는 큰 변화가 없습니다. 대부분 사이킷런 최신 버전을 반영하고 모호한 표현을 다듬거나 설명을 보완했습니다. 비지도 학습은 1판에서 아쉬웠던 부분 중 하나입니다. 2판에서는 사이킷런을 사용해 K-평균, DBSCAN, 가우시안 혼합 모델을 자세히 소개합니다. 알고리즘 소개에 그치지 않고 여러 활용 사례를 함께 다루고 있어서 좋았습니다.

마지막으로 텐서플로 분산 훈련과 배포에 관한 장도 많이 바뀌었습니다. 충분하지는 않지만 구글 클라우드의 AI 플랫폼을 다루고 있어서 좋았습니다. 때마침 한국에도 구글 클라우드 리전이 생겼으니까요. 구글 클라우드 AI 플랫폼에 대해 조금 더 깊게 다루는 다른 책을 기대하고 있습니다.


번역하는 동안 참 많은 일들이 있었습니다. 작년 말에 오랫동안 미뤄왔던 집수리를 시작했습니다. 짐을 창고에 맡기고 가족이 원룸으로 피신해서 두 달을 살았습니다. 아마 다시는 안할 것 같습니다. ㅠ.ㅠ 몸은 힘들고 고생이 많았지만 지금은 깨끗한 집에서 잘 지내고 있습니다.

이보다 조금 더 일찍 작은 프로젝트에 참여하게 되었습니다. 정해진 기간내에 일을 마쳐야 한다는 강박이 모든 사람을 힘들게 하는 것 같습니다. 원치 않는 상처를 받고 원치 않는 상처를 주고 맙니다. 돌이켜 보면 후회가 많이 됩니다. 힘들 때마다 글쓰는 것이 위로가 되었습니다. 책은 화를 내거나 불평하지 않고 온전히 저만의 세상을 만들어 주기 때문이죠.

지금은 코로나 바이러스로 전 세계가 몸살을 앓고 있습니다. 다행히 제 주변에는 아픈 사람이 없네요. 연일 들려오는 뉴스를 보면 꿈인지 현실인지 믿기지 않습니다. 책 저자인 오렐리앙은 에러타를 등록하면 회신을 잘 해줍니다. 왜 오류가 생겼는지 설명하거나 오류 같지만 아닌 이유를 설명해 주기도 합니다. 그런데 지난해 말부터 에러타에 회신이 없었습니다. 이사를 했기 때문에 바빠서 그런가 보다 생각했죠. 몇 달 만에 메일이 왔는데 그동안 매우 아팠다고 합니다. 친절하게도 코로나 바이스러스 때문에 한국 걱정도 해주었습니다(한 달 전이라 한국이 위험하다고 생각한 것 같습니다. 지금은 정 반대가 되었죠). 오렐리앙도 어서 건강을 찾아 자리를 털고 일어났으면 좋겠습니다.

코로나 바이스러스 때문에 3월 텐서플로 데브 서밋이 취소되어 (구글에서 예약해 준) 호텔과 항공권을 모두 취소했습니다. 또 5월에 초청받은 구글 IO도 취소되었죠. 한국 커뮤니티를 알릴 수 있는 좋은 기회였는데 아쉬웠습니다(심지어 텐서플로 데브 서밋에 제 얼굴과 이름이 나왔는데 말이죠). 아마 올 상반기에는 국내외를 막론하고 개발자를 위한 이벤트가 열리기 어려울 것 같습니다.


이제 곧 텐서플로 2.2.0 버전이 릴리스될 예정입니다. 새 버전에 맞춰 깃허브 노트북을 모두 다시 검토하고 노트북에 있는 텍스트도 번역해야 합니다. 또 그간 미뤄왔던 텐서플로 문서 번역에도 더 공을 들여야겠습니다.

올해는 책 복이 많을 것 같습니다. 머신러닝 분야의 또 다른 좋은 두 책이 기다리고 있기 때문입니다. 하나는 세바스찬 라시카의 Python Machine Learning 3/E입니다(2판은 머신 러닝 교과서로 번역되었습니다). 이미 아마존에서 높은 인기를 얻고 있습니다. 역시 텐서플로 2를 기반으로 많은 변화를 주었고 GAN과 강화학습이 추가되었습니다. 또 하나는 케라스 창시자인 프랑소와 숄레의 Deep Learning with Python 2/E입니다(1판은 케라스 창시자에게 배우는 딥러닝으로 번역되었습니다). 프랑소와의 책도 Keras 패키지에서 tf.keras로 바꾸고 CNN, RNN의 고급 기법을 많이 다룰 것으로 예상됩니다. 프랑소와의 책은 기술 뿐만 아니라 딥러닝에 대한 저자의 견해를 읽을 수 있기 때문에 기대가 많이 됩니다.


쓰다 보니 길어졌네요. 요즘엔 건강이 최곱니다. 코로나 바이러스 주의하시구요. 핸즈온 머신러닝 2/E은 곧 찾아 뵙겠습니다. 기대해 주세요! 🙂