簡體   English   中英

神經網絡隱藏層 vs. 卷積隱藏層直覺

[英]Neural network hidden layer vs. Convolutional hidden layer intuition

如果有 10 個特征和 1 個輸出類(sigmoid 激活)具有回歸目標:

如果我在第一個密集隱藏層中只使用 5 個神經元:第一個錯誤是否僅基於訓練特征集的一半計算? 是否必須將特征數量與隱藏層 #1 中的神經元匹配,以便模型可以一次看到所有特征? 否則它沒有得到全貌? 第一次 fwd 傳播迭代將使用 10 個特征中的 5 個,並獲得誤差值(並在反向傳播期間進行訓練,假設批量梯度下降)。 然后第二次 fwd 傳播迭代將看到 10 個特征中剩余的 5 個具有更新的權重,並有望達到更小的誤差。 但它一次只能看到一半的功能!

相反,如果我有 64 個神經元的卷積 2D 層。 我的訓練形狀是:(100, 28,28,1)(貓和狗的灰度圖片),64 個神經元中的每一個都會看到不同的 28x28 向量嗎? 不對,因為它一次只能通過前向傳播發送一個示例? 那么只有一張圖片(貓或狗)應該跨越 64 個神經元? 既然該層中的每個神經元都具有相同的過濾器、步長、填充和激活函數,為什么要這樣做呢? 當你定義一個 Conv2D 層時……每個神經元的參數都是一樣的。 那么是否只有一部分訓練示例進入每個神經元? 例如,為什么有 64 個神經元? 只需有一個神經元,在其上使用過濾器,然后將其傳遞到具有不同參數的另一個過濾器的第二個隱藏層!

請解釋我邏輯中的缺陷。 非常感謝。

編輯:我剛剛意識到對於 Conv2D,您將訓練數據集展平,使其成為一維向量,因此 28x28 圖像意味着具有 724 個神經元的輸入 conv2d 層。 但我仍然對密集神經網絡感到困惑(上面的第 1 段)

你的“第一”層是什么? 通常你有一個輸入層作為第一層,它不包含任何權重。 輸入圖層的形狀必須與您的特征數據的形狀相匹配。 所以基本上當你訓練一個有 10 個特征的模型,但只有一個形狀為(None,5)的輸入層(其中 none 代表 batch_size)時,tensorflow 會引發一個異常,因為它需要所有輸入的數據具有正確的形狀.

所以你說的不會發生。 如果您只有 5 個特征,則接下來的 5 個特征將不會在下一次迭代中適合網絡,但是,下一個樣本將改為發送到模型。 (假設沒有拋出異常)因此,下一個示例也將使用前 5 個功能。

您可以做的是,使用input_layer作為具有正確形狀特征的第一層。 然后作為第二層,你可以使用任何你喜歡的形狀,1,10,100 個密集的神經元,這取決於你(當然還有什么效果很好)。 輸出的形狀必須再次匹配(這次)標簽數據的形狀。

我希望這能讓它更清楚

暫無
暫無

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

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