では次に、学習なしの深層学習である、AEについて解説をしたいと思います。
AEについては、一般論にすると分かりにくくなるので、今回は「猫の写真」に寄せて解説します。
AEの目的を一言で申し上げましょう。
―― 猫を見たら興奮するニューラルネットワークを作る、です。
「猫に興奮する変質者を作るのか?」と誤解されては困ります(編集担当のMさんを不用意に激怒させるだけ*)ですし、そもそも、そういうことではないからです)。
*)編集注:担当Mは猫好きです。犬も好きですが、やはり面白いのは猫だと思います。大して要らない情報ですが、飼い猫がこの5月で20歳を迎えました……! パチパチパチ……!
つまり、このニューラルネットワークには「猫」しか見せず、世界には「猫」以外には何も存在しないと考えるニューラルネットワークを具現化するものなのです。
さらに「猫だけに反応しろ」と教えることすらもしません。ただ、ひたすら猫の写真を、―― どんな写真でもいいですが、とにかく「猫」の写真を見せ続けて、ニューラルネットワークの学習を続けます。この学習方法には、やはりバックプロパゲーションを使います。
AEでは、ちょっと変な学習の仕方をさせます。入力データと全く同じ出力を出すニューラルネットワークを、何個も作るのです。
ポイントは、「入力層と出力層のノード数もデータも同じになるようにしますが、中間層のノードはそれより小さく設計する」という点にあります。
この中間層は、ちょうどサンドイッチの中身のように見えますので、ここからは、このパラダイムで説明します。つまり、サンドイッチの両側の食パンのサイズよりも小さい「具」を作ることが目的です。
このサンドイッチの具は、出力層で、入力層のデータを復活することができるものなのです。ということは、このサンドイッチの具は、入力層のデータを圧縮したものになっていることになります。
さて、今度は、このサンドイッチの具をパンに見立てて、新しい、そして、さらに小さいサンドイッチの具を、バックプロパゲーションを使って作り出します。これを何回も繰り返し、最後、サンドイッチの具は最終的に1ノード(これ以上圧縮できない情報)になります。
そして、この1ノードは、必ず、値が"1"となるようにバックプロパゲーションで学習させます。こうして、学習用データである猫の写真で、かならず「発火」……「興奮」するように"作る"のです。
この学習を、全ての猫の写真で実施します(Googleは1000万枚の猫の画像を使ったそうです)。
こうやって、3層に限定した対象型のニューラルネットワーク(サンドイッチの形をしたネットワーク)を、順次バラバラに学習させることで、各層のサンドイッチの具が出来上がります。多層ネットワークではなく、3層に限定して学習するので、学習の成功率は格段に向上することになります。
こうして、全ての猫の写真によって学習を続けて、サンドイッチの具を重ね合わせた、N段のケーキ型のサンドイッチのネットワークは、「猫を見たときだけ、最後の1ノードが発火する」("1"になる)、つまり「猫だけに興奮するニューラルネットワーク」として、完成することになります。
このネットワークには、猫の写真しか見せておりません。そして、とにかく最後の1ノードが発火するように(興奮するように)、各層を丹念に学習さえ続ければ良いのです。まさに、「教師なし学習」の面目躍如と言えましょう。
Copyright © ITmedia, Inc. All Rights Reserved.