和的导数

2024-03-28 16:34:11 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我要计算梯度和黑森函数的和。阿法伊克西亚诺应该能做到,但我不知道怎么做。 X是大小为M X N的矩阵;y M大小的向量;βa 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()函数的输入。 所以我想知道的是,是否有一种方法,或者用scan函数作为梯度函数的输入,或者用另一种方法来计算和。你知道吗

(我第一次在sympy中尝试,但是sympy不能lambdify Indexedbase对象,所以我可以计算grad,但不能将其用作函数,也许这有帮助?)你知道吗

求和是X和beta中一条直线的点积的函数,而二进制向量y决定使用这两个函数中的哪一个。你知道吗

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

希望有帮助?你知道吗


Tags: 方法函数logscannpres矩阵theano