继续看yusugomori的代码,看逻辑回归.在DBN(Deep Blief Network)中,下面几层是RBM,最上层就是LR了.关于回归.二类回归.以及逻辑回归,资料就是前面转的几篇.套路就是设定目标函数(softmax损失函数),对参数求偏导数,得出权重更新公式等. LogisticRegression.h注释如下: class LogisticRegression { public: int N; // number of input samples int n_in; // numb…
模型实现代码,关键是train函数和predict函数,都很容易. #include <iostream> #include <string> #include <math.h> #include "LogisticRegression.h" using namespace std; LogisticRegression::LogisticRegression( int size, // N int in, // n_in int out // n_…
DA就是“Denoising Autoencoders”的缩写.继续给yusugomori做注释,边注释边学习.看了一些DA的材料,基本上都在前面“转载”了.学习中间总有个疑问:DA和RBM到底啥区别?(别笑,我不是“学院派”的看Deep Learning理论,如果“顺次”看下来,可能不会有这个问题),现在了解的差不多了,详情见:[deep learning学习笔记]Autoencoder.之后,又有个疑问,DA具体的权重更新公式是怎么推导出来的?我知道是BP算法,不过具体公示的推导.偏导数的求…
百度了半天yusugomori,也不知道他是谁.不过这位老兄写了deep learning的代码,包括RBM.逻辑回归.DBN.autoencoder等,实现语言包括c.c++.java.python等.是学习的好材料.代码下载地址:https://github.com/yusugomori/DeepLearning.不过这位老兄不喜欢写注释,而且这些模型的原理.公式什么的,不了解的话就看不懂代码.我从给他写注释开始,边看资料.边理解它的代码.边给他写上注释. 工具包中RBM的实现包含了两个文件…
一.文章来由 好久没写原创博客了,一直处于学习新知识的阶段.来新加坡也有一个星期,搞定签证.入学等杂事之后,今天上午与导师确定了接下来的研究任务,我平时基本也是把博客当作联机版的云笔记~~如果有写的不对的地方,欢迎批评指正. 二.<一天搞懂深度学习> 300多页的PPT,台大教授写的好文章. 对应的视频地址 1.Lecture I: Introduction of Deep Learning (1)machine learning≈找函数 training和testing过程 (2)单个神经网…
之前的笔记,算不上是 Deep Learning, 只是为理解Deep Learning 而需要学习的基础知识, 从下面开始,我会把我学习UFDL的笔记写出来 #主要是给自己用的,所以其他人不一定看得懂# UFDL链接 : http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial 自编码器( Autoencoders ):(概述) 自编码器是只有一层隐藏节点,输入和输出具有相同节点数的神经网络. 自编码器的目的是求的函数 . 也…
主要内容: Spotify是个类似酷我音乐的音乐站点.做个性化音乐推荐和音乐消费.作者利用deep learning结合协同过滤来做音乐推荐. 详细内容: 1. 协同过滤 基本原理:某两个用户听的歌曲都差点儿相同,说明这两个用户听歌的兴趣.品味类似.某两个歌曲,被同一群人听,说明这两个歌曲风格类似. 缺点: (1)没有利用歌曲本身的特征(信息) (2)无法对"层级"的item进行处理,对于歌曲来说,这样的层级关系体如今:专辑-主打歌-副歌,上面,这几种因素并非同等重要的 (3)冷启动问…
近期開始看一些深度学习的资料.想学习一下深度学习的基础知识.找到了一个比較好的tutorial,Neural Networks and Deep Learning,认真看完了之后觉得收获还是非常多的.从最主要的感知机開始讲起.到后来使用logistic函数作为激活函数的sigmoid neuron,和非常多其它如今深度学习中常使用的trick. 把深度学习的一个发展过程讲得非常清楚,并且还有非常多源代码和实验帮助理解.看完了整个tutorial后打算再又一次梳理一遍,来写点总结.以后再看其它资料…
 1. 直接上手篇 台湾李宏毅教授写的,<1天搞懂深度学习> slideshare的链接: http://www.slideshare.net/tw_dsconf/ss-62245351?qid=108adce3-2c3d-4758-a830-95d0a57e46bc&v=&b=&from_search=3 网盘下载链接:http://pan.baidu.com/s/1nv54p9R     密码:3mty. 中文在线课程:Hung-yi Lee (http://spe…
总览: 本章所讲的知识点包括>>>> 1.描述卷积操作 2.解释使用卷积的原因 3.描述pooling操作 4.卷积在实践应用中的变化形式 5.卷积如何适应输入数据 6.CNN对DL的影响 本章未包含的知识点有>>>> 在实际应用中如何选取CNN架构 本章的目的是阐述CNN提供的处理数据的方法.在第11章将会对怎样使用这些方法做说明. 9.1 卷积操作 问题: 1.与信号系统或者数学中的卷积有何区别? 2.如何用代码实现 注意:CNN包括的计算不仅仅只有卷积…
发表于NIPS2010 workshop on deep learning的一篇文章,看得半懂. 主要内容: 是针对文本表示的一种方法.文本表示可以进一步应用在文本分类和信息检索上面.通常,一篇文章表示为V大小的一个向量,|V|是词表的大小.传统的方法,向量中每个值是tf/idf计算得到的权重.不过|V|比较大的时候,对于文本分类和信息检索来讲,时空复杂度都比较大.这时候需要对|V|进行降维.通常的方法是LDA系列的方法,将文章表示成若干个topic上面的分布.不过实验效果并不好.本文作者用de…
这几个ppt都是在微博上看到的,是百度的一个员工整理的. <Deep Belief Nets>,31页的一个ppt 1. 相关背景 还是在说deep learning好啦,如特征表示云云.列了一些参考文献,关于deep learning训练的,还不错. 2. 基本概念 两种产生式神经网络:(1)sigmod belief network:(2)Boltzmann Machine 多个概率密度模型如何融合? (1)mixture:就是加权平均 (2)product:乘积 (3)compositi…
测试部分代码: void test_lr() { srand(0); double learning_rate = 0.1; double n_epochs = 500; int train_N = 6; int test_N = 2; int n_in = 6; int n_out = 2; // int **train_X; // int **train_Y; // int **test_X; // double **test_Y; // train_X = new int*[train_N…
说实话,具体的训练公式,我没有自己推导,姑且认为他写的代码是对的.总体上看,用bp的方法.特殊之处,在于输入层和输出层是完完全全的“同一层”. void dA::get_corrupted_input ( int *x, // the original input 0-1 vector -- input int *tilde_x, // the resulted 0-1 vector gotten noised -- output double p // the p probability of…
辅助函数和构造函数. #include <iostream> #include <math.h> #include "dA.h" using namespace std; // To generate a value between min and max in a uniform distribution double uniform(double min, double max) { return rand() / (RAND_MAX + 1.0) * (m…
测试代码.能看到,训练的时候是单个样本.单个样本的训练的,在NN中是属于“stochastic gradient descent”,否则,一批样本在一起的,就是“standard gradient descent”. void test_dA() { srand(0); double learning_rate = 0.1; double corruption_level = 0.3; int training_epochs = 100; int train_N = 10; int test_N…
逻辑回归主要用于解决分类问题,在现实中有更多的运用, 正常邮件or垃圾邮件 车or行人 涨价or不涨价 用我们EE的例子就是: 高电平or低电平 同时逻辑回归也是后面神经网络到深度学习的基础. (原来编辑器就有分割线的功能啊……) 一.Logistic Function(逻辑方程) 同线性回归,我们会有一个Hypothesis Function对输入数据进行计算已得到一个输出值. 考虑到分类问题的特点,常用的函数有sigmoid方程(又叫logistic方程) 其函数图像如下 可见: 1.输出区…
关于DL,由于我是零经验入门, 事实上我是从最简单的ML开始学起, 所以这个系列我也从ML开始讲起. ===============并行分割线================= 一.线性回归 线性回归主要运用于“预测”类问题: 假设我们有一堆的数据(房间大小,房价).给定一个没见过的房间大小,它的价格应该怎么估计呢? 一般来说,我们可以假定房价h(x)和大小x之间存在一种线性关系.求出最优h(x)后, 对于每一个大小x的房间,我们都可以给出一个估价h(x) 概念:COST FUNCTION(代价…
标题:Efficient Estimation of Word Representations in Vector Space 作者:Tomas Mikolov 发表于:ICLR 2013 主要内容: 在NLP中,每一个词语都表示称实数向量的形式(称为word embedding or word representation).通常词语的实数向量用神经网络进行训练得到,如Bengio在2003年的工作,以及在此基础上的改进,如:用递归的神经网络进行训练.不过这些方法计算复杂度较高,对词表大小.训…
废话: 这博客有三个月没更新了. 三个月!!!尼玛我真是够懒了!! 这三个月我复习什么去了呢? 托福………… 也不是说我复习紧张到完全没时间更新, 事实上我甚至有时间打LOL. 只是说,我一次就只能(只想?)做一件事情. 对我来说,在两种不同思维之间转换是十分耗费能量的. 说白了我!就!是!个!废!柴!……哼…… 前言: PCA与白化, 就是对输入数据进行预处理, 前者对数据进行降维,后者对数据进行方差处理. 虽说原理挺简单,但是作用可不小. 之前的师兄做实验的时候,就是忘了对数据预处理, 结果…
继续学习http://www.cnblogs.com/tornadomeet/archive/2013/03/15/2962116.html,上一节课学习速率是固定的,而这里我们的目的是找到一个比较好的学习速率.我们主要是观察 不同的学习速率对应的不同的损失值与迭代次数之间的函数曲线是怎么样的,找到那条最快达到收敛的函数曲线,其对应的学习速率就是我们要找的比较好的学习速率.在这里我们分别取速率值为:0.001,0.01,0.1,1,2,当我们选择完学习速率后,其余的都跟上一节课一样了.本文要解决…
1.为什么要在卷积网络中加入pooling(池化) 如果只利用卷积操作来减少feature map的大小,会失去很多信息.所以想到一种方法,减小卷积时的stride,留下大部分信息,通过池化来减小feature map的大小. 池化的优点: 1.池化操作不会增加parameters 2.实验结果表明用池化的模型准确率更高 池化的缺点: 1.由于减小了卷积的stride,所以会增加计算量 2.同时,池化层的加入使得我们又多了两个超参数(hyper parameters):pooling size和…
https://www.cnblogs.com/zhhfan/p/10300012.html…
https://www.cnblogs.com/zhhfan/p/9985991.html…
反向传播算法(Back Propagation): 引言: 在逻辑回归中,我们使用梯度下降法求参数方程的最优解. 这种方法在神经网络中并不能直接使用, 因为神经网络有多层参数(最少两层),(?为何不能) 这就要求对梯度下降法做少许改进. 实现过程:  一.正向传播 首先,同逻辑回归,我们求出神经网络输出与实际值的“误差”——COST: 这里先使用欧式距离而不是索夫曼函数作为输出的cost: 展开之后: (注意右边的权重衰减项,既规则化) 二.反向传播 对于第  层(输出层)的每个输出单元 ,我们…
神经元: 在神经网络的模型中,神经元可以表示如下 神经元的左边是其输入,包括变量x1.x2.x3与常数项1, 右边是神经元的输出 神经元的输出函数被称为激活函数(activation function),输出值被称为激活值(activation value). 激活函数有很多种,其中最简单的莫过于sigmoid函数. 除非特别声明,否则博客里提及的激活函数均为sigmoid 神经网络: 多个神经元首尾相连连接成神经网络(Neural Network),可以表示如下: 尽管生物体中神经云之间的连接…
过拟合(overfitting): 实际操作过程中,无论是线性回归还是逻辑回归,其假设函数h(x)都是人为设定的(尽管可以通过实验选择最优). 这样子就可能出线“欠拟合”或者“过拟合”现象. 所谓过拟合,就是模型复杂度过高,模型很好地拟合了训练样本却对未知样本的预测能力不足.(亦称"泛化"能力不足) 所谓欠拟合,就是模型复杂度过低,模型不能很好拟合不管是训练样本还是其他样本. 例子: 如果输出与输入大致成二次关系, 那么我们用一次函数去拟合,拟合结果过于平缓,跟不上变化,这就是“欠拟合…
为了获得良好的收敛,在进行梯度下降前,我们可以对数据进行预处理. 目标是使得数据大小在同一个数据数量级上,均值为零. 一般将数据放缩到(-1,1)区间, 我们可以对数据进行如下操作: 其中u1是数据的均值,s1为数据绝对值的最大值. 用处理后的数据进行梯度下降可以获得更好效果.…
上次用简单地介绍了线性回归的模型和梯度下降获得参数方程的方法. 用到的一个十分简单的参数方程h(x)=theta0+theta1*x 在现实问题中,参数方程能要复杂许多, 不只有一个未知量x,可能有多个未知量x.y,不只有一次项,更有多次项, 因此,梯度下降的过程变化为: (注意偏导的计算公式)…
Deep Learning论文笔记之(一)K-means特征学习 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文,但老感觉看完过后就会慢慢的淡忘,某一天重新拾起来的时候又好像没有看过一样.所以想习惯地把一些感觉有用的论文中的知识点总结整理一下,一方面在整理过程中,自己的理解也会更深,另一方面也方便未来自己的勘察.更好的还可以放到博客上面与大家交流.因为基础有限,所以对论文的一些理解可能不太正确,还望大家不吝指正交流,…