簡體   English   中英

改變卷積神經網絡中的參數

[英]Change parameters in Convolution neural network

我正在練習 CNN。 我閱讀了一些關於使用 CNNs.size of image 訓練 MNIST 數據集並使用架構 5 層的論文:input>conv1-maxpool1>conv2-maxpool2>fully 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濾波器等參數是根據什么選擇的? 它們是否基於圖像的大小?

如果圖像尺寸大於 28x28,例如 128x128。 我應該增加 5 層以上的層數嗎? 上述參數如何隨其他尺寸的圖像而變化?

提前致謝

在它的基礎級別,這些輸入稱為 HyperParameters,通常不由任何特定的規則集定義。 也就是說,我們經常使用經驗法則(啟發式)來選擇一組超參數,然后使用超參數優化來提高性能或效率等。

對此的一個很好的解釋是這里

編輯:本文中的更多信息 - 這是一個被廣泛研究的問題,查看 Arxiv 和 Stats.Stackexchange 以獲取更多信息,但這是我學習時使用的一篇很棒的論文在這里

32、64、2x2濾波器等參數是根據什么選擇的? 它們是否基於圖像的大小?

您提到的參數 (32,64,2x2) 是卷積層的過濾器數量和過濾器大小。 它們是您可以在訓練模型時選擇和調整的超參數。 根據您的數據集、應用程序和模型性能,您可以控制它們。

對於許多過濾器,您可以使用它來控制模型學習的特征數量。 在您的模型中,您的過濾器編號在 maxpooling 層之后從 32 增加到 64。 帶有 2x2 過濾器的 Maxpooling 層會將特征數量減少一半。 通過將過濾器數量增加一倍,它將在模型中保持相同數量的特征。 按照慣例,在 2x2 最大池化層之后,過濾器數量將因此加倍。

而對於過濾器的大小,如果是對於maxpooling層,它將決定特征減少的大小。 如果是卷積層,它將決定輸入圖像的學習細節。 例如,如果您嘗試使用小像素或特征區分對象的圖像,則可以選擇較小的過濾器尺寸,例如 3x3 或 5x5。 對於大過濾器尺寸,反之亦然。

理解這些超參數的一種方法是了解它們如何影響模型的學習,並且您將知道如何根據每種情況控制它們。 另一種方法是查看這些是如何為其他人使用的模型設置的。 您可能會發現一些約定,例如在 maxpooling 層之后增加過濾器數量。

如果圖像尺寸大於 28x28,例如 128x128。 我應該增加 5 層以上的層數嗎? 上述參數如何隨其他尺寸的圖像而變化?

關於層,擁有更多層將使您的模型更深,並會產生更多參數。 這意味着您的模型將變得更加復雜,並且能夠了解更多有關圖像特征的信息。 因此,擁有深度架構有助於學習高分辨率圖像。 因為大分辨率意味着有很多特征需要學習。 但是,這也將視具體情況而定。 解決此問題的好方法是從具有少量層的簡單模型開始,然后逐漸增加層數,同時對您的模型有益。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM