まったりAI勉強記

AI(人工知能)について、特にゆかりがあるわけでもない社会人が、まったりとAIについて勉強していく勉強日記です。

【G検定】ディープラーニングのアプローチ

どうも、カタミチです。

今日は、ディープラーニングのアプローチという節ですね。初期のディープラーニングがどのように実現していったか…という戦いの歴史ですね。見てみましょう!

事前学習によるアプローチ

理想と現実のギャップに、しばらく下火となっていたニューラルネットワークに、再び火を灯したのは、以前の章にも出てきたジェフリー・ヒントンです。未来の歴史の教科書に乗る人物になるかもしれないですね。

2006年、オートエンコーダ(自己符号化器)と呼ばれるもの手法を彼が提唱しました。

オートエンコーダ

オートエンコーダは可視層と隠れ層の2層からなるネットワークです。可視層という言葉が初めて出てきましたがこれは、入力層と出力層がセットになったものだそうです。つまり、オートエンコーダの場合の流れは…

可視層(入力層)→隠れ層→可視層(出力層)

となります。…とりあえず、何が改善されたのかよく分かりません(汗)。しかも、可視層の次元より隠れ層の次元を小さくする必要があるらしいので、結局2層(入力層含めると3層)にしか対応できません。しかしこれがきっと、以降の話で広がっていくのでしょう(期待)。

ここで用語だけ抑えておくと、入力層→隠れ層における処理をエンコード、隠れ層→出力層における処理をデコードと言います。これらは、コンピュータの世界では馴染みのあるワードですね。

積層オートエンコーダ

さて、そんなオートエンコーダをどうやって「ディープ」にするのか…。答えは、オートエンコーダを積み重ねることです!

…どうやるんだろう、見ていきましょう。

これまでの深層学習では、一気にすべての層を学習する方法を取っていましたが、積層オートエンコーダでは、入力層に近い層から順番に学習させるという、逐次的な方法を取ったのです。

例です。オートエンコーダAとオートエンコーダBを積み重ねる場合を考えます。そして、以下の手順を踏みます。

1. オートエンコーダAの可視層←→隠れ層の学習をそのまま行う
2. オートエンコーダAの隠れ層を隠れ層をオートエンコーダBの可視層として学習を行う

f:id:feh_asama:20220130202411j:image

オートエンコーダの数が増えても、この流れは同じです。順番に学習していくのです。こうすることで、それぞれで隠れ層の重みが調整されるので、全体で見ても重みが調整されたネットワークができることにつながる…ということですね。この、オートエンコーダを順番に学習していく手順のことを事前学習と言います。

ファインチューニング

ここで注意が必要なのは、オートエンコーダを積み重ねるだけでは、どこまで行ってもラベルを出力することができない、ということです。…ラベルってなんだっけ?(汗)

…ちょっと調べてみました。

ラベルとは、一つ一つのデータに対して付与される正解を示す情報のことである。

なるほど、教師ありデータってことですね。これまでラベルって言葉出てきてなかった(と思う)ので混乱しました。

ラベルを出力することができない…つまり、教師なし学習にしか使えないってことになりますかね。では、なぜラベルを出力することができないのか?という点を少し探ってみたんですが、つまり、入力層と出力層をひとつの可視層としてまとめたことで、入力と出力が同じものになるから、ってことになりますかね。隠れ層に圧縮データ?をエンコードして渡すための処理になることが目的になっているわけですね。

しかし、この積層オートエンコーダで教師あり学習を実現するために行うのが…ファインチューニングです。ファインチューニングでは、オートエンコーダで積み重ねていった最後にロジスティック回帰層を足して教師あり学習を実現したうえで、仕上げとしてディープラーニング全体で学習を行います。最初から全体で学習してもうまくいかない…という話でしたが、今回は既に事前学習で隠れ層の重みが調整されているため、深層でも誤差が逆伝播します。こうして、多層パーセプトロンに対するディープラーニングが可能となった…ということですね!

深層信念ネットワーク

ジェフリー・ヒントンは、積層エンコーダを提唱した2006年に深層信念ネットワークという手法も提唱しています。これは、オートエンコーダに相当する層に制限付きボルツマシンという手法を用いています。こちらは紹介まで、という感じですかねー。

事前学習なしのアプローチ

さて、ここまで事前学習を用いた手法を見てきましたが、実は最新の手法では見かけることはまずありません。(なんだってー)

事前学習することなく、一気にネットワーク全体を学習する手法が考えられたためです。勾配消失問題の原因であった活性化関数を工夫するといったテクニックを用いることでこれを実現したようです。やはりこの分野、日進月歩なんですねー。

このテクニックについては後ろの節で出てくるらしいので、そこでまた見ますかねー。

ということで

ようやく、ディープニューラルネットワークの扉が開くところまで来ました。しかし、どうやらまだ改良の歴史がありそうな雰囲気ですね。結局いまだに詳しい理論は理解できていませんが、研究者たちの戦いの歴史を見るのは楽しいですね。こうやって人類は進歩してきたんだろうなぁ(しみじみ)。引き続き苦闘を追いかけて行きたいと思います。

ではまた。

勉強に使ってる書籍はこちら↓
深層学習教科書 ディープラーニング G検定(ジェネラリスト)公式テキスト 第2版