【書籍紹介】コンピュータビジョンと深層学習の入門者向け書籍[おすすめ書籍ベスト3]

3+

1 はじめに

この記事では,大学の学部4年生ごろにコンピュータビジョン(特に画像・動画認識系)系の研究室に配属された際に「最初の半年にまず読み始めたい,研究初心者向けの書籍」である以下の3冊を,著者のおすすめベスト3として紹介したい.

  1. 画像認識 (機械学習プロフェッショナルシリーズ)
  2. ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
  3. ディジタル画像処理 [改訂第二版]

1.2はディープラーニング世代の話を中心に基礎的な画像認識を学べるテキストであり,3はもっとコンピュータビジョン全般について古いものから新しいものまで網羅されているテキストである.3冊とも「教科書として使うことを想定した入門者向け書籍」であり,学部4年生の研究室配属学年時に,まず最初に読んでおきた教科書的な書籍である.したがって,これらの書籍を読む前の前提として,学部3年生までに「パターン認識・機械学習の基礎」と「Pythonやその他言語での,科学計算プログラミング基礎」を履修済みであり,それらについての予備知識が既に備わっていることが望ましい.

著者は企業や大学で画像認識の研究をしてきた研究者であり,博士号を取得した5年前からディレクター役であり,学生や部下に実際に手を動かして研究してもらう中間管理職である.従って,この記事では,その私のディレクター視点から,学生が最初に専門知識を習得しやすい書籍を厳選して3冊だけ紹介したい.

とりわけ,最初の2冊については,私の出身研究室でも新配属の4年生に最初に読んでもらうテキストして例年使用しており,自信を持って初心者の方にお勧めする書籍である.ただし,2020年7月現在,2冊とも発売してから4年以上経っており,もう少し最新の内容が加筆されたものが欲しい状況になってきている点には注意されたい.

2 書籍リスト

(1) 画像認識 (機械学習プロフェッショナルシリーズ) (2017年 発売)

東京大学の原田達也先生による,「機械学習プロフェッショナルシリーズ」の1冊である.発売された2017年5月の頃の,最新の画像認識の内容が網羅された本である.

現代の深層学習を用いた画像認識を初めて勉強する上で,「CNNを用いた物体画像の大規模クラス識別」と「Faster R-CNNやYoloなどを用いた深層学習物体検出」の2つの基礎的な画像認識応用についてまず必ず学んでおきたい.この本では,それらが終盤の6章と7章に配置されており,5章までにそれらの理解に必要な事前知識が段階的に得られる構成になっている.

また,8章はハッシング(近傍探索の効率化)による画像検索の章であり,こちらも重要な話である(Triplet-lossなどを用いたDeep Metric Learningによる画像embedding学習の話は含まれていない).そして最後の9章では,発売当時の発展的な話題として,セマンティックセグメンテーション/GAN/画像キャプショニングなどについて少しだけ触れられている.

著者の研究室は,深層学習ブーム以前から,第一線で画像認識の研究成果を出されきた研究室であるので,本書でも画像認識や物体検出については,1世代前の技術も非常に詳しく述べられている.よって本書は,若い世代の深層学習以前を習う場所がない人が,昔の歴史を知る上でも非常に役に立つものである.

過去の紹介記事:【書籍紹介】画像認識(機械学習プロフェッショナルシリーズ)

(2) ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

Deep Learning向けのライブラリを用いずに,Python/NumpyだけでCNNを作る様子をソースコード付きで順に解説してくことにより,ニューラルネットワークの実装を深く理解しようという内容の書籍である.本書は,深層学習界隈ではすっかりお馴染みとなったベストセラー書籍であり,他のサイトでもいくらでも紹介記事は見つかる.よって,ここでは書籍内容の細かい紹介よりは,「改めて本書のどのあたりが良いか」についての,個人的なコメントを述べることにしたい.

5章の「誤差逆伝播法」の章では,Stanford大のKarpathy氏におる画像認識の講義(CNNの記事でも,最後のまとめで紹介)で当時登場した計算グラフに基づく微分値の逆伝搬の解説」のアイデアを採用して説明する」と章の冒頭で書かれている.層ごとの微分の逆伝搬の具体例とその図示があるおかげで,初学者が学習時の微分値の挙動のイメージが得やすく,非常に学びになる章であると思う.

また,7章でも(5章のように明記はないものの)同じくKarpathy氏の授業で行われていた感じになぞられた説明方法で,畳み込み層の仕組みがじっくり図付きで解説されている.この7章もCPUでnumpyでの実装なのでLe-Netを作るまでで,GPUが必要なAlexNet以降は解説のみとなっているが,初学者は畳み込み層の深い理解を得やすい良い章だと思う(ただし,今となってはKarpthy流の図示をしている書籍や資料は多いが).

本書はオライリーの書籍であるが,オライリー本によくある「科学計算をテーマにはしているものの,数式が過度に出てこないので学術的なバックグラウンドではない人にも読みやすくしている」という感じの書籍で,これもヒットした要因だと思う.とはいえ,本書ではむしろ数式もきちんと毎回登場し,その上関数や学習過程の可視化などの図も豊富なので読みやすくなっている.前述の5章と7章のように,概念図を用いた説明も豊富なので,初心者は理解が楽で大いに助けられると思う.また,学術的な説明が苦手な人むけに,例え話などを噛み砕いた文章説明も要所でなされるので,理論が苦手だったり,抽象的な説明だけでわかりづいらい人は,理解を助けると思う.やはり,何より全てPythonのコードで書き下しているのが何よりも具体的なので,初心者が論文の数式やネットワーク図からコードに変換する際の最初の一歩としてもうってつけである.

以上,私が個人的に本書で良いと思うところについて述べた.本書は,発売後5年たった現在(2020年)では「ゼロから作る = コーディング方法を全て学ぶ」という唯一無二の構成であり,実装を全て明らかにするというコンセプトが秀逸であり,実際に研究で手を動かす前の新人の研修にうってつけの良書である.

(3) ディジタル画像処理 [改訂第二版] (2020年 発売)

初心者向けの書籍であるわれわれの業界ではかなり古い時代から販売されているテキストでベテランの方々にはお馴染みのテキストである.しばらく初版から改訂等はなかったが,1995年にまず[改訂新版]が大幅追化のうえ出版された.更に,新版から加筆修正が行われた[改訂第2版](2020年)が,ここで紹介する書籍である.

本書は,著名な大学教員や研究者が自分の得意分野を中心に執筆する形式を取っている.古典的な画像処理の章から,コンピュータビジョン系の画像3D復元やカメラ幾何・フォトメトリも当然あるうえ,1世代前のパターン認識の章や深層学習の画像認識アプリケーションを辿っていく章など,「画像処理/コンピュータビジョン/画像認識」の技術の話題を網羅的に盛りこんだ贅沢な教科書的構成である.

全部入りの構成であるので,なるべく厚い本にならないように.説明はどれも簡潔である.数式やアルゴリズムの説明も最小限で,研究者ではなくエンジニアの方でも非常に読みやすい.また,資格試験と連動しており,それもあってキーワードが(多めに)太文字で目立つようにされているゆえ,試験目的ではなくともなるべく短い時間で膨大な画像系分野をまずおさえていくには効率的な本である.深層学習を用いた研究を行う方も,本書は読まずとも,辞書的に使う用途で携帯しておくにもも非常に便利な本である.

過去の紹介記事:【書籍紹介】ディジタル画像処理 [改訂第二版] 【コンピュータビジョンの基礎全般を網羅したテキスト】

3 まとめ

この記事では以下の3つの書籍を紹介した.

  1. 画像認識 (機械学習プロフェッショナルシリーズ)
  2. ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
  3. ディジタル画像処理 [改訂第二版]

深層学習を用いた近年の画像認識とコンピュータビジョンでは,これら3つの本を読み終わると基本的な内容は一通り押さえられるので,ぜひ有効活用していただきたい.

3+