什么是神经网络中的“瓶颈”?
人工智能
神经网络
深度学习
张量流
术语
瓶颈
2021-10-25 19:58:25
2个回答
神经网络中的瓶颈只是神经元数量少于其下方或上方的层。拥有这样一个层会鼓励网络压缩特征表示(目标变量的显着特征)以最适合可用空间。与所有权重更新一样,压缩的改进是由于降低成本函数的目标。
在 CNN(例如 Google 的 Inception 网络)中,添加了瓶颈层以减少网络中特征图(又名通道)的数量,否则,每层中的特征图往往会增加。这是通过使用输出通道少于输入通道的 1x1 卷积来实现的。
您通常不会直接计算瓶颈层的权重,训练过程会处理它,就像所有其他权重一样。为瓶颈层选择合适的大小是您必须猜测的事情,然后进行试验,以找到运行良好的网络架构。这里的目标通常是找到一个可以很好地泛化到新图像的网络,瓶颈层通过减少网络中的参数数量来帮助它,同时仍然允许它很深并代表许多特征图。
想象一下,您想重新计算预训练模型的最后一层:
Input->[Freezed-Layers]->[Last-Layer-To-Re-Compute]->Output
要训练[Last-Layer-To-Re-Compute] ,您需要针对给定的输入数据多次评估[Freezed-Layers]的输出。为了节省时间,您只能计算这些输出一次。
Input#1->[Freezed-Layers]->Bottleneck-Features-Of-Input#1
然后,您存储所有Bottleneck-Features-Of-Input#i并直接使用它们来训练 [Last-Layer-To-Re-Compute]。
“image_retraining”示例的“cache_bottlenecks”函数的解释:
因为我们可能会多次读取同一张图像(如果在训练期间没有应用失真),如果我们在预处理期间为每张图像计算一次瓶颈层值,然后只读取那些缓存的值,则可以大大加快速度在训练中反复。
其它你可能感兴趣的问题