このブログでも過去に何度か取り上げましたね。
- 人工知能(AI)の未来について妄想。将来仕事なくなると遊んだもの勝ち?
- 人工知能(AI)でTwitter(ツイッター)、ブログの文章作成が手軽にできる日も近い?書くという仕事もなくなるようで怖いですね…
ASCII.jp:深層学習技術による線画自動着色でカラー化されたマンガが配信
マンガ・アニメ業界にどんどん採用されて、制作の効率化・スタッフの負担軽減など恩恵がありそうですね。
AIについては、TVやニュース、本など見ても、「凄い!」だとか「仕事がAIに取って代わられる!?」とか「シンギュラリティ(マシンが人間の能力全てを超越した"神"となる)」だのと、センセーショナルな話題が飛び交ってます。
一方で、AIの実体(特に技術的な内容)については、ニュースなどでも突っ込んだ話題がほぼ見かけません。
自分もさっぱりでしたが、これだけ世間で注目され、社会を変える可能性が大いにあるAIってどんなものなのか?その正体について、探ろうと最近勉強を始めています。主に、自分の知的好奇心からですが、教養として知っておくのもいいかなという面もありましてね。
AIというのは過去に何度かブームがあり、その時々で技術の流行り廃りがあったようですが、今世間で騒がれているAIというのは、「ディープラーニング」と呼ばれる技術です。
(参考書籍) 誤解だらけの人工知能~ディープラーニングの限界と可能性~ (光文社新書)
そのディープラーニングという技術について、理論的・技術的な入門書を紹介しながら、雑感を述べたいと思います。
ディープラーニングの基本理論は大学数学レベルの内容
ソーテック社 (2018-02-21)
売り上げランキング: 7,017
売り上げランキング: 7,017
ディープラーニングの理論的な入門本として、初めて手に取ったのが↑の本です。
主に以下の点について、平易な説明が展開されています。
- 数学の必要知識
- プログラミング言語(Pythonと呼ばれる言語)の必要知識
- ローカルPCへの環境構築方法
- ニューラルネットワーク基礎理論
- ディープラーニング(CNNによる画像認識)
- ディープラーニング(RNNによる音声認識、自然言語処理)
↑の本で、ディープラーニングなるものをざっくり見たところ、正直驚きましたね。AIと聞くと、何かSF映画やアニメに出てくる、人間のような思考をする超技術でできているようなイメージがありましたが。今AIと呼ばれているディープラーニングの実体は、基本理論的には大学数学レベルの内容でした。(ただ、文系の方や数学アレルギーの方はそれだけで、数学と聞くだけで敬遠されるかと思います。そこが大きな壁かもしれません。)
理系で数学に馴染みがある方なら、以下のキーワードでディープラーニングに親近感を覚えるでしょう。
- ベクトル
- 行列
- サンメーション(総和、Σ)
- 指数・対数
- 微分
- 線形関数・非線形関数
ディープラーニングの正体は、割と平易な計算の組み合わせ
画像認識AIにしろ音声認識AIにしろ、認識について極端な話をすれば
- 入力データをベクトル(行列)で表す
- 1.をある係数の集合(重み行列)に掛け算する
- 2.の計算結果を非線形関数の引数にして結果を出力
このつくりは、人間の脳神経ネットワークをモデルにしたニューラルネットワークという理論が元になっていますが、ディープラーニングはその発展系で、↑の計算処理を何回も何回も連続して繰り返すものといえばいいでしょうか?この処理は層という単位でまとめられ、この層を何層にも深めて(ディープ)、認識精度を上げることからディープと呼ばれているようです。
人間の認識が、こんなベクトルと行列の計算と、非線形関数の組み合わせで再現できるなんて驚きですね。その背景には、普遍性定理(簡単に言えば、非線形関数を多数重ね合わせることで、任意の関数を表現できるようになること)という数学のマジックが働いているそうです……
問題はその計算を莫大な規模でやらなければならず、以前のコンピュータでは不可能だった。しかし近年のマシンパワーの飛躍的な向上により、その実用化が果たされたという経緯のようです。
テクノロジーの進化はすごいな… スパコンよりはるかに高スペックな量子コンピュータの実用化が進んだらこの先どうなるんでしょうか!?
全体像は大体掴めた。理論の詳細、具体的な実践についてもっと勉強してみます~
いちばんやさしい ディープラーニング 入門教室
認識については、↑の本で割と詳しく掴めた気がしますが、ディープラーニングは“ラーニング”とあるように、認識とは別に学習というのが大きな機能になります。こちらは、数学でいえば主に微分の出番なのですが、専門用語では勾配降下法(こうばいこうかほう)や、誤差逆伝播法(ごさぎゃくでんぱほう)という計算手法が重要です。
本書籍でも触れられていますが、このうち誤差逆伝播法による学習の説明がざっくりしすぎていて、具体的な学習過程というのがよく分からなかったなーと。
Python、TensorFlow、Kerasによるプログラミングも、サンプルプログラムを挙げての説明でなんとなく分かりますが、実際に画像認識・学習をさせるのではなく、ネットワークモデルの描画で終っているものが多いです。作ったモデルで認識や学習を実際にやってみるなんていう実践的なところまでは、突っ込んで掲載されていないです。
しかしながら、ディープラーニングの全体像を把握するのには、役立つ情報が整理されているとは思います。これを足掛かりに、技術的な詳細はWebで調べるという要領で、理解を深めていければいいのかなと。
また、WindowsやMacへの開発環境構築(Python、TensorFlow、Keras、Jupyter Notebook)方法などは、大いに参考になりました。まさに入門書と呼べるかと思います。
今後は、より理論(特に学習に関する数学的な解説)の深い話や、実践寄り(作ったディープラーニングモデルで認識、学習)の話を探っていきたいなと思います。