内容来自于机器学习课程
binary classification: 输出只有一个节点
multi-class classification: 输出有k个节点
损失函数:
L: 表示网络中的层数 Sl:表示在l层的单元数目,不包括偏置单元 K:表示输出单元数目或者是分类数目
最小化cost function
确定算法没有错误的话,关掉梯度检验,数值计算方法来计算梯度的话,计算方法非常慢
利用epsilon计算theta矩阵:
epsilon = 1e-4;
for i = 1:n,
thetaPlus = theta;
thetaPlus(i) += epsilon;
thetaMinus = theta;
thetaMinus(i) -= epsilon;
gradApprox(i) = (J(thetaPlus) - J(thetaMinus))/(2*epsilon)
end;
在逻辑回归中,初始theta值全为0可以进行。
但是神经网络中,全部初始theta为0的话,会导致隐层的计算结果相同,使得神经网络性能下降。需要随机初始化。
随机初始化:Symmetry breaking