随笔分类 -  Deep Learning

摘要:需要搭建一个比较复杂的CNN网络,希望通过预训练来提高CNN的表现。上网找了一下,关于CAE(Convolutional Auto-Encoders)的文章还真是少,勉强只能找到一篇瑞士的文章、 Stacked Convolutional Auto-Encoders forHierarchical Feature Extraction干货少,不过好歹有对模型的描述,拿来看看。概述: 本文提出了一种卷积神经网络的自编码表达,用于对卷积神经网络进行预训练。具体内容: 原文废话挺多,我只关心模型——CAE: 卷积层的获得: 再表达: 其中“ * ”表示卷积;再... 阅读全文
posted @ 2013-12-04 22:08 Pony_s 阅读(6556) 评论(1) 推荐(0)
摘要:简介:这是一片发表在TPAMI上的文章,可以看见作者有余凯(是百度的那个余凯吗?)本文提出了一种3D神经网络:通过在神经网络的输入中增加时间这个维度(连续帧),赋予神经网络行为识别的功能。相应提出了一种3D卷积,对三幅连续帧用一个3D卷积核进行卷积(可以理解为用三个二维卷积核卷积三张图)。3D神经网络结构图:input—>H1 神经网络的输入为7张大小为60*40的连续帧,7张帧通过事先设定硬核(hardwired kernels)获得5种不同特征:灰度、x方向梯度、y方向梯度、x方向光流、y方向光流,5个channels一共33个maps。对于这个做法,原文这么解释“相比于随机初始化, 阅读全文
posted @ 2013-11-29 19:14 Pony_s 阅读(25703) 评论(9) 推荐(2)
摘要:写在前面的废话:出了托福成绩啦,本人战战兢兢考了个97!成绩好的出乎意料!喜大普奔!撒花庆祝!傻…………寒假还要怒学一个月刷100庆祝个毛线…………正题:题目是CNN,但是CNN的具体原理和之后会写一篇博客在deeplearning目录下详细说明。简单地说,CNN与NN相比独特之处在于用部分连接代替全链接,并用pooling来对数据进行降维,这样做有几个好处:对于大图像来说所需训练的参数大大减少获取图像的部分特征而非全局特征pooling使得网络的输出结果具有一定的平移和遮挡不变性demo见:(效果还是挺好的,当年华尔街银行用来读支票)这里主要说代码。1、类:LeNetConvPoolLaye 阅读全文
posted @ 2013-11-28 23:49 Pony_s 阅读(6628) 评论(3) 推荐(0)
摘要:废话:这博客有三个月没更新了。三个月!!!尼玛我真是够懒了!!这三个月我复习什么去了呢?托福…………也不是说我复习紧张到完全没时间更新,事实上我甚至有时间打LOL。只是说,我一次就只能(只想?)做一件事情。对我来说,在两种不同思维之间转换是十分耗费能量的。说白了我!就!是!个!废!柴!……哼……前言:PCA与白化,就是对输入数据进行预处理,前者对数据进行降维,后者对数据进行方差处理。虽说原理挺简单,但是作用可不小。之前的师兄做实验的时候,就是忘了对数据预处理,结果实验失败了。可见好的PCA对实验结果影响挺重要。主成成分分析(PCA):主要思想(我总结的):通过抛弃携带信息量较少的维度对数据进行 阅读全文
posted @ 2013-11-17 23:31 Pony_s 阅读(15202) 评论(1) 推荐(0)
摘要:之前的笔记,算不上是 Deep Learning,只是为理解Deep Learning 而需要学习的基础知识,从下面开始,我会把我学习UFDL的笔记写出来#主要是给自己用的,所以其他人不一定看得懂#UFDL链接 :http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial自编码器( Autoencoders ):(概述)自编码器是只有一层隐藏节点,输入和输出具有相同节点数的神经网络。自编码器的目的是求的函数. 也就是希望是的神经网络的输出与输入误差尽量少。由于隐藏节点数目小于输入节点,这就表示神经网络需要学习到输入样本的特征,以 阅读全文
posted @ 2013-09-15 10:57 Pony_s 阅读(6545) 评论(0) 推荐(0)
摘要:反向传播算法(Back Propagation):引言:在逻辑回归中,我们使用梯度下降法求参数方程的最优解。这种方法在神经网络中并不能直接使用,因为神经网络有多层参数(最少两层),(?为何不能)这就要求对梯度下降法做少许改进。实现过程:一、正向传播首先,同逻辑回归,我们求出神经网络输出与实际值的“误差”——COST:这里先使用欧式距离而不是索夫曼函数作为输出的cost:展开之后:(注意右边的权重衰减项,既规则化)二、反向传播对于第层(输出层)的每个输出单元,我们根据以下公式计算残差:对的各个层,第层的第个节点的残差计算方法如下这里:这里相当于把本层节点的残差按照权重“投影”到上一层残差的节点上 阅读全文
posted @ 2013-09-15 09:25 Pony_s 阅读(4480) 评论(0) 推荐(0)
摘要:神经元:在神经网络的模型中,神经元可以表示如下神经元的左边是其输入,包括变量x1、x2、x3与常数项1,右边是神经元的输出神经元的输出函数被称为激活函数(activation function),输出值被称为激活值(activation value)。激活函数有很多种,其中最简单的莫过于sigmoid函数。除非特别声明,否则博客里提及的激活函数均为sigmoid神经网络:多个神经元首尾相连连接成神经网络(Neural Network),可以表示如下:尽管生物体中神经云之间的连接会更加复杂,在常用的模型中,神经元的连接要遵循一定规则,简单地来说就是要分层:上一层神经元的输出作为下一层的输入,两层 阅读全文
posted @ 2013-09-09 19:46 Pony_s 阅读(995) 评论(0) 推荐(0)
摘要:过拟合(overfitting):实际操作过程中,无论是线性回归还是逻辑回归,其假设函数h(x)都是人为设定的(尽管可以通过实验选择最优)。这样子就可能出线“欠拟合”或者“过拟合”现象。所谓过拟合,就是模型复杂度过高,模型很好地拟合了训练样本却对未知样本的预测能力不足。(亦称"泛化"能力不足)所谓欠拟合,就是模型复杂度过低,模型不能很好拟合不管是训练样本还是其他样本。例子:如果输出与输入大致成二次关系,那么我们用一次函数去拟合,拟合结果过于平缓,跟不上变化,这就是“欠拟合”用3、4次函数去拟合,则会出现过多的“抖动”,这就是“过拟合”如图,线性回归中的“欠拟合”和“过拟合” 阅读全文
posted @ 2013-09-08 21:07 Pony_s 阅读(1758) 评论(0) 推荐(0)
摘要:逻辑回归主要用于解决分类问题,在现实中有更多的运用,正常邮件or垃圾邮件车or行人涨价or不涨价用我们EE的例子就是:高电平or低电平同时逻辑回归也是后面神经网络到深度学习的基础。(原来编辑器就有分割线的功能啊……)一、Logistic Function(逻辑方程)同线性回归,我们会有一个Hypothesis Function对输入数据进行计算已得到一个输出值。考虑到分类问题的特点,常用的函数有sigmoid方程(又叫logistic方程)其函数图像如下可见:1、输出区间为(0,1);2、对于所有输入 z0, g(z) > 0.5。因此我们可以把输出 g(z) 看作是一种概率,当输入 z 阅读全文
posted @ 2013-09-08 16:08 Pony_s 阅读(1288) 评论(0) 推荐(0)
摘要:为了获得良好的收敛,在进行梯度下降前,我们可以对数据进行预处理。目标是使得数据大小在同一个数据数量级上,均值为零。一般将数据放缩到(-1,1)区间,我们可以对数据进行如下操作:其中u1是数据的均值,s1为数据绝对值的最大值。用处理后的数据进行梯度下降可以获得更好效果。 阅读全文
posted @ 2013-09-08 13:21 Pony_s 阅读(636) 评论(0) 推荐(0)
摘要:上次用简单地介绍了线性回归的模型和梯度下降获得参数方程的方法。用到的一个十分简单的参数方程h(x)=theta0+theta1*x在现实问题中,参数方程能要复杂许多,不只有一个未知量x,可能有多个未知量x、y,不只有一次项,更有多次项,因此,梯度下降的过程变化为:(注意偏导的计算公式) 阅读全文
posted @ 2013-09-08 13:06 Pony_s 阅读(703) 评论(0) 推荐(0)
摘要:关于DL,由于我是零经验入门,事实上我是从最简单的ML开始学起,所以这个系列我也从ML开始讲起。===============并行分割线=================一、线性回归线性回归主要运用于“预测”类问题:假设我们有一堆的数据(房间大小,房价)。给定一个没见过的房间大小,它的价格应该怎么估计呢?一般来说,我们可以假定房价h(x)和大小x之间存在一种线性关系。求出最优h(x)后,对于每一个大小x的房间,我们都可以给出一个估价h(x)概念:COST FUNCTION(代价函数)给定假设h(x):在已知数据的条件下,他的代价函数为J(theta1,theta2):可见,代价函数体现了一种预 阅读全文
posted @ 2013-09-08 11:04 Pony_s 阅读(1538) 评论(0) 推荐(0)