人工知能 勉強本ご紹介。平易な“数学”がAIの正体であることに驚き!【ディープラーニング】

最近はテレビでもネットでも毎日のように取り上げられている、AI(人工知能)。
このブログでも過去に何度か取り上げましたね。

↑は昨年に書いたものですが、今年は昨年にも増して、AIの社会進出が感じられますね。例えば線画さえ書けば、あとは色塗りを自動でやってくれるAIなどがありますが、それで描いたマンガが配信されるまでになってきました。

ASCII.jp:深層学習技術による線画自動着色でカラー化されたマンガが配信

マンガ・アニメ業界にどんどん採用されて、制作の効率化・スタッフの負担軽減など恩恵がありそうですね。


AIについては、TVやニュース、本など見ても、「凄い!」だとか「仕事がAIに取って代わられる!?」とか「シンギュラリティ(マシンが人間の能力全てを超越した"神"となる)」だのと、センセーショナルな話題が飛び交ってます。

一方で、AIの実体(特に技術的な内容)については、ニュースなどでも突っ込んだ話題がほぼ見かけません。

自分もさっぱりでしたが、これだけ世間で注目され、社会を変える可能性が大いにあるAIってどんなものなのか?その正体について、探ろうと最近勉強を始めています。主に、自分の知的好奇心からですが、教養として知っておくのもいいかなという面もありましてね。


AIというのは過去に何度かブームがあり、その時々で技術の流行り廃りがあったようですが、今世間で騒がれているAIというのは、「ディープラーニング」と呼ばれる技術です。
(参考書籍) 誤解だらけの人工知能~ディープラーニングの限界と可能性~ (光文社新書)

そのディープラーニングという技術について、理論的・技術的な入門書を紹介しながら、雑感を述べたいと思います。


ディープラーニングの基本理論は大学数学レベルの内容

いちばんやさしい ディープラーニング 入門教室
ソーテック社 (2018-02-21)
売り上げランキング: 7,017


ディープラーニングの理論的な入門本として、初めて手に取ったのが↑の本です。
主に以下の点について、平易な説明が展開されています。

  • 数学の必要知識
  • プログラミング言語(Pythonと呼ばれる言語)の必要知識
  • ローカルPCへの環境構築方法
  • ニューラルネットワーク基礎理論
  • ディープラーニング(CNNによる画像認識)
  • ディープラーニング(RNNによる音声認識、自然言語処理)
ディープラーニングに詳しい方からすれば、かなりざっくりとした概論レベルの内容なのかもしれませんが、素人の自分としては何となくイメージをつかむのにはよかったかなという印象でした。

↑の本で、ディープラーニングなるものをざっくり見たところ、正直驚きましたね。AIと聞くと、何かSF映画やアニメに出てくる、人間のような思考をする超技術でできているようなイメージがありましたが。今AIと呼ばれているディープラーニングの実体は、基本理論的には大学数学レベルの内容でした。(ただ、文系の方や数学アレルギーの方はそれだけで、数学と聞くだけで敬遠されるかと思います。そこが大きな壁かもしれません。)

理系で数学に馴染みがある方なら、以下のキーワードでディープラーニングに親近感を覚えるでしょう。

  • ベクトル
  • 行列
  • サンメーション(総和、Σ)
  • 指数・対数
  • 微分
  • 線形関数・非線形関数
という風に、高校数学(数ⅡB、数ⅢC)レベルでもお馴染みの概念が、ディープラーニングというAIの根本になっています。「数学なんて社会で何の役に立つの?」というのは、以前からよく言われていますが、昨今活躍中のAIでは、バリバリ使われているという訳です。

ディープラーニングの正体は、割と平易な計算の組み合わせ


画像認識AIにしろ音声認識AIにしろ、認識について極端な話をすれば
  1. 入力データをベクトル(行列)で表す
  2. 1.をある係数の集合(重み行列)に掛け算する
  3. 2.の計算結果を非線形関数の引数にして結果を出力
という単純な流れで、動いているのですね。AIはこれを記述したプログラム(Python等で実装された)をマシン上で動かしているようなものです。

このつくりは、人間の脳神経ネットワークをモデルにしたニューラルネットワークという理論が元になっていますが、ディープラーニングはその発展系で、↑の計算処理を何回も何回も連続して繰り返すものといえばいいでしょうか?この処理はという単位でまとめられ、この層を何層にも深めて(ディープ)、認識精度を上げることからディープと呼ばれているようです。

人間の認識が、こんなベクトルと行列の計算と、非線形関数の組み合わせで再現できるなんて驚きですね。その背景には、普遍性定理(簡単に言えば、非線形関数を多数重ね合わせることで、任意の関数を表現できるようになること)という数学のマジックが働いているそうです……

問題はその計算を莫大な規模でやらなければならず、以前のコンピュータでは不可能だった。しかし近年のマシンパワーの飛躍的な向上により、その実用化が果たされたという経緯のようです。

テクノロジーの進化はすごいな… スパコンよりはるかに高スペックな量子コンピュータの実用化が進んだらこの先どうなるんでしょうか!?

全体像は大体掴めた。理論の詳細、具体的な実践についてもっと勉強してみます~


いちばんやさしい ディープラーニング 入門教室 

認識については、↑の本で割と詳しく掴めた気がしますが、ディープラーニングは“ラーニング”とあるように、認識とは別に学習というのが大きな機能になります。こちらは、数学でいえば主に微分の出番なのですが、専門用語では勾配降下法(こうばいこうかほう)や、誤差逆伝播法(ごさぎゃくでんぱほう)という計算手法が重要です。

本書籍でも触れられていますが、このうち誤差逆伝播法による学習の説明がざっくりしすぎていて、具体的な学習過程というのがよく分からなかったなーと。

Python、TensorFlow、Kerasによるプログラミングも、サンプルプログラムを挙げての説明でなんとなく分かりますが、実際に画像認識・学習をさせるのではなく、ネットワークモデルの描画で終っているものが多いです。作ったモデルで認識や学習を実際にやってみるなんていう実践的なところまでは、突っ込んで掲載されていないです。

しかしながら、ディープラーニングの全体像を把握するのには、役立つ情報が整理されているとは思います。これを足掛かりに、技術的な詳細はWebで調べるという要領で、理解を深めていければいいのかなと。

また、WindowsやMacへの開発環境構築(Python、TensorFlow、Keras、Jupyter Notebook)方法などは、大いに参考になりました。まさに入門書と呼べるかと思います。

今後は、より理論(特に学習に関する数学的な解説)の深い話や、実践寄り(作ったディープラーニングモデルで認識、学習)の話を探っていきたいなと思います。

スポンサーリンク