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

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

第8章

8-1 非线性假设

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

8-2 神经元和大脑

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

8-3 模型展示I

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

8-4 模型展示II

根据神经网络的函数展示,我们可以想到矩阵酷块,即矩阵向量乘法,于是我们将伸进网络的计算向量化,
吴恩达机器学习第8-9章_第6张图片
神经元的连接方式称为神经元的架构,神经网络的工作原理是从输入层的激活项开始,前向传播到第一个隐藏层然后传播到第二个隐藏层,最终到达输出层。
吴恩达机器学习第8-9章_第7张图片

8-5 例子与直觉理解I

例如在做一个AND符号的神经网络时,我们设置权重分别为-30,+20,+20,然后设置h(x)为sigmod函数,这是我们分别带X1和X2等于(0,0),(0,1),(1,0),(1,1)带入其中。则可以得到逻辑与操作的计算结果。
吴恩达机器学习第8-9章_第8张图片
同样我们可以做逻辑或的神经网络。
吴恩达机器学习第8-9章_第9张图片

8-6 例子与直觉理解II

现在我们做一个更加复杂一点的神经网络模型。我们做一个XNOR的神经网络。将X1 AND X2 和(NOT X1 AND NOT X2)作为激动项,X1 OR X2做为隐藏项,然后就能得到XNOR的逻辑操作。
吴恩达机器学习第8-9章_第10张图片

8-7 多元分类

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

吴恩达机器学习第8-9章_第11张图片

第9章

9-1 代价函数

神经网络的代价函数和一般的logistic回归的代价函数有些不一样。
吴恩达机器学习第8-9章_第12张图片

9-2 反向传播算法

在上节中我们了解神经网络的代价函数,为了找到最小的J(θ),我们需要关注这些偏导项
吴恩达机器学习第8-9章_第13张图片

我们用前向转播算法在计算最小的J(θ) ,通过前向传播,我们可以得到神经元的激活值。
吴恩达机器学习第8-9章_第14张图片
所谓的反向传播就是用已有的结果,去更新优化偏导项。吴恩达机器学习第8-9章_第15张图片
我们通过正向计算出预测值aL,然后得到预测值和真实值的误差δL,在依次计算出其他的δ值,然后通过反向传播得到Δ值。然后根据J的情况算出Dij的值。
吴恩达机器学习第8-9章_第16张图片

9-3 理解反向传播

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

吴恩达机器学习第8-9章_第18张图片

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

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

9-5 梯度检测

梯度检测能解决几乎所有的问题。我们在J(θ)图像中,取某个θ值,然后取一个非常小的数ε,找出θ+ε和θ-ε,画出θ+ε和θ-ε斜率,这个就是θ点的近似斜率。吴恩达机器学习第8-9章_第19张图片
当θ是一个参数向量时。吴恩达机器学习第8-9章_第20张图片

9-6 随机初始化

我们执行一个算法时,需要对θ随机一些初始值。这会让神经网络主动去学习一些有趣的东西。
吴恩达机器学习第8-9章_第21张图片

9-7 组合到一起

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

你可能感兴趣的:(#,机器学习,机器学习)