finetune的第三步没太明白

来源:5-6 fine-tune-实战

慕沐734317

2019-02-22

finetune的第三步,固定一些层次不参与训练是怎么运行的,是相当于把这些层次删除了吗?还是tensor只流过这些层一次,更新一次这些层里的参数?
还有这样做的目的是什么,有什么用处?
这样做会不会相当于把卷积网络的深度减小了?

写回答

1回答

正十七

2019-02-23

“固定一些层次不参与训练是怎么运行的,是相当于把这些层次删除了吗?还是tensor只流过这些层一次,更新一次这些层里的参数?”

不是删除,而是这些参数被认为是已经训练好了,在这些参数上,只做前向传播,不做后向传播进行参数的更新。

“还有这样做的目的是什么,有什么用处?”

对于卷积神经网络来说,比较低的层次可以认为是基础特征提取器,比如颜色,轮廓等。这个可以认为在不同数据集之间是可以共享的,所以可以不用训练较低层次的参数。即使要训练,也要给较低的层次一个比较小的步长(参数更新 w = w - 步长*梯度)。同理因为是fine-tune,所以上层的类别空间一般会发生变化,这样,比较高的层次的参数就需要重新训练。在课程中,使用的方法是低层不参与训练。

低层不参与训练还会使得训练速度大大提升。如果想要快速出结果,这种方法最快。但如果想达到最好的效果,低层还是需要给一个较小的步长去进行训练。


“这样做会不会相当于把卷积网络的深度减小了?”

不是,这是因为低层的参数在其他数据集上训练好的,模型的容量还是不变的。


2
0

深度学习之神经网络(CNN/RNN/GAN)算法原理+实战

深度学习算法工程师必学,深入理解深度学习核心算法CNN RNN GAN

2617 学习 · 935 问题

查看课程