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 :前向神经网络的更多相关文章

  1. Neural Network学习(一) 最早的感知机:Perceptron of Rosenblatt

    1. Frank Rosenblatt 首先介绍的是神经网络的开山祖师,先放张图拜拜 Frank Rosenblatt出生在纽约,父亲是医生,其1956年在Cornell大学拿到博士学位后,留校任教, ...

  2. 机器学习公开课笔记(5):神经网络(Neural Network)——学习

    这一章可能是Andrew Ng讲得最不清楚的一章,为什么这么说呢?这一章主要讲后向传播(Backpropagration, BP)算法,Ng花了一大半的时间在讲如何计算误差项$\delta$,如何计算 ...

  3. 深度学习二、CNN(卷积神经网络)概念及理论

    一.卷积神经网络(CNN) 1.常见的CNN结构有:LeNet-5.AlexNet.ZFNet.VGGNet.ResNet等.目前效率最高的是ResNet. 2.主要的层次: 数据输入层:Input ...

  4. 递归神经网络(Recursive Neural Network, RNN)

    信息往往还存在着诸如树结构.图结构等更复杂的结构.这就需要用到递归神经网络 (Recursive Neural Network, RNN),巧合的是递归神经网络的缩写和循环神经网络一样,也是RNN,递 ...

  5. 深度学习论文翻译解析(二):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 ...

  6. 计算机视觉学习记录 - Implementing a Neural Network from Scratch - An Introduction

    0 - 学习目标 我们将实现一个简单的3层神经网络,我们不会仔细推到所需要的数学公式,但我们会给出我们这样做的直观解释.注意,此次代码并不能达到非常好的效果,可以自己进一步调整或者完成课后练习来进行改 ...

  7. Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1

    3.Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1 http://blog.csdn.net/sunbow0 ...

  8. Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.2

    3.Spark MLlib Deep Learning Convolution Neural Network(深度学习-卷积神经网络)3.2 http://blog.csdn.net/sunbow0 ...

  9. 深度学习笔记之关于基本思想、浅层学习、Neural Network和训练过程(三)

    不多说,直接上干货! 五.Deep Learning的基本思想 假设我们有一个系统S,它有n层(S1,…Sn),它的输入是I,输出是O,形象地表示为: I =>S1=>S2=>….. ...

随机推荐

  1. geohash-net实现

    基于c#语言 geohash算法基本实现源码,参见: https://github.com/sharonjl/geohash-net , 源码中具体包含如下方法: String CalculateAd ...

  2. 为什么C#中ref和out 关键字 ?

    需求假设:现需要通过一个叫Swap的方法交换a,b两个变量的值.交换前a=1,b=2,断言:交换后a=2,b=1. 现编码如下: class Program   {       static void ...

  3. MyBatis入门学习教程-MyBatis快速入门

    一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...

  4. HBase设计与开发性能优化(转)

    本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法.有关HBase系统配置级别的优化,这里涉及的不多,这部分可以参考:淘宝Ken Wu同学的博客. 1. 表的设计 1.1 Pr ...

  5. JQuery 上传文件插件 Uploadify1

    基于jquery的文件上传控件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,删除已上传文件. <link href="~/Content/themes/uploadif ...

  6. AOP的基本概念

    1)aspect(切面):实现了cross-cutting功能,是针对切面的模块.最常见的是logging模块,这样,程序按功能被分为好几层,如果按传统的继承的话,商业模型继承日志模块的话根本没有什么 ...

  7. Java基础语法目录

    一.Java相关科普知识1.Java的发展历程2.Java的发展方向3.Java的体系特性二.Java第一个程序1.JavaJDK的安装与环境的配置2.记事本开发Java程序的注意事项与常见问题3.J ...

  8. python中的单引号,双引号,三引号

    转载自: http://blog.csdn.net/wanghai__/article/details/6285310 先说1双引号与3个双引号的区别,双引号所表示的字符串通常要写成一行 如: s1 ...

  9. 查看APK方法数的工具dex-method-counts

    做APK方法总能遇到方法数超限的问题(主要是方法数, 字段数, String数.等各种数都可能超过65k导致不能安装) 除了大公司都自己做了一些检查方法. 网上还有一些开源的查询工具. 给大家推荐一个 ...

  10. FreeBSD从零开始---安装后配置(三)

    IPFW和IPF   一.IPFW IPFW意思可以理解为ip防火墙,主要作用是拦截设定规则外的ip包.你可以把这个理解为linux下的iptables,但是,ipfw要比iptables简单易用. ...