deep learning学习记录一】的更多相关文章

deep learning,这几年有多火!! imagenet比赛,大家今年都是基于去年的基础上改进和应用的,效果比去年提升当然. 在deep learning方向,hinton, benjio, lecun, andrew等这些人算是武林中的掌门人吧.hinton提出来RBM,让深层神经网络有可以训练的机会了.但是,现在大家都不用RBM,因为用梯度下降也能达到很好的效果.说到梯度下降,我觉得这个要说andrew,他们那里对sgd做了不少工作.hinton组的应用做的是非常好的,所以人家被goo…
接着我的微博继续八卦吧 微博里问了几个人,关于deep learning和cnn的区别,有不少热心网友给了回答,非常感谢.结合我听课和看文章的理解,我大胆大概总结一下: 在上世纪90年代,neural network火了后就不再火了,听说,在投稿到nips时,如果你的关键词是neural network等,会大大降低你的文章的接受率,而如果是bayesian parameters or svm等,就会提高接受率,云云,但是在06年左右,neural network又开始出来闹腾了. 其实,之前n…
最近不小心又赶了一下时髦,在做deep learning.今天去听了复旦吴老师的课程,感觉吴老讲解的还是很清晰的. 上午刚看过cnn,下午讲解的就是这章,相对来说,我听着给了很多启发.…
深度学习模型的调优,首先需要对各方面进行评估,主要包括定义函数.模型在训练集和测试集拟合效果.交叉验证.激活函数和优化算法的选择等. 那如何对我们自己的模型进行判断呢?——通过模型训练跑代码,我们可以分别从训练集和测试集上看到这个模型造成的损失大小(loss),还有它的精确率(accuracy). 目录 前言 1.定义模型函数 2.交叉验证(Cross-validation) 3.优化算法 4.激活函数(activation) 5.dropout 6.early stopping 模型训练实战案…
DA就是“Denoising Autoencoders”的缩写.继续给yusugomori做注释,边注释边学习.看了一些DA的材料,基本上都在前面“转载”了.学习中间总有个疑问:DA和RBM到底啥区别?(别笑,我不是“学院派”的看Deep Learning理论,如果“顺次”看下来,可能不会有这个问题),现在了解的差不多了,详情见:[deep learning学习笔记]Autoencoder.之后,又有个疑问,DA具体的权重更新公式是怎么推导出来的?我知道是BP算法,不过具体公示的推导.偏导数的求…
不多说,直接上干货! 十.总结与展望 1)Deep learning总结 深度学习是关于自动学习要建模的数据的潜在(隐含)分布的多层(复杂)表达的算法.换句话来说,深度学习算法自动的提取分类需要的低层次或者高层次特征.高层次特征,一是指该特征可以分级(层次)地依赖其他特征,例如:对于机器视觉,深度学习算法从原始图像去学习得到它的一个低层次表达,例如边缘检测器,小波滤波器等,然后在这些低层次表达的基础上再建立表达,例如这些低层次表达的线性或者非线性组合,然后重复这个过程,最后得到一个高层次的表达.…
一.文章来由 好久没写原创博客了,一直处于学习新知识的阶段.来新加坡也有一个星期,搞定签证.入学等杂事之后,今天上午与导师确定了接下来的研究任务,我平时基本也是把博客当作联机版的云笔记~~如果有写的不对的地方,欢迎批评指正. 二.<一天搞懂深度学习> 300多页的PPT,台大教授写的好文章. 对应的视频地址 1.Lecture I: Introduction of Deep Learning (1)machine learning≈找函数 training和testing过程 (2)单个神经网…
主要内容: Spotify是个类似酷我音乐的音乐站点.做个性化音乐推荐和音乐消费.作者利用deep learning结合协同过滤来做音乐推荐. 详细内容: 1. 协同过滤 基本原理:某两个用户听的歌曲都差点儿相同,说明这两个用户听歌的兴趣.品味类似.某两个歌曲,被同一群人听,说明这两个歌曲风格类似. 缺点: (1)没有利用歌曲本身的特征(信息) (2)无法对"层级"的item进行处理,对于歌曲来说,这样的层级关系体如今:专辑-主打歌-副歌,上面,这几种因素并非同等重要的 (3)冷启动问…
百度了半天yusugomori,也不知道他是谁.不过这位老兄写了deep learning的代码,包括RBM.逻辑回归.DBN.autoencoder等,实现语言包括c.c++.java.python等.是学习的好材料.代码下载地址:https://github.com/yusugomori/DeepLearning.不过这位老兄不喜欢写注释,而且这些模型的原理.公式什么的,不了解的话就看不懂代码.我从给他写注释开始,边看资料.边理解它的代码.边给他写上注释. 工具包中RBM的实现包含了两个文件…
之前的笔记,算不上是 Deep Learning, 只是为理解Deep Learning 而需要学习的基础知识, 从下面开始,我会把我学习UFDL的笔记写出来 #主要是给自己用的,所以其他人不一定看得懂# UFDL链接 : http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial 自编码器( Autoencoders ):(概述) 自编码器是只有一层隐藏节点,输入和输出具有相同节点数的神经网络. 自编码器的目的是求的函数 . 也…
近期開始看一些深度学习的资料.想学习一下深度学习的基础知识.找到了一个比較好的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…
最近开始看Deep Learning,随手记点,方便以后查看. 主要参考资料是Stanford 教授 Andrew Ng 的 Deep Learning 教程讲义:http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial.这个讲义已经有人翻译了(赞一个),可以参见邓侃的新浪博客http://blog.sina.com.cn/s/blog_46d0a3930101h6nf.html.另外,博客园里有一个前辈关于讲义中练习的一系列文…
这几个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…
这一个多周忙别的事去了,忙完了,接着看讲义~ 这章讲的是深度网络(Deep Network).前面讲了自学习网络,通过稀疏自编码和一个logistic回归或者softmax回归连接,显然是3层的.而这章则要讲深度(多层)网络的优势. Deep Network: 为什么要使用深度网络呢?使用深度网络最主要的优势在于,它能以简洁的方式来表达比浅层网络大得多的函数集合.正式点说,可以找到一些函数,它们能够用k层网络简洁的表达出来(这里的简洁指的是使用隐层单元的数目与输入单元数目是多项式关系),但是对一…
接着看讲义,接下来这章应该是Self-Taught Learning and Unsupervised Feature Learning. 含义: 从字面上不难理解其意思.这里的self-taught learning指的是用非监督的方法提取特征,然后用监督方法进行分类.比如用稀疏自编码+softmax regression. 对于非监督特征学习,有两种类型,一类是self-taught learning,一类是semi-supervised learning.看他们的定义不如看讲义中给出的那个…
继续看yusugomori的代码,看逻辑回归.在DBN(Deep Blief Network)中,下面几层是RBM,最上层就是LR了.关于回归.二类回归.以及逻辑回归,资料就是前面转的几篇.套路就是设定目标函数(softmax损失函数),对参数求偏导数,得出权重更新公式等. LogisticRegression.h注释如下: class LogisticRegression { public: int N; // number of input samples int n_in; // numb…
关于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年的工作,以及在此基础上的改进,如:用递归的神经网络进行训练.不过这些方法计算复杂度较高,对词表大小.训…
前面Andrew Ng的讲义基本看完了.Andrew讲的真是通俗易懂,只是不过瘾啊,讲的太少了.趁着看完那章convolution and pooling, 自己又去翻了翻CNN的相关东西. 当时看讲义时,有一点是不太清楚的,就是讲义只讲了一次convolution和一次pooling,而且第一次的convolution很容易理解,针对一副图像来的,但是经过一次convolution和pooling 后,一副图像变成了好多副特征图(feature map)这时候再进行convolution时,该…
图像大小与参数个数: 前面几章都是针对小图像块处理的,这一章则是针对大图像进行处理的.两者在这的区别还是很明显的,小图像(如8*8,MINIST的28*28)可以采用全连接的方式(即输入层和隐含层直接相连).但是大图像,这个将会变得很耗时:比如96*96的图像,若采用全连接方式,需要96*96个输入单元,然后如果要训练100个特征,只这一层就需要96*96*100个参数(W,b),训练时间将是前面的几百或者上万倍.所以这里用到了部分联通网络.对于图像来说,每个隐含单元仅仅连接输入图像的一小片相邻…
线性解码器(Linear Decoder) 前面第一章提到稀疏自编码器(http://www.cnblogs.com/bzjia-blog/p/SparseAutoencoder.html)的三层网络结构,我们要满足最后一层的输出:a(3)≍a(1)(即输入值x)的近似重建.考虑到在最后一层的a(3)=f(z(3)),这里f一般用sigmoid函数或tanh函数等非线性函数,而将输出界定在一个范围内(比如sigmoid函数使结果在[0,1]中).这对于有些数据组,例如MNIST手写数字库中其输入…
前面记到了深度网络这一章.当时觉得练习应该挺简单的,用不了多少时间,结果训练时间真够长的...途中debug的时候还手贱的clear了一下,又得从头开始运行.不过最终还是调试成功了,sigh~ 前一篇博文讲了深度网络的一些基本知识,这次讲义中的练习还是针对MNIST手写库,主要步骤是训练两个自编码器,然后进行softmax回归,最后再整体进行一次微调. 训练自编码器以及softmax回归都是利用前面已经写好的代码.微调部分的代码其实就是一次反向传播. 以下就是代码: 主程序部分: stacked…
接着上次的记,前面看了稀疏自编码.按照讲义,接下来是Vectorized, 翻译成向量化?暂且这么认为吧. Vectorized: 这节是老师教我们编程技巧了,这个向量化的意思说白了就是利用已经被优化了的数值运算来编程,矩阵的操作 尽量少用for循环,用已有的矩阵运算符来操作.这里只是粗略的看了下,有些小技巧还是不错的. PCA: PCA这个以前都接触过了,简单说就是两步: 1.协方差矩阵 其中x(i)是输入样本(假设已经均值化). 2.SVD分解,得出U向量.其中U向量的每列就是样本的新的方向…
模型实现代码,关键是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_…
说实话,具体的训练公式,我没有自己推导,姑且认为他写的代码是对的.总体上看,用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…
废话: 这博客有三个月没更新了. 三个月!!!尼玛我真是够懒了!! 这三个月我复习什么去了呢? 托福………… 也不是说我复习紧张到完全没时间更新, 事实上我甚至有时间打LOL. 只是说,我一次就只能(只想?)做一件事情. 对我来说,在两种不同思维之间转换是十分耗费能量的. 说白了我!就!是!个!废!柴!……哼…… 前言: PCA与白化, 就是对输入数据进行预处理, 前者对数据进行降维,后者对数据进行方差处理. 虽说原理挺简单,但是作用可不小. 之前的师兄做实验的时候,就是忘了对数据预处理, 结果…
逻辑回归主要用于解决分类问题,在现实中有更多的运用, 正常邮件or垃圾邮件 车or行人 涨价or不涨价 用我们EE的例子就是: 高电平or低电平 同时逻辑回归也是后面神经网络到深度学习的基础. (原来编辑器就有分割线的功能啊……) 一.Logistic Function(逻辑方程) 同线性回归,我们会有一个Hypothesis Function对输入数据进行计算已得到一个输出值. 考虑到分类问题的特点,常用的函数有sigmoid方程(又叫logistic方程) 其函数图像如下 可见: 1.输出区…