第一次用户,对不起,如果这是错误的论坛。
我正在寻找一种在纯线性代数矢量表示法中表达以下内容的方法,即删除逐元素运算。 我希望这会使渐变和Hessian变得更容易。
在MATLAB中:
sum((W'*p - r).^2 .* m)
其中W是矩阵,p,r和m是向量。
在R:
sum(t(W) %*% p - r)^2 * m)
由于
答案 0 :(得分:0)
元素方形使得矢量符号在日常线性代数运算符方面更加模糊。 Hadamard product是元素乘法的数学术语,将表示为○。 使用Hadamard产品,我们可以将表达式写为
在括号中,我们有逐元素乘法,然后我们左右乘以 m 的转置来得到总和(点积的矢量形式)。< / p>
我们还可以使用trace(此处表示为&#34; tr&#34;)和diag操作来获得等效表达式:
在这里,我们使用diag创建一个方形矩阵,对方形矩阵(这是一个有效的运算)进行平方,执行矩阵向量乘法,对结果向量进行诊断,然后进行跟踪。这个看起来像代码,但我认为这仅仅是因为代码看起来像它;)。