第一章:
1.1节
1.专家系统(expert system)
1.2节
1.logistic regression是现代机器学习的“hello world"
2.logistic regression是分类而不是回归
3.kernel method(核方法)中最有名的是SVM,1995年发表
4.SVM中术语:决策边界(decision boundary),间隔最大化(maximizing the margin)
5.SVM的缺点:很难拓展到大型数据集,在图形分类等感知问题上的效果也不好,SVM是一种比较浅层的方法,因此要想将其应用于感知问题,首先需要手动提取出有用的表示(这
叫作特征工程),这一步骤很难,而且不稳定。
6.梯度提升机(gradient boosting machine)与随机森林相似也是将弱预测模型集成的机器学习技术,它使用了梯度提升方法,通过迭代的训练新模型来专门解决之前模型的弱点,从而改进任何机器学习模型的效果。
7.Kaggle竞赛
8.ImageNet挑战赛
9.深度学习的优点:解决问题更加简单,因为它将特征工程完全自动化,这是机器学习工作流程中最关键的一步。
10.要想在如今的应用机器学习中取得成功,你应该熟悉这两种技术:梯度提升机,用于浅层学习问题;深度学习,用于感知问题。
1.3节
1.深度学习的改进:更好的激活函数(activation function)、更好的权重初始化方案(weight-initialization scheme)、更好的优化方案(optimization scheme)
********************************************************************************************************************
第二章:
2.1节
1.神经玩网络的核心组件是层,这是一个数据处理模块,可以看作是数据过滤器,使得输出的数据变得更加有用。
2.数据蒸馏(data distillation)
3.想要训练网络,需要选择编译步骤的三个参数。
3.1损失函数(loss function):网络如何衡量在训练数据上的性能,即网络如何朝着正确的方向前进。
3.2优化器(optimizer):基于训练数据和损失函数来更新网络的机制。
4.在训练和测试过程中需要监控的指标(metric):本例只关心精度(手写数字)
5.训练精度和测试精度之间的差距是过拟合(overfit)造成的。
2.2节
1.张量(tensor)是很多机器学习系统的数据结构,张量的维度(dimension)通常叫作轴(axis)
2.仅含有一个数字的张量叫做标量(scalar,也叫标量张量、零维张量)
3.数字组成的数组叫做向量(vector)或一维张量(1D张量),注意:不要吧5D向量(5个元素)和5D张量弄混淆
4.向量组成的数组是矩阵(matrix)
5.张量有三个关键属性来定义:轴的个数(阶)、形状(注意:标量的形状为空,即())、数据类型(python—dtype)
6.样本轴、特征轴
2.3节
1.relu(x)是max(x,0)
2.如何两个不同形状的张量相加,会发生广播(broadcast),即小的张量匹配较大张量的形状。
3.广播包含以下两步:
(1) 向较小的张量添加轴(叫作广播轴),使其 ndim 与较大的张量相同。
(2) 将较小的张量沿着新轴重复,使其形状与较大的张量相同。
4.两个向量之间的点积是一个标量,而且只有元素个数相同的向量之间才能做点积
5.张量变形,一种特殊的张量变形是转置(transposition)
2.4节
1.什么是每个神经层的权重(weight)或可训练参数(trainable parameter)
2.梯度(gradient)是张量运算的导数,它使导数这一概念向多元函数导数的推广。
3.随机梯度下降SGD(stochastic gradient descent)、小批量随机梯度下降MSGD(mini-batch stochastic gradient descent)
4.(stochastic 是 random在科学上的同义词 )
5.真SGD(每次迭代只抽取一个样本和目标)、批量SGD(每一次迭代在所有数据上运行)
6.SGD 有多种变体,其区别在于计算下一次权重更新时还要考虑上一次权重更新,而不是仅仅考虑当前梯度值,比如带动量 SGD、 Adagrad、 RMSProp 等变体。这些变体被称为优化方法(optimization method)或优化器(optimizer)。
7.SGD的两个问题:收敛速度、局部极小点。
8.动量方法可以解决以上两个问题:有一种有用的思维图像,就是将优化过程想象成一个小球从损失函数曲线上滚下来。如果小球的动量足够大,那么它不会卡在峡谷里,最终会到达全局最小点。
9.动量方法的实现过程是每一步都移动小球,不仅要考虑当前的斜率值(当前的加速度),还要考虑当前的速度(来自于之前的加速度)。这在实践中的是指,更新参数 w 不仅要考虑当前的梯度值,还要考虑上一次的参数更新,
10.反向传播从最终损失值开始,从最顶层反向作用至最底层,利用链式法则计算每个参数对损失值的贡献大小。
11.符号微分(symbolic differentiation)
12.轮次(epoch)
******************************************************************************************************************************
第三章
3.1节
1.密集连接层[densely connected layer,也叫全连接层(fully connected layer)或密集层(dense layer),对应于 Keras 的 Dense 类]。
2.序列数据保存在形状为 (samples, timesteps, features) 的 3D 张量中,通常用循环层(recurrent layer,比如 Keras 的 LSTM 层)来处理。
3.层兼容性(layer compatibility)
4.双分支网络(two-branch)
5.多头网络(multihead)
6.Inception模块
7.如何选择正确的损失函数?对于二分类问题,可以使用二元交叉熵(binary crossentropy);对于多分类可以使用分类交叉熵(categorical crossentropy);对于回归问题,可以使用均方误差(mean-squared error )
3.2节
1.个人觉得Keras最大的优点是具有用户友好的API,便于快速开发深度学习模型的原型。
2.生成式对抗网络、神经图灵机是什么?
3.Keras定义模型有两种方法:一种是使用 Sequential 类(仅用于层的线性堆叠,这是目前最常见的网络架构),另一种是函数式 API(functional API,用于层组成的有向无环图,让你可以构建任意形式的架构)。
3.4节
1.隐藏单元(hidden unit),什么是隐藏单元,隐藏单元的作用是什么?
2.什么是激活函数?为什么要使用激活函数?
Related link for what is 激活函数:https://blog.csdn.net/program_developer/article/details/78704224
3.5节
1.训练数据向量化、测试数据向量化
2.标签向量化
3.分类编码(catagorical encoding)
4.中间层维度足够大的重要性
3.6节
1.logistic 回归不是回归算法,而是分类算法。
2.均方误差(MSE mean squared error)
3.平均绝对误差(MAE mean absolute error)
4.K折验证(可用数据很少)
*******************************************************************************************************************************
第四章
4.1节
1.机器学习的四个分支:监督学习、无监督学习、自监督学习、强化学习
2.降维(dimensionality reduction)和聚类是众所周知的无监督学习方法。
3.自监督学习是监督学习中的一个特例、自监督学习是没有人工标注的标签的监督学习。
4.强化学习的时代已经到来或者即将到来。
5.多标签分类
4.2节
1.机器学习的目的是得到可以泛化(generalize)的模型,即在前所未见的数据上表现很好的模型,而过拟合则是核心难点。
2.在训练数据上训练模型,在验证数据上评估模型。一旦找到了最佳参数,就在测试数据上最后测试一次。为什么要增加验证集?
3.评估模型的注意事项:数据代表性、时间箭头、数据冗余(要确保训练集和验证集这件没有交集)
4.3节
1.神经网络的数据预处理:1.向量化、2.值标准化、处理缺失值、特征提取
2.为了让网络的学习变得更容易,输入数据应该具有以下特征:1.取值较小:大部分值都应该在0~1之间、2.同质性:所有特征的取值应该在大致相同的范围内。
4.4节
1.优化(optimization)与泛化(generalization)、欠拟合(underfit)和过拟合(overfit)
2.正则化(regularization)
3.防止过拟合的最简单的方法是减少模型大小,即减少模型中可学习参数的个数(这由层数和每层的单元决定)
4.始终牢记:深度学习模型通常都很擅长拟合训练数据,但真正的挑战在于泛化,而不是拟合
5.如果网络的记忆资源有限,则无法轻松学会这种映射。因此, 为了让损失最小化,网络必须学会对目标具有很强预测能力的压缩表示,这也正是我们感兴趣的数据表示。同时请记住,你使用的模型应该具有足够多的参数,以防欠拟合,即模型应避免记忆资源不足。在容量过大与容量不足之间要找到一个折中。
6.添加权重正则化:其实现方法就是向网络损失函数中添加与较大权重值相关的成本
7.简单模型比复杂模型更不容易过拟合
8.简单模型(simple model ):参数值分布的熵更小的模型(或者参数更少的模型)。
9.什么是熵?Related link: https://blog.csdn.net/xierhacker/article/details/53463567
10.权重正则化有两种; 1.L1正则化:添加的成本与权重系数的绝对值[权重的 L1 范数(norm)]成正比。、2.L2 正则化(L2 regularization):添加的成本与权重系数的平方(权重的 L2 范数)成正比。神经网络的 L2 正则化也叫权重衰减(weight decay)。不要被不同的名称搞混,权重衰减与 L2 正则在数学上是完全相同的。、
11.代码清单4-6中的weight_coefficient_value 是什么?
12.dropout正则化:神经网络最有效也是最常用的正则化方法之一。
13.dropout 比率(dropout rate)是被设为 0 的特征所占的比例,通常在 0.2~0.5范围内
4.5节
1.机器学习的通用流程:
1.定义问题,搜集数据集、
2.选择衡量成功的指标、
3.确定评估方法、
4.准备数据、
5.开发比基准更好的模型、
6.扩大模型规模:开发过拟合的模型、
7.模型正则化与调节超参数
2.非平稳问题(nostationary problem)(例如不同季节的服饰是不一样的)