深度学习图解 Andrew W· Trask 读后感

Posted 架构师易筋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度学习图解 Andrew W· Trask 读后感相关的知识,希望对你有一定的参考价值。

先看看一个有趣的问题:“国王 - 男人 + 女人 = ?” 自然语言的神经网络NLP用了词向量解决了这个问题。答案是女王 Queen。

深度学习是人工智能的一个分支,受到人类大脑的启发,致力于指导计算机用神经网络进行学习。在线文本翻译、自动驾驶、商品推荐和智能语音助手等一系列令人兴奋的现代技术应用领域,都在深度学习的辅助下取得了突破性进展。

本书主要内容包括:

  • 深度学习的基础科学原理。
  • 自行设计和训练神经网络。
  • 隐私保护的知识,包括联邦学习。
  • 帮助你继续深度学习之旅的建议。

不要担心你在数学上遇到的困难。我可以向你保证,我遇到的困难甚至更大。 – 阿尔伯特 · 爱因斯坦
“噢,深思熟虑的计算机,” 他说,“我们设计你来执行的任务是这样的。我们想让你告诉我们…” 他停顿一下,“答案”。 – 道格拉斯 · 亚当斯《银河系漫游指南》
在这里插入图片描述
在这里插入图片描述

1. 机器如何学习

使计算机不需要显示编程就能拥有学习能力的研究领域。 – 亚瑟 · 塞缪尔
在这里插入图片描述

机器学习 ≈ 先观察,后照做

机器学习分类:

  • 有监督的:对结果进行打标签,比如阴性、阳性。
  • 无监督的:不对结果打标签,自动根据想形似分类。

或者

  • 参数: 参数模型的特征是具有固定数量的参数。
  • 非参数:分参数模型的参数数量是无线的(由数据决定)。

1.1 监督机器学习

在这里插入图片描述

有监督的机器学习可以直接模仿两个数据集之间的模式。它总是尝试获取一个输入数据集并将其转换为对应的输出数据集。比如:

  • 使用图像的像素来检测猫存在与否
  • 使用你喜欢的电影来预测你可能喜欢的电影
  • 使用人们所说的话来预测他们是高兴还是难过
  • 使用天气传感器数据预测下雨的概率
  • 使用汽车发动机传感器预测最佳调节设置
  • 使用新闻数据预测明天的股价
  • 使用输入的数字预测其两倍规模的值
  • 使用原始音频文件预测音频文本
    在这里插入图片描述

1.2 无监督机器学习

监督学习是给训练数据的结果打标签,比如天气预测是下雨、下雪、晴天、阴天等。
无监督机器学习是不给结果数据打标签,然后在对数据进行分类。比如google分类文章为:科技类、地理类、娱乐类等等。
在这里插入图片描述

2. 神经网络

神经网络的步骤: 预测 - 比较 - 学习 模式。

2.1 预测导论:前向传播。

神经网络如何学习? 秘诀是试错!首先,它试图做出预测。然后,它会看到预测的结果是过高合适过低。最后,它改变权重(增大或者减小),以便下次看到相同的输入时能够给出更准确的预测。
在这里插入图片描述
在这里插入图片描述

2.2 梯度下降

2.2.1 冷热学习

冷热学习:冷热学习指的是通过扰动权重来确定向哪个方向调整可以使得误差的降低幅度最大,基于此将权重的值向那个方向移动,不断重复这个过程,直到误差趋于0.
冷热学习效率低下。你必须通过多次预测才能进行一次权重的更新。
冷热学习就,有时准确预测出的目标是不可能的。如果选择的步长太大,就会导致在一定周围来回波动。

  • 什么是比较: 比较为预测的 “误差”提供度量。
  • 学习:“学习” 告诉权重应该如何改变以降低误差。

2.2.2 梯度下降

在这里插入图片描述
梯度下降是向着导数的方向进行修正,使得成本函数逐步减少,直到为0.

2.3 反向传播

  • 关联抽象:神经网络视图寻找在输入层和输出层之间的直接和间接关联,这种关联由输入和输出数据集决定。
  • 局部关联抽象:任何给定的权重集合通过优化来学习如何关联输入层与输出层的要求。

因为结果是准确的,根据结果也就是最后一层,从后往前逐步调整中间层的权重,这就是反向传播。

  • 全局关联抽象:前一层神经网络所应该得到的值,可以通过后一层神经网络(所应该得到的)的值和它们之间的权重的乘积来确定。这样,后面的层就可以告诉前面的层它们需要什么样的信号,从而最终找到与输出的相关性。这种交叉通信成为反向传播。
    在这里插入图片描述

  • 底线: 预测结果是输入数据的加权和。学习算法对与输出相关的输入所对应的权重以向上(向1的方向)压力作为奖励。而对于与输出不相关 的输入所对应的权重以向下的(向0 的方向)压力作为惩罚。输入数据的加权和通过将无关输入所对应的权重项推向0,可以找到输入和输出之间存在完美相关性。

  • 深度学习的最大弱点:过拟合。所有的权值都有误差。如果某个特性的权重配置意外地在预测数据集和输出数据集之间建立了完美的吻合(比如是的error == 0),而此时并没有给真正最重要的输入赋予最大的权重,那么神经网络将停止学习。深度学习所面临的最大挑战是训练你的神经网络去泛化而不仅仅是记忆。

  • 选择性相关的秘密:通过再任何中间节点为负时关闭它,你能够允许神经网络选择性接受来自不同输入的相关性。这对于两层神经网络来说是不可能的,因此,三层网络具有更强的能力。

创建具有相关性的“中间数据” 是深度学习的本质。深度学习就是创建从数据集到预测结果的中间层,中间层中的每个节点表示输入数据中不同类型的组合模式是否存在。

良好的神经网络结构能够引导信号,使相关性易于发现。优秀的神经网络结构还可以过滤噪声以防止过拟合。

2.4 正则化

正则化:正则化是用于机器学习模型中鼓励泛化的方法的一个子集,通常通过提高模型学习训练数据的细粒度细节的难度来实现。
行业标准正则化:dropout
方法:在训练过程中随机关闭神经元(设置为0)。
dropout为什么有效:通过每次随机训练神经网络中的一小部分,dropout能够让一张大网络向小网络一样进行学习 – 较小的神经网络不会发生过拟合。

2.5 激活函数

激活函数式在预测过程中应用于某一层神经元的函数。
在这里插入图片描述
约束1:函数必须连续且定义域是无穷的。
约束2:好的激活函数式单调的,不会改变方向。
约束3:好的激活函数是非线性的(扭曲或反转)。
约束4:合适的激活函数(及其导数)应该可以高效计算。

2.5.1 标准输出层激活函数

你的选择取决于你想预测什么。
类型1:预测原始数据值(没有激活函数)
类型2:预测不相关的“是” 或 “否”的概率(sigmoid)
类型3:预测 “哪一个”的概率(softmax)

3. CNN卷积神经网络概论:关于边与角的神经学习

在多个位置复用权重:如果需要在多个位置检查相同的特征,请使用相同的权重!
卷基层:化整为0,将许多小线性神经元层在各处重用。
卷积层背后的核心思想是,它不是一个大的、稠密的线性神经元层,在其中从每个输入到每个输出都有连接,而是由很多非常小的线性层构成,每个线性层通常拥有少于25个输入和一个输出,我们可以在任意输入位置使用它。每个小神经元层被称为卷积核,但它实际上只是一个很小的线性层,接收少量的输入并作为单一输出。
在这里插入图片描述
复用权重是深度学习中最重要的创新之一。

网络结构的诀窍:当神经网络需要在多处使用相同的想法时,应试着在这些地方使用相同的权重。这样做会使哪些权重有更多的样本可以学习并提高泛化能力,从而让权重更智能。

在过去5年(或更久远一些),深度学习领域的许多重大发展都是对这一理念的重复。卷积神经网络、递归神经网络(RNN)、词向量,以及最近发表的胶囊网络都可以通过这个概念理解。当你知道一个网络在很多地方都需要用到相同的思想时,可以强迫它在这些地方使用相同的权重。

想想你需要了解什么才能确定图像中是否有一只猫。首先,你需要了解颜色的概念,然后了解线、边、角和简单的形状,还有与猫对应的这些低层次特征的组合。很可能神经网络也需要学习(像线和边)这些较低层次的特征,而检测线和边的智能在权重中学习。

4. NLP能够理解自然语言中的神经网络:国王 - 男人 + 女人 = ?

未完待续。。。

学习建议

  1. 开始学习 PyTorch。本书的教程搭建的深度学习框架与 PyTorch很相似。
  2. 开始另一个深度学习课程。在YouTube上找擅长深度学习的大学或AI实验室:Stanford、MIT、Oxford、Montreal、NYU,或者选修 fast.ai 或 Udacity的项目。
  3. 找一本偏数学的深度学习材料。推荐 Deep Learning(MIT 出版社 2016),by Ian Goodfellow, Yoshua Bengio, Aaron Courville.
  4. 开设博客讲授深度学习. 写得好的话,会出现在Reddit或Hacker News上。
  5. Twitter 上接触世界各地的是最多的,追踪最新进展。
  6. 实现学术论文: Twitter + 你的博客 = 学术论文教程。
  7. 设法使用GPU。 GPU 可以让训练速度加快 10 ~ 100 倍已经不是秘密,但是这意味着你可以把迭代自己的想法的速度提高100倍。 我在职业生涯中犯过的错误之一就是太晚开始用 GPU。 不妨想 NVIDIA 买一块 GPU,或者用 Google Colab notebooks可以访问免费的 K80s。
  8. 成为从业者:你越有时间做深度学习,你学得越快。
  9. 参与开源项目:在AI领域建立关系网和提升职业发展的方式是成为开源项目的核心开发者。大型的深度学习框架PyTorch, TensorFlow, Keras.
  10. 发展你的本地社区. 我真正学会深度学习是因为我喜欢和其他也在学习的朋友一起玩。

以上是关于深度学习图解 Andrew W· Trask 读后感的主要内容,如果未能解决你的问题,请参考以下文章

《Andrew Ng深度学习》笔记2

《Andrew Ng深度学习》笔记1

深度学习 吴恩达 Andrew Ng

《Andrew Ng深度学习》笔记4

论文笔记-andrew Ng 深度学习 心电论文

《Andrew Ng深度学习》笔记5