有意--day17.1関係畳み込み演算Ubuntuの道路、例示的なエッジ検出フィルタとのパディング

アンドリュー・ウ教師オープンクラスをありがとう、以下の画像は、オープンクラスのコースウェアのAndrew Ngの先生からです

なぜ操作を畳み込みする必要がありますか?

私たちは、実験がネコの絵64 * 64のサイズを特定するために行われてきた数日前に合格します。

第二の層1000のノード数とする入力層(64 * 64 * 3、M)への入力データXに関する我々のニューラルネットワークの通常の寸法に、完全に接続されたネットワーク内の次元の数がWであります(1000年、64 * 64 * 3)。

これは、操作可能なように見えるが、実際に絵は今、毎ターンで24万個の画素を有するような電話のような、より明確です。

この場合、重み行列Wを処理するために多くのメモリが非現実的であるしましょう、したがって、畳み込みニューラルネットワークは、コンピュータビジョンの武器となっています。

例えばエッジ検出畳み込み

今、私たちは、上の写真の長手方向縁部から特徴を抽出したいです、

画像は、その場合のみつのチャネルで、3チャンネルRGB色であるため、今では、黒と白の画像の6×6のマトリックスを有します

我々はこのフィルタを使用して、3×3フィルタのフィルタ(また、コアカーネルと呼ばれるいくつかの文献)を使用して、行列の各要素に和を乗算して元の位置に対応し、4×4行列が畳み込まれ得るため

実施例1の最終結果、最初の列0行= 10x1では+ 10x1では+ 10x1では+ 10x0 + 10x0 + 10x0-1x10-1x10-1x10

                    30 = 10x1では+ 10x1では+ 10x1では+ 10x0 + 10x0 + 10x0-0x10-0x10-0x10最初の行二列

長手方向のエッジが検出されたように、最終的な畳み込み結果から、約2最低輝度は、0、二つの中間高輝度です。

上記の例からワイドの検出された長手方向軸を感じるが、これは単に畳み込み6x6のピクチャであることができる、高次元の高画素画像で置き換えられている場合、それは非常に狭くなります。

フィルタ:

過去には、人々はしばしば、このような次のフィルタとして、画像の縦または横のエッジを検出するために、いくつかの手書きのフィルタを使用します。

しかし、今、私たちは9つのパラメータは、ニューラルネットワークのW1〜W9パラメータに設定され、より洗練されたエッジ検出を見つけるために、独自のニューラルネットワークを作ることを学ぶことができますフィルタリングする傾向があります。具体的なアプローチ次回ボーエン氏は述べています。

パディング:

上記従来の畳み込み演算で:

如果我们把原始图片看做n x n的,设置一个f x f的filter,我们会得到一个经过卷积后的(n - f + 1) x (n - f + 1)的图像,所以可以看到图像经过卷积后会变小

所以普通的卷积操作有两个缺点:

1.缩小输出shrinking output

2.丢失边缘信息 因为卷积操作的边缘只会被覆盖一次,而中间的区域会被多次卷积输出,所以边缘的信息可能会被丢掉

为了解决上述问题,我们可以在卷积操作前pad填充图像

举个例子:原始图像是6x6的,我们在周围填充一圈像素点,就变成了8x8的,然后经过3x3的卷积,得到了一个6x6的图像,和原图像的维度相同。

将填充padding的层数设为p,则经过填充后的结果就是(n + 2p - f + 1) x (n + 2p - f + 1)

Valid convolution and Same convolution:

valid:no padding

Same:Pad so that output size is the same as the input size

对于same卷积而言:n + 2p - f + 1 == n

所以得到:p = (f - 1) / 2,选用相应于filter的填充层数p就可以完成same卷积

注意:遵循计算机视觉的惯例一般的f为奇数,如3x3,5x5,7x7等,有时也会有1x1的过滤器

 

おすすめ

転載: www.cnblogs.com/NWNU-LHY/p/11248865.html