こんにちは､ ディープラーニングの講座にようこそ｡
今日はRevolutについてお話しますが､ これは整流された線形ユニットで､ コンボリューションのステップの上にさらにステップを追加したものです｡
だから､ 別に大きなステップではないんです｡
小さな一歩です｡
基本的にはステップ1Bです｡
そして､ ここで何が起こっているのか？
さて､ 入力画像ができました｡
これまで説明してきたように､ 畳み込み層があります｡
そしてその上に､ お待ちかね､ お気に入りの整流器機能を適用するのです｡
また､ Rectifier関数については､ 前回の人工ニューラルネットワークのセクションで既にご存知のことと思います｡
SOでは､ 著者や講師がコンボリューションとレクチファイヤーを2つのステップに分けて説明することがありますが､
ここではレクチファイアーよりも大きな1つのステップとみなして､ 第2進化を考えます｡
そして､ The Rectifierを適用する理由は､ 画像やネットワーク､ 畳み込みニューラルネットワークの非直線性を高めたいからなのです｡
そして整流器は､ そのフィルターやアクセス､ リニアリティを崩す機能として機能します｡
なぜ､ ネットワークに非直線性を持たせるかというと､
画像そのものが非常に非線形だからです｡
画像には多くの非線形要素があり､ ピクセル間や隣接するピクセル間の遷移は非線形であることが多いのです｡
それは､ ボーダーがあるから､ 色が違うから､ 違うから､ イメージの要素が違うからです｡
しかし同時に､ 畳み込みのような数学的演算を適用し､ この特徴検出を実行して特徴マップを作成する場合､
直線的なものを作ってしまう恐れがあるため､ 直線性を崩す必要があるのです｡
では､ 例を見てみましょう｡
こちらがその画像､ オリジナル画像です｡
さて､ この画像に特徴検出器をかけると､ 次のようなものが得られます｡
つまり､ 黒はマイナスであることがここでわかります｡
白は正の値｡
0と1だけでなく､ さまざまな値を持つ画像に特徴検出器を適用すると､ 前に見たように､
未来の検出器がそれ自体に負の値を持つことができれば､ 時には負の値が得られ､
ここに黒いものは陰性､ 白いものは陽性となります｡
そして､ 整流化された線形単位関数が行うことは､ すべての黒を取り除き､ ゼロ以下のものはゼロに変えることです｡
そして､ ここからこうなっていくわけです｡
そうですね｡
そのため､ リニアリティを崩すという点で､ 具体的にどのようなメリットがあるのか､ かなりわかりにくいのです｡
説明してみる｡
この画像に例を示してみます｡
しかし､ 結局のところ､ これは非常に数学的な概念なのです｡
そして､ 何が起こっているのかを本当に説明するためには､ 多くの数学に踏み込まなければならないでしょう｡
でも､ やってみましょう......見ましょう｡
では､ 例えばこのこの建物を見てみましょうか｡
つまり､ これだけで1つのビルになるわけです｡
そして､ この影､ この黒い部分､ この影が見えると思います｡
まあ､ 光の反射で白っぽくなって､ グレーになり､ さらに暗くなって､ また暗くなっているのがわかると思います｡
そうだろ？
それで､ それを取り出すときに､ その黒い部分を取り出すんです｡
だから､ リニアで考えるんですね｡
つまり､ 白からグレーになると､ 次は黒になるような感じですね？
次は黒でしょう｡
明るいところから暗いところへ一直線に進んでいくのです｡
したがって､ これは一種のリニアな状況なんです｡
黒を抜くと､ リニアリティが崩れるんです｡
もう1つ試してみましょう｡
ここで見てみましょう｡
と同時に､ やはり同じ建物なんですね｡
それは､ 2つの建物を互いに融合させるようなものではないのです｡
しかし､ それは二の次です｡
ポイントは､ リニアリティを崩すことです｡
では､ ここで見てみましょう｡
同じことです｡
白､ グレー､ 黒､ グレー､ 白と表示されるわけです｡
そして､ 解散したら､ もうそれはないわけですよね？
このように､ 徐々に進行するのではなく､ 突然変化することで､ 画像に非直線性を持たせることができるのです｡
だから､ 技術的な説明というよりは､ 非常にざっくりとした､ オン・ザ・フィンガーのような説明になってしまうんです｡
でも､ これで私たちがここで話していることをもう少し理解してもらえたらと思います｡
ですから､ ここでもWhite Grayの方が良い例であることがおわかりいただけると思います｡
あなただって､ 明るい､ 暗い､ 暗い､ 暗い､ 暗い､ と見ている｡
この部分はリニアに見えるんですね｡
じゃあ､ そうやって壊していくんですね｡
ええと､ もう一度｡
というわけで､ 非常に大雑把な説明になってしまいましたが､ いかがでしょうか｡
絶対的に完璧というわけではありませんが､ 少なくとも何が起こっているのか､ ある程度はわかるようになっています｡
でも､ もっと知りたい人は､ いつものようにいい紙がありますよ｡
必ず紙がある｡
こちらはカリフォルニア大学のKeikoさんによるもので､ 「Understanding Convolutional Neural Networks with a mathematical model（畳み込みニューラルネットワークを数理モデルで理解する）」というタイトルです｡
そして､ 基本的には質問に対する答えであり､ 最初の1つだけ見ればいいのです｡
そして問題は､ なぜそうしないのか､ ということです｡
すべての中間層のフィルター出力には､ 非線形活性化関数が不可欠である｡
このように､ 直感と､ 主に数学の観点から､ もう少し詳しく説明します｡
この論文では､ このトピックについてさらに詳しい情報を得ることができますので､ 興味深い論文です｡
また､ もっと深く掘り下げたい方は､ 別の論文もご覧になってみてください｡
画像やネットの分類で人間11人レベルの性能を超える､ Delving Deep into Rectifierと呼ばれるものです｡
そして､ ここに来ている著者やMicrosoft Researchの他の研究者たちは､ 別のタイプの整流化された線形単位関数を提案しています｡
彼らは､ 右の写真のようなパラメトリック整流化線形関数を提案し､ パフォーマンスを犠牲にすることなく､
より良い結果をもたらすと主張しています｡
というわけで､ この話題にもう少し触れたい人は読んでみると面白いですよ､ 今日はここまで｡
本当の新規レイヤーは､ Rectifier機能を適用するだけで､ かなりシンプルでわかりやすい｡
そして､ 次回お会いできるのを楽しみにしています｡
それまでは､ ディープラーニングを楽しんでください｡