简体   繁体   English

这些是卷积神经网络的可取的最佳实践吗?

[英]Are these advisable best practices for convolutional neural networks?

This is my understanding of convolutional neural networks and my best practices.这是我对卷积神经网络的理解和我的最佳实践。 Please advise if my though-process is accurate.请告知我的过程是否准确。

1) If input set has small details, have a smaller filter size. 1)如果输入集有小细节,有更小的过滤器尺寸。

2) Qty is dependent on how many small details. 2)数量取决于有多少小细节。

3) Always have a maxpool layer for showing the output layers the most important parts of the image. 3) 总是有一个 maxpool 层来显示 output 层图像中最重要的部分。

4) if accuracy between the last few epochs is very small, and training time is long, consider increasing learning rate and/or decreasing epochs 4) 如果最后几个 epoch 之间的准确率非常小,并且训练时间很长,请考虑提高学习率和/或减少 epoch

5) if dropout is to be used, use it between two dense layers, preferably right before the output layer 5) 如果要使用 dropout,请在两个密集层之间使用它,最好在 output 层之前

Thanks for your expertise in advance.提前感谢您的专业知识。

Let's evaluate point by point.让我们逐点评估。

1) If input set has small details, have a smaller filter size. 1)如果输入集有小细节,有更小的过滤器尺寸。 -> Yes, you can use the most 3x3 common filter or if need be then 2x2. -> 是的,您可以使用最常用的 3x3 过滤器,或者如果需要,可以使用 2x2。 But, still you will have to go through a lot of prototyping.但是,您仍然需要通过大量原型设计来实现 go。 An added fact to this, the number of filters is directly proportional to the position of layers.除此之外,过滤器的数量与层的 position 成正比。 So, in first layer, have 16, then next layers 32 and so on.因此,在第一层,有 16 个,然后是下一层 32,依此类推。

2) Qty is dependent on how many small details. 2)数量取决于有多少小细节。 -> You don't know the number of small details. -> 你不知道小细节的数量。 Neural networks are effectively a black-box, there is no rigorous mathematical way to define neural networks till now.神经网络实际上是一个黑盒,到目前为止还没有严格的数学方法来定义神经网络。

3) Always have a maxpool layer for showing the output layers the most important parts of the image. 3) 总是有一个 maxpool 层来显示 output 层图像中最重要的部分。 -> By that logic, you would just put MaxPool at the end of the network. -> 按照这种逻辑,您只需将 MaxPool 放在网络的末端。 Usually, have a MaxPool, after 2-3 Conv layers.通常,在 2-3 个 Conv 层之后有一个 MaxPool。 The point of MaxPool is to highlight the important features but also at the same time to reduce parameter space. MaxPool 的重点是突出重要功能,同时减少参数空间。 Using it sparingly defeats it purpose.谨慎使用它会破坏它的目的。

4) If accuracy between the last few epochs is very small, and training time is long, consider increasing learning rate and/or decreasing epochs. 4) 如果最后几个 epoch 之间的准确率非常小,并且训练时间很长,请考虑提高学习率和/或减少 epoch。 -> Accuracy usually slows increases towards the end of training. -> 准确性通常会在训练结束时减慢增长速度。 Even in learning rate schedules, you decrease the learning rate w.r.t to increasing epochs.即使在学习率计划中,您也可以将学习率 w.r.t 降低到增加的时期。 Don't expect big jumps in accuracy towards the end of training.不要期望在训练结束时准确度会有很大的提高。 Try to find a good learning rate and train till satisfaction w.r.t validation set.尝试找到一个好的学习率并训练直到满意 w.r.t 验证集。

5) If dropout is to be used, use it between two dense layers, preferably right before the output layer. 5) 如果要使用 dropout,请在两个密集层之间使用它,最好是在 output 层之前。 -> The point of dropout is to give a regularization effect. -> dropout 的意义在于给出正则化效果。 You can use dropout in Conv layers also.您也可以在 Conv 层中使用 dropout。 Use dropout to reduce overfitting, the place doesn't matter.使用dropout减少过拟合,位置无所谓。 The effectiveness of using dropout in Dense layers should be more as they are towards the end of network holding the weights that result into your prediction but dropout should be used throughout the network if possible.在密集层中使用 dropout 的有效性应该更高,因为它们接近网络的末端,持有导致预测的权重,但如果可能的话,应该在整个网络中使用 dropout。 Or you can use regularizer on layer weights.或者您可以在层权重上使用正则化器。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM