ここまで見てきたように、プーリング層は、畳み込み層で見つけた特徴をまとめて整理する層でした。
では、そのように特徴を要約すると、ディープラーニングの学習にはどんなよいことがあるのでしょうか。
プーリング層の役割は、ただ情報を減らすことだけではありません。
そこには、画像を認識するときにとても大切な意味があります。
まず、私たちが写真を見る場面を考えてみましょう。
たとえば猫の耳を見つけるとき、耳がいつもまったく同じ場所にあるわけではありません。
・ある写真では少し左上
・別の写真では少し右
・もう一枚では少し下
ということもあります。
でも私たちは、それでも「これは猫の耳だ」とわかりますよね。
つまり認識にとって大事なのは、その特徴がぴったり同じ座標にあること ではなく、そのあたりにその特徴があることなのです。
プーリング層は、この「少しずれていても見失わない」性質を助けてくれます。
虫めがねで絵を見ている場面を、もう一度思い出してみましょう。
あなたは絵の上を少しずつ観察して、
・ここに線がある
・すぐ隣にも似た線がある
・少し右にも反応がある
というメモを取っていきます。
もしこのメモを、位置まで一字一句そのまま覚えようとすると、絵がほんの少しずれただけで「前と違う場所にあるから別物かもしれない」と勘違いしてしまうかもしれません。
でもプーリング層は、その近くにある似た反応をまとめて、このへんに大事な特徴があったという形に整理します。
だから、特徴の位置が少し変わっても、「だいたい同じもの」として扱いやすくなるのです。
こうした性質を、ディープラーニングでは不変性の獲得と呼びます。
少し難しく聞こえるけれど、ここでの意味はシンプルです。
位置が少し変わっても、同じ特徴として認識しやすくなること、です。
たとえば、猫の耳が少し右へずれていても、それを「別の耳」と考えるのではなく、同じように耳として捉えられる。
これが、位置ずれに対する不変性です。
プーリング層は、細かな位置の違いを少しならしてまとめることで、こうした不変性を得やすくしてくれます。
また、プーリング層には、情報量を圧縮するという役割もあります。
畳み込み層で特徴を見つけると、画像のあちこちにたくさんの反応が生まれます。
それを全部そのまま次の層へ渡すと、
・情報が多くなりすぎる
・計算量が増える
・扱いが少し重くなる
という問題が出てきます。
そこでプーリング層は、近くにある特徴を少しまとめて、大事な情報を残しながら、量を減らすのです。
旅先で書いた細かなメモを、後で見返しやすいように要点だけ整理するようなものだと思ってもよいでしょう。
ここで大事なのは、プーリング層は単に「情報を削る」だけではない、ということです。
たしかに細かな位置情報は少し減ります。
でもその代わりに、どんな特徴があったかという意味のほうを残しやすくします。
つまりプーリング層は、細部をただ失わせているのではなく、認識にとって大事な形に情報を整理し直しているのです。
これは、長い文章を要約するときにも少し似ています。
一字一句をそのまま残すことはできなくても、大事な意味や流れを残すことはできますよね。
プーリング層もまた、細かな違いよりも「何があったか」を大切にして、情報をまとめているのです。
プーリング層は、こうして情報を整理することで、学習を進めやすくする役割も持っています。
もし特徴が細かすぎるまま大量に残っていると、後ろの層はそれを全部受け取って判断しなければなりません。
でもプーリング層である程度まとめておけば、後ろの層は、どのへんに特徴があったか、どんな特徴が強く出ていたかを、よりコンパクトに受け取れるようになります。
つまりプーリング層は、後ろの層が理解しやすい形に情報を整えて渡す役割も果たしているのです。
もう少し感覚的に言うと、プーリング層は、見つけた特徴を、少し信じやすくする仕組みとも言えます。
なぜなら、位置がほんの少し違うだけで別物扱いしてしまうと、認識はとても不安定になるからです。
でもプーリング層があれば、「ぴったり同じ場所ではないけれど、このあたりに同じ特徴があるから、たぶん同じ意味だろう」と受け取れます。
そうすることで、画像の小さなずれに振り回されにくくなるのです。
まとめ
ここまでをまとめると、プーリング層の役割は主に次の3つです。
特徴を要約する→ 畳み込み層で見つけた細かな反応を整理する
位置ずれに強くする→ 少しずれても同じ特徴として捉えやすくする(不変性の獲得)
情報量を減らして学習を進めやすくする→ 大事な特徴を残しながら、扱いやすい形にする
next ▶ 回帰結合層とは何か