第五周(反向神经网络)-【机器学习-Coursera Machine Learning-吴恩达】

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/KevinBetterQ/article/details/79469949
目录
    代价函数
    反向传播

    神经网络总结


1 代价函数



2 反向传播算法——让代价函数最小化的算法

让代价函数最小化,利用matlab函数库fminunc时


在costFunction时需要

·代价函数计算方法 

·代价函数的偏导数


为了得到这个偏导数,使用反向传播算法:




3 反向传播算法实现

1)矩阵表达式和向量表达式的转换

矩阵变为向量:


向量还原矩阵:


向量表达式便于使用优化函数,如 fminunc()


2)梯度检验(利用数值计算)
反向传播算法非常复杂,所以最好使用时进行一下检验。

使用数值计算近似导数:


多参数时


matlab实现


检验:
gradApprox ≈ deltaVector
注意:

一旦你验证一次反向传播算法是正确的,就不需要再一次计算gradApprox,因为计算它会花费大量时间。

3)随机初始化


给出初始theta时,使用:



4 神经网络总结

1)选择神经网络结构

输入层单元数、输出层单元数、隐藏层个数以及各自的单元数(默认一个隐藏层,如果多个建议每层单元数相同)。

2)训练神经网络

· 随机初始化权重,也就是theta
· 为任意 x 使用前向传播获取 h
· 实现代价函数cost function
· 实现反向传播算法计算 偏导数
· 梯度检查
· 使用梯度下降或内置的优化函数,使成本函数最小化


题目:




猜你喜欢

转载自blog.csdn.net/KevinBetterQ/article/details/79469949