吴恩达机器学习笔记(四)——神经网络

这篇博客详细介绍了神经网络的选择原因、模型表示及实现过程,包括前向传播和反向传播算法。博主解释了神经元模型、隐藏层的作用,以及反向传播中的核心公式,帮助理解链式求导在神经网络优化中的应用。
摘要由CSDN通过智能技术生成

                                         神经网络学习笔记

1 为什么选择神经网络

       无论是线性回归还是逻辑回归,当特征太多时计算的负荷会变得很大。例如当我们的训练对象是一组50X50分辨率的图片时,我们将会有2500个特征,当我们进一步将其构成一个两两组合的多项式模型时就会有2500的平方个特征。因此我们需要更适合的模型。

 2 神经网络模型的表示

       神经网络是一种很古老的算法,它最初产生的目的是制造能模拟大脑的机器因此神经网络的模型是模仿大脑中的神经网络建立的。右图所示就是最基础的神经元表示了,如果是分类问题那么激活函数一般是sigmoid函数,如果是线性预测那么激活函数可以是常数。

 

       神经网络模型建立在许多神经元之上,其中L1表示输入层,L3表示输出层,其两者之间的都是隐藏层,连线代表参数和权值,除了输出层其余层在计算时都会带上偏置节点。从本质上讲,神经网络能通过学习得出其自身的一系列特征,第二层作为隐藏层可以看作是神经网络自己在学习过程中生成的一系列新的特征。

 

3 神经网络的实现

       即使相对复杂,神经网络基本要求同线性回归和逻辑回归还是一样的,都是不断迭代参数最终使代价函数收敛。

 

       有了代价函数后,最重要的就是找到代价函数对于参数的偏导,从而找到迭代的方式,最终使得代价函数达到收敛。而要实践完成神经网络,最重要的两个步骤就是:前向传播,后向传播。

3.1 前向传播

       前向传播一般用于建立神经网络模型时的求代价函数值的过程,当然当模型建立好以后,预测使用模型时都是前向传播。

 

 

       前向传播很好理解,但是问题就是这些参数需要如何迭代呢?这就需要用到反向传播的算法。

 

3.2 方向传播

       我们可以看到不同于以前所学习到的两个算法,神经网络模型在求导的过程中由于求导的参数不直接表现在代价函数当中,因此在求导的过程中我们必须用到链式求导法则,而有些中间变量又可以再通过链式求导的方法从最底层向上层递推的。因此反向传播的核心思想便是链式求导。

 

       这是反向传播中的三个核心公式,在吴恩达老师的课程中老师直接给出了,并没有给出相应的数学推导,其中公式三应该是如图所示的中间项公式,其结果恰好是a-y,吴老师将此命名为“误差”,虽然其形式上就是误差的意思,但是其推导过程并非如其字面意思所示,这里也是一开始困扰我很久的地方,后来在网上查阅其他博主的推导分享才搞清楚。

 

       这里面主要有两个理解难点,首先就是关于delta的定义,当我们求代价函数关于参数的偏导时,我们肯定不能直接求,运用链式求导法则的话我们可以知道,我们应该求代价函数关于a的偏导再求代价函数关于z的偏导最后再求代价函数关于参数w的偏导,这三者相乘就是代价函数关于参数的偏导,因此这里我们可以将前面两项合并成代价函数关于z的偏导并命名为“误差”也就是delta。第二个理解难点便在于公式1.1中为什么要求和的问题。其实理解起来很简单,也是求偏导的知识,其原因就是Zl+1中的每一项都包含Zl。

 

        这样一来我们就推导出了反向传播中所需要的公式了。这里也是反向传播一般性的公式,还要结合具体的代价函数和激活函数。

 

       有了上述的推导终于可以“心平气和”的得到右边吴老师所给的公式了,我所给的例子代价函数对于z的求导刚好就等于a-y。

       最后为了方便编程实践,我们同样希望把上述运算转换为矩阵运算,基本思想还是和我上周回顾的知识一样。 

 

       基本原理弄清楚后,再实际编译的过程中仍有一些和以往编译不同的地方。

       对于原始数据的y的值一定要注意标签化。

参考:https://blog.csdn.net/junjun150013652/article/details/80748759

Python 实现:

https://github.com/TEDIST/ML_exercises/blob/master/one_vs_all.py

https://github.com/TEDIST/ML_exercises/blob/master/neural_network.py

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值