《Neural Network and Deep Learning》_chapter4: A visual proof that neural nets can compute any function文章总结(前三章翻译在百度云里)

链接:http://neuralnetworksanddeeplearning.com/chap4.html;

Michael Nielsen的《Neural Network and Deep Learning》教程中的第四章主要是证明神经网络可以用来表示任何一种函数映射

现在对这篇文章进行一下梳理:作者首先提出了两点注意:

(1)神经网络并不是给出函数映射的一个准确的结果,而是一个近似值;

(2)神经网络表示的一种连续函数映射,无法实现非连续的函数映射。

然后作者开始证明神经网络的这种性质的普遍性,

(一)单输入/单输出的情况着手开始证明:

上图,权值是8,阈值是-4,激活函数为sigmoid函数。隐藏层的输出近似为右图,当我们令权值w足够大时,隐藏层神经元的输出近似为阶跃函数,如下:

上图中,阶跃位置s=-b/w,现证明如下:

设阶跃位置是A点,则

并且我们有如下结论:改变阈值使输出曲线平移,改变权值会使图像陡峭/平滑;

之所以我们在这里要使隐藏层神经元的输出近似为阶跃函数,是因为这样神经元的输出不是0就是1,这样再传到输出层计算误差小,更加拟合期望的函数映射,而如果是S型曲线,则计算误差大,难以拟合期望的输出曲线(这里是我自己的理解,欢迎讨论)

上图中,阶跃位置分别为s1=0.4,s2=0.6,阶跃函数的最终值分别为0.6和1.2,所以最终的输出曲线如右图,这里改变s1和s2的位置即改变了神经元们被激活的顺序,这样也就改变了输出的形状;

上图中令w1=-w2=0.8,输出即为高为0.8的bump 函数(肿块函数),从0.4到0.6;

上图中的输出还可以用下图的"if-then-else"来解释:

即x>阶跃位置,则输出为1,反之为0;

增加隐藏层神经元的数目,就可以n个这样的bump函数来近似我们想要的函数映射,如下:

类似于微积分的原理。。。。

我们的目的就是设计这样一种神经网络使实际输出与期望的函数映射之间的平均误差最小化;

我们可以使用上面的方法实现任何一种[0,1][0,1]的映射(我觉得应该不限于[0,1]到[0,1]的映射);

 (二)对于多输入时普遍性的证明

先从两个输入时的情况着手:

上图中连接x的权值足够大,连接y的权值为0,隐藏层神经元的阶跃位置为0.5,上图中的曲线只会在x方向上进行移动(隐藏层神经元上方的x表示移动的方向为x方向);类似地,令连接y的权值足够大,连接x的权值为0,则输出曲线只会在Y方向上移动;

上图中,plateau(平台)的高为h,中心tower(塔)的高为2h(h+h),我们需要实现下面这种tower function:

再参考之前的"if-then-else"法则我们有:

这里令threshold为3h/2,则plateau的值变为0,中心tower的值变为1.从而可获得tower function.而实际操作时我们可以这样做:

加入阈值b和sigmoid激活函数:

想要获得tower函数,我们一般令h足够大,b为(-m+0.5)h(经验值),其中m是输入变量的个数:

后面的Problem这里只证明(a),另外两题略;

证明神经网络的普遍性之后,作者关于sigmoid函数又做了一些额外说明:

(1)线性激活函数无法实现上面的普遍性,因为它无法实现阶跃函数那样的形状;

(2)作者在这儿提到了Failure Windows一概念,即下图中的绿色部分:

我们的目的就是令Failure Windows尽可能的小,一种方法就是用M个σ-1°f(x)/M函数进行叠加,M越大,Failure Windows就会变得更狭窄。

《Neural Network and Deep Learning》_chapter4的更多相关文章

  1. 【DeepLearning学习笔记】Coursera课程《Neural Networks and Deep Learning》——Week2 Neural Networks Basics课堂笔记

    Coursera课程<Neural Networks and Deep Learning> deeplearning.ai Week2 Neural Networks Basics 2.1 ...

  2. 【DeepLearning学习笔记】Coursera课程《Neural Networks and Deep Learning》——Week1 Introduction to deep learning课堂笔记

    Coursera课程<Neural Networks and Deep Learning> deeplearning.ai Week1 Introduction to deep learn ...

  3. 《Neural Networks and Deep Learning》课程笔记

    Lesson 1 Neural Network and Deep Learning 这篇文章其实是 Coursera 上吴恩达老师的深度学习专业课程的第一门课程的课程笔记. 参考了其他人的笔记继续归纳 ...

  4. neural network and deep learning笔记(1)

    neural network and deep learning 这本书看了陆陆续续看了好几遍了,但每次都会有不一样的收获. DL领域的paper日新月异.每天都会有非常多新的idea出来,我想.深入 ...

  5. Neural Network Programming - Deep Learning with PyTorch with deeplizard.

    PyTorch Prerequisites - Syllabus for Neural Network Programming Series PyTorch先决条件 - 神经网络编程系列教学大纲 每个 ...

  6. Neural Network Programming - Deep Learning with PyTorch - YouTube

    百度云链接: 链接:https://pan.baidu.com/s/1xU-CxXGCvV6o5Sksryj3fA 提取码:gawn

  7. Reading | 《DEEP LEARNING》

    目录 一.引言 1.什么是.为什么需要深度学习 2.简单的机器学习算法对数据表示的依赖 3.深度学习的历史趋势 最早的人工神经网络:旨在模拟生物学习的计算模型 神经网络第二次浪潮:联结主义connec ...

  8. 课程一(Neural Networks and Deep Learning),第四周(Deep Neural Networks) —— 3.Programming Assignments: Deep Neural Network - Application

    Deep Neural Network - Application Congratulations! Welcome to the fourth programming exercise of the ...

  9. 《Deep Learning》(深度学习)中文版PDF免费下载

    <Deep Learning>(深度学习)中文版PDF免费下载 "深度学习"经典著作<Deep Learning>中文版pdf免费下载. <Deep ...

随机推荐

  1. jQuery 模态对话框示例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. 查询SqlServer中每张表的记录数

    select schema_name(t.schema_id) as [ Schema ], t. name as TableName,i. rows as [RowCount] from sys.t ...

  3. python3安装lxml(windows)

    爬虫时通常要安装LXML,对于通过一下命令行 1 pip install lxml 出现如下错误的解决方法 1 lxml Unable to find vcvarsall.bat 1. 安装wheel ...

  4. 【Beta】Scrum08

    Info 由于雾霾严重,拍摄的照片笼罩了一层薄薄的白色. 时间:2016.12.21 21:35 时长:25min 地点:大运村1号公寓5楼楼道 类型:日常Scrum会议 NXT:2016.12.23 ...

  5. svn error

    svn: E205009: Local, non-commit operations do not take a log message or revision properties svn copy ...

  6. 【转】Ubuntu 16.04安装配置TensorFlow GPU版本

    之前摸爬滚打总是各种坑,今天参考这篇文章终于解决了,甚是鸡冻\(≧▽≦)/,电脑不知道怎么的,安装不了16.04,就安装15.10再升级到16.04 requirements: Ubuntu 16.0 ...

  7. php程序 注册机制

    密码加密方式 1.直接md5加密 2.md5和随机数(也可以是固定参数,如(Rfd4WE784)) 3.md5(md5) 4. 参考 function sp_password($pw,$authcod ...

  8. Active Record 数据迁移

    1.创建controler: welcome ;action: index $ rails generate controller welcome index 2.创建名为Article的model定 ...

  9. String StringBuffer StringBuilder

    package com.test; import java.util.Date; /*** * * // 输出的结果是:// 来一个测试// 来一个测试如果只输出这句就证明了String是不可变的// ...

  10. 2.1、Hibernate多表操作--一对多、多对一、多对多。

    一.什么是一对一.一对多.多对一及多对多关系(以简单的学生和老师的关系为例来说): 1.一对一:学生具有学号和姓名(假定没有同名的学生)这两个属性,那么我知道了学生的学号也就能找到对应的学生姓名,如果 ...