译者:张峰,Datawhale成员

结构总览

一、神经网络简介

对于非线性分类问题(如图1所示),“非线性”意味着你无法使用形式为:

的模型准确预测标签。也就是说,“决策面”不是直线。之前,我们了解了对非线性问题进行建模的一种可行方法 - 特征组合。

现在,请考虑以下数据集:

图 2. 更难的非线性分类问题

图 2 所示的数据集问题无法用线性模型解决。为了了解神经网络可以如何帮助解决非线性问题,我们首先用图表呈现一个线性模型:

图 3. 用图表呈现的线性模型

每个蓝色圆圈均表示一个输入特征,绿色圆圈表示各个输入的加权和。要提高此模型处理非线性问题的能力,我们可以如何更改它?

1.1 隐藏层

在下图所示的模型中,我们添加了一个表示中间值的“隐藏层”。隐藏层中的每个黄色节点均是蓝色输入节点值的加权和。输出是黄色节点的加权和。

图 4. 两层模型的图表

此模型是线性的吗?是的,其输出仍是其输入的线性组合。

在下图所示的模型中,我们又添加了一个表示加权和的“隐藏层”。

图 5. 三层模型的图表

此模型仍是线性的吗?是的,没错。当你将输出表示为输入的函数并进行简化时,你只是获得输入的另一个加权和而已。该加权和无法对图 2 中的非线性问题进行有效建模。

1.2 激活函数

要对非线性问题进行建模,我们可以直接引入非线性函数。我们可以用非线性函数将每个隐藏层节点像管道一样连接起来。

在下图所示的模型中,在隐藏层 1 中的各个节点的值传递到下一层进行加权求和之前,我们采用一个非线性函数对其进行了转换。这种非线性函数称为激活函数。

图 6. 包含激活函数的三层模型的图表

现在,我们已经添加了激活函数,如果添加层,将会产生更多影响。通过在非线性上堆叠非线性,我们能够对输入和预测输出之间极其复杂的关系进行建模。简而言之,每一层均可通过原始输入有效学习更复杂、更高级别的函数。如果你想更直观地了解这一过程的工作原理,请参阅 Chris Olah 的精彩博文。

常见激活函数

以下 S 型激活函数将加权和转换为介于 0 和 1 之间的值。

曲线图如下:

图 7. S 型激活函数

相较于 S 型函数等平滑函数,以下修正线性单元激活函数(简称为 ReLU)的效果通常要好一点,同时还非常易于计算。

ReLU 的优势在于它基于实证发现(可能由 ReLU 驱动),拥有更实用的响应范围。S 型函数的响应性在两端相对较快地减少。

图 8. ReLU 激活函数

实际上,所有数学函数均可作为激活函数。假设 σσ 表示我们的激活函数(ReLU、S 型函数等等)。因此,网络中节点的值由以下公式指定:

TensorFlow 为各种激活函数提供开箱即用型支持。但是,我们仍建议从 ReLU 着手。

1.3 小结

现在,我们的模型拥有了人们通常所说的“神经网络”的所有标准组件:

  • 一组节点,类似于神经元,位于层中。

  • 一组权重,表示每个神经网络层与其下方的层之间的关系。下方的层可能是另一个神经网络层,也可能是其他类型的层。

  • 一组偏差,每个节点一个偏差。

  • 一个激活函数,对层中每个节点的输出进行转换。不同的层可能拥有不同的激活函数。

警告:神经网络不一定始终比特征组合好,但它确实可以提供适用于很多情形的灵活替代方案。

二、训练神经网络

本部分介绍了反向传播算法的失败案例,以及正则化神经网络的常见方法。

2.1 失败案例

很多常见情况都会导致反向传播算法出错。

梯度消失

较低层(更接近输入)的梯度可能会变得非常小。在深度网络中,计算这些梯度时,可能涉及许多小项的乘积。

当较低层的梯度逐渐消失到 0 时,这些层的训练速度会非常缓慢,甚至不再训练。

ReLU 激活函数有助于防止梯度消失。

梯度爆炸

如果网络中的权重过大,则较低层的梯度会涉及许多大项的乘积。在这种情况下,梯度就会爆炸:梯度过大导致难以收敛。批标准化可以降低学习速率,因而有助于防止梯度爆炸。

ReLU 单元消失

一旦 ReLU 单元的加权和低于 0,ReLU 单元就可能会停滞。它会输出对网络输出没有任何贡献的 0 激活,而梯度在反向传播算法期间将无法再从中流过。由于梯度的来源被切断,ReLU 的输入可能无法作出足够的改变来使加权和恢复到 0 以上。

降低学习速率有助于防止 ReLU 单元消失。

2.2 丢弃正则化

这是称为丢弃的另一种形式的正则化,可用于神经网络。其工作原理是,在梯度下降法的每一步中随机丢弃一些网络单元。丢弃得越多,正则化效果就越强:

  • 0.0 = 无丢弃正则化。

  • 1.0 = 丢弃所有内容。模型学不到任何规律。

0.0 和 1.0 之间的值更有用。

三、多类别神经网络

3.1 一对多(OnevsAll)

一对多提供了一种利用二元分类的方法。鉴于一个分类问题会有 N 个可行的解决方案,一对多解决方案包括 N 个单独的二元分类器,每个可能的结果对应一个二元分类器。在训练期间,模型会训练一系列二元分类器,使每个分类器都能回答单独的分类问题。以一张狗狗的照片为例,可能需要训练五个不同的识别器,其中四个将图片看作负样本(不是狗狗),一个将图片看作正样本(是狗狗)。即:

  1. 这是一张苹果的图片吗?不是。

  2. 这是一张熊的图片吗?不是。

  3. 这是一张糖果的图片吗?不是。

  4. 这是一张狗狗的图片吗?是。

  5. 这是一张鸡蛋的图片吗?不是。

当类别总数较少时,这种方法比较合理,但随着类别数量的增加,其效率会变得越来越低下。

我们可以借助深度神经网络(在该网络中,每个输出节点表示一个不同的类别)创建明显更加高效的一对多模型。图9展示了这种方法:

图 9. 一对多神经网络

四、Softmax

我们已经知道,逻辑回归可生成介于 0 和 1.0 之间的小数。例如,某电子邮件分类器的逻辑回归输出值为 0.8,表明电子邮件是垃圾邮件的概率为 80%,不是垃圾邮件的概率为 20%。很明显,一封电子邮件是垃圾邮件或非垃圾邮件的概率之和为 1.0。

Softmax 将这一想法延伸到多类别领域。也就是说,在多类别问题中,Softmax 会为每个类别分配一个用小数表示的概率。这些用小数表示的概率相加之和必须是 1.0。与其他方式相比,这种附加限制有助于让训练过程更快速地收敛。

例如,回到我们在图 9 中看到的图片分析示例,Softmax 可能会得出图片属于某一特定类别的以下概率:

Softmax 层是紧挨着输出层之前的神经网络层。Softmax 层必须和输出层拥有一样的节点数。

图 10. 神经网络中的 Softmax 层

Softmax 方程式如下所示:

请注意,此公式本质上是将逻辑回归公式延伸到了多类别。

4.1 Softmax 选项

请查看以下 Softmax 变体:

  • 完整 Softmax 是我们一直以来讨论的 Softmax;也就是说,Softmax 针对每个可能的类别计算概率。

  • 候选采样指 Softmax 针对所有正类别标签计算概率,但仅针对负类别标签的随机样本计算概率。例如,如果我们想要确定某个输入图片是小猎犬还是寻血猎犬图片,则不必针对每个非狗狗样本提供概率。

类别数量较少时,完整 Softmax 代价很小,但随着类别数量的增加,它的代价会变得极其高昂。候选采样可以提高处理具有大量类别的问题的效率。

五、一个标签与多个标签

Softmax 假设每个样本只是一个类别的成员。但是,一些样本可以同时是多个类别的成员。对于此类示例:

  • 你不能使用 Softmax。

  • 你必须依赖多个逻辑回归。

例如,假设你的样本是只包含一项内容(一块水果)的图片。Softmax 可以确定该内容是梨、橙子、苹果等的概率。如果你的样本是包含各种各样内容(几份不同种类的水果)的图片,你必须改用多个逻辑回归。

往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑

获取一折本站知识星球优惠券,复制链接直接打开:

https://t.zsxq.com/y7uvZF6

本站qq群704220115。

加入微信群请扫码:

【深度学习】神经网络知识专题总结相关推荐

  1. DL:深度学习(神经网络)的简介、基础知识(神经元/感知机、训练策略、预测原理)、算法分类、经典案例应用之详细攻略

    DL:深度学习(神经网络)的简介.基础知识(神经元/感知机.训练策略.预测原理).算法分类.经典案例应用之详细攻略 目录 深度学习(神经网络)的简介 1.深度学习浪潮兴起的三大因素 深度学习(神经网络 ...

  2. 基于深度学习的知识图谱综述

    基于深度学习的知识图谱综述 摘要:随着现如今计算机设备的更新,计算能力的不断提高促使深度学习再一度推上热门技术,深度学习已经广泛应用于图像处理.文本挖掘.自然语言处理等方面,在医学.交通.教育.旅游等 ...

  3. 【知识图谱】知识图谱数据构建的“硬骨头”,阿里工程师如何拿下?深度学习在知识图谱构建中的应用。

    阿里妹导读:搜索"西红柿",你不但能知道它的营养功效.热量,还能顺带学会煲个牛腩.炒个鸡蛋!搜索引擎何时变成"暖男"了?原来背后有"知识图谱" ...

  4. 1.基于深度学习的知识追踪研究进展_刘铁园

    基于深度学习的知识追踪研究进展_刘铁园 1.知识追踪改进方向 针对可解释问题的改进 针对长期依赖问题的改进 针对缺少学习特征问题的改进 2.基于深度学习的知识追踪 DLKT 2.1 符号定义 2.2 ...

  5. 基于深度学习的知识图谱构建(简要综述)

    1  简介 信息技术的发展不断推动着互联网技术的变革,Web技术作为互联网时的标志性技术,正处于这场技术变的核心.从网页的链接到数据的链接,Web技术正在逐步朝向Web之父Berners-Lee设想中 ...

  6. 深度学习——神经网络之DNN全连接神经网络、BP算法原理

    深度学习--神经网络之DNN全连接神经网络.BP算法原理 深度学习--神经网络之DNN全连接神经网络.BP算法原理 1.啥是人工神经网络 2.神经网络的应用 3.神经网络的组成 3.1.神经元 3.2 ...

  7. 基于人脸的常见表情识别(1)——深度学习基础知识

    基于人脸的常见表情识别(1)--深度学习基础知识 神经网络 1. 感知机 2. 多层感知机与反向传播 卷积神经网络 1. 全连接神经网络的2大缺陷 2. 卷积神经网络的崛起 卷积神经网络的基本网络层 ...

  8. P3 吴恩达推荐笔记:22张图总结深度学习全部知识

    吴恩达推荐笔记:22张图总结深度学习全部知识 本文简要的解释了深度学习中的基本概念,包括监督学习.逻辑回归.正则化等等. 并且,在了解了一些基本概念后,本文还对目标检测.人脸识别.自然语言处理进行了简 ...

  9. 深度学习在知识图谱的应用

    探索下深度学习在知识图谱中的应用实践,感兴趣的同学可以看看,研究下 一.大规模知识图谱的构建 知识图谱自上世纪60年代从语义网络发展起来以后,分别经历了1980年代的专家系统.1990年代的贝叶斯网络 ...

  10. 利用python深度学习神经网络预测五年内糖尿病的发生(全代码)

    各位朋友大家好,今天我们做一个深度学习神经网络的项目,预测五年内糖尿病的发生.神经网络但凡入门数据科学的人都知道,我觉得叫神经网络是从仿生学角度的命名,从数据科学角度我更喜欢称它为多层感知机(mult ...

最新文章

  1. 3 OC 属性和方法
  2. UDP_CORK,TCP_CORK以及TCP_NODELAY
  3. Spring 容器AOP的实现原理——动态代理
  4. AMD CPU 看清楚
  5. matlab降幂排序,Matlab教程(三)
  6. java判断对象无数据_java利用反射机制判断对象的属性是否为空以及获取和设置该属性的值...
  7. 池州天气预报软件测试,池州天气预报15天
  8. mysql 及时点还原_mysqlbinglog基于即时点还原
  9. 拳王虚拟项目公社:人人可操作的轻松简单的虚拟资源课程虚拟项目
  10. 量子计算会带来什么样的革命?
  11. java中连接字符串_Java中几种方式连接字符串的方法
  12. hashmap允许null键和值吗_【29期】Java集合框架 10 连问,你有被问过吗?
  13. Windows虚拟设备驱动开发总结
  14. OSChina 周四乱弹 ——1000万没了!因为这个孩子在家这样
  15. Switchhosts Mac 安装
  16. 【激励自己】牛人职场分享汇总
  17. python全套数据分析课程_B 站疯传,堪称最强,一整套Python数据分析课程,学完月薪30K+!...
  18. 每日C语言代码(The second day)
  19. ps绘制android手机界面界面,教程·Photoshop | 手机界面效果图展示设计
  20. win7 下使用超级终端

热门文章

  1. Python之路(第三十九篇)管道、进程间数据共享Manager
  2. Alpha 冲刺11——总结
  3. 【BZOJ1031】[JSOI2007]字符加密Cipher 后缀数组
  4. codevs2574 波兰表达式
  5. Inherits、CodeFile、CodeBehind
  6. mysql union order by_MySQL order by 在 union 中使用实例分析
  7. 东南大学数字信号处理实验_【鹏城实验室校招】数字信号处理助理研究员
  8. python极客项目编程_Python极客项目编程 ([美]Mahesh Venkitachalam) 中文pdf完整版
  9. 硕博士生参加学术会议重要吗?如何选择?注意什么?
  10. 生日快乐编程代码_世界上最好的编程语言,刚刚度过了25周岁生日