G検定の【ディープラーニング】【事前学習】【ファインチューニング】について

前回の記事では、ニュートラルネットワークが人工知能で実用的に使われなかったかの理由を書きました。

ここでは、G検定で出題される用語の解説をしています。

今回は、機械学習でも重要な手法【ディープラーニング】【事前学習】【ファインチューニング】についてです。

ディープラーニングの前に活用された事前学習とは

2006年にトロント大学のジェフリー・ヒルトンは、ニューラルネットワークの問題を解決するきっかけになる手法を提唱しました。

その手法は、オートエンコーダ(autoencoder)、または自己符号化器と呼ばれ、ディープラーニングの主要な構成要素になりました。

オードエンコーダ

オートエンコーダとは、自己符号化器という意味があり、「あるデータを入力とし、同じデータを出力として学習を行う」ニューラルネットワークの事です。

下記が概要図で、「可視層」(入力層と出力層)と「隠れ層」の2層からなるネットワークです。

(画像引用:「面白いデータを探して」より)

オートエンコーダに与えられる入力は、下記の順に伝播し、出力されます。

1.可視層(入力層)⇒ 2. 隠れ層 ⇒ 3. 可視層(出力層)

可視層とは、入力層と出力層がセットで同じ状態になったものです。

例えば、「入力と出力が同じ」という意味は、

手書き数字“7”の画像データを入力したら、

同じように“7”という数字画像を出力するようにネットワークが学習すること。

この学習では、隠れ層には、「入力の情報が圧縮されたもの」が反映されています。

入力層(可視層)の次元よりも隠れ層の次元を小さくしておくことにより、入力層から隠れ層の次元まで情報が圧縮されることになります。

このように情報が「要約される」手法は、誤差が上手くフィードバックされないニューラルネットワークの弱点を改善しています。

一度入力された情報を要約し、それを元に戻すように出力するので、大事な情報だけを「隠れ層」に反映することができます。

これらの情報のやり取りを下記のように呼びます。

エンコード(encode):入力層 ⇒ 隠れ層

デコード(decode):隠れ層 ⇒ 入力層

積層オードエンコーダ

オードエンコーダそのものは、ディープニューラルネットワークではありません

ジェフリー・ヒルトンが編み出した手法は、オートエンコーダを「積み重ねる」ことです。

積層オートエンコーダ(stacked autoencoder)は、別名:ディープオートエンコーダとも言われます。

積層オートエンコーダが、それまでのディープニュートラルネットワークと違うところは、順番に学習させる方法を取ったことです。

一気に全ての層を学習するのではなく、入力層に近い層から順番に学習させるという、逐次的な方法を取りました。

「順番に学習していく」ことにより、それぞれの隠れ層の重みが調整されるので、全体的に重みが調整されたネットワークができます。

どんなに層が積み重なっても、この流れは同じです。

このオートエンコーダを順番に学習していく手順を「事前学習(pre-training)」と言います。

ファインチューニングで全体の調整

オートエンコーダの手法自体は、入力から大事な情報だけを抽出するという教師なしの学習になります。

ラベルを出力することは、オートエンコーダを積み重ねるだけではできません。

オートエンコーダの出力は入力そのものなので、どう組み合わせても教師あり学習にはなりません。

そこで、積層オートエンコーダでは、教師あり学習を実現するために、

オートエンコーダを積み重ねていった最後にロジスティック回帰層(シグモイド関数あるいはソフトマックス関数による出力層)を足します。

(ただし、回帰問題ではロジスティック回帰層ではなく、線形回帰層を足す。)

これにより、ネットワーク全体は隠れ層が複数あるディープニューラルネットワークが実現できます。

そして最後に足すロジスティック回帰層も重みの調整が必要になります。

事前学習を終え、ロジスティック回帰層を足したら、最後に仕上げとしてディープニューラルネットワーク全体で学習を行います。

この最後の仕上げをファインチューニング(fine-tuning)と言います。

積層オートエンコーダのまとめ

まとめると積層オートエンコーダは2つの工程で構成されます。

・事前学習

・ファインチューニング(fine-tuning)

事前学習により隠れ層の重みは、すでに調整されているので、深層になっても誤差が適切に逆伝播され、最後にファインチューニング(fine-tuning)で全体の調整を行います。

深層信念ネットワーク

ディープニューラルネットワークの「学習ができない」問題点は、事前学習の工程により解決されました。

さらに開発者のジェフリー・ヒルトンは、2006年に深層信念ネットワーク(deep belief networks)の手法も提唱しています

こちらは教師なし学習(オートエンコーダに相当する層)に制限付きボルツマンマシン(restricted Boltzmann machine)という手法を用いています。

事前学習を使わないアプローチ方法

画期的な発明であっても、事前学習が最新手法になれない理由があります。

それは事前学習は、層ごとに順々に学習をしていくために、全体の学習に必要な計算コストが非常に高くつく欠点があるからです。

よって事前学習をすることなく、一気にネットワーク全体を学習する方法が考えられました。

特にディープラーニングの研究が盛んになったので、今では事前学習をする必要がなくなりました。

勾配消失問題の原因であった活性化関数を工夫するなどの技術でこれを実現しました。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする