《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. What's Security

    研究安全应该时常问自己这个问题,什么是安全,什么是安全,什么是安全,安全的本质是什么,只有理解了安全的本质,才能成功的设计一个安全方案. 现在的感觉是没有绝对的安全,所谓的'安全'其实都只不过是增加攻 ...

  2. ubuntu中phpmyadmin密码忘记

    在安装mysql时,默认只让你设置了root的密码,如果root的密码忘记,处理办法如下 第一步: 这时你需要进入/etc/mysql目录下,然后sudo vim/vi debian.cnf查看里面的 ...

  3. css3 背景渐变

    本来想先瞎扯些什么,然后又不知道讲什么的好,那就直接进入正题吧. 参考资料: Using CSS gradients  (以及该页面内的大部分链接页面的资料) 首先区分下,平常给的纯色backgrou ...

  4. linux动态代码注入

    参考网上文章:http://www.freebuf.com/articles/system/6388.html 按照文章,实现了代码的动态注入,即对一个正在运行的进程,在不重启的情况下执行一段不在原程 ...

  5. 美国在研新药_读取单个PDF

    QQ:231469242 读取下载美国在研新药PDF内数据:unii,分子式,分子重量,药品名,who,编码,.... PDF无逻辑规则,不能百分之百提取,只能部分提取 几个默认字段为空 # -*- ...

  6. SharePoint Online 申请试用链接地址

    SharePoint Online 申请试用链接地址: https://products.office.com/en-us/business/compare-office-365-for-busine ...

  7. php function集合

    /*更新商品的某个字段*/ function update_goods($goods_id, $field, $value) { if ($goods_id) { /* 清除缓存 */ clear_c ...

  8. Java多线程--线程安全问题的相关研究

    在刚刚学线程的时候我们经常会碰到这么一个问题:模拟火车站售票窗口售票.代码如下: package cn.blogs.com.isole; /* 模拟火车站售票窗口售票,假设有50张余票 */ publ ...

  9. R可视化lend_club 全球最大的P2P平台数据75W条

    lend_club 全球最大的P2P平台2007~2012年贷款数据百度云下载. 此文章基于R语言做简单分析. rm(list=ls()) #清除变量 gc() #释放内存 step1 考虑到后续分析 ...

  10. HTML5、微信、APP:创业寒冬只能选其一,该选哪个?

    HTML5手机网站 优势:开发技术简单,研发周期短,用户接触成本低 劣势:功能实现相比APP存在差距,用户重复使用难度大,用户粘性差 适合场景:把手机网站当成网络上的“电子产品介绍手册”.手机网站更适 ...