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计算得到的梯度值矩阵,我们也应该展成一个一维的向量: