你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
搜索:
没有找到相关结果
xinmiao
赞同来自: yty98 、betas 、李扬 、孙琳钧 、王斌_ICT 、shakevincent 、huangzhaolu 、sunxingxingtf 、coolwyj 、OutLaws 、OpenAI更多 »
李扬 - 密码六个一
赞同来自: yty98 、lady_he 、xjtuljy 、coolwyj 、OutLaws 、起个名字好费事 、OpenAI更多 »
孙琳钧
赞同来自: xinmiao 、yty98 、王斌_ICT 、OutLaws 、jckzzu 、Zellar209更多 »
王斌_ICT - 研究领域:深度学习,目标检测
赞同来自: caffe 、yty98 、OutLaws 、华灯初上照小川 、起个名字好费事 、lxwahu更多 »
zeakey - please visit my homepage: zhaok.xyz
赞同来自: yty98 、shakevincent 、xjtuljy 、华灯初上照小川 、起个名字好费事 、lxwahu更多 »
farcc
赞同来自: 华灯初上照小川
yty98
赞同来自:
Zellar209
要回复问题请先登录或注册
8 个回复
xinmiao
赞同来自: yty98 、betas 、李扬 、孙琳钧 、王斌_ICT 、shakevincent 、huangzhaolu 、sunxingxingtf 、coolwyj 、OutLaws 、OpenAI更多 »
一般我们在训练from scratch的时候往往要在一些超大型的数据集上训练,一个目的是为了让训练得到的特征(尤其是底层特征)更加多样。而从genertive pre-training到discriminative fine-tuning的过程是一个对泛化特征进行面向task的特化的过程。
如果把fine-tuning之后的特征可视化出来,我们会发现高层特征可能会发生一些有趣的变化,直接反映出你的task:
而底层的特征,可能并没有非常明显的变化(这里是有争议的,请保持审慎)。
那么是不是底层特征就没用呢?切实恰恰相反,底层特征非常重要,如果底层特征不够好,特征类型不够充分,很可能训练不出来好的高层抽象。这就是为什么需要在大规模数据集上进行genertive training的原因之一。
还有很多内容,先mark一下,有空再继续说~
================================================================
嗯嗯,我回来啦~
分享一篇NIPS2014上Bengio大神的文章供参考:
How transferable are features in deep neural networks?
李扬 - 密码六个一
赞同来自: yty98 、lady_he 、xjtuljy 、coolwyj 、OutLaws 、起个名字好费事 、OpenAI更多 »
首先,如果你将底层特征可视化出来,会发现底层特征多是一些边、角之类的基础几何形状。 在大数据集上进行 pretrain 的目的之一是为了获得丰富、一般化的底层特征,换言之就是学到丰富的“基础几何形状”。有了这些丰富的基础几何形状,等过渡到小数据集上 finetune 的时候,就可以通过它们组合出上层具有强判别力的特征。此时,如果你再将组合出来的上层特征可视化,就会发现它们已经有模有样了,见上面辛博的配图。反之,如果你直接在小数据集上训练,那么就难以获得丰富的、一般化的基础几何形状,也就难以“描绘出”栩栩如生的上层特征。
这就好像是盖楼。你想盖出一座独特、壮丽的大楼,就必须具备丰富、大量的建材。例如,如果你只有木头,那你只能盖木屋;你只有砖头,那只够盖厕所;你有了钢筋混凝土、强化玻璃、大理石、木方、形状各异的砖头...你才能盖出大楼来。
所以,finetune 好像就是去搜集丰富的建材的过程。
孙琳钧
赞同来自: xinmiao 、yty98 、王斌_ICT 、OutLaws 、jckzzu 、Zellar209更多 »
王斌_ICT - 研究领域:深度学习,目标检测
赞同来自: caffe 、yty98 、OutLaws 、华灯初上照小川 、起个名字好费事 、lxwahu更多 »
参考文献:
Ouyang, Wanli, et al. "Deepid-net: Deformable deep convolutional neural networks for object detection." CVPR.2015
zeakey - please visit my homepage: zhaok.xyz
赞同来自: yty98 、shakevincent 、xjtuljy 、华灯初上照小川 、起个名字好费事 、lxwahu更多 »
使用 backpropagation 进行训练的时候残差逐层传递,有可能到底层的时候残差就很小了(gradient vanishing),导致底层的参数train 不动. 这也是楼上辛同学的图里底层 feature map 没有什么改变的原因之一,因为底层参数本身就很难得到训练.
finetune 就是直接从别人已经训练好的网络上拷贝参数,然后针对自己的数据训练新的模型.
这时候需要比较小的 learning_rate, 因为要在不破坏原有模型的情况下 fit 自己的数据,finetune 的好处就是可以直接获得我们难以或者无法训练的底层参数.
farcc
赞同来自: 华灯初上照小川
yty98
赞同来自:
Zellar209
赞同来自: