吴恩达机器学习第8-9章

吴恩达机器学习第8-9章

第8章

8-1 非线性假设

对于一个复杂的样本模型,如果用logistc回归算法的话,很容易产生过拟合,当特征数很大的时候,会使特征空间急剧膨胀,用增加特征数,来建立非线性分类器,并不是一个好做法。
在计算机视觉中,计算机看到的实际是一个数据矩阵,若像素点达到3百万个时,特征数也是3百万个,用ligistic回归算法的话,时间成本是相当高的。
请添加图片描述

8-2 神经元和大脑

神经网络的起源是去试图模仿人的大脑。我们能用神经网络去学习触觉,嗅觉等等。例如,我们可以用舌头去训练看的能力、我们可以用弹响指或者弹舌头来去解读环境中的信息,这个很像声纳、带上一个电极腰带,就可以像鸟类一样感知方向、给青蛙带上一只球,青蛙也能学会使用这个眼球。横泾网络是一个能打开我们AI梦的一扇门。

8-3 模型展示I

在运用神经元时,我们应该如何表示我们的假设和模型。神经网络模仿了大脑中的神经元或者神经网络。为了解释神经元,我们可以看看神经元在大脑中的结构。可以注意到的是,神经元有像这样的细胞体,还有许多输入通道(树突),我们可以把他们想象成输入电线,它们接受来自其他神经元的信息,神经元有一个输出通道(轴突),这条是给其他神经元传递信号或者传送信息的。简而言之,神经元是一个计算单元,它从输入通道。接受一定数目的信息并做一些计算,然后将结果通过它的轴突传送到其他节点,或者大脑中的其他神经元。
请添加图片描述
我们把神经网络简单的应用到logistic单元中。我们会在输入节点中输入X0,X1,X2,X3。θ在神经网络中称为权重。
请添加图片描述
多个神经元下,神经网络会变得稍微复杂点,第一层称为输入层,第二层称为隐藏层,最后一层称为输出层,而隐藏层可以不止一层。
请添加图片描述
请添加图片描述

8-4 模型展示II

根据神经网络的函数展示,我们可以想到矩阵酷块,即矩阵向量乘法,于是我们将伸进网络的计算向量化,
请添加图片描述
神经元的连接方式称为神经元的架构,神经网络的工作原理是从输入层的激活项开始,前向传播到第一个隐藏层然后传播到第二个隐藏层,最终到达输出层。
请添加图片描述

8-5 例子与直觉理解I

例如在做一个AND符号的神经网络时,我们设置权重分别为-30,+20,+20,然后设置h(x)为sigmod函数,这是我们分别带X1和X2等于(0,0),(0,1),(1,0),(1,1)带入其中。则可以得到逻辑与操作的计算结果。
请添加图片描述
同样我们可以做逻辑或的神经网络。
请添加图片描述

8-6 例子与直觉理解II

现在我们做一个更加复杂一点的神经网络模型。我们做一个XNOR的神经网络。将X1 AND X2 和(NOT X1 AND NOT X2)作为激动项,X1 OR X2做为隐藏项,然后就能得到XNOR的逻辑操作。
请添加图片描述

8-7 多元分类

有时候我们需要识别多种不同的类别,例如,数字识别,就有0-9个类别。例如汽车识别。当为行人的时候h(x)=1,0,0,0,当为汽车的时候h(x)=0,1,0,0,当为摩托车的时候h(x)=0,0,1,0。这就像是一对多一样。

请添加图片描述

第9章

9-1 代价函数

神经网络的代价函数和一般的logistic回归的代价函数有些不一样。
请添加图片描述

9-2 反向传播算法

在上节中我们了解神经网络的代价函数,为了找到最小的J(θ),我们需要关注这些偏导项
请添加图片描述

我们用前向转播算法在计算最小的J(θ) ,通过前向传播,我们可以得到神经元的激活值。
请添加图片描述
所谓的反向传播就是用已有的结果,去更新优化偏导项。请添加图片描述
我们通过正向计算出预测值aL,然后得到预测值和真实值的误差δL,在依次计算出其他的δ值,然后通过反向传播得到Δ值。然后根据J的情况算出Dij的值。
请添加图片描述

9-3 理解反向传播

为了更好的理解反向传播算法,我们可以研究一下前向传播的过程。这个网络只有两个输入值,并且每个隐藏层也只有两个隐藏单元。当进行前向传播时,我们要计算出Z1和Z2的值,然后用sigmod激活函数得到a1和a2,后面的隐藏层也如此,之后根据θ值,计算出输出结果。请添加图片描述
我们通过计算出预测值,然后通过预测值和真实值的代价函数,进行偏导数,来优化δ值。

请添加图片描述

9-4 使用注意:展开参数

用octave将矩阵展成向量的形式,但由于我们现在大多数都使用的时python,所以去看看python的有关教程就好。

9-5 梯度检测

梯度检测能解决几乎所有的问题。我们在J(θ)图像中,取某个θ值,然后取一个非常小的数ε,找出θ+ε和θ-ε,画出θ+ε和θ-ε斜率,这个就是θ点的近似斜率。请添加图片描述
当θ是一个参数向量时。请添加图片描述

9-6 随机初始化

我们执行一个算法时,需要对θ随机一些初始值。这会让神经网络主动去学习一些有趣的东西。
请添加图片描述

9-7 组合到一起

我们将神经网络学习到的各种知识组合在一起。
训练神经网络需要6个步骤。
1.随机初始化权重
2.执行前向传播函数,得到h(Xi)
3.通过代码计算出J(θ)
4.执行反向传播函数,来算出这些偏导项。
5.通过梯度检测,来检查这些已经计算得到的偏导数项。确保用反向回归得到偏导项和用数值计算得到的偏导项相近。
6.最后我们可以使用一个优化方法,来和反向传播相结合,我们就能使用某个最优化方法来最小化关于θ的代价函数J(θ)。
请添加图片描述
请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值