2022年にお世話になったオライリーのPython書籍5選

# はじめに
みずほリサーチ＆テクノロジーズ株式会社　先端技術研究部の@fujineです。

[Python Advent Calendar 2022](https://qiita.com/advent-calendar/2022/python)の4日目である本記事では、今年の振返りとして、**2022年にオライリーから出版されたPython書籍5選を紹介**させていただきます。

本記事が、
- これからPythonで**機械学習を学ぼうとしている**
- すでに担当業務やコンペ等で機械学習を扱っており、**近年のトレンドや実践的な知見を得たい**
- E資格などのAI系資格取得に向けて、**数式による理論や仕組みを網羅的に学べる教材を探している**

といった方々の参考になれば幸いです。

# 紹介する書籍一覧
今回ご紹介する各書籍のタイトル、主なカテゴリ、サンプルコードは以下となります。

|出版月|タイトル|主なカテゴリ|サンプルコード|
|---|---|---|---|
|2022/2|[実践 自然言語処理](https://www.oreilly.co.jp/books/9784873119724/)|自然言語処理|[リンク](https://github.com/oreilly-japan/practical-nlp-ja)|
|2022/4|[ゼロから作るDeep Learning ❹](https://www.oreilly.co.jp/books/9784873119755/)|強化学習|[リンク](https://github.com/oreilly-japan/deep-learning-from-scratch-4)|
|2022/4|[Pythonからはじめるアルゴリズムトレード](https://www.oreilly.co.jp/books/9784873119793/)|API、時系列予測|[リンク](https://github.com/innovation1005/python3-for-system-trade)|
|2022/6|[動かして学ぶAI・機械学習の基礎](https://www.oreilly.co.jp/books/9784873119809/)|機械学習全般|[リンク](https://github.com/lmoroney/tfbook)|
|2022/8|[機械学習エンジニアのためのTransformers](https://www.oreilly.co.jp/books/9784873119953/)|自然言語処理|[リンク](https://github.com/nlp-with-transformers/notebooks)|

:::note info
ご紹介にあたっては、各書の所感だけでなく、**過去に出版済みの類似書籍とどう違うのか**、についてもなるべく触れていきたいと思います。
:::

# 実践 自然言語処理

https://twitter.com/oreilly_japan/status/1483696162146328590

https://www.oreilly.co.jp/books/9784873119724/

自然言語処理のコアタスク、一般的なアプリケーション、業界固有のタスクについて、

- テキストデータの特徴量エンジニアリングやパイプラインの基礎と応用
- コアタスク（分類、抽出、生成、要約、質問応答）の実装と評価指標
- ソーシャルメディア、Eコマース、金融、医療などの業界固有のタスクに特化した属性抽出やドメイン適用

等の実装と解説が俯瞰的に整理された書籍です。

タイトルに「実践」とある通り、**数式はほとんど現れず、実装がメイン** です。タスクに応じて複数のライブラリ（`TensorFlow`、`gensim`、`fasttext`、`tweepy`等）やクラウドサービス（Azure、AWS等）が利用されており、タスク毎に適したライブラリやサービスを広く学ぶことにも役立ちます。

本書の対象は英語ですが、付録に **[spaCy](https://spacy.io/)による日本語処理が追加** されており、日本語による固有表現抽出やセンチメント分析等の事例もあるのは有難いです。

**自然言語処理という分野を体系的に学びたい方にピッタリ** な良書です。

:::note warn
オライリーからは「[入門 自然言語処理](https://www.oreilly.co.jp/books/9784873114705/)」という類似タイトル（クジラの表紙）も出版されていますが、これは10年以上も前の書籍であり、使用されているPython2はすでにサポートを終了しているため、間違えて購入されないようご注意下さい。
:::

# ゼロから作るDeep Learning ❹

https://twitter.com/oreilly_japan/status/1504724713238585351

https://www.oreilly.co.jp/books/9784873119755/

2020年までに累計20万部を突破したベストセラーシリーズの第4弾です。

強化学習をテーマとし、

- 教師あり/なし学習とは何が違うのか
- ベルマン方程式、Q学習、方策勾配法などの代表的なアルゴリズムの仕組みや特徴
- DQNの最新事例やその発展系

について、理論と実装を交えて分かりやすく解説されています。

余談ですが、私は2021年8月にE資格を受験・取得した時、強化学習だけは理論寄りの書籍が多く、具体的な問題に落とし込んで理解するのにとても苦戦しました。**もしE資格を今後受験予定の方には、絶対におススメしたい一冊です。** あと1年半早く読みたかった...

# Pythonからはじめるアルゴリズムトレード

https://twitter.com/oreilly_japan/status/1506466123155484680

https://www.oreilly.co.jp/books/9784873119793/

金融データの入手と加工、古典アルゴリズムによる予測、ストリーミング処理によるリアルタイム予測、APIによる自動取引など、Pythonによる自動トレーディングを細かく解説されています。

DBへのデータ保存やコードのクラス化・関数化など、実際に運用・保守するためのノウハウや工夫もあり、 **単なるサンプルコードの寄せ集めではない実践的な工夫が垣間見えます** 。

実際にトレードをしなくても、 **金融取引に関する知識をPythonとともに学ぶ** ことができる1冊でしょう。

:::note info
時系列データのより詳細な分析・学習の手法を学びたい方には、[実践 時系列解析](https://www.oreilly.co.jp/books/9784873119601/)を推奨します。こちらはディープラーニングによる学習や、金融・ヘルスケア等の業界特有のタスクを扱っており、時系列解析をより包括的に習得するのに役立ちます。
:::

:::note warn
本書にも記載の通り、プログラムによるトレードは自己責任で実施願います。
:::

# 動かして学ぶAI・機械学習の基礎

https://twitter.com/oreilly_japan/status/1526841654337994753

https://www.oreilly.co.jp/books/9784873119809/

`TensforFlow`をベースに、画像分類、テキストの分類や生成、時系列予測の他、[TensorFlow Lite](https://www.tensorflow.org/lite)によるAndroid/iOSアプリへの実装例が紹介されています。

タイトルに「基礎」とありますが、ロジスティック回帰などの古典アルゴリズムは本書の対象外であり、ニューラルネットワークを構成する[CNN](https://www.tensorflow.org/tutorials/images/intro_to_cnns?hl=ja)・[RNN](https://www.tensorflow.org/guide/keras/rnn?hl=ja)・[埋め込み](https://www.tensorflow.org/hub/tutorials/cord_19_embeddings?hl=ja)といったコアな仕組みに焦点を当てています。

数式が少なく図表やグラフが多数あるため、 **「TensorFlowはどんなタスクに使えるのか」をざっくり学ぶ** のに良いでしょう。

:::note info
すでに「[scikit-learn、Keras、TensorFlowによる実践機械学習 第2版](https://www.oreilly.co.jp/books/9784873119281/)（以下、後者と呼称）」を購入済みの方は、本書と何が異なるのか気になるかと思います。以下、両方を読了した所感です。

- tensorflowのバージョンはどちらも2系のため、APIに大幅な違いは無いようです。
- 本書には上記内容の他、**TensorFlow LiteやTensorflow.js、AIの倫理やプライバシー**についても十分なページが割かれています。 **ブラウザやモバイル端末向けの機械学習サービスに関心がある方なら、必要な知見が1冊に集約されているのは大きな利点**です。
- **網羅性という観点ならば後者が優れています**。本書の理論や実装例を更に深堀りしつつ、GANや強化学習、複数GPUによる分散処理などの環境構成にも踏み込んでおり、**出版時期の古さが全く気にならないほどの充実ぶり**です。資格取得向けとしてはこちらを推薦しますが、ページ数が800ページとかなり分厚いので持ち歩きには注意しましょう。
:::

# 機械学習エンジニアのためのTransformers

https://twitter.com/oreilly_japan/status/1549563878714986497

https://www.oreilly.co.jp/books/9784873119953/

Transfomersを活用した自然言語処理の代表的なタスク（分類、質問応答、テキスト生成など）について解説されています。

[HuggingFace](https://huggingface.co/)開発者らによる著書に相応しく、Transfomersの基本的なアーキテクチャや理論の解説だけでなく、 **比較的新しい自然言語モデルのアーキテクチャや特徴の紹介に加え、[Trainer](https://huggingface.co/docs/transformers/main_classes/trainer)、[Datasets](https://huggingface.co/docs/datasets)、[Pipeline](https://huggingface.co/docs/transformers/main_classes/pipelines)等の各機能をフル活用した事例が豊富に掲載されているのが特徴** です。

特に、

- ラベルデータが少ない（もしくは全く無い）場合のデータ整備・学習の戦略
- [CLIP](https://huggingface.co/docs/transformers/model_doc/clip)等のマルチモーダルモデルの紹介

は実業務でもよくある課題やニーズであり、とても参考になりました。

Transformersについてこれだけ網羅的に整理された書籍は他になく、**Transfomersをこれから学ぶ人だけでなく、すでに使っている人にも新たな発見が得られる良書** だと思います。

# まとめ
本記事では、今年の振返りとして、**2022年にオライリーから出版されたPython書籍5選を紹介**させていただきました。

個人的には、 **自然言語処理の2冊と強化学習がいずれも完成度が高く、進歩が早い機械学習分野においても数年先までは実用的な名著となる予感** がします。

今回は2022年発行の書籍をまとめてご紹介しましたが、2021年以前にも多数の良書がありますので、折を見て紹介していきたいと思います。

最後までお読みいただき、ありがとうございました。