【Machine Learning】9 神经网络学习(Neural Networks:Learning )

将介绍在给定训练集的情况下为神经网络拟合参数的学习算法。

介绍多类分类的代价函数\rightarrow反向传播算法\rightarrow(实现中出现的细节问题)\rightarrow

9.1 Cost Function

定义一些标记和两种不同的分类:

逻辑回归分类代价函数 进化到 多类分类的代价函数:

9.2  Backpropagation algorithm

从前向传播到反向传播算法:
     

因为g(z)=\frac{1}{1+e^{-z}}=a     ,所以{g}'(z)=(\frac{1}{1+e^{-z}})'=a\cdot *(1-a)),右图中可以如此表示。

反向传播就是从输出层的误差向前一层传递。

首先正向算出每层的输出a,再反向计算每层的误差。

9.3 Backpropagation intuition

如上图,计算每层上每个神经元的输出误差,可表为后一层误差乘以对应权重之和。

9.4 Implementation note: Unrolling parameters

本节主要讲了实现中参数展开一些值得注意的细节,矩阵与向量之间的转换。

矩阵展开为向量;向量reshape为矩阵。

例子:                                                                                       学习算法:

      

 9.5 Gradient Checking

当我们对一个较为复杂的模型(例如神经网络)使用梯度下降算法时,虽然代价看上去在不断减小,但最终的结果可能并不是最优解或者存在一些不容易察觉的小错误。

               

数值实验中,调用的函数的计算方法如右一,如右二我们还要检查是否等于或者近似于反向传播得到的梯度

在梯度检验完毕后,一定要关掉否则code将会很慢,因为数值计算梯度的时间很长,效率远低于反向传播DVec函数的计算效率。

9.6 Random initialization

  

如果把权重都初始化为0的话那么经过激活函数得到的a也相同,theta的变化想通过最后得到的theta值也一样,这就失去了神经网络学习参数的意义。所以采用随机初始化:

9.7 Putting it together

前面讲了很多神经网络算法的一些知识,这节做一个总结。

    

随机初始化权重矩阵,前向传播得到h_{\theta}(x),计算代价函数J(\theta),反向传播计算代价函数的偏导数,再进行梯度检验,最后利用计算的到的偏导数结合一些优化方法计算min\,J(\theta)

9.8 Backpropagation example: Autonomous driving (optional)

【matlab实例】

1、计算h_{\theta}(x)时要一层一层计算

2、计算J时,有含正则项和未含正则项两种情况

3、反向传播检验梯度时也分这两种情况

4、最后得到权重参数theta 结合输入X得到输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值