Udacity上deeplearning这门课是google开的,介绍了常见的几种深度神经网络模型,同时还附带了几个练习,并且练习用的工具都是tensorflow,所以既可以学习一下神经网络的知识,又可以学习tensorflow。我写的课后练习的代码都放到了我的githuh上(同时也是第一次用git,所以也学习了git的用法)https://github.com/haolexiao/udacity-deeplearning

L1从机器学习到深度学习

为什么最近几年深度学习/神经网络开始火了:

  1. 更便宜的GPU
  2. 更大规模的数据

分类问题是很多问题的基础:

  • 检测问题:诸如检测图片中是否有行人,Logo之类的。
  • 排序:诸如一个请求,搜索引擎返回跟query相关的网页,则可以设计一个分类器, 分的是成对的:query和网页,输出相关或者不相关。来这样建立分类器。
  • 回归
  • 强化学习

归一化

因为计算机的精度问题,所以必须要进行归一化

深度神经网络

既然MLP(三层神经网络)已经可以拟合任何函数了, 为什么要用多层神经网络?

  • 相较于让神经网络变得更宽,使得神经网络变得更深能够增加较小的参数就能够获得很好的效果
  • 深层的神经网络不同层之间往往呈现出层次化的特征,越往后的层,往往呈现出越复杂的特征。这个特征非常不错

为什么最近几年深度学习才火起来呢?

一个原因在于只有数据量足够大的情况下的深度神经网络才能发挥出比较好的效果,而只有在最近几年,学术界才接触到了大规模数据。
另外一方面,最近几年学术界才知道如何更好的用正则化方法训练很大的模型

防止过拟合的方法

  • 画出训练模型在验证集合的曲线,当开始出现过拟合的时候,停止训练。这种方法叫早停
  • 正则化方法

卷积神经网络

卷积网络提出的思路是基于权重共享的思想,有些东西不需要跟其位置有关,比如图片中人脸的位置,文本中某个特定名词出现的位置(在某些特定任务下)等等。不同位置的输入能够得到相同的信息。

提升卷积网络性能的方式:

  • POOLING池化,降低卷及网络特种图的空间范围。把几个相邻的卷积再进行合并。典型的一种池化方式就是最大池化Max Pooling,它的好处有

    • 没有增加新的参数,所以不会有过拟合的问题
    • 常常产生更好的精度
    • 减少了计算量

    还有平均池化,相当于模糊了图像。

  • 1*1卷积。只关注一个单个像素。
  • INCEPTION结构。inception非常有效的,就是每一层可以用许多不同类型的卷积,或者池化,最后把他们统一连接起来。

文本和序列的深度学习模型

Word Embedding

tSNE是比较适合用来可视化embedding结果的方式,因为如果用PCA这种传统方法的话,做出来的结果并不好,而tSNE这种方法能够最大限度的保留原空间中的相对距离信息。

RNN

如果说CNN是通过权值共享,来在不同空间来提取图像的模式。而RNN则是在时间序列上的权值共享。

RNN上的梯度下降

因为在时间上权值共享的关系,所以梯度下降算法其实对于RNN来说并不好,因为梯度下降更加偏向于相互之间无关联的参数更新,以保证训练时的稳定性。相关联的更新会使训练中的数学过程变得不稳定——梯度爆炸或者梯度消失,会使网络丢失训练对象。
对于梯度爆炸(Exploding Gradient):

  • 可以采用梯度剪裁的方法,即当其增长过大时,缩小步长

对与梯度消失(Vanishing Gradient):

  • 比较困难一些,因为梯度消失表明了模型只记住了近期的事件,这就需要LSTM了。用LSTM就是为了让RNN更好地记录过去很久的事情。

LSTM为什么有效

简单来说LSTM能够帮助模型在需要记忆的情况下记忆很久,在需要忘记的情况下,立刻忘记。最终导致消失的问题也被解决了。
L2正则话和Dropout也能用在LSTM中,不过需要用在输入层和输出层,而不是递归连接层

udacity上Google的深度学习笔记相关推荐

  1. 深度学习笔记其三:多层感知机和PYTORCH

    深度学习笔记其三:多层感知机和PYTORCH 1. 多层感知机 1.1 隐藏层 1.1.1 线性模型可能会出错 1.1.2 在网络中加入隐藏层 1.1.3 从线性到非线性 1.1.4 通用近似定理 1 ...

  2. 深度学习笔记:卷积神经网络的可视化--卷积核本征模式

    目录 1. 前言 2. 代码实验 2.1 加载模型 2.2 构造返回中间层激活输出的模型 2.3 目标函数 2.4 通过随机梯度上升最大化损失 2.5 生成滤波器模式可视化图像 2.6 将多维数组变换 ...

  3. 2020年Yann Lecun深度学习笔记(上)

    2020年Yann Lecun深度学习笔记(上)

  4. 一文弄懂元学习 (Meta Learing)(附代码实战)《繁凡的深度学习笔记》第 15 章 元学习详解 (上)万字中文综述

    <繁凡的深度学习笔记>第 15 章 元学习详解 (上)万字中文综述(DL笔记整理系列) 3043331995@qq.com https://fanfansann.blog.csdn.net ...

  5. 一文让你完全弄懂逻辑回归和分类问题实战《繁凡的深度学习笔记》第 3 章 分类问题与信息论基础(上)(DL笔记整理系列)

    好吧,只好拆分为上下两篇发布了>_< 终于肝出来了,今天就是除夕夜了,祝大家新快乐!^q^ <繁凡的深度学习笔记>第 3 章 分类问题与信息论基础 (上)(逻辑回归.Softm ...

  6. 2020-4-20 深度学习笔记20 - 深度生成模型 3 (实值数据上的玻尔兹曼机)

    第二十章 深度生成模型 Deep Generative Models 中文 英文 2020-4-17 深度学习笔记20 - 深度生成模型 1 (玻尔兹曼机,受限玻尔兹曼机RBM) 2020-4-18 ...

  7. 开源后5个月,Google的深度学习都有哪些改变?

    开源后5个月,Google的深度学习都有哪些改变? 发布时间: 2016-4-17 13:37:05   2016年4月14日,Google发布了分布式TensorFlow.Google的博文介绍了T ...

  8. 深度学习笔记:优化方法总结(BGD,SGD,Momentum,AdaGrad,RMSProp,Adam)

    深度学习笔记(一):logistic分类  深度学习笔记(二):简单神经网络,后向传播算法及实现  深度学习笔记(三):激活函数和损失函数  深度学习笔记:优化方法总结  深度学习笔记(四):循环神经 ...

  9. 深度学习笔记 第五门课 序列模型 第三周 序列模型和注意力机制

    本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...

最新文章

  1. Spring 中的bean 是线程安全的吗?
  2. python list转矩阵
  3. 经典卷积神经网络--LeNet-5的详解
  4. JavaScript设计模式与开发实践 | 02 - this、call和apply
  5. 在崩溃或断电后测试Lucene的索引耐久性
  6. App Store 上架流程
  7. 6s的充电电流怎么测试软件,用数字万用表测量手机充电器的充电电流的方法和问题...
  8. 新版微信文件夹路径FileStorage变成了MsgAttach
  9. 华为手机的10个使用技巧,你知道吗
  10. C++中的push_back函数
  11. 这么写参数校验(validator)就不会被劝退了~
  12. html状态查询爱站,批量查询网页状态码以及标题
  13. Mac字体怎么安装?如何在macOS电脑导入字体文件?
  14. 伴儿行“四村点面融入,文化牵线搭桥”项目结项
  15. js本地刷新和局部刷新
  16. git 简单命令使用
  17. 常用工具:IDEA、vs code、Navicat、Postman、HBuilderX、微信开发者工具
  18. Java中的不可变集合介绍
  19. python核心数据类型——数值、字符串和列表的基本操作
  20. 那些年,你看过有哪些让你记忆犹新的书

热门文章

  1. GitLab 14 轻量化运行方案
  2. matlab读mif文件,关于QuartusII里面调用MATLAB里生成的mif文件的一些问题(转)
  3. 升级啦 经纬恒润新一代V2X车路协同系统在港口部署应用
  4. 小度之家SDK功能介绍
  5. 【java】为什么要有分布式锁?
  6. 什么是微信朋友圈广告投放
  7. Win2008 R2安装.NET Framework 4的windows6.1-KB958488-V6001-x6
  8. 零基础完成珍爱网项目 Java+MySQL+echarts (ZhenaiSpider+ZhenaiWeb)(四)
  9. Linux--vi简介
  10. 使用R语言解析kegg数据库get请求