大牛推荐的入门用深度学习导论,刚拿到有点懵,第一次接触PPT类型的学习资料,但是耐心看下来收获还是很大的,适合我这种小白入门哈哈。

原PPT链接:http://www.slideshare.net/tw_dsconf/ss-62245351?qid=108adce3-2c3d-4758-a830-95d0a57e46bc&v=&b=&from_search=3

我也放到我的盘里啦:

链接:https://pan.baidu.com/s/13xTs4qJKv2Ere4CscCQeDw 密码:e2qg

PPT整体结构如下:

Lecture I:概论

1.介绍深度学习

深度学习过程大体分为三个步骤:(1)定义方法(2)判断方法优劣(3)选出最佳方法

(1)定义方法——神经网络

深度学习可以理解为多层的神经网络。神经网络的思想来源于对于人脑的生理上的研究,人脑由数亿个神经元组成,神经元通过轴突互相连接通信。神经网络和人脑类似,存在多个层级(layer),每个层级都有多个节点(神经元neuron),层级和层级之间相互连接(轴突),最终输出结果。

对于神经网络的计算能力可以理解为通过一层层Layer的计算归纳,逐步的将抽象的原始数据变的具体。以图片识别为例,输入是一个个像素点,经过每层神经网络,逐步变化成为线、面、对象的概念,然后机器有能力能够识别出来。

(2)判断方法优劣

首先准备待训练的数据和它们的标签,最终目标是由训练数据学习而来的。

我们用学习出来的参数对测试数据进行计算,得出对应的预测(y)然后和真实的测试数据的目标值(t)进行比对,y和t之间的差距往往就是Loss。

我们评估一个方法的好坏,就是看这个Loss是不是尽可能小。

(3)选出最佳方法

获得最佳的学习是采用梯度下降算法,作者也提到梯度下降算法存在局部最优解的问题,即找到一条最“陡峭”的路下山。人们往往认为机器无所不能,实际上更像是在一个地图上面拓荒,对周边一无所知。

神经网络计算梯度的算法是反向传播算法,简称BP。

2.Why Deep?

很显然,神经网络的参数越多,预测能力就越好。那么如果是同样的参数情况下,为什么层级较多的表现会更好呢?

作者认为深度网络可以带来模块化的好处,模块化是从数据中自动学习的。随着网络的层级变多,神经网络会将像素元素逐渐归纳出一些基本的特征,进而变成纹理,进而变成对象。

3.Keras

TensorFlow or Theano的接口。

Lecture II:训练方法

经过神经网络训练之后会发现两种问题:

1.训练结果很差→重新选择训练方式

2.测试结果很差→(往往由于过拟合导致)重新定义方法

1.优化训练方法的手段:

(1)Choosing proper loss

选择合适的Loss function,使用Cross Entropy(交叉熵)效果要优于Mean Square Error(均方差)。

(2)Mini-batch

每次训练使用少量数据而不是全量数据效率更高。

(3)New activation function

使用ReLU(线性整流函数)替代Sigmoid可以解决梯度消失的问题,可以训练更深的神经网络。网络不是越深越好。

(4)Adaptive Learning Rate

可以随着迭代不断自我调整,提高学习效率。

(5)Momentum

可以一定程度上避免陷入局部最低点的问题。

2.避免过度拟合的方法

  增加数据量是最简单的方法:创造更多的数据、给数据加噪声。

(1)Early Stopping

使用cross validation的方式,不断对validation data进行检验,一旦发现预测精度下降则停止。

(2)Regularization(Weight Decay)

  参数正则化的一种方式。删除无用的联系。

(3)Dropout

通过随机去掉一些节点的连接达到改变网络形式,所以会产生出多种网络形态,然后汇集得到一个最佳结果。

(4)Network Structure

  如CNN等其他形态的网络。

Lecture III: 神经网络的变体

1. 卷积神经网络(CNN)

通常情况下,一个CNN包含多次的卷积、池化,然后Flatten,最终再通过一个深度神经网络进行学习预测。CNN在图像、语音识别取得非常好的成绩,核心的想法在于一些物体的特征往往可以提取出来,并且可能出现在图片的任何位置,而且通过卷积、池化可以大大减少输入数据,加快训练效率。

2. 递归神经网络(RNN)

RNN的想法是可以将hidden layer的数据存储下来,然后作为输入给下一个网络学习。这种网络的想法可以解决自然语言中前后词语是存在关联性的,所以RNN可以把这些关联性放到网络中进行学习。

Lecture IV: Next Wave

最新文章

  1. 【JavaWeb】Spring+SpringMVC+MyBatis+SpringSecurity+EhCache+JCaptcha 完整Web基础框架(五)
  2. python之OS模块详解
  3. __autoload的小tip
  4. [ubuntu14.04 amd64 ]搜狗拼音輸入法安裝
  5. C#窗体自定义控件
  6. Jquery 将表单序列化为Json对象
  7. [ionic开源项目教程] - 第14讲 ionic解决跨域问题
  8. 【转载】Dom篇
  9. Android开源项目整理:个性化空间View篇(看遍论坛千万篇,不看此篇也枉然)
  10. 各种driver的继承关系
  11. css案例学习之div ul li a 实现导航效果
  12. UGUI合批原理笔记
  13. 缓存机制 ehcache、redis
  14. echarts 自适应方法 x和y x2和y2
  15. 20175202 《Java程序设计》第四周学习总结
  16. 【PAT】B1001 害死人不偿命的(3n+1)猜想
  17. HDU 1241 Oil Deposits DFS搜索题
  18. iOS进阶指南试读之UI篇
  19. PHP $_SERVER 祥细解读(有事例)
  20. 未能加载“xxx”程序集

热门文章

  1. 经典的PHPer为什么被认为是草根?
  2. java代码操作solr搜索引擎的增删查改
  3. postman 做接口测试之学习笔记
  4. HttpRunner 接口自动化简单实践
  5. bs4.FeatureNotFound: Couldn’t find a tree builder with the features you requested: lxml.
  6. 一个简单好用的日志框架NLog
  7. Spring Boot中JSON参数传递,后台实体接受问题
  8. 用javaScript获取页面元素值
  9. 【python】python2.x中的除法
  10. Maven Web Project设置Webcontent路径