深度学习之多任务训练
2016-12-28 17:29
274 查看
最近,做基于caffe的多任务学习,所以写下这篇博客如何修改网络使其支持多任务学习。
一般地,一个卷积神经网络只是对某一个特定的目标进行学习训练。其实,也可以使一个网络并行地对两个或两个以上的任务进行学习,网络参数共享,这样可以起到减少模型个数,并且使模型具有很好的泛化能力。
那么,应该如何对一个网络修改使其能够进行多任务学习呢,做法不是很复杂,比如对于 caffe里面的Alexnet这个网络,我们使它训练一个二分类任务,同时又使它做一个回归任务,此时,数据的输入也不同。对于这种情况,我们要定义两个data层,不妨设一个data,一个是data_p,如图所示,
![](http://img.blog.csdn.net/20161228171352060?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGpjODY0NTg4Mzk5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20161228171528136?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGpjODY0NTg4Mzk5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
然后复制相同的网络结构,命名都改一下,比如都是5个卷积层,那么一个conv1,另一个conv1_p,一次命名五个卷积层。因为共享参数主要是在卷积层上,所以在每一个卷积层的param内,加入 name:“conv1_w”, name:"conv1_b" 如图所示
![](http://img.blog.csdn.net/20161228172105951?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGpjODY0NTg4Mzk5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20161228172134538?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGpjODY0NTg4Mzk5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这样卷积层修改完之后,全连接层不用修改,若是做分类任务,可以接SoftMaxWithLoss,若是做回归任务,可以接 EuclideanLoss
这样,修改完毕就可以实现多任务的学习。
一般地,一个卷积神经网络只是对某一个特定的目标进行学习训练。其实,也可以使一个网络并行地对两个或两个以上的任务进行学习,网络参数共享,这样可以起到减少模型个数,并且使模型具有很好的泛化能力。
那么,应该如何对一个网络修改使其能够进行多任务学习呢,做法不是很复杂,比如对于 caffe里面的Alexnet这个网络,我们使它训练一个二分类任务,同时又使它做一个回归任务,此时,数据的输入也不同。对于这种情况,我们要定义两个data层,不妨设一个data,一个是data_p,如图所示,
然后复制相同的网络结构,命名都改一下,比如都是5个卷积层,那么一个conv1,另一个conv1_p,一次命名五个卷积层。因为共享参数主要是在卷积层上,所以在每一个卷积层的param内,加入 name:“conv1_w”, name:"conv1_b" 如图所示
这样卷积层修改完之后,全连接层不用修改,若是做分类任务,可以接SoftMaxWithLoss,若是做回归任务,可以接 EuclideanLoss
这样,修改完毕就可以实现多任务的学习。
相关文章推荐
- git 命令
- JavaFX threading demo
- 《Effective java》笔记(第二版) --第二章(1-3)
- 18. 4Sum#1
- TEC1304.值集和弹性域相关技术总结 - 第四章 弹性域安全性详解
- super位置
- 阅读图像显著性检测论文七:Graph-Based Visual Saliency
- 限制MYSQL从服务器为只读状态(centos 6.6)
- 搭建TFS 2015 Build Agent环境(一)
- Win7,64位,VS2008的64位编译环境的安装和配置
- 第七章 Thread-Per-Message
- Static和内联函数
- 5.Builder-建造者模式
- 自定义组合控件
- tjuCyc 条形统计图控件
- system和systemclock && @+id与@id 区别
- shell自动下载nginx日志文件到本地
- Android4.4以上实现沉浸式状态栏
- Centos6.5 -- fastdfs阿里云单机配置文件备份
- MSLocalDB