こんにちは､ 今日もディープラーニングの講座にようこそ｡
今回はMaxプーリングについてですが､ これから非常にエキサイティングなスライドが待っていますし､ チュートリアルの最後には特別なサプライズもあります｡
では､ さっそく始めましょう｡
まず､ プーリングとは何か､ なぜ必要なのかという疑問があります｡
では､ その答えとして､ この画像をご覧ください｡
この3枚の画像には､ チーターが写っています｡
実は､ 最初の画像と全く同じチーターなのです｡
画像が正しく配置されている｡
チーターがまっすぐこちらを見ている｡
2枚目の画像では少し回転しており､ 3枚目の画像では少しつぶれています｡
ここで重要なのは､ ニューラルネットワークが､ これらの画像のすべてに写っているチーターを認識できるようにすることです｡
実はこれ､ 1匹のチーターなんです｡
もし､ たくさんの種類のチーターがいたらどうしますか？
ここにチーターがいます｡
こちらもチーターです｡
ここにチーターがいる､ ここにチーターがいる､ ここにチーターがいる｡
そして､ ニューラルネットワークに､ これらのチーターをすべてチーターとして認識させたいのです｡
しかも､ 全員が違う方向を見ているのに､ どうしてそんなことができるのでしょうか？
全部違うところに写っているんですよ｡
顔の位置がバラバラになっているようなんです｡
誰かが右手に､ 誰かが左隅に､ 誰かが真ん中に｡
どれもちょっとずつ違うんです｡
質感がちょっと違うし､ 照明もちょっと違う｡
小さな違いがたくさんあるんです｡
それで､ ニューラルネットワークがまさにある特徴を探すと､
例えば､ チーターの特徴として､ 目から行く顔にある涙や､ 涙に見える影､ 質感､
目から下に行く模様があります｡
鼻の大きさにありますね｡
涙のように見える｡
それがチーターの特徴です｡
しかし､ あるチーターから学んだその特徴を､ 正確な場所､ 正確な形､ 質感で探しているとしたら､
他のチーターを見つけることはできないでしょう｡
つまり､ 特徴が画像のどこにあるかは気にしないのです｡
しかし､ 特徴が少し傾いていても､ 特徴の質感が少し違っても､ 特徴が少し近づいても､
特徴が相対的に少し離れても､ 気にする必要はありません｡
ですから､ 特徴そのものが少し歪んでいても､ ニューラルネットワークがその特徴を見つけられるような柔軟性が必要で､
それがプーリングなのです｡
では､ プーリングの仕組みを見てみましょう｡
これが私たちのフィーチャーマップです｡
つまり､ すでに畳み込みを行っており､ その部分は完成しているので､ 今度は畳み込みレイヤーを使って作業することになります｡
今度はプーリングを適用します｡
では､ その仕組みはどうなっているのでしょうか｡
これからマックスプーリングが適用されます｡
プーリングには､ 平均プーリング､ 最大プーリング､ いくつかのプーリングがあり､ このチュートリアルの最後にそれについてコメントします｡
でも､ 今はマックスプーリングを適用しているだけです｡
このように2×2ピクセルのボックスを取るわけですが､ やはり2×2である必要はないのです｡
箱の大きさは自由に選べます｡
そしてまた､ トライアルの最後のほうでコメントしますが､ 左上に置いて､
そのボックスの中で最大値を見つけるのです｡
そして､ その値だけを記録し､ 他の3つは無視するのです｡
つまり､ 4つの値がありますが､ 3つは無視して､ 最大値である1つだけを残します｡
そして､ 自分の箱をストライド分右に移動させ､ もう一度ストライドを選択します｡
そこで､ ここではストライドを2にしていますが､ これは通常選択するものです｡
1本分のストライドを､ 選択することができるのです｡
だから､ 箱が重なっているんです｡
好きな種類の歩幅を選ぶことができ､ 必要であれば3歩でも可能です｡
しかし､ ここでは2ストライドを選択しており､ それが一般的に使われているものです｡
そして､ それを繰り返す､ 繰り返す｡
ここで最大値を記録するのです｡
もし､ 越えても問題ないのであれば､ 今やっていることを続けていけばいいのです｡
つまり､ 最大値はここ､ ゼロはここ､ 最大値は4はここ､ 最大値は2はここ､ 最大値は10102､
そして1と記録していくのです｡
というわけで､ ご覧の通り､ いくつかのことが起こりました｡
まず､ やはり機能を残すことができましたね｡
畳み込み層の仕組みがわかっているからこそ､ それらが表す最大の数値がわかる｡
特徴量マップの最大値や少し大きな数値は､ 実際にその特徴量に最も近い類似性を見つけた場所を表していることが分かります｡
しかし､ これらの機能をプールすることで､ まず情報の75%を取り除くことになります｡
4ピクセルのうち3ピクセルを無視しているので､ 25％しか維持できていないのです｡
また､ ピクセルの最大値を取っているので､ そのピクセルの値､ または､ そのピクセルの値の最大値を取っています｡
そのため､ 歪みを考慮しています｡
だから､ 例えば､ チーターの涙が目に入るような2枚の画像は
1枚の画像の中に､ 左側に1ビット､ または1ビット回転した画像があります｡
そしてもうひとつ｡
このように､ あるものを基準にして､ もう1つを左に回転させると､
プールされた機能はまったく同じになります｡
だから､ 私たちが詐欺師について話しているかどうか､ ここで見ることができます､ 乾杯｡
じゃあ､ これが4で､ ここがここだったとしましょう｡
それから､ 少し回転していた場合｡
例えば､ 4つのフィーチャーマップがここにあるとして､ プーリングしても､ 同じようにプーリングされたフィーチャーマップが得られます｡
それが原理原則のようなものです｡
非常に大雑把な説明で､ 直感的な説明ですが､ プーリングのポイントは､
特徴を維持しつつ､ 空間やテクスチャなどの歪みを考慮できることです｡
そして､ それらに加えて､ サイズを小さくしています｡
つまり､ もうひとつの利点があるのです｡
つまり､ 特徴を維持したまま､ 空間不変量を導入し､
サイズを75％削減することができたのです｡
さらに､ プーリングのもう一つの利点は､ パラメータの数を減らすことです｡
そこで､ 再び75％削減することにしました｡
ニューラルネットワークの最終層に入るパラメータの数を減らすことで､ オーバーフィッティングを防いでいるのです｡
情報を削除しているのは､ プーリングの非常に重要なメリットです｡
そして､ それは良いことだと思います｡
そうすれば､ モデルがその情報に過剰にフィットすることがなくなるからです｡ なぜなら､ その情報は特に関連性がないからです｡
冒頭でお話したように､ 私たち人間にとっても､ 目に入ってくるさまざまなノイズよりも､
特徴を正確に見ることが大切です｡
まあ､ ニューラルネットワークも同じことなんですけどね｡
このように､ 重要でない不要な情報を無視することで､ オーバーフィッティングの防止に役立っているのです｡
だから､ 彼らは行くのだろう｡
それがプーリングです｡
そして､ ここでの疑問はもちろん､ 「なぜ？
なぜMax Poolingなのか､ ですね｡
プーリングにはいろいろな種類があり､ なぜアストライドなのか､ なぜ2×2ピクセルのサイズなのか､ などなど､
いろいろあります｡
そこで､ ボン大学のドミニク・シェラーによる「物体認識のための畳み込みアーキテクチャにおけるプール操作の評価」という素敵な研究論文を紹介したいと思います｡
この論文の素晴らしいところは､ とてもシンプルでわかりやすいところです｡
では､ これまで研究論文を読んだことがない人は､ どんなことに挑戦してみたいのでしょうか｡
これは素晴らしいところです｡
わずか10ページと短く､ とても読みやすい｡
さらに､ 畳み込みとプーリングについて説明したことで､ この論文で語られていることすべてにすっかり慣れてしまうというおまけつきです｡
そしてあなたは､ これは実際にあなたの知識を強化するための素晴らしい方法です｡
だから､ この論文はぜひチェックしてほしい｡
20分ほどかけて読みますので､ 関連作品と呼ばれるパート2は飛ばしても大丈夫です｡
ちょっと遠回しに感じたり､ 疎外感を感じたりしたら｡
そこだけは読まないでください｡
そのまま第1部～第3部まで行ってください｡
この論文では､ サブサンプリングという概念について述べていますが､ サブサンプリングとは基本的に平均値のプーリングです｡
だから､ 私たちが最大限の努力をしたことを忘れないでください｡
だから､ 私たちの広場では､ 最大値を取っていたのです｡
ミーンプーリングとかサムプーリングという考え方があります｡
いくつかのプーリングは､ これらの値を平均プーリングまたは平均プーリングに上げるだけですか？
サブサンプリングは､ 平均値プーリングを一般化したようなもので､ これらの中から平均値を取り出します｡
これらの値の平均を取るという､ より一般的なアプローチです｡
詳しくは論文を読んでいただきたいのですが､ それ以外は､ その論文を読むときは､ アベレージプーリングとでも思ってください｡
そこで､ このトピックに関する追加情報を得ることができるのです｡
さて､ ここでこれまでのことを振り返ってみましょう｡
これが入力画像です｡
そして､ 畳み込み演算を適用して､ 畳み込み層を得る｡
そして､ 得られたそれぞれのフィーチャーマップに､ プーリングレイヤーを適用したところです｡
さて､ 畳み込みとプーリングの2つのステップを終えましたが､ 次はとても楽しい､ ワクワクするようなことをやってみましょう｡
実験することになりました｡
これは､ アダム・ハーレイがライアソン大学のコンピュータサイエンスにいた頃に作ったツールのスクリーンショットで､
現在はカーネギーメロン大学で博士号を取得しています｡
では､ 開陳しましょう｡
探せるように見てみましょう｡
実際にGoogleで検索しても出てきません｡
URLを知らなければならない｡
それは......見つけるのが難しいんです｡
ここにテキストがないので､ Googleを通じて｡
SC まあ､ このURLだけなんですけどね｡
CS Dot Ryerson Dossierと､ 最後にこのようなものがあります｡
そして､ 基本的にはこれと全く同じです｡
しかし､ 可視化する｡
そこで､ ここでは数字を描く必要があります｡
例えば､ 4番を描くと､ このツールは4番をここに置いてくれます｡
それが､ 最初のステップのあなたのイメージです｡
では､ これがコンボリューションのステップですね？
そして､ これがプーリングのステップです｡
あと､ ちなみにプーリングはダウンサンプリングとも言いますね｡
つまり､ プーリングとダウンサンプリングは同じものなのです｡
つまり､ コンボリューションを適用し､ プーリングを適用して､ 正確にどのように動作しているかがわかると思います｡
そのため､ どのようなコンボリューションが適用されているか､ どのようなフィルターが適用されているか､ それらがどのように見えるかを見ることができます｡
どのような特徴に注目しているのかがわかり､ それを応用して､ プーリングして､ サイズを小さくしているのです｡
そして､ ここが重要であることがおわかりいただけると思います｡
この画像とプールした画像で､ 同じ特徴があることがおわかりいただけると思います｡
情報量が少ないだけで､ 機能は同じでしょう？
機能はそのままに｡
そこが大事なところです｡
さらに､ もし私たちの4台が少し横に回転していたとしても､ 非常によく似たプーリング層を拾うことができます｡
その後､ さらに層が厚くなるんです｡
まだその話はしていません｡
次に､ 実際にはないのですが､ 別の畳み込み層があり､ さらに別のプール層がありますが､ 基本的には同じプロセスを繰り返しているだけです｡
その後､ このコースでさらに詳しく説明するのは､ 完全に接続されたレイヤーなどですが､
これはぜひとも遊んでみてください｡
ですから､ もし私が7を引いたとしたら､ これは7で､ 2番目の可能性は3だと推測していることがわかります｡
だから､ 難しいものを描いて､ それを拾えるかどうか見てみるといい｡
例えば､ ゼロのようなものを描いたとして､ それが仕上げのゼロでなかった場合､
今度はそれを拾わないのでしょうか｡
イメージ的にはそれに9を足したような感じです｡
そんな風に仕上げるのが好きだったらどうでしょう？
つまり､ 0か9だと思い込んでいるわけです｡ そして､ その0か9を照らしているものが､ あそこに見えるわけです｡
しかし､ その部分については､ さらに下の方でお話します｡
もう一回やろう｡
8つくらいにしましょうか｡
今､ 8を拾ったので､ 8が入るのがわかると思うんですが､ 8は結構難しいんですよ｡
そして､ それ以降は分からなくなるような｡
停車駅は､ 私たち人間にとって意味があるのでしょうか？
これらの機能を駆使しながら､ 同時に「8」であることを正しく認識しているのです｡
そうですね､ ぜひ試してみてください｡
スマイリーフェイスを描いて､ それからどうなるかを見てください｡
このツールは0から9までの数字しか学習しないので､ このツールには3にしか見えません｡
だから､ その中から何かを認識しなければならず､ 3を認識するのです｡
人生において､ カスタードアップルなど見たこともない種類の果物を見たときと同じです｡
そして､ 実際に見たことがないからイトウのようなものだと思うのでしょう｡
何に分類したらいいのかわからないんですね｡
こちらも同じです｡
だから､ 実際にはスマイルのトレーニングはしていないんです｡
だから自分を木だと思い込んでいるのです｡
3なんです｡
それでは､ どうぞ｡
とてもパワフルな､ 強力なツールなのです｡
遊んでいただくと参考になると思います｡
また､ 実際にピクセルの上にマウスを乗せると､ そのピクセルを拾った特徴検出器の位置が表示されるので､ このピクセルはどこから来たものなのかを確認することができます｡
また､ コースで説明したように､ フィルターが画像を通過していく様子もご覧いただけると思います｡
そして､ ここにプーリングがあるのがわかります｡ プーリングは､ 2×2の小さな正方形のサイズで行われているのがわかりますね｡
そして､ 今日のチュートリアルで説明したように､ ストライドも2つであることがおわかりいただけると思います｡
それでは､ 今日のセッションを楽しんでください｡
次回､ お会いできるのを楽しみにしています｡
そして､ それまではディープラーニングを楽しんでください｡