シンギュラリティ教徒への論駁の書

“Anyone who believes that exponential growth can go on forever in a finite world is either a madman or an economist.” - Kenneth Boulding

書評:『Deep Learning with Python』は、人工知能と人間の知能への深い洞察を含んだ良書だった

Deep Learning with Python

Deep Learning with Python

 本書は、Kerasを用いたディープラーニングの基礎への入門書です。著者のフランソワ・ショレ氏 (@fchollet)は、Googleで働くソフトウェアエンジニア、機械学習研究者であり、Kerasは彼が開発しているディープラーニングモデル記述用のPythonフレームワークです。

以前、このブログでもショレ氏によるシンギュラリティへの懐疑論を翻訳して紹介しました。

この本自体、ディープラーニングとKerasへの優れた入門書です。それだけではなく、上記のエッセイと同様、機械学習ディープラーニングの展望と限界、そして人間の知能に関する深い洞察を含んだ本であると思うので、ここで紹介します。まだざっと全体を流し読みして、環境を構築し一部のサンプルコードを動かした程度ですが、日本語でもこの書籍が紹介&翻訳されてほしいと考えています。*1

技術書としての側面について

機械学習に関しては前提知識は必要なく、必要な知識はほぼ書籍の中で網羅されているようです。Python言語については、脱初心者レベル*2の基礎知識は必要になるでしょう。実務家や趣味レベルの学習者にとって助かる点は、数式があまり無くサンプルコードで数学的概念と操作が示されていることです。(私は数式を見ても実装のイメージが湧かず、動作するコードをいじくり回しながらでないと理解が進まないので…) とは言っても、大学教養レベルの線形代数の基礎知識はやはり必要かと思います。

プラクティカルな解説書は概して皮相的なものになりがちですが、この本は実践的でありながら深く高度な例まで説明されており、非常に良いバランスだと思いました。

コンテンツ

以下は目次レベルの項目です。

  1. ディープラーニングとは何か?
    人工知能研究の歴史、機械学習ニューラルネットに関する概説
  2. ニューラルネットの数学的基礎
    テンソルの操作など
  3. 環境構築
    Kerasの紹介、ローカル/AWS上でディープラーニングを扱う環境構築
  4. 機械学習の基礎
    データ準備、評価、汎化誤差、過学習などの機械学習の基礎について
  5. コンピュータビジョンへのディープラーニング
    主にCNNの説明、"畳み込み" 操作の説明が分かりやすい
  6. テキストと時系列データへのディープラーニング
    RNN, CNNの両方
  7. 発展的なディープラーニングのベストプラクティス
    Kerasのfunction APIの使用方法やベストプラクティスなど
  8. ディープラーニングの生成モデル
    有名なDeepDreamやスタイル変換、DCGANの初歩を扱う
  9. 結論
    ディープラーニングの将来と限界について

 

ディープラーニングの将来性と限界、人間の知能について

本書の表向きのコンテンツはPythonとKerasを使ったディープラーニングの入門です。けれども、本書の裏には著者からの別の、重要なメッセージが存在しているように感じました。それは、『近年の人工知能ハイプに騙されず、しっかりと人工知能の問題に向き合って学んでほしい』というメッセージです。

そして、この問題、ディープラーニングの将来性と限界、人間の知能について論じた9章「結論」は、独立した論考としても価値があると感じます。


ディープラーニングが、10年前コンピュータには不可能だと思われていた問題、画像認識、音声認識や生成、自然言語処理機械翻訳(の一部) などの問題を解決し、大きく進歩させたことには疑いがありません。そして、潜在的ディープラーニングで解決できるものの未だ手が付けられていない問題は、無数に存在しています。そんな問題に対して光が当てられ、ディープラーニングが実世界で真価を発揮するまでにはまだ多数の人手と長い時間が求められるため、もっと多くの人がディープラーニングを学ぶことが必要となります。

そして、近年の急速な進歩にもかかわらず、人間の知能と人工知能研究における根本的な問題は未だ未解決のままであると著者は述べています。現在の人工知能 (機械学習) がうまく対応できない問題には、たとえば以下のような問題があります。

  • 意味理解、特に言語の意味や人間の意図を理解すること
  • 過去のデータ内に全く存在しない問題を扱うこと
  • 明示的な規則として書き下せない、常識的推論と抽象化が必要となること

これらの問題を解決するためには、現在とは異なるアプローチからの研究といくつものブレイクスルーが必要となります。マーケティングのために繰り出される、不誠実な「人工知能は○○を解決した」などという宣伝文句に惑わされることなく、機械学習人工知能研究と人間の認知・知能に対して向き合い、その可能性と限界を正しく認識し、各々が学ぶことを止めないでほしい。私はそんな著者からのメッセージを感じました。

 

英語も平易でサンプルコードも公開されており、独学に向いた本であると思うので、AIやディープラーニングに興味はあるけど、これまで手を出せていなかった人にぜひ本書を薦めたいと思います。

学ぶことは生涯に渡る旅路である。とりわけ、AIの分野においては。この分野では、確実なことよりも分かっていないことのほうがはるかに多い。だから、学び、質問し、研究を続けてほしい。決して止まってはいけない。なぜならば、これまでに成された進歩にもかかわらず、AIに関するほとんどの根本的な疑問は、未解決のままであるからだ。多くの人は正しく問うことさえできていない。(p.339)

リンク

*1:なお、私は5年以上前に卒論で機械学習ライブラリをほんの少し使った程度の素人です。

*2:ライブラリインストールなどの環境構築、基本的なデータ構造と操作