【第4.5周:神经网络】

文章介绍了神经网络在处理大量特征时的优势,如何通过多层神经元表示复杂运算,以及BP算法(包括代价函数计算、带正则化的步骤、梯度检验和随机初始化策略)用于神经网络学习。最后强调了训练神经网络的关键步骤,如网络结构选择和参数优化。
摘要由CSDN通过智能技术生成

当特征太多,多项式特征会更多,无论是线性回归还是逻辑回归,计算的负荷会非常大,所以需要引入神经网络。

神经网络模型

神经网络模型表示

在这里插入图片描述
若将第一层去掉,该模型就是一个逻辑回归模型。与逻辑回归相比,神经网络的优势就在于将输入的特征X复合成更高级的可变的特征值,所以能更好预测新数据。

直观理解模型

神经网络中,单层神经元的计算可用来表示逻辑运算,比如逻辑与(AND)、逻辑或(OR)、非(NOT)。
在这里插入图片描述
在这里插入图片描述
之后,可以利用神经元来组合成更复杂的神经网络实现更复杂的运算。例如同或(XNOR) 功能。
XNOR = (x1 AND x2) OR [(NOT x1) AND (NOT x2)] = ①OR ②

先构造②部分 [(NOT x1) AND (NOT x2)]
在这里插入图片描述
然后将AND和②拼起来,再和OR组合起来:
在这里插入图片描述
其真值表如下所示:
在这里插入图片描述
按这种方法我们可以逐渐构造出越来越复杂的函数,也能得到更加厉害的特征值。

神经网络学习

代价函数

在这里插入图片描述

BP算法公式

为了计算代价函数的偏导数,首先计算最后一层的误差,然后再一层一层反向求出各层的误差,直到倒数第二层。用链式求导法则对代价函数求偏导,和计算偏导数公式如下:
在这里插入图片描述
其中:
在这里插入图片描述
一般的有规律:
在这里插入图片描述

例子:
在这里插入图片描述
在这里插入图片描述

BP算法整体步骤(带正则化)

在这里插入图片描述

梯度检验

用于检验BP算法得到的偏导是否有误。
在这里插入图片描述
在这里插入图片描述

随机初始化

初始参数theta值能否为zeros(n,1) ?
不能全为0值或者一样的初始值,这样会阻止神经网络学习到更多的参数。因为下一层会得到相同的加权和,激活函数也相同,更更下一层也会如此。此外,由BP算法得到的偏导数也会重复。
在这里插入图片描述
可以将theta初始化成在0附近的值:
在这里插入图片描述
eps是很小的数:
在这里插入图片描述

总结

  1. 第一件要做的事是选择网络结构,即决定选择多少层以及决定每层分别有多少个单元。第一层的单元数即我们训练集的特征数量。最后一层的单元数是我们训练集的结果的类的数量。如果隐藏层数大于 1,确保每个隐藏层的单元个数相同,通常情况下隐藏层单元的个数越多越好。我们真正要决定的是隐藏层的层数和每个中间层的单元数。
  2. 训练神经网络:
    a.参数的随机初始化
    b.利用前向传播方法计算所有的ℎ𝜃(𝑥)
    c. 编写计算代价函数 𝐽 的代码
    d.利用反向传播方法计算所有偏导数
    e.利用梯度检验方法检验这些偏导数(程序中只检验一次,计算量大)
    f. 使用更高级优化算法来最小化代价函数找到最优的theta
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值