概念是什么?如何计算瓶颈值?这些值如何帮助图像分类?请用简单的话解释。
概念是什么?如何计算瓶颈值?这些值如何帮助图像分类?请用简单的话解释。
Answers:
神经网络中的瓶颈只是神经元数量少于其下方或上方的层。拥有这样的一层可以鼓励网络压缩要素表示以使其最适合可用空间,从而在训练过程中获得最大的损失。
在CNN(例如Google的Inception网络)中,添加了瓶颈层以减少网络中的要素地图(也称为“通道”)的数量,否则这些要素地图往往会在每一层中增加。这是通过使用输出通道比输入通道少的1x1卷积来实现的。
通常,您不直接计算瓶颈层的权重,训练过程将像其他所有权重一样处理权重。您必须猜测并为瓶颈层选择合适的大小,然后进行实验才能找到运行良好的网络体系结构。此处的目标通常是找到一个可以很好地归纳为新图像的网络,而瓶颈层可以通过减少网络中的参数数量来帮助您,同时仍然允许其深度并代表许多特征图。
想象一下,您想重新计算预训练模型的最后一层:
Input->[Freezed-Layers]->[Last-Layer-To-Re-Compute]->Output
要训练[最后一层重新计算],您需要针对给定的输入数据多次评估[冻结层]的输出。为了节省时间,您只能计算一次这些输出。
Input#1->[Freezed-Layers]->Bottleneck-Features-Of-Input#1
然后,您存储所有输入的瓶颈功能#i,并直接使用它们来训练[最后一层重新计算]。
来自“ image_retraining”示例的“ cache_bottlenecks”函数的解释:
因为我们可能会多次读取同一张图像(如果在训练过程中未施加任何失真),如果我们在预处理期间为每个图像计算一次瓶颈层值,然后仅读取那些缓存的值,则可以大大加快速度在训练过程中反复进行。