Neural Network学习(二)Universal approximator :前向神经网络
1. 概述
前面我们已经介绍了最早的神经网络:感知机。感知机一个非常致命的缺点是由于它的线性结构,其只能做线性预测(甚至无法解决回归问题),这也是其在当时广为诟病的一个点。
虽然感知机无法解决非线性问题,但是其给非线性问题的解决提供了一个思路。感知机的局限来自于其线性结构,如果我们能够给其加入非线性结构,比如先给输入做一个非线性变换,这样其就能拟合非线性问题。那么这就是我们这次要讲的前向神经网络。
2. 结构
前向神经网络(Feed-forward Neural Network)是一种多层的网络结构,非常典型的就是三层结构:输入层、隐藏层和输出层。层与层之间用权值(连线)连接。一般只有前一层的值才能作为后一层的值的输入,而反过来不能,也就是说不能有反馈(Feed-back),这也是其名字的又来。这个结构非常重要,因为名声赫赫的BP算法就是基于这个结构的。
网络中每一个点(神经元)都有值,设为$a_j$。其中输入层的a就等于x,其他层的a则由权值以及之前层的值来确定。每个神经元在参与后面神经元值的计算时,并不直接使用其自身的值,而是经过一个非线性激活函数(一般是tanh或sigmoid),得到激活值$z_j$,然后再参与计算。输入层用x表示,输出层一般用y表示,权值一般表示为W(包含bias)。下面以三层网络结构为例来表示这些值。
$a^{(0)}_j$ = $x_j$
$z^{(0)}_j$ = $h(a^{(0)}_j)$
$a^{(1)}_j$ = $\sum_{i}w^{(1)}_{ji}a^{(0)}_i$
$z^{(1)}_j$ = $h(a^{(1)}_j)$
$a^{(2)}_j$ = $\sum_{i}w^{(2)}_{ji}a^{(1)}_i$
$y_j$ = $\sigma(a^{(2)}_j)$
其中$x_0$ = 1 ,$a_0$ = 1(目的是为了省略bias项)。
这里我们举的例子是后一层的值只由前一层的值来决定,当然,这个限定并不是一定的。只要没有反馈结构,都能算作是前向神经网络。所以这里就衍生除了一种结构叫做skip layer,即当前层不仅仅由前一层决定,还可以由前几层的值决定。这个网络结构如下:
这个结构看上去好像输入跳过了隐藏层直接作用与输出,这也是其名字的由来。
3. 权值的对称性
这是神经网络为数不多的性质之一,使用的也比较少。以三层神经网络为例,假设中间层有M个神经元,如果我们交换其中两个神经元的位置(与其相连的权值也相应移动),那么网络的映射关系 y = f(x) 没有变化。所以对于这个三层网络来说,一共有M!个网络与其等价。这就是网络的对称性。
Neural Network学习(二)Universal approximator :前向神经网络的更多相关文章
- Neural Network学习(一) 最早的感知机:Perceptron of Rosenblatt
1. Frank Rosenblatt 首先介绍的是神经网络的开山祖师,先放张图拜拜 Frank Rosenblatt出生在纽约,父亲是医生,其1956年在Cornell大学拿到博士学位后,留校任教, ...
- 机器学习公开课笔记(5):神经网络(Neural Network)——学习
这一章可能是Andrew Ng讲得最不清楚的一章,为什么这么说呢?这一章主要讲后向传播(Backpropagration, BP)算法,Ng花了一大半的时间在讲如何计算误差项$\delta$,如何计算 ...
- 深度学习二、CNN(卷积神经网络)概念及理论
一.卷积神经网络(CNN) 1.常见的CNN结构有:LeNet-5.AlexNet.ZFNet.VGGNet.ResNet等.目前效率最高的是ResNet. 2.主要的层次: 数据输入层:Input ...
- 递归神经网络(Recursive Neural Network, RNN)
信息往往还存在着诸如树结构.图结构等更复杂的结构.这就需要用到递归神经网络 (Recursive Neural Network, RNN),巧合的是递归神经网络的缩写和循环神经网络一样,也是RNN,递 ...
- 深度学习论文翻译解析(二):An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition
论文标题:An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application ...
- 计算机视觉学习记录 - Implementing a Neural Network from Scratch - An Introduction
0 - 学习目标 我们将实现一个简单的3层神经网络,我们不会仔细推到所需要的数学公式,但我们会给出我们这样做的直观解释.注意,此次代码并不能达到非常好的效果,可以自己进一步调整或者完成课后练习来进行改 ...
- Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1
3.Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1 http://blog.csdn.net/sunbow0 ...
- Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.2
3.Spark MLlib Deep Learning Convolution Neural Network(深度学习-卷积神经网络)3.2 http://blog.csdn.net/sunbow0 ...
- 深度学习笔记之关于基本思想、浅层学习、Neural Network和训练过程(三)
不多说,直接上干货! 五.Deep Learning的基本思想 假设我们有一个系统S,它有n层(S1,…Sn),它的输入是I,输出是O,形象地表示为: I =>S1=>S2=>….. ...
随机推荐
- Android数据库的运用
很简单的应用,所以我直接简单明了. android中数据库的运用: 1.定义类继承SQLiteOpenHelper ps: public class DBHelper exten ...
- Github使用指南-从新手到专家
转载自:http://www.cnblogs.com/xirongliu/p/4589834.html 个人从刚刚开始接触github,啥都不知道,不会用,不知道能够用来干什么,到现在坚持在githu ...
- mysql:忘记root密码
1:修改/etc/my.cnf 2:重启服务 3:进入mysql 4:修改密码 5:刷新权限 注意:修改完成后,别忘了修改/etc/my.cnf,删除skip-grant-tables,否则重启服务后 ...
- Hibernate5.2之一对一主键关联(四)
Hibernate5.2之一对一主键关联(四) 一.简介 一对一关联关系分为两种:a.主键关联:b. ...
- java中==和equals的区别
- 关于delegate(代理)总结
stackoverflow 上讲解:http://stackoverflow.com/a/12660523/4563358 delegate是将需要处理交给自己的代理. 在自己的对应的类中.h文件中 ...
- OAF_开发系列24_实现OAF更新记录显示Record History(案例)
20150716 Created By BaoXinjian
- dedecms 模板静态化
require_once (dirname(__FILE__) . "/../include/common.inc.php"); require_once DEDEINC.&quo ...
- 新做的一个基于OPENGL的gui库
#include <BGE/All> ,text); button->setName(name); button->setSize(Vector2f(,)); ...
- oracle 单列索引 多列索引的性能测试
清除oralce 缓存:alter system flush buffer_cache; 环境:oracle 10g . 400万条数据,频率5分钟一条 1.应用场景: 找出所有站点的最新一条数据. ...