1、高级优化
输入参数theta,代价函数costFunction能够得到对应的损失值jval以及各个参数上的梯度值gradient。fminunc负责对这个代价函数进行优化。
假设神经网络有4层,那么网络的参数theta就是3个矩阵
Θ
(
1
)
,
Θ
(
2
)
,
Θ
(
3
)
\Theta^{(1)},\Theta^{(2)},\Theta^{(3)}
Θ(1),Θ(2),Θ(3),经过costFunction计算后,同时也会得到代价函数在各个参数上的3个梯度值矩阵
D
(
1
)
,
D
(
2
)
,
D
(
3
)
D^{(1)},D^{(2)},D^{(3)}
D(1),D(2),D(3)
在调用fminunc函数时,我们应该把3个网络参数矩阵展开成一个一维向量,然后传递给参数intialTheta。
最后costFunction计算得到的梯度值矩阵,我们也应该展成一个一维的向量: