PyMC3和Lasagne构建神经网络(ANN)和卷积神经网络(CNN)
转自http://www.sohu.com/a/162460147_505915
源地址https://twiecki.io/blog/2016/07/05/bayesian-deep-learning/
今天,我们将使用Lasagne构建一个更有趣的模型,这是一个灵活的Theano图书馆,用于构建各种类型的神经网络。你可能知道,PyMC3还使用了Theano,因此在Lasagne中建立了人工神经网络(ANN),将贝叶斯先验放在参数上,然后在PyMC3中使用变分推理(ADVI)来估计模型。
由于Lasagne的优秀表现,我们可以轻松地建立一个具有最大汇集层的分层贝叶斯卷积ANN,在MNIST上实现98%的准确性。
数据集:MNIST
我们将使用手写数字的经典MNIST数据集。 与之前的博客文章相反,MNIST是具有合理数量的维度和数据点的有实际挑战性的ML任务(当然不如像ImageNet那样有挑战性)。
Loading data...
模型说明
我想像应该可以把Lasagne和PyMC3搭在一起,因为他们都依赖于Theano。 然而,目前还不清楚它将会是多么困难。 幸运的是,第一个实验做得很好,但有一些潜在的方法可以使这更容易。 我开设了一个GitHub issue在Lasagne's的报告里,在这几天后,PR695被合并,允许他们更好的整合。
首先,Lasagne创建一个具有2个完全连接的隐藏层(每个具有800个神经元)的ANN,这几乎是从教程中直接采用的Lasagne代码。 当使用lasagne.layers.DenseLayer创建图层时,我们可以传递一个函数init,该函数必须返回一个用作权重和偏差矩阵的Theano表达式。
接下来,为ANN创建权重函数。 因为PyMC3要求每个随机变量具有不同的名称,我们创建一个类并且是唯一命名的先验。
在这里,priors充当了调节者的角色,试图保持ANN small的权重。它在数学上等价于一个L2的损失项,作为通常的做法是将大的权重惩罚到目标函数中。
下面是一些设置小批量ADVI的函数。
放在一起
让我们用小批量的ADVI来运行ANN:
确保一切聚合:
Accuracy on test data = 89.81%
分层神经网络:学习数据的正则化
上面我们只是固定了所有层的sd = 0.1,但是可能第一层应该有不同于第二层的值。也许开始时是0.1,要么太小或太大。在贝叶斯建模中,很常见的是在这种情况下放置hyperprior,并学习最佳正则化应用到数据中去。这节省了我们在超参数优化中对参数进行调优的时间。
Accuracy on test data = 92.25999999999999%
我们得到一个很小但很好的boost在准确性上。 我们来看看超参数后面的部分:
有趣的是,它们都是不同的,这表明改变正规化数量在网络的每一层是有意义的。
卷积神经网络
但到目前为止,在PyMC3中实现也很简单。有趣的是,我们现在可以构建更复杂的ANNs,像卷积神经网络:
Accuracy on test data = 98.03%
PyMC3和Lasagne构建神经网络(ANN)和卷积神经网络(CNN)相关推荐
- 神经网络与卷积神经网络,什么是卷积神经网络
前馈神经网络.BP神经网络.卷积神经网络的区别与联系 一.计算方法不同1.前馈神经网络:一种最简单的神经网络,各神经元分层排列.每个神经元只与前一层的神经元相连.接收前一层的输出,并输出给下一层.各层 ...
- 神经网络和卷积神经网络,常用的卷积神经网络
前馈神经网络.BP神经网络.卷积神经网络的区别与联系 一.计算方法不同1.前馈神经网络:一种最简单的神经网络,各神经元分层排列.每个神经元只与前一层的神经元相连.接收前一层的输出,并输出给下一层.各层 ...
- DL之ANN/DNN: 人工神经网络ANN/DNN深度神经网络算法的简介、应用、经典案例之详细攻略
DL之ANN/DNN: 人工神经网络ANN/DNN深度神经网络算法的简介.应用.经典案例之详细攻略 相关文章 DL:深度学习(神经网络)的简介.基础知识(神经元/感知机.训练策略.预测原理).算法分类 ...
- 什么是深度卷积神经网络,基于深度卷积神经网络
卷积神经网络算法是什么? 一维构筑.二维构筑.全卷积构筑. 卷积神经网络(ConvolutionalNeuralNetworks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedfor ...
- 卷积神经网络(2D卷积神经网络和3D卷积神经网络理解)
前言 卷积神经⽹络(convolutional neural network,CNN)是⼀类强⼤的神经⽹络,正是为处理图像 数据而设计的.基于卷积神经⽹络结构的模型在计算机视觉领域中已经占主导地位,当 ...
- 一维卷积神经网络结构图,一维卷积神经网络原理
1.卷积神经网络算法是什么? 一维构筑.二维构筑.全卷积构筑. 卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Fe ...
- 描述卷积神经网络的结构,卷积神经网络三大特点
什么是卷积神经网络?为什么它们很重要 卷积神经网络(ConvolutionalNeuralNetwork,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理 ...
- 神经网络与卷积神经网络,深度残差卷积神经网络
深度残差网络是卷积网络的一种吗 谷歌人工智能写作项目:神经网络伪原创 深度残差网络是卷积网络的一种吗 神经网络的历史是什么? 沃伦·麦卡洛克和沃尔特·皮茨(1943)基于数学和一种称为阈值逻辑的算法创 ...
- 深度卷积神经网络是什么,卷积神经网络的深度
卷积神经网络算法是什么? 一维构筑.二维构筑.全卷积构筑. 卷积神经网络(ConvolutionalNeuralNetworks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedfor ...
最新文章
- 新的一年,请以这样的标准完善自我
- Tip:强制执行exchange DAG节点之间的数据库副本移动
- linux 内核 hrtimer,hrtimer在Linux内核中重复任务
- sha-1算法的实现 c语言,SHA-1算法的C语言实现
- python爬虫爬商品库存_利用Python爬虫爬取指定天猫店铺全店商品信息
- 学位论文检测系统的说明与修改
- IDEA 运行maven命令时报错: -Dmaven.multiModuleProjectDirectory system propery is not set
- 安装Windows 10 V1909对CPU有什么要求?
- eslint配置文件解析
- 深度学习之反向传播推导
- 团队如何开会,开会准则
- 计算机检索技巧知识,信息检索策略与搜索技巧
- POJ 1392 Ouroboros Snake 欧拉回路
- django models 之字段详解
- Python tkinter Text 多行文本框变化事件
- chart.js使用学习——散点图
- ps2021直装版|ps2021中文直装版 v22.0.0.35附安装教程
- 2016OSC源创会年终盛典-综合技术专场-George Neville-Neil
- sql server 计算2个日期相差的 天数,月数,年数,日期运算/计算
- Spring Boot应用的启动和停止(Spring Boot应用通过start命令启动)
热门文章
- c语言程序stm8s,经典STM8s20实用C语言编程大全
- python具体应用过程_python公开课|Python for循环的具体应用就是python流程控制的核心,想学会就来看看...
- python3.6是用来干嘛的_学 Python 都用来干嘛的?
- 论文浅尝 - AAAI2020 | 小样本知识图谱补全
- 论文浅尝 - 计算机工程 | 知识图谱可视化查询技术综述
- CCKS 2018 | 工业界论坛报告简介
- DGL实现同构/异构图卷积模型
- RSA 前段加密 java 后台解密 已调试通过
- 程序猿的日常——JVM内存模型与垃圾回收
- spirng mvc 中使用验证码