摘要: 之前的笔记,算不上是 Deep Learning,只是为理解Deep Learning 而需要学习的基础知识,从下面开始,我会把我学习UFDL的笔记写出来#主要是给自己用的,所以其他人不一定看得懂#UFDL链接 :http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial自编码器( Autoencoders ):(概述)自编码器是只有一层隐藏节点,输入和输出具有相同节点数的神经网络。自编码器的目的是求的函数. 也就是希望是的神经网络的输出与输入误差尽量少。由于隐藏节点数目小于输入节点,这就表示神经网络需要学习到输入样本的特征,以 阅读全文
posted @ 2013-09-15 10:57 Pony_s 阅读(6431) 评论(0) 推荐(0) 编辑
摘要: 反向传播算法(Back Propagation):引言:在逻辑回归中,我们使用梯度下降法求参数方程的最优解。这种方法在神经网络中并不能直接使用,因为神经网络有多层参数(最少两层),(?为何不能)这就要求对梯度下降法做少许改进。实现过程:一、正向传播首先,同逻辑回归,我们求出神经网络输出与实际值的“误差”——COST:这里先使用欧式距离而不是索夫曼函数作为输出的cost:展开之后:(注意右边的权重衰减项,既规则化)二、反向传播对于第层(输出层)的每个输出单元,我们根据以下公式计算残差:对的各个层,第层的第个节点的残差计算方法如下这里:这里相当于把本层节点的残差按照权重“投影”到上一层残差的节点上 阅读全文
posted @ 2013-09-15 09:25 Pony_s 阅读(4431) 评论(0) 推荐(0) 编辑
摘要: 神经元:在神经网络的模型中,神经元可以表示如下神经元的左边是其输入,包括变量x1、x2、x3与常数项1,右边是神经元的输出神经元的输出函数被称为激活函数(activation function),输出值被称为激活值(activation value)。激活函数有很多种,其中最简单的莫过于sigmoid函数。除非特别声明,否则博客里提及的激活函数均为sigmoid神经网络:多个神经元首尾相连连接成神经网络(Neural Network),可以表示如下:尽管生物体中神经云之间的连接会更加复杂,在常用的模型中,神经元的连接要遵循一定规则,简单地来说就是要分层:上一层神经元的输出作为下一层的输入,两层 阅读全文
posted @ 2013-09-09 19:46 Pony_s 阅读(955) 评论(0) 推荐(0) 编辑
摘要: 过拟合(overfitting):实际操作过程中,无论是线性回归还是逻辑回归,其假设函数h(x)都是人为设定的(尽管可以通过实验选择最优)。这样子就可能出线“欠拟合”或者“过拟合”现象。所谓过拟合,就是模型复杂度过高,模型很好地拟合了训练样本却对未知样本的预测能力不足。(亦称"泛化"能力不足)所谓欠拟合,就是模型复杂度过低,模型不能很好拟合不管是训练样本还是其他样本。例子:如果输出与输入大致成二次关系,那么我们用一次函数去拟合,拟合结果过于平缓,跟不上变化,这就是“欠拟合”用3、4次函数去拟合,则会出现过多的“抖动”,这就是“过拟合”如图,线性回归中的“欠拟合”和“过拟合” 阅读全文
posted @ 2013-09-08 21:07 Pony_s 阅读(1720) 评论(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 阅读(1245) 评论(0) 推荐(0) 编辑
摘要: 为了获得良好的收敛,在进行梯度下降前,我们可以对数据进行预处理。目标是使得数据大小在同一个数据数量级上,均值为零。一般将数据放缩到(-1,1)区间,我们可以对数据进行如下操作:其中u1是数据的均值,s1为数据绝对值的最大值。用处理后的数据进行梯度下降可以获得更好效果。 阅读全文
posted @ 2013-09-08 13:21 Pony_s 阅读(621) 评论(0) 推荐(0) 编辑
摘要: 上次用简单地介绍了线性回归的模型和梯度下降获得参数方程的方法。用到的一个十分简单的参数方程h(x)=theta0+theta1*x在现实问题中,参数方程能要复杂许多,不只有一个未知量x,可能有多个未知量x、y,不只有一次项,更有多次项,因此,梯度下降的过程变化为:(注意偏导的计算公式) 阅读全文
posted @ 2013-09-08 13:06 Pony_s 阅读(692) 评论(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 阅读(1471) 评论(0) 推荐(0) 编辑
摘要: PS:好久没更新,因为期末到了,拼命复习中。复习久了觉得枯燥,玩玩儿霍夫变换直线检测霍夫变换的基本原理不难,即便是初中生也很容易理解(至少在直线检测上是这样子的)。霍夫变换直线检测的基本原理:(不配图了,自己在白纸上画画,理解更深刻)一步一步来:1、在白纸上画出一个直角坐标系,任意给出一个点;2、那么,对于点(x0,y0),经过这个点的直线必定满足y0=k*x0+b, 其中k是直线的斜率,b是直线的截距;3、上式可以化成b=y0-k*x0, 可以看作是以-x0为斜率,以y0为截距,在k-b空间上的一个直线方程(k,b为变量);4、可见,k-b空间上的一条直线, 代表了x-y空间经过特定点的所有 阅读全文
posted @ 2013-06-20 18:47 Pony_s 阅读(48082) 评论(3) 推荐(4) 编辑
摘要: 其实实现了半个月了,不过一直没更新,囧。上次讲到对比度限制的直方图均衡化,纠结了一段时间。不知道为什么思维总是会想到改变图像的像素值,其实CLHE的目的是获取一个不那么陡峭的转换的映射函数,所以操作只要在直方图层面完成就行了。确定阀值,切割直方图,将大于阀值的面积平均分到各个bins(之前就在纠结这里……),得到一个CL的直方图之后再求映射函数,并不用对原图进行操作。代码:这里的实现是多出来的面积按平局分布到各个bins,其实可以用高斯分布,效果可能会更好。//核心部分/* //限制对比度 { //获取最大值 ... 阅读全文
posted @ 2013-05-30 23:59 Pony_s 阅读(10413) 评论(0) 推荐(0) 编辑