dl
文章平均质量分 70
BVL10101111
THU master, interested in ML,DL,DM
github:https://github.com/BenchengY
展开
-
CNN(Convolutional Neural Networks)学习总结
刚开始学习cnn,把前段时间看cnn相关的内容,今天稍微的总结下。在文章中差漏的地方,还望见谅。权当做交流。文章开头先推荐一个网址: https://github.com/BVLC/caffe/wiki/Model-Zoo 罗列了主流会议,近年来cnn上的相关进展和各种model,感兴趣的可以拿来阅读一番。**Cnn几篇重要的论文** Lenet-5 :Yann LeCun等在1998年发布的原创 2016-11-29 17:28:27 · 2549 阅读 · 1 评论 -
Caffe学习之caffe具体运行流程分析
最近一段时间因实习需要,学习了一下caffe,在此陆陆续续记录一些和caffe相关的笔记。我们都知道要运行一个caffe model的时候需要在命令行下输入:./build/tools/caffe train -solver xxx.prototxt 然后模型就跑起来了,但是具体程序的入口——main是哪个,执行的顺序是如何的可能不是特别清晰,为了更加理解caffe,在此对其流程做一个具体的分析。分原创 2017-07-08 11:50:12 · 5078 阅读 · 0 评论 -
Caffe学习之ProtoBuffer
本文简单介绍一下caffe的protobuffer的机制ProtocolBuffer是google开源的一种数据交换的方法,类似于xml等。在caffe里扮演着解析配置文件,传递消息和参数的作用。(便于规范序列化以及反序列化)具体作用,以solver.prototxt为例,可以概括为一句话: 运行时,能够将solver.prototxt中的配置参数按照caffe.proto的协议解析并加载的到内原创 2017-07-08 14:27:53 · 1522 阅读 · 0 评论 -
Caffe学习之自定义创建新的Layer层
caffe源码中已经帮我封装好了各种各样的layer,但是有时候现有的layer不能满足设计的网络要求,这个时候需要自己定义一个新的layer,本文参考here,进行简单讲解,具体方式如下:一.创建.hpp文件 1.添加你的layer头文件置于 include/caffe/layers/ 下,比如include/caffe/layers/your_layer.hpp 2.your_la原创 2017-07-08 15:56:38 · 6696 阅读 · 1 评论 -
Caffe学习之finetune
finetune的好处想必大家都知道,在此不多说,那么在caffe中又是如何实现的呢。上代码: ./build/tools/caffe train -solver xxx.prototxt -weights xxx.caffemodel意思就是用xxx.caffemodel里的训练好的权重初始化xxx.prototxt,里所要初始化的网络。那么如何将xxx.caffemodel里的参数运用到自己的模原创 2017-07-08 16:54:24 · 1410 阅读 · 0 评论 -
Deep Learning 之 训练过程中出现NaN问题
相信很多人都遇到过训练一个deep model的过程中,loss突然变成了NaN。在这里对这个问题做一个总结。一般来说,出现NaN有以下几种情况: 1.如果在迭代的100轮以内,出现NaN,一般情况下的原因是因为你的学习率过高,需要降低学习率。可以不断降低学习率直至不出现NaN为止,一般来说低于现有学习率1-10倍即可。 2.如果当前的网络是类似于RNN的循环神经网络的话,出现NaN原创 2017-07-25 17:01:21 · 11298 阅读 · 1 评论 -
论文笔记之Label-Free Supervision of Neural Networks with Physics and Domain Knowledge
这一篇是AAAI 2017的best paper。出自Stanford ,随手查了一下,二作Stefano Ermon指导的AAAI 2017的另一篇paper,拿了Best Student Paper Award (CompSust Track)。在此膜拜一发。一.题目理解不得不说,一篇好的paper,题目很重要,是否吸引人。比如这一篇,猛地一看感觉很有内容,想法很新颖。 label-free原创 2017-09-15 22:02:26 · 3728 阅读 · 0 评论 -
最优化问题之如何逃离(跳出)鞍点(Saddle Points)
看了点鞍点相关的知识,做一下备录。 我们知道在,优化问题中,深度学习的优化问题中,经常存在鞍点,就是这一点的导数为0,从某些维度看是极小值,从另一些维度看是极大值,比如:深度学习的寻优过程中,鞍点所造成的困难,远比局部最小值大的多,因为 1)在高维参数空间,鞍点存在较多 2)大量工作表面局部最优解,对于模型而言已经足够好。此外,正是因为深度学习中鞍点的大量存在,传统的牛顿法不适合,原创 2017-09-21 14:48:56 · 10612 阅读 · 2 评论 -
cnn学习之训练和测试数据集处理
最近,在看alexnet,vgg,googlenet的论文时,对于论文中training和testing的时候对于image的处理,做一下总结。(其中有些困惑,可能理解不到位,还望指出)training我们知道对于cnn而言,输入的数据大小是必须相同的,而对于imagenet中的数据集而言,大小不一,因此一般先rescale成一个固定大小比如256*256,然后再从这256*256原创 2016-12-09 19:35:50 · 6080 阅读 · 0 评论 -
Deep Learning 之 参数初始化
本文仅对常见的参数初始化方法进行总结(大部分内容来自deep learning一书),原理性的问题不进行过多的探讨。**Deep Learning中参数初始化十分重要,一般来说有以下这些原因:** 1.初始点的选取,有时候能够决定算法是否收敛 2.当收敛时,初始点可以决定学习收敛的多快,是否收敛到一个代价高或低的点 3.初始化也可以影响泛化 4.初始参数需要破坏不同神经元间的“对称性”,因为原创 2017-04-26 10:27:55 · 9765 阅读 · 0 评论 -
论文笔记之Dynamic Routing Between Capsules
相信大家最近被hinton的这篇capsule的论文刷屏了,这篇论文是发表在nips2017上的。其实capsule这个概念最早是hinton的一篇发表在ICANN 2011上的论文中提出的,不过当初没有引起太大的关注。今年的早些时候,hinton也在多个公开场合表达capsule这样一种想法。在此,笔者在这里记录下自己对这篇论文的理解。首先在这里推荐几篇与这篇论文相关的,笔者认为比较有用的资源,可原创 2017-11-26 16:58:20 · 7205 阅读 · 1 评论 -
Attention Model(mechanism) 的 套路
最近刷了一些attention相关的paper(照着here的列表+自己搜的paper),网上相关的资料也有很多,在此只讲一讲自己对于attention的理解,力求做到简洁明了。一.attention 的本质 attention其实就是一个加权求和。attention处理的问题,往往面临的是这样一个场景: 你有kk个dd维的特征向量hi(i=1,2,...,k)h_i (i=1,2,...原创 2017-11-07 18:09:38 · 37995 阅读 · 11 评论 -
python机器学习实战之 Decision Tree For Titanic in Kaggle
最近陆续准备熟悉一下sklearn库,在此做一下记录。这篇文章是简短的对于decision tree的kaggle上的实战记录,详细的请见github一.数据集:Titanic 是一个二分类问题,给你每个人的一些feature,判断最后是否会Survive。二.数据处理:参考here1.丢弃无用的'PassengerId','Name','Ticket'特征2.Embarked,one-hot原创 2017-06-04 12:31:18 · 1735 阅读 · 1 评论 -
论文笔记之Fully Convolutional Networks for Semantic Segmentation
最近了解到了Image Semantic Segmentation方面的知识,在此做一个记录。 这篇论文是2015cvpr的best paper,可以说是在cnn上做图像语义分割的开山之作。**1.语义分割定义:** 语义就是指物体的类别,即属于同一类别的物体都算作一类比如图像中的3个人算作一类,5辆汽车算作一类等,它们都属于同一类别,即“人类”、“汽车”一般规定要进行分割的n个类别的物体(即我原创 2016-12-27 17:16:37 · 3298 阅读 · 5 评论 -
Deep Learning 最优化方法之SGD
本文是Deep Learning 之 优化方法系列文章的SGD方法。主要参考Deep Learning 一书。在这里SGD和min-batch是同一个意思,抽取m个小批量(独立同分布)样本,通过计算他们平梯度均值。后面几个改进算法,均是采用min-batch的方式。先上一些结论:1.SGD应用于凸问题时,k次迭代后泛化误差的数量级是O(1/sqrt(k)),强凸下是O(1/k)。2.理论上GD比SG原创 2017-05-21 22:31:00 · 16297 阅读 · 0 评论 -
论文笔记之Smart Reply: Automated Response Suggestion for Email
本文是google团队在2016年kdd上发表的一篇论文, 是对gmail中应用的自动回复功能框架进行了介绍,应用的环境就是在gmail中来了一封邮件,系统会自动推荐3个回复语句供用户选择,来方便回复。下面是整个框架的流程图: 面临的挑战:1,个性化推荐2,多样化推荐3,处理能力强4,保护用户隐私对于挑战1, 2 1)加了一项惩罚项使得一些过于简单的,回答的开头类似的response被剔除掉原创 2016-12-11 11:13:25 · 2394 阅读 · 4 评论 -
论文笔记之Deep Convolutional Networks on Graph-Structured Data
本篇论文是2015年nips上的一篇论文, 是对于其本人在2014年nips发表的论文:Deep Convolutional Networks on Graph-StructuredData 对于graph上的cnn进一步探讨。相比于之前的工作,此篇论文主要贡献有两点: 1.将之前的construction应用于大数据集的分类问题——Imagenet 2.对于输入的graph是否有标签,分别原创 2016-12-02 19:12:38 · 8334 阅读 · 1 评论 -
论文笔记之Spectral Networks and Deep Locally Connected Networks on Graphs
这是2014 nips上的一篇论文。 主要的贡献就是设计了在irregular grid上的cnn的应用。**文中有两个并列的模型:第一个模型deep locally connect network(spatial construction从空间角度去建立)locally 体现在 只取每个节点前k个neighborhoods。 connect 体现在,每层与每层之间的神经元数目是通原创 2016-12-01 20:17:29 · 15145 阅读 · 4 评论 -
cnn学习之卷积或者池化后输出的map的size计算
详细各位在学习cnn的时候,常常对于卷积或者池化后所得map的的大小具体是多少,不知道怎么算。尤其涉及到边界的时候。首先需要了解对于一个输入的input_height*input_widtht的图像,在卷积或者池化的时候,经常需要加padding,这是为了处理边界问题时而采用的一种方式,于是原输入就变成了下图所示:对于输出的size计算 如下图:out_height=(原创 2016-12-05 22:53:45 · 5504 阅读 · 0 评论 -
论文笔记之Learning Convolutional Neural Networks for Graphs
本篇论文是2016ICML上的一篇论文,对于如何将cnn应用在graph上提供了一种新的思路。架构: 总体上讲,就是用w个固定size=(k+1)的子图来表示输入的graph,再将这w个子图正则化后,生成一个w(k+1)维的向量,作为传统的cnn的输入,进行学习。其实就是做了一个从graph到向量的映射的一个预处理过程。算法流程 输入:任意一张图 输出:每个channel输出w个recep原创 2016-12-06 11:07:32 · 10270 阅读 · 5 评论 -
Deep Learning 之 最优化方法
写在前面本文主要是对Deep Learning一书最优化方法的总结,具体详细的算法,另起博文展开。深度学习中,经常需要用到优化方法,来寻找使得损失函数最小的最优解。先上一些结论: 1.选择哪种优化算法并没有达成共识 2.具有自适应学习率(以RMSProp 和AdaDelta 为代表)的算法族表现得相当鲁棒,不分伯仲,但没有哪个算法能脱颖而出。 3.对于当前流行的优化算法包括括SG原创 2017-05-21 22:18:40 · 17530 阅读 · 2 评论 -
Deep Learning 最优化方法之Adam
本文是Deep Learning 之 最优化方法系列文章的Adam方法。主要参考Deep Learning 一书。先上结论: 1.Adam算法可以看做是修正后的Momentum+RMSProp算法 2.动量直接并入梯度一阶矩估计中(指数加权) 3.Adam通常被认为对超参数的选择相当鲁棒 4.学习率建议为0.001再看算法:其实就是Momentum+RMSProp原创 2017-05-21 23:06:52 · 42389 阅读 · 4 评论 -
Deep Learning 最优化方法之RMSProp
本文是Deep Learning 之 最优化方法系列文章的RMSProp方法。主要参考Deep Learning 一书。先上结论 1.AdaGrad算法的改进。鉴于神经网络都是非凸条件下的,RMSProp在非凸条件下结果更好,改变梯度累积为指数衰减的移动平均以丢弃遥远的过去历史。 2.经验上,RMSProp被证明有效且实用的深度学习网络优化算法。 相比于AdaGrad的历史梯原创 2017-05-21 23:02:50 · 64291 阅读 · 7 评论 -
Deep Learning 最优化方法之AdaGrad
本文是Deep Learning 之 最优化方法系列文章的Nesterov(牛顿动量)方法。主要参考Deep Learning 一书。先上结论:1.简单来讲,设置全局学习率之后,每次通过,全局学习率逐参数的除以历史梯度平方和的平方根,使得每个参数的学习率不同2.效果是:在参数空间更为平缓的方向,会取得更大的进步(因为平缓,所以历史梯度平方和较小,对应学习下降的幅度较小)3.缺点是,使得学习率过早,过原创 2017-05-21 22:55:22 · 21812 阅读 · 13 评论 -
Deep Learning 最优化方法之Nesterov(牛顿动量)
本文是Deep Learning 之 最优化方法系列文章的Nesterov(牛顿动量)方法。主要参考Deep Learning 一书。先上结论: 1.Nesterov是Momentum的变种。 2.与Momentum唯一区别就是,计算梯度的不同,Nesterov先用当前的速度v更新一遍参数,在用更新的临时参数计算梯度。 3.相当于添加了矫正因子的Momentum。原创 2017-05-21 22:51:58 · 24996 阅读 · 5 评论 -
Deep Learning 最优化方法之Momentum(动量)
本文是Deep Learning 之 最优化方法系列文章的Momentum(动量)方法。主要参考Deep Learning 一书。先上结论: 1.动量方法主要是为了解决Hessian矩阵病态条件问题(直观上讲就是梯度高度敏感于参数空间的某些方向)的。 2.加速学习 3.一般将参数设为0.5,0.9,或者0.99,分别表示最大速度2倍,10倍,100倍于SGD的算法。原创 2017-05-21 22:48:16 · 74312 阅读 · 4 评论 -
论文笔记之 Collaborative Deep Learning for Recommender Systems
这篇论文是KDD2015的一篇用DL去做RS的论文。想法挺有意思的。看过论文的同学都知道整体的模型可以用下图表示:这里只讲讲整体的思路与理解:1)这是一个CF和CBF结合用bayes去做2)CBF主要是体现在整个用SDAE提取item特征。3)bayes体现在,网络中的各种参数是加了一个beyas先验生成的。4)CF体现在,对于u和i这两个向量的生成,用两个不同的高斯先验,来生成,lambda_v...原创 2018-04-13 11:09:02 · 3244 阅读 · 0 评论