为什么当我花费向量计算时 hessian是 0

损失函数:

损失函数:

L = (XW-t) * *2

t:表示目标值

w:权重,即 [w1,w2]

x:输入,即 [x1,x2]

因此,L = (-t + w1x1 + w2x2) * *2

我试图得到它的 Hessian 函数,这应该被其他人积极证明。

但我得到以下结果:

(-t + w1*x1 + w2*x2)**2
first grad:
(2*x1*(-t + w1*x1 + w2*x2),)
(2*x2*(-t + w1*x1 + w2*x2),)
Hessian:
[2*x1**2, 2*x1*x2]
[2*x1*x2, 2*x2**2]
Value:  0

有人知道为什么值为 0 吗?

下面是代码:

import numpy as np
from sympy import *
x1, x2, w1, w2, t = symbols("x1 x2 w1 w2 t")
# inp = Matrix(1, 2, [u, i])
# w = Matrix(2, 1, [w1, w2])
e1 = x1*w1 + x2*w2
# e2 = u*w3 + i*w4
# e3 = e1*w5 + e2*w6
L = (e1-t)**2
print("loss function: ", L)
all_symbols = [w1, w2]
first_diff = []
second_diff = []
for symbol in all_symbols:
    first_diff.append(diff(L, symbol))
    temp_diff = []
    for symbol in all_symbols:
        temp_diff.append(expand(diff(first_diff[-1], symbol)))
    second_diff.append(temp_diff)
print("\nfirst grad:")
for function in zip(first_diff):
    print(function)
print("\nHessian: ")
for elem in second_diff:
    print(elem)
Hessian = Matrix(second_diff)
# print(Hessian)
print("\nValue: ", Hessian.det())

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(566)
BDD的优点是什么
上一篇
Python-猜词游戏在带有重复字符的单词上失败
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(9条)