PyTorch初心者のおすすめ書籍【PyTorch実践入門】で学べること

今回は、ディープラーニングフレームワークの1つである「PyTorch」の入門書、Eli Stevens/Luca Antiga/Thomas Viehmann著「PyTorch実践入門 ディープラーニングの基礎から実装へ」について紹介します。

研究職の筆者は、これまで多数の機械学習・ディープラーニング関連書籍を使って学んできました。他の書籍との比較もしつつ、実際に本書を読んだ感想を交えながら「どんなことが学べるのか?」「どんな人におすすめの書籍か?」について紹介していきます。

とどまるところを知らない機械学習・ディープラーニングの発達に焦りを感じ、本書を使って勉強したいと考えている方の参考になれば幸いです!

この記事を読んでわかること
  • この本で学べる内容
  • この本はこんな人におすすめ!
  • この本の良いところ
  • この本を読む前に知っておきたい特徴
  • 「別の書籍がいいかも?」と感じた方へのおすすめ書籍

それでは見ていきましょう!



【PyTorch実践入門】で学べる内容

この参考書は3部構成で、各部で学べる内容は以下の通りです。

第1部
PyTorchの基礎
第1章
ディープラーニングとPyTorchの概要
第2章
訓練済みモデルの利用方法
第3章
PyTorchにおけるテンソルの扱い方
第4章
さまざまなデータをPyTorchテンソルで表現する方法
第5章
ディープラーニングの学習メカニズム
第6章
ニューラルネットワーク入門
第7章
画像分類モデルの構築
第8章
畳み込み(Convolution)
第2部
ディープラーニングの実践プロジェクト:肺がんの早期発見
第9章
肺がん早期発見プロジェクトの解説
第10章
LUNAデータをPyTorchデータセットに変換
第11章
結節候補を画像分類するモデルの構築
第12章
評価指標とデータ拡張を用いたモデルの改善
第13章
セグメンテーションを用いた結節の発見
第14章
結節・腫瘍解析システムの全体を構築
第3部
デプロイメント(Deployment)
第15章
本番環境にモデルをデプロイする方法
(紹介書籍目次より)

第1部ではディープラーニングにおいて基本的な分類問題を扱います。PyTorchのAPI(関数やクラス)の使い方について学びつつ、テンソル畳み込みバックプロパゲーションといったディープラーニングにおける基礎的な概念について学ぶことができます。第1部だけでもページ数は280ページに及び、ディープラーニング・PyTorchの基本についてしっかり学ぶことができます。

第2部ではより実践的な内容に踏み込んでいきます。「肺がんの自動検出ソリューションの構築」を目標として、実践的なプロジェクトへのアプローチの仕方について学ぶことができます。

さらに第3部では、構築したPyTorchをWebサービスやスマートフォンにデプロイ(リリースやインストール)する方法まで学習することができます。

非常に盛りだくさんな内容で、ちゃんと身に着けられるか心配になる方もいるかもしれませんが、そんな方は第1部だけでも十分勉強になるかと思います。実際、本書の翻訳者である小川雄太郎氏も「第2部は少し修練を積んでから読み直す」ことを推奨しています(参考:slideshare「機械学習・ディープラーニング、ITの実装スキル学ぶ方法(と私の場合)」)。入門者のうちは第1部に集中するのもアリなのではないかと思います。



【PyTorch実践入門】はこんな人におすすめ!

この書籍は次のような方におすすめです。

  • PyTorchの基礎について学びたい
    • 上述のように、第1部でしっかりPyTorchの基礎を学ぶことができます。機械学習・ディープラーニングについて基礎的な理解のある人にとっても、「PyTorchでどのように実装するか」を一通り学ぶことができます。
  • 式を使った理論的な説明は少し苦手…
    • ゼロからつくるディープラーニング」(後述)のような他のディープラーニング実装関連書籍に比べると、かなり式を使った説明が少ない印象です。「ディープラーニングを理解しゼロから実装できるようになる」というよりは、「PyTorchを使ってディープラーニングを活用できるようになる」ことに重きを置いているからではないかと思います。
  • 実践的なスキルまで身につけたい
    • ディープラーニングの基礎については学習済みで、「ディープラーニングをどのように実用に活かすのか?」というところまで学びたい方にとっても、本書は良い参考書となるでしょう。そんな方は第2部、第3部を中心に本書を活用することをおすすめします。

【Python実践入門】の良いところ

数あるディープラーニング関連書籍の中でも、PyTorchの基礎的な使い方・実践的な活用について網羅的に学習できる点が本書の特徴です。具体的に、特に良かったポイントを挙げていきます。

  • 第1部は基本的にハイエンドGPUなしで学習できる
    • ディープラーニング入門者にとって気になるポイントの1つが、実行環境ではないかと思います。これから学び始めようという段階で、いきなりハイエンドなGPU搭載マシンを購入するのは難しい場合が多いでしょう。その点、本書の第1部はほぼすべてのコードをノートPCで十分実行可能です。最近では「Google Colab」のような環境も使用できますが、手元のPCでサッと試せるのはありがたいですよね。
  • 基礎事項の解説前にPyTorchのディープラーニングを実装なしで体感できる
    • 基礎について学ぶだけじゃつまらなそう…という方も心配ご無用。本書冒頭で、学習済みモデルを使ったディープラーニングネットワークを実行しつつ、PyTorchモデルがどのように動作するか体験することができます。画像認識や画像生成、テキスト生成モデルといった幅広い分野へのディープラーニングの応用を実感できるでしょう。これから学ぶ内容を使ってできるようになることを、自分でモデルを構築せずに先取りして体験することができるのは本書の特徴です。
  • 比較的最近出版された書籍でバージョン違いのエラーに悩まされない
    • 本書の原著は2020年8月に初版が発行されました。さらに、翻訳版である本書の発行は2021年1月であり、最新の実行環境を想定して記述されています。
    • 余談ですが、他のフレームワークであるTensorFlowは1.xから2.xへのアップデートで大幅に仕様が変更された部分があり、書籍を使ったプログラミング学習においては発行時期に注意が必要だったりします。
  • Jupyter Notebook形式のサンプルコードが使用できる
    • これは本書に限ったものではありませんが、Jupyter Notebook形式のサンプルコードを使って本書に記載のコードを実行することができます。
    • 学び方は人それぞれですが、写経によって身につくこともあるので、サンプルコードの使用は自分で本書を読みながら書いたコードにエラーが起きたときなどの確認用とするのがおすすめです。



【PyTorch実践入門】を読む前に知っておきたい特徴

数ある機械学習本・ディープラーニング関連書籍の中と比較して、本書の特徴的な点をピックアップしていきます。

  • PyTorchライブラリを使いこなすことにフォーカスした解説書である
    • TensorFlow等他のフレームワークを使用したい方は別の書籍などで学習しましょう
    • 「PyTorchを使うためのディープラーニングの基礎」については解説されているため事前知識は不要ですが、「ディープラーニングそのもの」についてしっかり学びたい方は、別途平行して学習すると良いでしょう。
  • はじめに学習済みモデルを使ってPyTorchを使ってできることを体験できる
    • まずは初歩的な知識から解説していく書籍に退屈さを感じてしまう方には特におすすめです。
  • RNN(リカレントニューラルネットワーク)に関しての解説はほぼなし
    • 取り上げるトピックの内容(画像分類・認識)から、CNN(畳み込みニューラルネットワーク)をベースとした実装がほとんどです。
    • RNNもディープラーニング初心者が学んでおきたい基礎事項ですので、別途学習しましょう。

購入を検討する方の参考情報となれば幸いです!

その他のおすすめ書籍

「自分が学びたいトピックと少し違いそう…」「さらに深く勉強したい」と感じた方へのおすすめ書籍は以下の通りです。ぜひ参考にしてみてください。

[第3版]Python機械学習プログラミング 達人データサイエンティストによる理論と実践

  • ディープラーニングについて学ぶ前に、「そもそも機械学習って?」というところから学習したい方におすすめ
  • scikit-learnやTensorFlowについても学べる

ゼロからつくるDeep Learning

  • PyTorchやTensorFlowのようなフレームワークを用いずに「ゼロから」ディープラーニングの実装をしよう!という書籍
  • ディープラーニングの基礎、畳み込みニューラルネットワークが中心
  • ディープラーニングの仕組みからシッカリ学びたい方におすすめ

ゼロからつくるDeep Learning 2

  • 「ゼロからつくるDeep Learning 2」の続編。引き続き「ゼロから」ディープラーニングを実装する。
  • 自然言語処理や時系列データ処理を取り上げており、RNN(リカレントニューラルネットワーク)について学習できる