人工知能とは ③ディープラーニング

What is Artificial Intelligence?

ディープラーニングの基本

多重パーセプトロン

ニューラルネットワークは、人間の脳のニューロンのネットワークを模倣して作られています。モデルとしては入力と出力の関係性が、隠れ層の中に(重みとして)表現されているだけである。いわゆる隠れ層は入力と出力を関係づける関数になる。単純パーセプトロン線形分類しかできませんでしたが、多重パーセプトロンになると非線形分類ができるようになった。

ディープラーニング|Deep Learning

隠れ層を増したニューラルネットワークのことをディープラーニング深層学習)といいます。

これまでのニューラルネットワークの課題

ニューラルネットワークでは、予測結果と実績値の誤差をネットワークに逆方向にフィードバックさせてネットワークの重みづけを更新するという誤差逆伝播法を利用しています。しかし、ネットワークが深くなると誤差が最後まで正しく反映できないという本題が発生して、教育すればするほど精度が下がるという問題が発生していました。

勾配消失問題

ニューラルネットワークの活性化関数としてシグモイドかんすうが利用されていますが、これを微分すると最大値が0.25にしかなりません。層をたどっていくほどに、活性化関数の微分に掛け合わされることに寄って、値が小さくなってしまうという現象が発生します。

課題の解決

2006年、ジェフリー・ヒントンが提唱したオートエンコーダ自己符号化器が勾配消失問題を解決しました。

オートエンコーダ|Autoencoder

入力層と出力層がセットになった可視層と隠れ層の2層からなるネットワークですので、ディープニューロネットワークではありません。入力は可視層(入力層)→隠れ層→可視層(出力層)の順番に連携され、出力されます。入力層よりも隠れ層の次元が小さくしておくことで、この学習により隠れ層には入力情報の圧縮されたものが蓄積されます。入力層→隠れ層の処理をエンコード、隠れ層→出力層の処理をデコードといいます。

積層オートエンコーダ|Stacked autoencoder

オートエンコーダを積み重ねることによって、ディープオートエンコーダを作成して実現しています。特徴としては、事前学習|Pre-trainingとして入力層に近い層から順番に学習させるという、逐次的な方法を取っています。

ファインチューニング|Fine-tuning

オートエンコーダを積み重ねるだけではラベルを出力することはできませんので、積層オートエンコーダでは、分類問題では、最後にロジスティック回帰層(シグモイド関数、もしくはソフトアックス関数による出力層)を追加することで教師あり学習を実現しており、回帰問題では、線形回帰層を追加しています。また、最後にファインチューニングを行います。積層オートエンコーダはこの事前学習とファインチューニングの工程で構成されていることになります。

深層信念ネットワーク|Deep belief network

教師なし学習に制限付きボルツマンマシン|restricted boltzmann machineという手法を用いている。

推薦図書

日本ディープラーニング協会
JDLA監修
ディープラーニングG
ジェネラリスト検定

・公式テキスト
・公式問題集