私は CNN を練習しています。MNISTデータセットのトレーニングに関するいくつかの論文を読みました.CNNを使用します.画像のサイズは28x28で、アーキテクチャ5層を使用します:input>conv1-maxpool1>conv2-maxpool2>full connected>output
Convolutional Layer #1
- Computes 32 features using a 5x5 filter with ReLU activation.
- Padding is added to preserve width and height.
- Input Tensor Shape: [batch_size, 28, 28, 1]
- Output Tensor Shape: [batch_size, 28, 28, 32]
Pooling Layer #1
- First max pooling layer with a 2x2 filter and stride of 2
- Input Tensor Shape: [batch_size, 28, 28, 32]
- Output Tensor Shape: [batch_size, 14, 14, 32]
Convolutional Layer #2
- Computes 64 features using a 5x5 filter.
- Padding is added to preserve width and height.
- Input Tensor Shape: [batch_size, 14, 14, 32]
- Output Tensor Shape: [batch_size, 14, 14, 64]
Pooling Layer #2
- Second max pooling layer with a 2x2 filter and stride of 2
- Input Tensor Shape: [batch_size, 14, 14, 64]
- Output Tensor Shape: [batch_size, 7, 7, 64]
Flatten tensor into a batch of vectors
- Input Tensor Shape: [batch_size, 7, 7, 64]
- Output Tensor Shape: [batch_size, 7 * 7 * 64]
Fully Connected Layer
- Densely connected layer with 1024 neurons
- Input Tensor Shape: [batch_size, 7 * 7 * 64]
- Output Tensor Shape: [batch_size, 1024] Output layer
- Input Tensor Shape: [batch_size, 1024]
- Output Tensor Shape: [batch_size, 10]
conv1 では、1 つの入力で 5x5 フィルターを使用して 32 の特徴を計算し、conv2 では conv1 からの 32 の入力で同じフィルターを使用して 64 の特徴を計算します。32、64、2x2 フィルタなどのパラメータは何に基づいて選択されますか? それらは画像のサイズに基づいていますか?
画像のサイズが 128x128 などの 28x28 より大きい場合。5 レイヤー以上のレイヤー数を増やす必要がありますか? 上記のパラメータは、他のサイズの画像でどのように変更されますか?
よろしくお願いします
32、64、2x2 フィルタなどのパラメータは何に基づいて選択されますか? それらは画像のサイズに基づいていますか?
あなたが言及したパラメーター (32、64、2x2) は、畳み込み層のフィルター数とフィルター サイズです。これらは、モデルをトレーニングするときに選択および調整できるハイパーパラメータです。データセット、アプリケーション、およびモデルのパフォーマンスに応じて、それらを制御できます。
多くのフィルターでは、モデルが学習する機能の数を制御するために使用します。モデルでは、maxpooling レイヤーの後にフィルター番号が 32 から 64 に増加します。2x2 フィルターを使用した Maxpooling レイヤーは、フィーチャの数を半分に減らします。また、フィルターの数を 2 倍にすることで、モデル内の同じ数の特徴が維持されます。慣例では、2x2 の maxpooling レイヤーの後、フィルター番号はこの理由で 2 倍になります。
また、フィルター サイズについては、maxpooling レイヤーの場合、フィーチャ リダクションのサイズを決定します。畳み込み層の場合、入力画像がどの程度詳細に学習されるかを決定します。たとえば、小さなピクセルや特徴によってオブジェクトが異なる画像を処理しようとしている場合は、3x3 や 5x5 などの小さなフィルター サイズを選択します。フィルター サイズが大きい場合はその逆です。
これらのハイパーパラメータを理解する 1 つの方法は、これらがモデルの学習にどのように影響するかを理解することであり、それぞれの場合に応じてそれらを制御する方法を知ることができます。そして、別の方法は、これらが他の人が使用するモデルにどのように設定されているかを調べることです。maxpooling レイヤーの後にフィルター番号が増えるなどの規則が見つかる場合があります。
画像のサイズが 128x128 などの 28x28 より大きい場合。5 レイヤー以上のレイヤー数を増やす必要がありますか? 上記のパラメータは、他のサイズの画像でどのように変更されますか?
レイヤーについては、レイヤーが多いほどモデルが深くなり、パラメーターが増えます。これは、モデルがより複雑になり、画像の特徴についてさらに学習できるようになることを意味します。したがって、深いアーキテクチャを持つことは、大きな解像度で画像を学習するのに役立ちます。解像度が高いということは、学ぶべき機能がたくさんあることを意味するからです。ただし、これも場合によって異なります。これに対する良いアプローチは、レイヤーの少ないシンプルなモデルから始めて、モデルに利益をもたらしながら徐々にレイヤーを増やすことです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加