《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. mybatis一对多关联

    这里的一对多指的是:当我们查询一个对象的时候,同时将其有关联的多方对象都查询出来. 下面以国家(Country)和部长(Minsiter)做案例 一个国家有多个部长 1.定义实体 定义实体的时候需要注 ...

  2. [转]CSS如何设置html table表格边框样式

    原文地址:http://www.divcss5.com/wenji/w503.shtml 对table设置css样式边框,分为几种情况: 1.只对table设置边框 2.对td设置边框 3.对tabl ...

  3. [转]如何循序渐进向dotnet架构师发展

    微软的DotNet开发绝对是属于那种入门容易提高难的技术.而要能够成为DotNet架构师没有三年或更长时间的编码积累基本上是不可能的.特别是在大 型软件项目中,架构师是项目核心成员,承上启下,因此RU ...

  4. 通过一个实例重新认识引用类型,值类型,数组,堆栈,ref

    昨天在写代码时候遇到了一个问题,百思不得其解,感觉颠覆了自己对C#基础知识的认知,因为具体的情境涉及公司代码不便放出,我在这里举个例子,先上整个测试所有的代码,然后一一讲解我的思考过程: using ...

  5. 好用的wget命令从下载添加环境变量到各参数详解

    本文是因为(笔者使用的windows系统)使用过好几次wget后,始终存在各种细节问题,于是下定决定细致的研究一下,并记录下其中细节. 下载与安装 第一步:下载wget,网络地址:http://dow ...

  6. Xamarin.ios 重新定位视图

    //旋转手机重新定位视图 /// <summary> /// 重新定位视图 /// </summary> /// <param name="toInterfac ...

  7. border:none 和border:0区别差异

    border:none与border:0的区别体现为两点:一是理论上的性能差异,二是浏览器兼容性的差异. 性能差异: [border:0;]把border设为“0”像素效果等于border-width ...

  8. cookie---session

    //以下文字摘自慕课网教程..... 设置cookie PHP设置Cookie最常用的方法就是使用setcookie函数,setcookie具有7个可选参数,我们常用到的为前5个: name( Coo ...

  9. Python Day19

    Django Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Sessio ...

  10. excel批处理_判断一个名称是不是药品

    把药品名称导入到sheet1的A字段 # -*- coding: utf-8 -*-"""Created on Fri Dec  9 09:38:58 2016判断一个名 ...