资讯专栏INFORMATION COLUMN

Theano - 导数

MAX_zuo / 751人阅读

摘要:计算梯度计算的梯度计算逻辑函数的梯度计算计算矩阵右算子左算子右算子

计算梯度 计算x^2的梯度
import numpy
import theano
import theano.tensor as T
from theano import pp
x = T.dscalar("x")
y = x ** 2
gy = T.grad(y, x)
pp(gy)
f = theano.function([x], gy)
pp(f.maker.fgraph.outputs[0])
f(4)
numpy.allclose(f(94.2), 188.4)
计算逻辑函数的梯度
x = T.dmatrix("x")
s = T.sum(1 / (1 + T.exp(-x)))
gs = T.grad(s, x)
dlogistic = theano.function([x], gs)
dlogistic([[0, 1], [-1, -2]])
计算Jacobian
x = T.dvector("x")
y = x ** 2
J, updates = theano.scan(lambda i, y, x: T.grad(y[i], x), sequences=T.arange(y.shape[0]), non_sequences=[y,x])
f = theano.function([x], J, updates=updates)
f([4, 4])
计算Hessian矩阵
x = T.dvector("x")
y = x ** 2
cost = y.sum()
gy = T.grad(cost, x)
H, updates = theano.scan(lambda i, gy, x: T.grad(gy[i], x), sequences=T.arange(gy.shape[0]), non_sequences=[gy,x])
f = theano.function([x], H, updates=updates)
f([4,4])
Jacobian times a Vector 右算子(R-operator)
W = T.dmatrix("W")
V = T.dmatrix("V")
x = T.dvector("x")
y = T.dot(x, W)
JV = T.Rop(y, W, V)
f = theano.function([W, V, x], JV)
f([[1,1], [1,1]], [[2,2], [2,2]], [0,1])
左算子(L-operator)
W = T.dmatrix("W")
v = T.dvector("v")
x = T.dvector("x")
y = T.dot(x, W)
VJ = T.Lop(y, W, v)
f = theano.function([v, x], VJ)
f([2,2], [0,1])
Hessian times a Vector
x = T.dvector("x")
v = T.dvector("v")
y = T.sum(x ** 2)
gy = T.grad(y, x)
vH = T.grad(T.sum(gy * v), x)
f = theano.function([x,v], vH)
f([4,4], [2,2])
右算子
x = T.dvector("x")
v = T.dvector("v")
y = T.sum(x ** 2)
gy = T.grad(y, x)
Hv = T.Rop(gy, x, v)
f = theano.function([x,v], Hv)
f([4,4], [2,2])

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/38633.html

相关文章

  • Yoshua Bengio等大神传授:26条深度学习经验

    摘要:另外,当损失函数接近全局最小时,概率会增加。降低训练过程中的学习率。对抗样本的训练据最近信息显示,神经网络很容易被对抗样本戏弄。使用高度正则化会有所帮助,但会影响判断不含噪声图像的准确性。 由 Yoshua Bengio、 Leon Bottou 等大神组成的讲师团奉献了 10 天精彩的讲座,剑桥大学自然语言处理与信息检索研究组副研究员 Marek Rei 参加了本次课程,在本文中,他精炼地...

    Lowky 评论0 收藏0
  • Yoshua Bengio等大神传授:26条深度学习经验

    摘要:八月初,我有幸有机会参加了蒙特利尔深度学习暑期学校的课程,由最知名的神经网络研究人员组成的为期天的讲座。另外,当损失函数接近全局最小时,概率会增加。降低训练过程中的学习率。对抗样本的训练据最近信息显示,神经网络很容易被对抗样本戏弄。 8月初的蒙特利尔深度学习暑期班,由Yoshua Bengio、 Leon Bottou等大神组成的讲师团奉献了10天精彩的讲座,剑桥大学自然语言处理与信息检索研...

    Salamander 评论0 收藏0
  • Deep learning:四十二(Denoise Autoencoder简单理解)

    摘要:本篇博文主要是根据的那篇文章简单介绍下,然后通过个简单的实验来说明实际编程中该怎样应用。当然作者也从数学上给出了一定的解释。自顶向下的生成模型观点的解释。信息论观点的解释。 前言:   当采用无监督的方法分层预训练深度网络的权值时,为了学习到较鲁棒的特征,可以在网络的可视层(即数据的输入层)引入随机噪声,这种方法称为Denoise Autoencoder(简称dAE),由Bengio在08年...

    gotham 评论0 收藏0
  • 深度神经网络:WX+b vs XW+b

    摘要:作者微信号微信公众号简书地址在大多数的神经网络教科书中,神经网络一般都会使用或者的形式。但是在或者中,神经网络的实现都是采用了的形式。从理论上讲,和在神经网络中是等价的其实就是一个矩阵的转置。然而,当我们计算两者的导数的时候却差别很大。 作者:chen_h微信号 & QQ:862251340微信公众号:coderpai简书地址:https://www.jianshu.com/p/856...

    rose 评论0 收藏0
  • 深度学习:你该知道八大开源框架

    摘要:作为当下最热门的话题,等巨头都围绕深度学习重点投资了一系列新兴项目,他们也一直在支持一些开源深度学习框架。八来自一个日本的深度学习创业公司,今年月发布的一个框架。 深度学习(Deep Learning)是机器学习中一种基于对数据进行表征学习的方法,深度学习的好处是用 非 监督式或半监督式 的特征学习、分层特征提取高效算法来替代手工获取特征(feature)。作为当下最热门的话题,Google...

    Rindia 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<