这周老师让把深度学习的名词过一遍,小玛同学准备在过一遍Deep Learning名词的同时把基本的模型也过一遍。

感谢杰哥发我深度学习入门系列能让我有机会快速入门。

下面就来doc一些学到的东西

线性感知器

感知器(线性单元)有个问题就是当面对的数据集不是线性可分的时候,“感知器规则”可能无法收敛,这意味着我们永远无法完成一个感知器的训练。(即如果我们需要用感知器(神经元)拟合的映射不是线性的,那么需要用在拟合中添加非线性的函数)

SGD vs BGD

SGD: Stochastic Gradient Descent

BGD: Batch Gradient Descent

SGD 和 BGD 之间的主要区别在于每次迭代的更新步骤。BGD 在每一步都使用整个数据集计算梯度,而 SGD 在每一步都使用单个样本或一小批样本计算梯度。这使得 SGD 比 BGD 更快,计算成本更低。

然而,在凸集中,由于其随机性质,SGD 可能永远无法达到全局最小值,而是不断在接近全局最小值的区域内游荡。另一方面,BGD 只要有足够的时间和合适的学习率,就能保证找到全局最小值。

但是在非凸集中,随机性有助于我们逃离一些糟糕的局部最小值。

感知器 vs 神经元

一般情况下,说感知器的时候,它的激活函数是阶跃函数;当我们说神经元的时候,激活函数往往选择为sigmoid函数或者是tanh函数。

sigmoid函数

sigmoid函数的导数非常有趣,它可以用sigmoid函数自身来表示。这样,一旦计算出sigmoid函数的值,计算它的导数的值就非常方便。

令 \(y = sigmoid(x)\) , 则 \(y^{\prime} = y(1 − y)\)

梯度检查

下面是梯度检查的代码。如果我们想检查参数 的梯度是否正确,我们需要以下几个步骤:

  1. 首先使用一个样本 \(d\) 对神经网络进行训练,这样就能获得每个权重的梯度。
  2. 将 \(w_{ji}\) 加上一个很小的值( \(10^{-4}\) ),重新计算神经网络在这个样本 \(d\) 下的 \(E_{d+}\)。
  3. 将 \(w_{ji}\) 减上一个很小的值( \(10^{-4}\) ),重新计算神经网络在这个样本 \(d\) 下的 \(E_{d-}\) 。
  4. 根据下面的公式计算出期望的梯度值,和第一步获得的梯度值进行比较,它们应该几乎想等(至少4位有效数字相同)。
\[\frac{\partial E_d(w_{ji})}{\partial w_{ji}} \approx \frac{f(w_{ji} + \epsilon) - f(w_{ji} - \epsilon)}{2\epsilon}
\]

当然,我们可以重复上面的过程,对每个权重 \(w_{ji}\) 都进行检查。也可以使用多个样本重复检查。

深度学习入门系列之doc的更多相关文章

  1. 深度学习实践系列(2)- 搭建notMNIST的深度神经网络

    如果你希望系统性的了解神经网络,请参考零基础入门深度学习系列,下面我会粗略的介绍一下本文中实现神经网络需要了解的知识. 什么是深度神经网络? 神经网络包含三层:输入层(X).隐藏层和输出层:f(x) ...

  2. 深度学习入门实战(二)-用TensorFlow训练线性回归

    欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 作者 :董超 上一篇文章我们介绍了 MxNet 的安装,但 MxNet 有个缺点,那就是文档不太全,用起来可能 ...

  3. OPEN(SAP) UI5 学习入门系列之四:更好的入门系列-官方Walkthrough

    好久没有更新了,实在不知道应该写一些什么内容,因为作为入门系列,实际上应该更多的是操作而不是理论,而在UI5 SDK中的EXPLORER里面有着各种控件的用法,所以在这里也没有必要再来一遍,还是看官方 ...

  4. OPEN(SAP) UI5 学习入门系列之一:扫盲与热身(下)

    1 UI5代码结构 上一次我们一起用了20秒的时间完成一个UI5版的Hello World.应用打开后有一个按钮,按钮的文字是Hello World,点击这个按钮之后,按钮会慢慢的消失掉(Fade o ...

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

    给深度学习入门者的Python快速教程 基础篇 numpy和Matplotlib篇 本篇部分代码的下载地址: https://github.com/frombeijingwithlove/dlcv_f ...

  6. 深度学习入门者的Python快速教程 - 基础篇

      5.1 Python简介 本章将介绍Python的最基本语法,以及一些和深度学习还有计算机视觉最相关的基本使用. 5.1.1 Python简史 Python是一门解释型的高级编程语言,特点是简单明 ...

  7. 给深度学习入门者的Python快速教程 - 番外篇之Python-OpenCV

    这次博客园的排版彻底残了..高清版请移步: https://zhuanlan.zhihu.com/p/24425116 本篇是前面两篇教程: 给深度学习入门者的Python快速教程 - 基础篇 给深度 ...

  8. 给深度学习入门者的Python快速教程 - numpy和Matplotlib篇

    始终无法有效把word排版好的粘贴过来,排版更佳版本请见知乎文章: https://zhuanlan.zhihu.com/p/24309547 实在搞不定博客园的排版,排版更佳的版本在: 给深度学习入 ...

  9. 深度学习实践系列(3)- 使用Keras搭建notMNIST的神经网络

    前期回顾: 深度学习实践系列(1)- 从零搭建notMNIST逻辑回归模型 深度学习实践系列(2)- 搭建notMNIST的深度神经网络 在第二篇系列中,我们使用了TensorFlow搭建了第一个深度 ...

  10. 深度学习基础系列(九)| Dropout VS Batch Normalization? 是时候放弃Dropout了

    Dropout是过去几年非常流行的正则化技术,可有效防止过拟合的发生.但从深度学习的发展趋势看,Batch Normalizaton(简称BN)正在逐步取代Dropout技术,特别是在卷积层.本文将首 ...

随机推荐

  1. MP逻辑删除

    在实体类中加上@TableLogic注解 在配置类中加入逻辑删除插件

  2. mysql修改数据库表及字段的编码格式

    1.修改表的编码格式 ALTER TABLE `table` DEFAULT CHARACTER SET utf8; 2.修改字段编码格式 ALTER TABLE `table` CHANGE `字段 ...

  3. 微信公众号授权登录,整合spring security

    公司的业务需求,对接了微信公众号授权,通过微信公众号的接口拿到用户信息进行业务系统的登录,话不多说上代码,我的实现方式是整合了spingSecurity 首先是接口 @PostMapping(&quo ...

  4. MQ(创建MQ注意事项)

    创建MQ队列管理器时,需要注意的事项包括以下几点: 1) 队列管理器的日志类型以及日志文件的大小和个数,要根据用户数据量的大小.各个队列上的消息总容量,来计算日志的总容量,以免在系统运行过程中出现日志 ...

  5. Apache与tomcat区别--转水漫金山

    Apache与Tomcat都是Apache开源组织开发的用于处理HTTP服务的项目,两者都是免费的,都可以做为独立的Web服务器运行.Apache是Web服务器而Tomcat是Java应用服务器 Ap ...

  6. MySQL视频学习 1-18小节

    地址:https://www.bilibili.com/video/av39807944/?p=16 1-15:撘环境.建表.数据类型(https://www.runoob.com/mysql/mys ...

  7. [极客大挑战 2019]LoveSQL 1

    很明显这时一道SQL注入的题目 这题很简单的SQL注入题目,使用union(联合查询注入),但是缠了我很久 为什么呢?因为我们学校的waf,很多可以注入成功的语句,他都会连接被重置,或者被burpsu ...

  8. svn提交规范

    本文档参考了Git提交规范,旨在规范使用SVN进行代码版本管理时的提交操作. 提交前的准备 1. 检查代码 在提交代码前,请先进行必要的代码检查,确保代码的正确性.可读性和可维护性.可以使用代码质量管 ...

  9. windows 系统下 workerman 在同一个运行窗口中开启多个 websocket 服务

    目录 开启多个 ws 服务失败 开启服务失败解决办法 同一个窗口中运行 开启多个 ws 服务失败 正常情况下,如果你想开启多个 websocket 服务的话 只要在一个文件中,输入 new Worke ...

  10. AES算法流程

    明文分组长度: \(128bit\) 密钥长度: \(128bit\) 迭代轮数: \(10轮\) 加密和解密均在\(4*4\)的矩阵上进行,每个格子\(1\)个字节,共\(16\)个字节\(128b ...