《python深度学习》笔记:第一部分:机器学习基础(第一章~第4章)

第一章:

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)(例如不同季节的服饰是不一样的)

  • 9
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值