元数据
Python深度学习(第2版)
- 书名: Python深度学习(第2版)
- 作者: 弗朗索瓦·肖莱 著
- 简介: 本书由流行深度学习框架Keras之父弗朗索瓦·肖莱执笔,通过直观的解释和丰富的示例帮助你构建深度学习知识体系。作者避免使用数学符号,转而采用Python代码来解释深度学习的核心思想。全书共计14章,既涵盖了深度学习的基本原理,又体现了这一迅猛发展的领域在近几年里取得的重要进展,包括Transformer架构的原理和示例。读完本书后,你将能够使用Keras解决从计算机视觉到自然语言处理等现实世界的诸多问题,包括图像分类、图像分割、时间序列预测、文本分类、机器翻译、文本生成等。
- 出版时间 2022-08-01 00:00:00
- ISBN: 9787115597175
- 分类: 计算机-编程设计
- 出版社: 人民邮电出版社有限公司
高亮划线
第4章 神经网络入门:分类与回归
-
📌 方误差(mean squared error,MSE) ^3300028868-12-31006-31040
- ⏱ 2023-04-09 10:09:35
-
📌 :平均绝对误差(mean absolute error,MAE) ^3300028868-12-31112-31170
- ⏱ 2023-04-09 10:09:45
第5章 机器学习基础
-
📌 事实证明,深度学习泛化的本质与深度学习模型本身关系不大,而与现实世界中的信息结构密切相关。 ^3300028868-13-9474-9519
- ⏱ 2023-04-09 10:25:15
-
📌 在所有可能的28×28 uint8数组组成的父空间中,真实的手写数字只占据一个很小的子空间。更重要的是,这个子空间不仅仅是父空间中随机散布的一组点,而是高度结构化的。 ^3300028868-13-9752-9874
- ⏱ 2023-04-09 10:46:20
-
📌 用术语来说,手写数字在28×28 uint8数组的可能性空间中构成了一个流形(manifold)。这个词看起来很高深,但其概念非常直观。“流形”是指某个父空间的低维子空间,它局部近似于一个线性空间(欧几里得空间)。例如,平面上的光滑曲线就是二维空间中的一维流形,因为对于曲线上的每一点,你都可以画出一条切线(曲线上的每一点都可以用直线来近似)。三维空间中的光滑表面是一个二维流形,以此类推。更一般地说,流形假说(manifold hypothesis)假定,所有自然数据都位于高维空间中的一个低维流形中,这个高维空间是数据编码空间。这是关于宇宙信息结构的一个非常有力的表述。据我们目前所知,这个表述是准确的,这也是深度学习有效的原因。它不仅适用于MNIST手写数字,也适用于树木形态、人脸、人声甚至自然语言。流形假说意味着:机器学习模型只需在其输入空间中拟合相对简单、低维、高度结构化的子空间(潜在流形);在其中一个流形中,总是可以在两个输入之间进行插值(interpolate),也就是说,通过一条连续路径将一个输入变形为另一个输入,这条路径上的所有点都位于流形中。能够在样本之间进行插值是理解深度学习泛化的关键。 ^3300028868-13-10518-11283
- ⏱ 2023-04-09 10:46:40
-
📌 如果你处理的是可插值的数据点,那么你可以开始理解前所未见的点,方法是将其与流形中相近的其他点联系起来。换句话说,你可以仅用空间的一个样本来理解空间的整体。你可以用插值来填补空白。请注意,潜在流形中的插值与父空间中的线性插值不同, ^3300028868-13-11405-11604
- ⏱ 2023-04-09 10:57:11
-
📌 至关重要的是,虽然深度学习实现泛化的方法是对数据流形的学习近似进行插值,但如果认为插值就是泛化的全部,那你就错了。它只是冰山一角。插值只能帮你理解那些与之前所见非常接近的事物,即插值可以实现局部泛化(local generalization)。 ^3300028868-13-12010-12184
- ⏱ 2023-04-09 10:59:42
-
📌 就其本质而言,深度学习就是取一条大而复杂的曲线(流形)并逐步调节其参数,直到曲线拟合了一些训练数据点。 ^3300028868-13-13180-13231
- ⏱ 2023-04-09 11:07:28
-
📌 基于模型在验证集上的表现来调节模型配置,很快会导致模型在验证集上过拟合,即使你并没有在验证集上直接训练模型。造成这一现象的核心原因是信息泄露(information leak)。每次基于模型在验证集上的表现来调节模型超参数,都会将验证数据的一些信息泄露到模型中。如果对每个参数只调节一次,那么泄露的信息很少,验证集仍然可以可靠地评估模型。但如果多次重复这一过程(运行一次实验,在验证集上评估,然后据此修改模型),那么会有越来越多的验证集信息泄露到模型中。 ^3300028868-13-16269-16577
- ⏱ 2023-04-09 11:28:02
-
📌 带有打乱数据的重复K折交叉 ^3300028868-13-20202-20215
- ⏱ 2023-04-09 11:31:16
-
📌 具体做法是多次使用K折交叉验证,每次将数据划分为K个分区之前都将数据打乱。最终分数是每次K折交叉验证分数的平均值。 ^3300028868-13-20329-20386
- ⏱ 2023-04-09 11:32:31
-
📌 为了实现完美的拟合,你必须首先实现过拟合。由于事先并不知道界线在哪里,因此你必须穿过界线才能找到它。在开始处理一个问题时,你的初始目标是构建一个具有一定泛化能力并且能够过拟合的模型。得到这样一个模型之后,你的重点将是通过降低过拟合来提高泛化能力。 ^3300028868-13-22273-22396
- ⏱ 2023-04-10 09:19:12
-
📌 优化器、模型权重初始值的分布、学习率或批量大小。所有这些参数都是相互依赖的,因此,保持其他参数不变,调节学习率和批量大小通常就足够了。 ^3300028868-13-22962-23029
- ⏱ 2023-04-10 10:07:00
-
📌 请记住,任何情况下应该都可以实现过拟合。 ^3300028868-13-26996-27016
- ⏱ 2023-04-10 10:21:23
-
📌 特征工程是指将数据输入模型之前,利用你自己关于数据和机器学习算法(这里指神经网络)的知识对数据进行硬编码的变换(这种变换不是模型学到的),以改善算法的效果。 ^3300028868-13-29084-29169
- ⏱ 2023-04-10 10:39:14
-
📌 正则化方法是一组最佳实践,可以主动降低模型完美拟合训练数据的能力,其目的是提高模型的验证性能。它之所以被称为模型的“正则化”,是因为它通常使模型变得更简单、更“规则”,曲线更平滑、更“通用”。因此,模型对训练集的针对性更弱,能够更好地近似数据的潜在流形,从而具有更强的泛化能力。 ^3300028868-13-31309-31448
- ⏱ 2023-04-10 11:04:17
-
📌 给定训练数据和网络架构,多组权重值(多个模型)都可以解释这些数据。简单模型比复杂模型更不容易过拟合。这里的简单模型是指参数值分布的熵更小的模型(或参数更少的模型 ^3300028868-13-35674-35839
- ⏱ 2023-04-10 11:30:59
-
📌 注意,因为只在训练时添加这个惩罚项,所以该模型的训练损失会比测试损失大很多。 ^3300028868-13-37429-37493
- ⏱ 2023-04-10 11:40:37
-
📌 权重正则化更常用于较小的深度学习模型。大型深度学习模型往往是过度参数化的,限制权重值大小对模型容量和泛化能力没有太大影响。在这种情况下,应首选另一种正则化方法:dropout。 ^3300028868-13-38297-38385
- ⏱ 2023-04-10 12:33:11
-
📌 ”dropout的核心思想是在层的输出值中引入噪声,打破不重要的偶然模式(也就是Hinton所说的“阴谋”)。如果没有噪声,那么神经网络将记住这些偶然模式。 ^3300028868-13-40099-40177
- ⏱ 2023-04-10 12:37:37
第6章 机器学习的通用工作流程
-
📌 你的训练数据不能代表生产数据。这是一项大错——欢迎来到机器学习苦海。 ^3300028868-14-6815-6856
- ⏱ 2023-04-10 12:58:17
-
📌 如果生产数据的属性会随时间发生变化,那么就会出现概念漂移,从而导致模型精度逐渐下降。 ^3300028868-14-7211-7253
- ⏱ 2023-04-10 13:00:21
-
📌 6-1 为模型正确选择最后一层激活函数和损失函数[插图] ^3300028868-14-13883-13948
- ⏱ 2023-04-10 13:18:00
-
📌 一旦开发出令人满意的模型配置,你就可以在所有可用数据(训练数据和验证数据)上训练最终的生产模型,然后在测试集上最后评估一次。如果模型在测试集上的性能比在验证数据上差很多,那么这可能意味着你的验证流程不可靠,或者在调节模型参数时在验证数据上出现了过拟合。在这种情况下,你可能需要换用更可靠的评估方法,比如重复K折交叉验证。 ^3300028868-14-15839-15999
- ⏱ 2023-04-10 13:24:10
-
📌 权重剪枝(weight pruning)。权重张量中的每个元素对预测结果的贡献并不相同。仅保留那些最重要的参数,可以大大减少模型的参数个数。 ^3300028868-14-20885-20962
- ⏱ 2023-04-10 13:39:11
-
📌 权重量化(weight quantization)。深度学习模型使用单精度浮点(float32)权重进行训练。但是可以将权重量化为8位有符号整数(int8),这样得到的推断模型大小只有原始模型的四分之一,但精度仍与原始模型相当。 ^3300028868-14-21067-21240
- ⏱ 2023-04-10 13:39:38
第9章 计算机视觉深度学习进阶
-
📌 三项基本的计算机视觉任务:图像分类、图像分割、目标检测 ^3300028868-17-1854-1881
- ⏱ 2023-04-10 14:28:30
-
📌 除了这三项任务,计算机视觉深度学习还包括一些更小众的任务,比如图像相似度评分(评估两张图像的视觉相似程度)、关键点检测(精确定位图像中感兴趣的属性,如面部特征)、姿态估计、三维网格估计等。 ^3300028868-17-1927-2021
- ⏱ 2023-04-10 14:28:55
-
📌 以下两种图像分割。语义分割(semantic segmentation):分别将每个像素划分到一个语义类别,比如“猫”。如果图像中有两只猫,那么对应的像素都会被映射到同一个“猫”类别中,如图9-2所示。实例分割(instance segmentation):不仅按类别对图像像素进行分类,还要解析出单个的对象实例。对于包含两只猫的图像,实例分割会将“猫1”和“猫2”作为两个独立的像素类别,如图9-2所示。 ^3300028868-17-2586-2882
- ⏱ 2023-04-10 14:31:31
-
📌 在训练过程中,它使用当前数据批量的均值和方差来对样本进行规范化,而在推断过程中(可能没有足够大的有代表性的数据批量),它使用训练数据批量均值和方差的指数移动平均值。 ^3300028868-17-28350-28432
- ⏱ 2023-04-10 15:01:15
-
📌 深度可分离卷积(depthwise separable convolution) ^3300028868-17-31378-31425
- ⏱ 2023-04-10 14:44:30
-
📌 这种层对输入的每个通道分别进行空间卷积,然后通过逐点卷积(1×1卷积)将输出通道混合 ^3300028868-17-31468-31510
- ⏱ 2023-04-27 18:18:48
-
📌 显示每个滤波器所响应的视觉模式。实现方法是在输入空间中进行梯度上升:从一张空白输入图像开始,将梯度下降应用于卷积神经网络输入图像的值,其目的是让某个滤波器的响应最大化。这样得到的输入图像就是选定滤波器最大响应的图像。 ^3300028868-17-47162-47348
- ⏱ 2023-04-27 18:47:47
-
📌 model.predict(x)与model(x)的区别 ^3300028868-17-49989-50037
- ⏱ 2023-04-27 18:43:43
-
📌 predict()对数据进行批量循环(实际上,你可以通过predict(x, batch_size=64)指定批量大小) ^3300028868-17-50358-50438
- ⏱ 2023-04-27 18:41:55
-
📌 这意味着调用predict()可以扩展到非常大的数组。与之相对,model(x)则发生在内存中,无法扩展。 ^3300028868-17-50704-50783
- ⏱ 2023-04-27 18:42:16
-
📌 此外,predict()是不可微的,如果在GradientTape作用域内调用它,则无法检索它的梯度。如果你需要检索模型调用的梯度,那么应该使用model(x);如果你只需要出值,则应该使用predict(x)。 ^3300028868-17-50783-50972
- ⏱ 2023-04-27 18:44:41
