在Theano的总和的衍生物

时间:2016-06-15 15:42:10

标签: python theano derivative

所以我想计算以下总和的渐变和Hessian。 Afaik Theano应该能够做到这一点,但我无法弄清楚如何。 X是尺寸为M×N的矩阵; y M大小的矢量; beta一个N大小的矢量。

enter image description here

计算总和的一种方法是使用scan()函数,我这样做:

 res,ups =  theano.scan(lambda v,w: v*np.log(1/(1+np.exp(-1*w.dot(beta))))
         +((1-v)*(np.log(1/(1+np.exp(w.dot(beta)))))), sequences = [y,X])

 t7 = theano.function(inputs = [X,y,beta],outputs = res)

就我所知,这是正常的。但是,我不能将它用作关于beta的grad()函数的输入。 所以我想知道的是,是否有办法使用扫描函数作为grad函数的输入或使用不同的方法来计算总和。

(我首先尝试了同情,但是同情不能lambdify Indexedbase对象,所以我可以计算毕业但不能将它用作函数,也许这有帮助吗?)

Sum在X和beta中加上一条线的Dot Product的函数,而二元向量y决定将使用两个函数中的哪一个。

 log(1/(1+exp(-X_i*beta))) 

希望有帮助吗?

0 个答案:

没有答案