假设只有少量数据来解决某个具体问题,但有有个预先训练好的神经网络来解决类似问题。可以用下面哪些方法来利用这个预先训练好的网络( )
把除了最后一层外所有的层都冻结,重新训练最一层
重新训练整个模型
只对最后几层进行微调
对每一层模型进行评估,只使用少数层
如果有个预先训练好的神经网络, 就相当于网络各参数有个很靠谱的先验代替随机初始化. 若新的少量数据来自于先前训练数据(或者先前训练数据量很好地描述了数据分布, 而新数据采样自完全相同的分布), 则冻结前面所有层而重新训练最后一层即可;但一般情况下, 新数据分布跟先前训练集分布有所偏差, 所以先验网络不足以完全拟合新数据时, 可以冻结大部分前层网络, 只对最后几层进行训练调参(这也称之为fine tune)。