Datawhale X 李宏毅苹果书 AI夏令营 Task2笔记:了解线性模型

Datawhale X 李宏毅苹果书 AI夏令营 Task2笔记:了解线性模型

1.线性模型

标量形式:其中x称为特征,b 称为偏置(bias)
在这里插入图片描述向量形式:其中w 称为权重(weight),w=(w1;w2;…;wd)在这里插入图片描述
优点:解释性好,从系数可以看出变量影响程度

1.1用线性模型做回归:

线性回归目标函数:f(x) = wx + b,收集n个序列样本:X = x1,x2,x3…xn,使得f(x)约为y
最常用的性能度量:均方误差
平均绝对误差:估测的值跟实际的值之间的差距,其实有不同的计算方法,计算 y 与 yˆ 之间绝对值的差距,如式所示,称为平均绝对误差(Mean Absolute Error,MAE)。

                        e = |yˆ − y|

均方误差:如果算 y 与 yˆ 之间平方的差距,如式所示,则称为均方误差(Mean SquaredError,MSE)。

                        e = (ˆy  − y)2

目的:优化误差
回归的输出是连续的实数,在实数空间里选择一个实数
考虑了比较多的信息,在训练数据上应该要得到更好的、更低的损失。

2.分段线性模型

2.1 引出分段线性模型

无论如何改 w 跟 b,Hard Sigmoid 函数(蓝色线)永远都是一条直线,永远都是 x1 越大,y 就越大。但现实中也许在 x1 小于某一个数值的时候,前一天的观看次数跟隔天的观看次数是成正比;也许当 x1 大于一个数值的时候,x1 太大,前天观看的次数太高,隔天观看次数就会变少;也许 x1 跟 y 中间,有一个比较复杂的、像红色线一样的关系。但不管如何设置 w 跟 b,永远制造不出红色线,永远无法用线性模型制造红色线。显然线性模型有很大的限制,这一种来自于模型的限制称为模型的偏差,无法模拟真实的情况。

红色的曲线(红色线,即分段线性曲线(piecewise linear curve))可以看作是一个常数再加上一群 Hard Sigmoid 函数(蓝色线)(其可以写成(b + wx1))。Hard Sigmoid 函数的特性,当 x 轴的值小于某一个阈值(某个定值)的时候,大于另外一个定值阈值的时候,中间有一个斜坡。所以它是先水平的,再斜坡,再水平

2.2 如何形成红色的曲线(即分段线性曲线(piecewise linear curve))

形成方法:蓝线 1 函数斜坡的起点,设在红色函数的起始的地方,第 2 个斜坡的终点设在第一个转角处,让第 1 个蓝色函数的斜坡和红色函数的斜坡的斜率是一样的,这个时候把 0+1 就可以得到红色曲线左侧的线段。
分段线性曲线的特性:分段线性曲线可以用常数项加一大堆的蓝色函数组合出来,只是用的蓝色函数不一定一样。要有很多不同的蓝色函数,加上一个常数以后就可以组出这些分段线性曲线。如果分段线性曲线越复杂,转折的点越多,所需的蓝色函数就越多。

在这里插入图片描述

2.21 分段线性曲线的使用

可以用分段线性曲线去逼近任何的连续的曲线
在这里插入图片描述

2.3 分段线性函数逼近连续的函数

过程:
Sigmoid 函数---->Hard Sigmoid---->分段线性函数---->连续的函数

详细过程:
用 Sigmoid 函数来逼近 Hard Sigmoid

Sigmoid 函数的表达式为在这里插入图片描述,调整这个表达式的 b、w 和 c 可以制造各种不同形状的 Sigmoid 函数,用各种不同形状的 Sigmoid函数去逼近 Hard Sigmoid 函数,如果改 w,就会改变斜率,就会改变斜坡的坡度。如果改了 b,就可以把这一个 Sigmoid 函数左右移动;如果改 c,就可以改变它的高度。所以只要有不同的 w 不同的 b 不同的 c,就可以制造出不同的 Sigmoid 函数,把不同的Sigmoid 函数叠起来以后就可以去逼近各种不同的分段线性函数分段线性函数可以拿来近似各种不同的连续的函数。

2.4 找出更有灵活性的函数

2.41 整体思想

:我们可以不只用一个特征 x1,可以用多个特征代入不同的 c, b, w,组合出各种不同的函数,从而得到更有灵活性(flexibility)的函数。


2.42 具体实现

1) 未知参数: x1 代表前一天的观看次数,x2 代表前两天的观看次数,x3 代表前三天的观看次数,每一个 i 就代表了一个蓝色的函数( Hard Sigmoid 函数)。每一个蓝色的函数都用一个 Sigmoid 函数来比近似它,1,2,3 代表有3个 Sigmoid 函数。
wij 代表在第 i 个 Sigmoid 里面,乘给第 j 个特征的权重,
在这里插入图片描述
将其改成线性代数比较常用的表示方式为:r = b + W x,r1, r2, r3 分别通过 Sigmoid 函数得到 a1, a2, a3,即a = σ®,最终,用线性代数来表示:
在这里插入图片描述
接下来,未知参数“拼”成一个向量,这个长的向量直接用 θ 来表示。所有的未知的参数,一律统称 θ。

在这里插入图片描述
2) 定义损失:
先给定 θ 的值,即某一组 W, b, cT, b 的值,再计算一下跟真实的标签之间的误差 e。把所有的误差通通加起来,就得到损失。
3) 优化
要找到 θ 让损失越小越好,一开始要随机选一个初始的数值 θ0。接下来计算每一个未知的参数对 L 的微分,得到向量 g,即可以让损失变低的函数
在这里插入图片描述

∇L 代表梯度,会把 N 笔数据随机分成一个一个的批量(batch),一组一组的。其中 B 笔数据一组,一组叫做批量。本来是把所有的数据拿出来算一个损失,现在只拿一个批量里面的数据出来算一个损失。根据 L1 算出梯度,再更新参数,再取下一个批量算出 L2,所以并不是拿 L 来算梯度,实际上是拿一个批量算出来的 L1, L2, L3 来计算梯度。把所有的批量都看过一次,称为一个回合(epoch),每一次更新参数叫做一次更新
在这里插入图片描述
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3.模型变形

其实还可以对模型做更多的变形,不一定要把 Hard Sigmoid 换成 Soft Sigmoid。HardSigmoid 可以看作是两个修正线性单元(Rectified Linear Unit,ReLU)的加总,想要用 ReLU,就把 Sigmoid 的地方,换成max(0, bi + wijxj )。 max(0, b + wx1) 是指看 0 跟 b + wx1 谁比较大,比较大的会被当做输出。在机器学习里面,Sigmoid 或 ReLU 称为激活函数(activation function),使用多个ReLU 作为模型,训练数据上损失就会更小,但是在没看过的数据上,损失没有变化。在训练数据和测试数据上的结果是不一致的,这种情况称为过拟合(overfitting)。
Sigmoid 或 ReLU 称为神经元(neuron),很多的神经元称为神经网络(neural network)。

4.机器学习框架

我们会有一堆训练的数据以及测试数据如式 (1.30) 所示,测试集就是只有 x 没有 y。
在这里插入图片描述
训练集就要拿来训练模型,训练的过程是 3 个步骤。

  1. 先写出一个有未知数 θ 的函数,θ 代表一个模型里面所有的未知参数。fθfθ(x) 的意思就是函数叫 fθfθ(x),输入的特征为 x,;
  2. 定义损失,损失是一个函数,其输入就是一组参数,去判断这一组参数的好坏;
  3. 解一个优化的问题,找一个 θ,该 θ 可以让损失的值越小越好。让损失的值最小的 θ 为θ∗,即
  • 16
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值