![]() |
1
1
问题在于矩阵乘法。 首先假设m=5,n1=5,这意味着x是一个5*5的矩阵,θ和y都是5个元素的向量。 在第一种情况下,sigmoid函数提供一个5*5的矩阵,x的倒数也是5*5。因为它是一个矩阵乘法,所以x'的第一行乘以g的第一列,这意味着您需要所有g值来计算第一行梯度。 在第二种情况下,对于梯度的第一行,sigmoid函数也提供了一个5*5的矩阵,但是它是不同的,因为现在x是一个1*5的矩阵。这意味着矩阵乘法将提供不同的输出,因此结果是不同的。 希望现在一切都清楚了。 **之前我假设theta和y是行向量,但在您的示例中,您已经清楚地提到您使用的是列向量。然而,矩阵乘法仍然是个问题。如果你对矩阵乘法有一个清晰的理解,那么你很容易理解这个问题。 让我们从正确的方程开始, (x*theta)-y=m*1矩阵,因此乙状结肠为m*1矩阵。 x'*乙状结肠是这里的主要部分,因为其他两个术语是标量,x'*乙状结肠=m*1矩阵,最后你的梯度是m*1矩阵。 如果仔细观察,梯度(1,1)取决于x'(1,:)和乙状结肠,并且使用所有theta值计算乙状结肠。所以,梯度(1,1)不仅依赖于θ(1),你不能简单地用θ(1)代替θ,你在错误的情况下做了什么。 |
![]() |
Morph3us · 我如何确定谁将赢得罗马尼亚下一届预选赛?[关闭] 6 月前 |
![]() |
explorer · AWS SageMaker项目模板创建失败 10 月前 |
|
me0076 · 使用LLM提取多个实体 1 年前 |
![]() |
Chinmaya Tewari · 创建新csv文件时权限被拒绝 1 年前 |
![]() |
Seán Healy · LSTM或变压器模型是否有任何可逆实现? 1 年前 |