【发布时间】:2013-08-20 17:59:22
【问题描述】:
谁能帮我在 Matlab 中编写交叉熵损失函数。我想把它编码进去 使用@的单行,即函数句柄。误差函数为
E(w) = 1/N* 求和(n=1..N) ln(1+ exp( -y(n)*w*x(n) ) )
N 是训练样例的总数。 'w' 是函数的参数。 'x' 是包含训练样本特征的向量,'y' 是对应的标签。
“E”的每次评估都需要处理所有训练示例。
非常感谢
【问题讨论】:
谁能帮我在 Matlab 中编写交叉熵损失函数。我想把它编码进去 使用@的单行,即函数句柄。误差函数为
E(w) = 1/N* 求和(n=1..N) ln(1+ exp( -y(n)*w*x(n) ) )
N 是训练样例的总数。 'w' 是函数的参数。 'x' 是包含训练样本特征的向量,'y' 是对应的标签。
“E”的每次评估都需要处理所有训练示例。
非常感谢
【问题讨论】:
我不知道为什么这么难,但这里有一个版本
E = @(w)mean(log1p(exp(-y.*w.*x)));
在不知道x、w 和y 的尺寸的情况下,我不能确定它们中的一个或多个不需要转置(或者如果w 甚至是一个向量)。
【讨论】: