CNNのフィルタ数とフィルタサイズの決め方について
古いコメントを表示
プログラミング初心者でCNNの概念についてつまづいております。
下記リンクにつきまして相談がございます。
リンクではインプットレイヤーのサイズが28×28×1、始めのconvolution layerのサイズが3×3, フィルタ数8、スライド2となり、次の層にいくとフィルタ数が倍(16)となっていき最終的にフィルタ数32で終了しているかと思います。(convolution layerが合計3つあります。)
この場合、たとえばconvolution layerを二つフィルタ数を16で終了しても問題ないでしょうか。それともconvolution layerのフィルタ数が必ずインプットレイヤーのサイズを超えなければいけないなどの決まりがあるのでしょうか。
また、たとえばより大きなinput layerのサイズ(300×300×3)の場合、始めのconvolution layerのサイズが3×3, フィルタ数8、スライド2となり、次の層ではconvolution layerのサイズが3×3, フィルタ数16、スライド2、あとはfully connected layerにつなぐなどのアプローチもできるのでしょうか?それともフィルタ数を倍々にしていき、512としてinput layerのサイズを超えなければならないのでしょうか。
要点を得ない質問となってしまい恐縮ですがどうぞよろしくお願いいたします。
6 件のコメント
Kenta
2019 年 8 月 23 日
ここでの「インプットサイズの数を越えなければいけない」という制約は特にないと思います。畳み込みをするほど、画像サイズはどんどん小さくなっていくので、その分チャンネル方向に厚みを増やしている(ここでは倍にしている)、といったようなことだと思います。ひとまず、上でおっしゃっている構造も実装できるので、それを試してみて、精度が不十分であれば構造も含めて再検討する、とう流れが良いとおもいます。ただ、1辺が300程の画像では、もう少し畳み込み層などを入れ込まないと、CNNの良さは利用しきれないかもしれません。
ssk
2019 年 8 月 25 日
Kenta
2019 年 9 月 8 日
こんにちは。
>>その都度特徴マップを生成するという認識でお間違えないでしょうか?
もしかしたら、少しちがっているかもしれません。以下のように解釈すると、
「300×300×3が300×300×8と変化しておりますがどのようにフィルタ数を活用しているのか」
ということのイメージにもつながるかもしれません。
例えば、インプットサイズが、2×2で、フィルターサイズが1×1、ストライドが1、フィルター数が3という場合を考えます。
インプットの値が [1 2; 3 4]で、フィルターの値がそれぞれ、3、6、9であれば、
畳み込み演算と同様の操作をすれば、アウトプットが、[3 6; 9 12], [6 12; 18 24]、[9 18; 27 36]になります。
つまり、左上から、順番にフィルター演算をしていけば、フィルター数と同じ数だけアウトプット(例:300×300×8)が得られると思います。
ご質問いただいた例に戻ると、フィルター1つに対して、1つの特徴マップが得られる→それが8つ分→8チャンネル分の特徴マップが得られる、という流れと考えています。
なお、畳み込みは、いつも左上から、右下まで、(特に制約がなければ)全領域を通過していくイメージと思います。
Kenta
2019 年 9 月 9 日
>>8つある全てのフィルターで左上から右下に順番に畳み込みを行うものの、それぞれのフィルターの値が異なることから8チャンネルのそれぞれ異なる特徴マップを得られるといった認識でしょうか。
はい、その通りです。
>>8つあるフィルターの値をこちら側で設定あるいは確認はできるのでしょうか。
はい、計算後、どういう値になったかという確認は容易にできます。https://jp.mathworks.com/matlabcentral/answers/478011-workspace-cnn-bias-weight
また、「既定では、畳み込み層と全結合層の重みの初期値は、平均 0、標準偏差 0.01 のガウス分布からランダムに生成されます。初期バイアスは既定で 0 に等しくなります。」とあります。https://jp.mathworks.com/help/deeplearning/ug/setting-up-parameters-and-training-of-a-convnet.html
自分でも初期値についてカスタマイズできますが、はじめは既定のままでよいかと思います。
>>フィルターの値はランダムで割り振られるのでしょうか
上のように、正規分布から取り出されるランダムな値となります。
採用された回答
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で イメージ カテゴリの分類と画像検索 についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!