Machine learning 为什么迁移学习会导致错误/丢失在预培训完成后从随机重新开始?

Machine learning 为什么迁移学习会导致错误/丢失在预培训完成后从随机重新开始?,machine-learning,tensorflow,neural-network,deep-learning,conv-neural-network,Machine Learning,Tensorflow,Neural Network,Deep Learning,Conv Neural Network,我今天在做迁移学习的实验,我不明白我得到的一些结果。我在大约100000行Word2Vec嵌入上训练了一个卷积神经网络,发现我的结果差异很大 这里图表的焦点是底部的线条。前15个时代从图表中删除,但趋势仍然可见。训练损失在多个时期内减少,验证损失易于收敛 显然,这是列车/开发人员错误之间的差异问题。要解决这个问题,我知道添加更多数据是最简单的解决方案。但由于我的笔记本电脑没有足够的ram,无法在单个进程中存储两倍的数据量,因此我决定加载第二组数据(来自同一分布),并使用转移学习重新训练从400

我今天在做迁移学习的实验,我不明白我得到的一些结果。我在大约100000行Word2Vec嵌入上训练了一个卷积神经网络,发现我的结果差异很大

这里图表的焦点是底部的线条。前15个时代从图表中删除,但趋势仍然可见。训练损失在多个时期内减少,验证损失易于收敛

显然,这是列车/开发人员错误之间的差异问题。要解决这个问题,我知道添加更多数据是最简单的解决方案。但由于我的笔记本电脑没有足够的ram,无法在单个进程中存储两倍的数据量,因此我决定加载第二组数据(来自同一分布),并使用转移学习重新训练从400个时代获得上述结果的模型

这些是在运行了大约100多个时代后的结果

我不明白这里的结果。由于我对来自同一分布的数据使用转移学习,起始损失不应该更接近于0.35而不是0.41吗。类似地,我所监测的f1分数从接近0.78的数值开始,最终达到0.85左右,而在前一个数据集上训练400个历次后,f1的测量值约为0.88。为什么会这样


我熟悉的一件事是,从预先训练好的网络中进行的转移学习通常依赖于“冻结”较低层的权重,而只更新密集层的权重。我不是在这里这样做,但那是因为我希望算法也能从新的数据点学习低级特征。为什么开始丢失会在预培训完成后重新开始?

假设培训部分和验证集都具有相同的分布,我预计第二个培训集的丢失会从验证丢失在第一个培训步骤中结束的位置开始(数据来自网络尚未训练的同一发行版)


转移学习通常是指使用一个任务的工件来解决另一个任务。在您的情况下,您只使用数据集的两部分来解决一个任务进行培训。如果RAM是问题,您应该尝试使用tensorflow,它可以流式传输数据,而不是将数据全部加载到内存中。

代码在哪里?我认为模型a架构将提供更多帮助:128 Conv层、64 Conv层、32 Conv层、16 Conv层、扁平化、0.5辍学、256完全连接层、批处理规范、Relu激活、0.5辍学、带Sigmoid的输出层。此外,还可以提前停止,并在训练中丢失验证