深度学习入门

由于准备在一个项目中引入神经网络来对缺失的数据进行预测,这两天看了有关深度学习的资料,做下记录,方便自己查阅(持续更新)

1 为什么要“深”

之前的神经网络理论证明一个隐层的网络就可以任意逼近一个函数,只要这个隐藏层足够大。那为什么我们要深度学习而不是广度学习呢,我看过最好的解释是https://www.zhihu.com/question/25456959中YJango的回答。简单来说,深度学习可以大大减少训练神经网络的数据。在广度学习(2层网络)中,对于输入的一个确定状态,对应着一个确定的输出,因此训练一个样本只能对该样本对应的连接关系有作用,对网络训练需要穷举输入的所有可能状态(与其说这是学习,不如说这是网络在强行记忆)。而在深度学习中,由于从输入到输出,不同的样本之间会有大量的连接关系是重用的,迭代组成的先验知识使得样本可用于帮助训练其他共用同样底层结构的样本,因此大大减少训练神经网络的数据。

2深度学习与传统神经网络有哪些区别

https://www.zhihu.com/question/26017374中Ryuu的回答,全文抄录如下

以我的理解,两种网络被设计出来,所要解决的问题和目的不同。

多层神经网络与universal
approximation theorem[1](泛逼近性原理,不知这样翻译可对?)相伴而生。该理论指出,单隐藏层(hidden layer)非线性前馈神经网络,可以在实数空间近似任何连续函数。上世纪80 90年代,Backpropagation刚刚开始大行其道,利用这一算法,只需知道输入和输出便可训练网络参数,从而得到一个神经网络“黑箱”。之所以称为黑箱,是因为无需知道y=f(x)中f的表达式是什么,也能轻易做函数计算,因为f(objective
function)就是网络本身。多层神经网络的座右铭是:“函数是什么我不管,反正我能算!“。

当然多层神经网络并非天下无敌,它有三个主要限制:

一是在面对大数据时,需要人为提取原始数据的特征作为输入,这个问题前面的知友提到过@杨延生。必须忽略不相关的变量,同时保留有用的信息。这个尺度很难掌握,多层神经网络会把蹲在屋顶的Kitty和骑在猫奴头上的Kitty识别为不同的猫咪,又会把二哈和狼归类为同一种动物。前者是对不相关变量过于敏感,后者则因无法提取有实际意义的特征。

二是想要更精确的近似复杂的函数,必须增加隐藏层的层数,这就产生了梯度扩散问题@青青子衿。所谓“强弩之末势不能穿鲁缟“。

三是无法处理时间序列数据(比如音频),因为多层神经网络不含时间参数。

随着人工智能需求的提升,我们想要做复杂的图像识别,做自然语言处理,做语义分析翻译,等等。多层神经网络显然力不从心。那么深度模型是如何解决以上三个问题的。

第一,深度学习自动选择原始数据的特征。举一个图像的例子,将像素值矩阵输入深度网络,网络第一层表征物体的位置、边缘、亮度等初级视觉信息。第二层将边缘整合表征物体的轮廓……之后的层会表征更加抽象的信息,如猫或狗这样的抽象概念。所有特征完全在网络中自动呈现,并非出自人工设计。更重要的一点是这种随着层的深入,从具象到抽象的层级式表征跟大脑的工作原理吻合,视网膜接收图像从LGN到视皮层、颞叶皮层再到海马走的是同样的路数[2]!

第二,深度网络的学习算法。一种方法是改变网络的组织结构,比如用卷积神经网络代替全连接(full connectivity)网络,训练算法仍依据Backpropagating gradients的基本原理。另一种则是彻底改变训练算法,我尝试过的算法有Hessian-free optimization[3],recursive least-squares(RLS)等。

第三,使用带反馈和时间参数的Recurrent
neural network处理时间序列数据。从某种意义上讲,Recurrent
neural network可以在时间维度上展开成深度网络,使用(二)中的算法可以有效处理音频信息,或者用来模拟动力系统。

本人计算神经科学小博士,写些粗浅的认识,有不对的地方还请各位大神指正。

[1] http://deeplearning.cs.cmu.edu/pdfs/Cybenko.pdf

[2] Distributed Hierarchical Processing in the Primate Cerebral Cortex

[3] http://icml2010.haifa.il.ibm.com/papers/458.pdf

时间: 2024-10-01 06:52:35

深度学习入门的相关文章

给深度学习入门者的Python快速教程

基础篇 numpy和Matplotlib篇 本篇部分代码的下载地址: https://github.com/frombeijingwithlove/dlcv_for_beginners/tree/master/chap5 5.3 Python的科学计算包 – Numpy numpy(Numerical Python extensions)是一个第三方的Python包,用于科学计算.这个库的前身是1995年就开始开发的一个用于数组运算的库.经过了长时间的发展,基本上成了绝大部分Python科学计算

分享《深度学习入门:基于Python的理论与实现 》中文版PDF和源代码

下载:(https://pan.baidu.com/s/1agBctMG7HF45VwhYpQHDSQ) <深度学习入门:基于Python的理论与实现>高清中文版PDF+源代码 高清中文版PDF,314页,带目录标签,可复制粘贴,高清晰.配套源代码. 深度学习真正意义上的入门书,深入浅出地剖析了深度学习的原理和相关技术.书中使用Python3,尽量不依赖外部库或工具,从基本的数学知识出发,带领读者从零创建一个经典的深度学习网络,使读者在此过程中逐步理解深度学习. 其中,高清中文版如图: 如图:

分享《深度学习入门:基于Python的理论与实现》+PDF+源码+斋藤康毅+陆宇杰

下载:https://pan.baidu.com/s/1FYcvG1tB__ooitilMpJC7w 更多资料分享:http://blog.51cto.com/14087171 <深度学习入门:基于Python的理论与实现>高清中文版PDF+源代码 高清中文版PDF,314页,带目录标签,可复制粘贴,高清晰.配套源代码. 深度学习真正意义上的入门书,深入浅出地剖析了深度学习的原理和相关技术.书中使用Python3,尽量不依赖外部库或工具,从基本的数学知识出发,带领读者从零创建一个经典的深度学习

深度学习入门:基于Python的理论与实现 高清中文版PDF电子版下载附源代码

本书特色1.日本深度学习入门经典畅销书,原版上市不足2年印刷已达100 000册.长期位列日亚"人工智能"类图书榜首,超多五星好评.2.使用Python 3,尽量不依赖外部库或工具,从零创建一个深度学习模型.3.示例代码清晰,源代码可下载,需要的运行环境非常简单.读者可以一边读书一边执行程序,简单易上手.4.使用平实的语言,结合直观的插图和具体的例子,将深度学习的原理掰开揉碎讲解,简明易懂.5.使用计算图介绍复杂的误差反向传播法,非常直观.6.相比AI圣经"花书",

分享《深度学习入门:基于Python的理论与实现》高清中文版PDF+源代码

下载地址:百度网盘 <深度学习入门:基于Python的理论与实现>高清中文版PDF+源代码 高清中文版PDF,314页,带目录标签,可复制粘贴,高清晰.配套源代码. 深度学习真正意义上的入门书,深入浅出地剖析了深度学习的原理和相关技术.书中使用Python3,尽量不依赖外部库或工具,从基本的数学知识出发,带领读者从零创建一个经典的深度学习网络,使读者在此过程中逐步理解深度学习. 其中,高清中文版如图: 原文地址:https://www.cnblogs.com/lifeijie/p/101214

深度学习入门必须理解这25个概念

深度学习入门必须理解这25个概念 2017年05月22日 21:11:51 Star先生 阅读数:30013 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/pangjiuzala/article/details/72630166 神经网络基础 1)神经元(Neuron)--就像形成我们大脑基本元素的神经元一样,神经元形成神经网络的基本结构.想象一下,当我们得到新信息时我们该怎么做.当我们获取信息时,我们一般会处理它,然后生成一个输出.类似地,在

《深度学习入门基于Python的理论与实现》PDF代码学习指导

入门神经网络深度学习,推荐学习<深度学习入门:基于Python的理论与实现>,这本书不来虚的,一上来就是手把手教你一步步搭建出一个神经网络,还能把每一步的出处讲明白.理解神经网络,很容易就能入门. 深度学习真正意义上的入门书,深入浅出地剖析了深度学习的原理和相关技术.书中使用Python3,尽量不依赖外部库或工具,从基本的数学知识出发,带领读者从零创建一个经典的深度学习网络,使读者在此过程中逐步理解深度学习. <深度学习入门:基于Python的理论与实现>中文版PDF,314页,带

机器学习和深度学习入门总结

本菜鸟入门机器学习也有一段时间了,有那么一丢丢的感悟,在这里做一点总结.介绍一下机器学习理论和实践的学习心得. 相关教材 数学基础 高数.线性代数这就没啥好说的,就是大学工科的必修科目. 统计机器学习 李航的蓝皮书和周志华的西瓜书可以说是国内的比较经典的教材,这两位也是国内人工智能领域的领军人物. 深度学习 强烈推荐花书,这可以说是深度学习方面的权威教材.除此以外还有吴恩达的讲义和教学视频,网上都可以找到. 小白入门教材 前面推荐的书籍,虽然算得上入门教材,但可能对于小白来说,不是很容易接受.这

深度学习入门初步总结

深度学习入门初步总结 前言 在学习深度学习之前,从某乎上看了相关的学习路线,又通过师兄们的请教,最后选择了在linux环境下,用python进行代码的编写.由于自己在这之前,对linux没有接触过,所以在安装Ubuntu以及在环境安装下还是走了不少弯路,后续会把相关的安装教程也写在博客中.在学习之前,可以说自己真的还是个小白,很多东西都不会,望以后可以和大家多多交流,一些想法可能不正确,望各位也能指出来. 一.技术储备 python基本语法 由于自己之前学过python,在这里就不多做总结了 N

对比学习资料《深度学习入门:基于Python的理论与实现》+《深度学习原理与实践》+《深度学习理论与实战基础篇》电子资料

我认为<深度学习入门:基于Python的理论与实现>电子书代码基本原理,简洁清楚,所用数学基本就是大一水平,适合做第一本入门书. <深度学习入门:基于Python的理论与实现>书代码实现的神经网络全是用numpy,超级适合刚刚入门想了解神经网络,数学不好看公式看不懂的人,看完这本基本就懂深度学习是弄啥子了. 如果连这本都看不懂的话,可以去看<Python神经网络编程>.我个人认为这两本书是最简单直白的方式让人理解神经网络的了. <深度学习原理与实践>电子书代