Datawhale X 李宏毅苹果书 AI夏令营 入门班笔记2

目录

线性模型

群内答疑:

每日竞答:


线性模型

改变斜率,改变交叉点,但还是一条直线。

红色线,即分段线性曲线(piecewise linear curve)

专折点一样,斜率一样。

转折点越多,蓝色function越多。

曲线变peicewise linear.

用一条sigmoid曲线来逼近蓝色曲线。

当x很大时,趋近于c, 当x 很小时,趋近于0.

Sigmoid: S型的function.

调整w、b、c时:

w 改变斜坡坡度

b 改变左右移动

C 改变高度

分段线性曲线可以用常数项加一大堆的蓝色函数组合出来。

为了减少model bias:

重点:

用 j 来代表特征的编号。如果要考虑前 28 天,j 就是 1 到 28,就是28个feature.

每一个 i 就代表了一个蓝色的函数。

西塔统称未知的参数。

gradient公式:每一个未知的参数对L进行微分。33‘40’'课程

设有 1000 个参数,这个向量的长度就是 1000,这个向量也称为梯度,∇L 代表梯度。

L(θ0) 是指计算梯度的位置,是在 θ 等于 θ0 的地方。计算出 g 后,接下来跟新参数,θ 0 代 表它是一个起始的值,它是一个随机选的起始的值,代表 θ1 更新过一次的结果,θ 0 2 减掉微分 乘以,减掉 η 乘上微分的值,得到 θ 1 2,以此类推,就可以把 1000 个参数都更新了。

把 N 笔数据随 机分成一个一个的批量(batch),一组一组的。

每次更新一次参数叫update,所有batch都看一遍,叫epoch.

Learning rate, sigmoid, batch size 都是hyperparameter.

2 个 ReLU 才能够合成一个 Hard Sigmoid。

激活参数:Activation function

实验结果:

把sigmoid模型换为Relu模型。

特殊的这一天是除夕。

隐藏层(hidden layer)

Overfitting:Better on training data, worse on unseen data.

群内答疑:

  • 把参数组成一个向量,通过微分计算求得的向量叫作梯度

老师 想请教一下 函数中的多参数更新 是固定其他参数 计算loss对某个参数的微分得到梯度 再去做梯度下降吗?那在实际操作中多参数的更新是并行进行的吧?

答:同学你好,要对梯度这个东西有一个理解哈,对向量求微分的结果才叫梯度。

把所有的参数拼成一个向量,梯度下降法是求这个向量的梯度,也就是对这个向量中的所有参数同时求微分,然后同时更新所有参数的哈。

每日竞答:

  • 第一题:在机器学习中,机器的学习不是百分百正确,会有一定的偏差,这个偏差就是损失,我们一般会计算出这个损失函数,根据损失函数来判断好坏,那么请问在机器学习中,常见的loss函数有哪些?

常见的损失函数有:
(1)教材中提到:
平均绝对离差MAE,
均方误差MSE,
交叉熵:Cross-Entropy
(2)除此之外给大家补充:
IOU loss(交并比)
KL散度(相对熵)
Softmax函数

  • 第二题:第一章中提到机器学习就是让机器具备找一个函数的能力,那么问题来了,这个函数该怎么找呢?请结合你的阅读和理解,说一说找函数的步骤,给运营助教一点震撼吧

机器学习找函数的步骤:
根据教材归纳总结即可:
①写出带未知参数的函数,即模型
②定义损失
③解出最优(使损失达到最小)的参数

  • 第三题:运营助教想知道明天有没有雨,现在他手上有最近七天的天气温度数据(摄氏度),如果用这个做预测的话,请问这在机器学习中属于什么呢?
    首先:理解问题:预测明天是否下雨
    理解数据:最近七天的气温

    从问题角度来看,明天是否有雨属于类别变量,应该是分类。

    然而,实际上我们如果要做分类问题的话,训练集中至少还要有一列特征——是否有雨的标注,如果只有气温的数据,实际上是无法构建分类的模型的。

    因此,我们还需要再扩充一些数据,帮助我们更好地完成任务。

  • 运营助教通过书本知道了超参数的含义。但是他只看到了学习率,请你告诉他在机器学习中还有哪些参数是超参数呢?(拓展问题:各位模型的调参侠们,调参调参,调的又是哪些参数呢)

1.批量大小(Batch Size):
批量大小指的是每次更新模型参数时所使用的样本数量,它影响了梯度下降的方向。批量大小越大,模型的更新过程越稳定,但计算成本也相应增加;批量大小越小,虽然更新速度更快,但可能导致模型训练的不稳定。
2.正则化参数(Regularization Parameter):正则化参数用于防止模型过拟合,通过在损失函数中加入一个惩罚项来限制模型的复杂度。常见的正则化方法包括L1正则化和L2正则化。L1正则化倾向于生成稀疏模型,使某些权重为零;L2正则化则倾向于将权重压缩到接近于零的数值。

调参就是调整超参数,以便找到一组最佳的参数组合,使得模型的预测准确性和泛化能力达到最佳。
通过视频点击次数预测的案例可以解释机器学习的运作过程:
①模型定义:首先写出一个函数(如 y=b+wx1),其中 y 是要预测的目标,x1是特征(如前一天的观看次数),w和 b 是需要通过数据训练来确定的参数。
②损失函数:定义一个损失函数(如均方误差),用于衡量模型预测值与真实值之间的误差。
③优化过程:通过梯度下降等方法,逐步调整 w 和 b 以最小化损失函数,最终找到一组最优的参数。
④在这个过程中,除了上面提到的 w 和 b 是模型的参数外,学习率等都是需要调节的超参数。

  • 运营助教在看书过程中,不太懂梯度下降的意思,请问你可以告诉他什么是梯度下降嘛,用自己的理解说一下。

梯度下降是一个用于优化的算法,它帮助我们找到可以使某个函数最小化的参数。在机器学习中,尤其是在训练模型时,梯度下降用来调整模型的参数,以便使预测结果与实际结果之间的误差尽可能小。

为了更好地理解梯度下降,我们可以把它想象成在山上寻找最低点的过程。假设你站在山上,你的目标是找到山谷的最低点。山的形状对应着我们要最小化的损失函数,山的每个位置(高度)都代表当前参数下的损失值。
①选择起点:你从山上的某个随机位置开始,这个位置就是你的初始参数。
②计算斜率(梯度):你环顾四周,估计一下哪边的坡度更陡。这相当于计算损失函数在当前参数值下的斜率(梯度)。如果坡度是负的,说明向前走会让你往下走(减少损失),如果坡度是正的,说明向后走更好。
③调整步伐:根据坡度的大小和方向,你决定迈出多大的一步。步伐的大小取决于学习率——如果学习率大,你走的步子会大,可能会很快走到一个比较低的地方;如果学习率小,你走的步子会小,虽然更稳,但可能会很慢。
④继续调整:你不断重复这个过程:计算斜率,调整步伐,向坡度更低的方向移动,直到最终到达一个位置,那里坡度几乎为零,这个位置就是一个局部最低点(损失函数最小化的点)。

  • 运营助教了解到在深度学习网络中Sigmoid函数作为激活函数存在一定的缺陷,请你告诉他存在哪些缺陷呢?

    周二晚第一题 sigmoid函数的缺陷

    梯度消失:神经网络中,参数的学习是一个链式求导的过程,使用sigmoid函数,当网络比较深的时候,可能会出现很多小于1的数相乘的情况,结果趋于0,参数无法获得有效的更新,称为梯度消失。

    除非是二分类问题,否则一般不使用sigmoid函数

  • 运营助教在训练模型的时候遇到了过拟合,请你告诉他什么是过拟合,如何解决呢?

什么是过拟合,如何解决:

①什么是过拟合:
过拟合是一种现象,判断它的依据是:模型在验证集和训练集表现都很好,而在测试集表现却很差。
其实就是模型把训练集的样本学的太好了,把训练集中一些细枝末节的,不属于总体特征的信息学习到了;把个性当作了共性。

②产生过拟合的原因有:
1.训练数据不足
2.模型复杂度过高
3.样本噪声干扰过大,使模型把噪声误认为特征 
4.建模时所做的假定实际并不成立
5.对于神经网络模型:迭代次数过多

③解决方法:
1. 对模型:使用dropout、早停、正则化等方法改进模型;或者换成复杂度较低的模型。
2. 对数据:扩充训练集,数据增强、使用交叉验证

  • 运营助教英文有点差,今天遇到了一堆英文,请问dropout是什么呀?

Dropout 是一种正则化技术,用于防止神经网络的过拟合。在训练过程中,Dropout 会随机将一部分神经元的输出置为零,这相当于在每次训练时创建一个新的神经网络子集。这种方法通过减少神经元之间的相互依赖性,提高模型的泛化能力,进而提升在未见过的数据上的表现。

  • 还有什么是batch normalization呢?

周三晚第二题
什么是Batch Normalization:

Batch Normalization 是一种对神经网络中间层输入进行标准化的技术。通过将每一层的输入重新调整为均值为 0、方差为 1 的分布,Batch Normalization 能够加速训练过程,减少梯度消失或梯度爆炸的情况。同时,它还具有一定的正则化效果,减少了对初始权重和学习率的敏感性,使得模型更稳定。

如何应用 Batch Normalization:
应用 Batch Normalization 通常是在每一层的激活函数之前或之后。在具体实现中,首先对输入进行标准化(减去均值除以标准差),然后引入两个可训练的参数(缩放参数和偏移参数),从而使得网络能够自己学习到最佳的标准化范围。这种技术常见于深度学习框架中,如 TensorFlow 和 PyTorch,使用时只需调用相关的 API 即可轻松实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值