Coursera机器学习-第四周-Neural Network ForwardPropagation

原创 2016年05月14日 10:24:30

Neural NetWork的由来

先考虑一个非线性分类,当特征数很少时,逻辑回归就可以完成了,但是当特征数变大时,高阶项将呈指数性增长,复杂度可想而知。如下图:对房屋进行高低档的分类,当特征值只有x1,x2,x3时,我们可以对它进行处理,分类。但是当特征数增长为x1,x2....x100时,分类器的效率就会很低了。
这里的g(z)=1/(1+ez)

这里写图片描述

这里写图片描述

符号说明:

  • a(j)i表示第j层网络的第i个神经元,例如下图a(2)1就表示第二层的第一个神经元
  • θ(j)表示从第j层到第j+1层的权重矩阵,例如下图所有的θ(1)表示从第一层到第二层的权重矩阵
  • θ(j)uv表示从第j层的第v个神经元到第j+1层的第u个神经的权重,例如下图中θ(1)23表示从第一层的第3个神经元到第二层的第2个神经元的权重,需要注意到的是下标uv是指v->u的权重而不是u->v,下图也给出了第一层到第二层的所有权重标注
  • 一般地,如果第j层有sj个神经元(不包括bias神经元),第j+1层有sj+1个神经元(也不包括bias神经元),那么权重矩阵θj的维度是(sj+1×(sj+1))

Forward propagation

这里写图片描述

第一层,称之为input Layer x={x1,x2,x3}
第二层至最后一层,成为hidden layers: a(2)2,a(2)1,a(2)3
最后一层是output layer: hθ(x)
通俗点说,向前传播就是上层处理完的数据作为你的输入数据,然后进行处理(权重),再传给下一层,这样逐层处理,最后输出。

a(2)1=g(θ(1)10x0+θ(1)11x1+θ(1)12x2+θ(1)13x3) a(2)2=g(θ(1)20x0+θ(1)21x1+θ(1)22x2+θ(1)23x3) a(2)3=g(θ(1)30x0+θ(1)31x1+θ(1)32x2+θ(1)33x3) a(2)4=g(θ(1)40x0+θ(1)41x1+θ(1)42x2+θ(1)43x3) hθ(x)=a(3)1=g(θ(2)10a(2)0+θ(2)11a(2)1+θ(2)12a(2)2+θ(2)13a(2)3)

由上述公式,我们可以看出: 第二层的第一个神经元a(2)1,等于g(θ(1)10x0+θ(1)11x1+θ(1)12x2+θ(1)13x3),其中,θ(1)10x0代表第一层的第0个神经元(也就是bias unit)与第二层的第1个神经元的权重乘以x0+θ(1)11x1第一层的第1个神经元与第二层的第1个神经元的权重乘以x1+θ(1)12x2第一层的第2个神经元与第二层的第1个神经元的权重乘以x2+θ(1)13x3第一层的第3个神经元与第二层的第1个神经元的权重乘以x3。也就是第二层的每个神经元都需要通过上一层的每个神经元经过一个权重的处理,作为自己的初始值。a(2)2a(2)3a(2)4也是如此。当到输出层时,hθ(x)=a(3)1=g(θ(2)10a(2)0+θ(2)11a(2)1+θ(2)12a(2)2+θ(2)13a(2)3), 这时候轮到第二层的权重矩阵来进行处理了,跟上面类似,不赘述了。

Vectorized Implementation

这里写图片描述
将上图内容提取出来:
a(1)=x=x0x1x2x3,z(2)=z(2)1z(2)1z(2)1,θ(1)=θ(1)10θ(1)20θ(1)30θ(1)11θ(1)21θ(1)31θ(1)12θ(1)22θ(1)32θ(1)13θ(1)23θ(1)33,
更新公式简化为:

z(2)=θ(1)a(1)
a(2)=g(z(2))
z(3)=θ(2)a(2)
a(3)=g(z(3))=hθ(x)

可以看到,我们由第一层的值,经过第一层的权重处理,得到第二层的值;由第二层的值,经过第二层的权重处理,计算第三层的值,得到预测的输出,计算的方式一层一层往前走的,这也是前向传播的名称由来。

与Logistic Regression的关系:
这里写图片描述
将上述图片抽离出来:

这里写图片描述

a(2)1,a(2)2,a(2)3记为x1,x2,x3, 这是不是一个没有隐藏层的神经网络了?hθ(x)=a(2)1=g(θ0x0+θ1x1+θ2x2+θ3x3)=g(θTx),这不就是逻辑回归的表达式么?

线性不可分问题:

这里写图片描述

实现AND操作:

这里写图片描述
图中{-30,20,20}分别表示{θ(1)10,θ(1)11,θ(1)12},代入g(z),得到如下图所示的真值表:
这里写图片描述

实现OR操作:

这里写图片描述

实现NOT操作:

这里写图片描述

实现NAND操作:

这里写图片描述

实现XNOR操作:

该神经网络用到了之前的AND操作(用红色表示)、NAND操作(用青色表示)和OR操作(用绿色表示),从真值表可以看出,该神经网络成功地将(0, 0)(1,1)分为一类,(1,0)(0,1)分为一类,很好解决了线性不可分的问题。
这里写图片描述

神经网络的代价函数(Cost Function):

这里写图片描述

符号说明:

  • m — 训练example的数量
  • K  — 最后一层(输出层)的神经元的个数,也等于分类数(分K类,K3
  • y(i)k — 第i个训练exmaple的输出(长度为K个向量)的第k个分量值
  • (hθ(x(i)))k — 对第i个example用神经网络预测的输出(长度为K的向量)的第k个分量值
  • L — 神经网络总共的层数(包括输入层和输出层)
  • Θ(l) — 第l层到第l+1层的权重矩阵
  • sl — 第l层神经元的个数, 注意i从1开始计数,bias神经元的权重不算在正则项内
  • sl+1 — 第l+1 层神经元的个数

参考文章:

机器学习公开课笔记(4):神经网络(Neural Network)——表示

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dingchenxixi/article/details/51371641

【UI】第四周 设计基础

本周主要讲解平面设计基础。在UI设计中,平面设计是设计师需要具备的基础技能。在本周的课程中,会讲到平面构成基础(点、线、面),版式设计原理,色彩构成以及图形创意。
  • 2018年04月23日 14:03

前向传播算法(Forward propagation)与反向传播算法(Back propagation)

虽然学深度学习有一段时间了,但是对于一些算法的具体实现还是模糊不清,用了很久也不是很了解。因此特意先对深度学习中的相关基础概念做一下总结。先看看前向传播算法(Forward propagation)与...
  • bitcarmanlee
  • bitcarmanlee
  • 2017-12-16 11:45:23
  • 1634

<基础原理进阶>机器学习算法python实现【2】--ForwardPass&BackPropagation

我们前面已经谈到,在构建一个网络时,主要的思路可以分为两部分: Loop:{   前向传播——计算结果,得到loss_function 反向传播——逐层计算梯度,调整参数数值 }until conve...
  • Skyfish2016
  • Skyfish2016
  • 2017-05-19 13:52:08
  • 523

深度学习BP算法 BackPropagation以及详细例子解析

反向传播算法是多层神经网络的训练中举足轻重的算法,本文着重讲解方向传播算法的原理和推导过程。因此对于一些基本的神经网络的知识,本文不做介绍。在理解反向传播算法前,先要理解神经网络中的前馈神经网络算法。...
  • win_in_action
  • win_in_action
  • 2016-09-29 19:53:50
  • 5308

前向传播算法(Forward propagation)与反向传播算法(Back propagation)以及sigmoid函数介绍

 前向传播算法(Forward propagation)与反向传播算法(Back propagation)以及sigmoid函数介绍虽然学深度学习有一段时间了,但是对于一些算法的具体实现还是模糊不清,...
  • helloxiaozhe
  • helloxiaozhe
  • 2018-04-09 11:42:14
  • 48

AndrewNg机器学习第四周作业:关于使用逻辑回归、神经网络训练数据并应用之的心得

ex3的作业是根据已有的数据集 (20*20像素的图片,每个像素是一个feature,总共400个features,400个features作为输入X,数据集已经包含输出的y,代表这是什么数字) ...
  • csd54496
  • csd54496
  • 2016-10-30 21:57:15
  • 1352

Stanford机器学习---第四周.神经网络模型

第四周 神经网络的表示Neural Networks:Representation 关键词:        复杂的非线性分类器、大脑的学习算法、神经网络模型、手写识别 写在前面的话:        初...
  • u012717411
  • u012717411
  • 2016-01-20 20:28:19
  • 1302

机器学习第四周

可怕,我已经overdue了两个星期的课程了,看到最后全部程序测试通过,我真的好感动。...
  • Clifnich
  • Clifnich
  • 2016-09-02 10:40:07
  • 598

machine-learning第四周 上机作业

本周开始学习大名鼎鼎的神经网络,赶脚忽然高大上了有木有,一键识别直男腐女,想想都醉了。话不多说,本期作业要点:...
  • dialoal
  • dialoal
  • 2016-01-12 18:11:42
  • 1549

机器学习 第四周 总结 知识点

主要介绍神经网络和向前传播算法(重点要仔细看懂PPT,所有的知识点PPT都讲的十分清楚) 神经网络模型建立在很多神经元之上,每一个神经元又是一个个学习模型。这些神经元(也叫激活单元,ac...
  • qq_31390999
  • qq_31390999
  • 2017-10-09 18:33:11
  • 76
收藏助手
不良信息举报
您举报文章:Coursera机器学习-第四周-Neural Network ForwardPropagation
举报原因:
原因补充:

(最多只允许输入30个字)