
theano
文章平均质量分 96
风翼冰舟
Machine Learning,
Algorithm
展开
-
【theano-windows】学习笔记一——theano中的变量
前言因为目前需要搭建一些关于RBM或者其他之类的模型,感觉不太会折腾caffe,然而我发现了几个有趣网址,使用theano实现了各种各样的模型,所以,尝试学一下theano。主要以官方教程为主,所以博客会以译文的方式公布,当然会有自己的一些小见解或者扩展,编程环境为win7+jupyter notebook,如若有误,谢谢指正国际惯例,网址帖一波:【PTVS+Theano+CPU/GPU】在wind翻译 2017-08-30 18:24:37 · 1266 阅读 · 0 评论 -
【theano-windows】学习笔记十二——卷积神经网络
前言按照进度, 学习theano中的卷积操作国际惯例, 来一波参考网址Convolutional Neural Networks (LeNet)卷积神经网络如何应用在彩色图像上?卷积小知识三大特性:局部感知(稀疏连接), 权值共享, 池化上图很重要, 描述的是前一个隐层m-1具有四个特征图, 第m个隐层具有两个特征图, 四个权重框代表的是第m-1层的所有特征图与第m层的第一个特征图的连接,注意前一层翻译 2017-10-18 10:53:13 · 2604 阅读 · 2 评论 -
梯度优化算法Adam
前言最近读一个代码发现用了一个梯度更新方法, 刚开始还以为是什么奇奇怪怪的梯度下降法, 最后分析一下是用一阶梯度及其二次幂做的梯度更新。网上搜了一下, 果然就是称为Adam的梯度更新算法, 全称是:自适应矩估计(adaptive moment estimation) 国际惯例, 参考博文:一文看懂各种神经网络优化算法:从梯度下降到Adam方法Adam:一种随机优化方法An overview of g原创 2017-10-30 14:23:55 · 17638 阅读 · 3 评论 -
【theano-windows】学习笔记十四——堆叠去噪自编码器
前言前面已经学习了softmax,多层感知器,CNN,AE,dAE,接下来可以仿照多层感知器的方法去堆叠自编码器国际惯例,参考文献:Stacked Denoising Autoencoders (SdA)Greedy Layer-Wise Training of Deep Networks理论通过将降噪自编码器的低层隐单元输出作为当前层的输入,可以把自编码器堆叠成深度网络。 这类的无监督预许连方法是翻译 2017-11-05 00:21:56 · 5205 阅读 · 5 评论 -
【theano-windows】学习笔记十六——深度信念网络DBN
前言前面学习了受限玻尔兹曼机(RBM)的理论和搭建方法, 如果稍微了解过的人, 肯定知道利用RBM可以堆叠构成深度信念网络(deep belief network, DBN)和深度玻尔兹曼机(deep Boltzmann machine), 这里就先学习一下DBN.国际惯例, 参考博文:Deep Belief NetworksA fast learning algorithm for deep be翻译 2017-11-27 23:26:34 · 4385 阅读 · 17 评论 -
【theano-windows】学习笔记六——theano中的循环函数scan
前言Scan是Theano中最基础的循环函数, 官方教程主要是通过大量的例子来说明用法. 不过在学习的时候我比较习惯先看看用途, 然后是参数说明, 最后再是研究实例.国际惯例, 参考网址官网关于Scan的11个例子官网更全面的介绍简介用途递归的一般形式, 可以被用于循环scan有两个特殊的案例Reduction和mapscan可以按照某个输入序列执行一个函数, 在每个时间戳都提供一个输出,翻译 2017-09-05 16:15:21 · 1623 阅读 · 1 评论 -
【theano-windows】学习笔记十七——梯度中的consider_constant
前言主要是在写玻尔兹曼机相关的theano时, 在计算梯度grad的时候发现一个参数名字叫做consider_constant,来看看这个到底做了什么事情参考博客:using consider_constant selectively【theano-windows】学习笔记三——theano中的导数理论其实就是数学中求导中用到的将某个与变量相关的项固定, 求解其它项关于变量的梯度. 我记得有个梯度下原创 2017-11-28 11:08:57 · 1900 阅读 · 0 评论 -
【theano-windows】学习笔记十五——受限玻尔兹曼机
前言终于到了最喜欢的模型: 受限玻尔兹曼机(RBM)了, 发现关于RBM是如何从能量模型发展过来的介绍非常不错, 而关于详细理论证明, 可以去看我前面的受限玻尔兹曼机的一系列博客. 国际惯例, 参考博客,超级强推第二个博客, 证明过程很给力:Restricted Boltzmann Machines (RBM)Contrastive divergence multi-layer R翻译 2017-11-07 17:40:52 · 2570 阅读 · 2 评论 -
【theano-windows】学习笔记十八——混合蒙特卡洛采样
前言继续之前的Theano学习,本次主要学习混合蒙特卡洛(Hybrid Monte-Carlo Sampling)采样算法。国际惯例,参考网址Hybrid Monte-Carlo SamplingHybrid Monte Carlo 理论能量模型所使用的极大似然学习需要鲁棒的算法进行反向阶段的采样。比如玻尔兹曼机中负对数似然函数的梯度为: −∂logp(x)∂θ=∂F...翻译 2018-06-05 17:04:29 · 4376 阅读 · 5 评论 -
【theano-windows】学习笔记十九——循环神经网络
前言前面已经介绍了RBM和CNN了,就剩最后一个RNN了,抽了一天时间简单看了一下原理,但是没细推RNN的参数更新算法BPTT,全名是Backpropagation Through Time。【注】严谨来说RNN有两个称呼:①结构上递归的recursive neural network,通常称为递归神经网络;②时间上递归的recurrent neural network,通常称为循环神经网...原创 2018-07-05 18:07:16 · 2148 阅读 · 0 评论 -
【theano-windows】学习笔记十三——去噪自编码器
前言上一章节学习了卷积的写法,主要注意的是其实现在theano.tensor.nnet和theano.sandbox.cuda.dnn中都有对应函数实现, 这一节就进入到无监督或者称为半监督的网络构建中. 首先是自编码器(Autoencoders)和降噪自编码器(denoising Autoencoders)国际惯例, 参考网址:Denoising Autoencoders (dA)Learning翻译 2017-10-22 01:24:26 · 10973 阅读 · 2 评论 -
【theano-windows】学习笔记八——预备知识
前言按照上一个博客所说的,直接按照深度学习0.1文档进行学习,当然在此之前我们需要了解这一系列教程所需要的数据集,以及一些概念性的东西国际惯例,参考博客网址:深度学习0.1文档深度学习0.1文档-中文翻译基于梯度的学习数据集网址网盘下载链接: https://pan.baidu.com/s/1bpvqwDT 密码: 7c2w在进行操作前先导入基本的模块#-*- coding:utf-8 -*-im翻译 2017-09-08 16:32:06 · 1171 阅读 · 0 评论 -
【theano-windows】学习笔记九——softmax手写数字分类
前言上一篇博客折腾了数据集的预备知识, 接下来按照官方的Deep learning 0.1 documentation一步步走, 先折腾softmax, 关于softmax和logistic回归分类的联系, 我在之前写过一个小博客国际惯例, 参考博客走一波:Classifying MNIST digits using Logistic Regressionsoftmax理论及代码解读——UFLDLs翻译 2017-09-12 16:07:22 · 1184 阅读 · 0 评论 -
【theano-windows】学习笔记十——多层感知机手写数字分类
前言上一篇学习了softmax, 然后更进一步就是学习一下基本的多层感知机(MLP)了. 其实多层感知机同时就是w*x+b用某个激活函数激活一下, 得到的结果作为下一层神经元的输入x, 类似于 output=⋯f3(f2(f1(x∗w1+b2)∗w2+b2)∗w3+b3)⋯output=\cdots f^3(f^2(f^1(x*w^1+b^2)*w^2+b^2)*w^3+b^3)\cdots翻译 2017-09-13 18:12:03 · 1120 阅读 · 0 评论 -
【PTVS+Theano+CPU/GPU】在windows下使用VS安装theano深度学习工具
唉。好不容易折腾完毕caffe,突然发现caffe比较适合搭建卷积神经网络,而对于DBN和LSTM的搭建好像比较麻烦,相关教程没有找到,所以转向theano坑了。准备工具:VS2013:链接:http://pan.baidu.com/s/1coNs7c 密码:r2s4Anaconda2-4.0.0:链接:http://pan.baidu.com/s/1o7Nu4Qm 密码:qiil原创 2016-05-27 14:39:50 · 3749 阅读 · 0 评论 -
【theano-windows】学习笔记七——logistic回归
前言前面只是学了最基本的theano操作,但是theano中还有很多其他的东西,比如图结构,自定义函数等,这些暂时没有用到就先不看了,后续学啥用啥,没必要一口气吃个胖子,免得消化不良还把前面吃的东西忘记了,先拿logistic回归试试水基本理论推导可以看我前面你的博客softmax理论及代码解读——UFLDL, 这里只贴出前向计算公式和损失函数,毕竟theano可以自动梯度咯前向计算公式就是sigm翻译 2017-09-08 11:13:02 · 558 阅读 · 0 评论 -
【theano-windows】学习笔记二——theano中的函数和共享参数
前言上一篇博客中学到了theano中的变量类型,也就是dscalar、dvector之类的, 然后还有一个theano.function和eval函数, 将我们所定义的操作转换成theano可执行的函数,类似于def, 还有就是简单的线性代数运算操作。在神经网络(NN)中, 我们声明了权重、偏置,剩下的就是激活函数,权重和偏置更新之类的东西了,而权重我们一直存储在一个变量(比如w)中,不会说每次梯度翻译 2017-08-31 16:10:11 · 1120 阅读 · 0 评论 -
【theano-windows】学习笔记三——theano中的导数
前言就一个NN而言,包含梯度、偏置、参数更新,而前面第一篇博客学习了theano中符号变量的定义, 第二篇博客学习了变量的随机初始化, 变量之间的互相操作(类似于sigmoid(w∗x+b)sigmoid(w*x+b)), 但是参数更新涉及到损失函数的偏导计算,这一章节就是看看theano的梯度计算函数`tensor.grad(). 此外还有雅可比式,海森矩阵,雅克比乘以向量,海森矩阵乘以向量的操作翻译 2017-09-01 11:00:38 · 1652 阅读 · 0 评论 -
【theano-windows】学习笔记四——theano中的条件语句
前言按照官网教程,学习条件语句Switch和ifelse的使用参考地址: conditions性能对比ifElse是将布尔变量和两个变量当做输入Switch是将张量和两个变量当做输入. 因为Switch是元素级操作,所以比ifElse更具一般性Switch需要对所有输出变量进行评估,ifElse只需要计算条件中一个变量的结果用法需要实现的表达式 output={x,a<by,a≥b\begin{翻译 2017-09-01 14:12:44 · 785 阅读 · 0 评论 -
【theano-windows】学习笔记五——theano中张量部分函数
前言至此感觉应该可以写出一个logistic回归程序了,但是为了达到对theano中张量的更灵活的使用, 还是先看一下thenao.tensor对变量都提供了哪些操作,最全的文档戳这里或者这里, 这里就稍微摘取一点自我感觉以后可能用得多的函数基本张量函数创建张量以下三条语句都是创建一个张量实例, 代表一个0维的整型阵列, 名字是myvarx=T.scalar('myvar',dtype='int32翻译 2017-09-01 16:55:17 · 6737 阅读 · 0 评论 -
【theano-windows】学习笔记十一——theano中与神经网络相关函数
前言经过softmax和MLP的学习, 我们发现thenao.tensor中除了之前的博客【theano-windows】学习笔记五——theano中张量部分函数提到的张量的定义和基本运算外, 还有一个方法称为nnet, 如果自己实现过前面两篇博客中的代码就会发现用到了theano.tensor.nnet.sigmoid和thenao.tensor.nnet.tanh这两个神经网络的激活函数, 那么翻译 2017-09-19 16:59:14 · 2894 阅读 · 4 评论 -
【theano-windows】学习笔记二十——LSTM理论及实现
前言上一篇学习了RNN,也知道了在沿着时间线对上下文权重求梯度的时候,可能会导致梯度消失或者梯度爆炸,然后我们就得学习一波比较常见的优化方法之LSTM国际惯例,参考网址:LSTM Networks for Sentiment AnalysisUnderstanding LSTM Networks简介传统的循环神经网络RNN在梯度反传阶段,梯度信号经常被上下文连接权重矩阵...原创 2018-07-06 18:08:41 · 2108 阅读 · 0 评论