Datawhale X 李宏毅苹果书 AI 夏令营 —— Part 03 @深度学习 @AI

了解线性模型

分段线性曲线

Linear models have severe limitation.
这一部分来自模型的限制称为模型的偏差(bias)
举个例子,下图中的红线,是由多条线段组成的锯齿状图像,即分段线性曲线(Piecewise Linear Curve),无论我们怎么改变线性模型的参数 b 和 w,都无法得到红色曲线。这时候,我们需要引入一种更复杂的模型。
在这里插入图片描述
我们可以把红色的曲线拆分为一组线段的和再加上一个常量(有些类似于偏置项 b)。
如下图 1 所示,比如蓝线 1 函数斜坡的起点,设在红色函数的起始的地方,斜坡的终点设在红色函数的第一个转角处,让蓝线 1 的斜坡和红色函数的斜坡的斜率是一样的,这个时候蓝线 0+1 就可以得到红色曲线的第一个斜坡的线段。
以此类推,如下图 2 所示,我们可以通过将所有蓝线相加得到红色函数,显而易见,如果分段线性曲线越复杂,转折的点越多,所需的蓝色函数就越多
图1
图2
只要有足够的蓝色函数把它加起来,就可以变成任何连续的曲线。比如下图中的类似于正弦函数的红线,就可以有足够多的红线下方的蓝线相加来表示。

在这里插入图片描述

定义函数

在这里插入图片描述
如上图所示,引入一个 Sigmoid 函数,图像上为往左趋向于 0,往右趋向于一个常量的一条曲线。
Sigmoid 函数的表达式为
y = 1 1 + e − x (1) y = \frac{1}{1 + e^{-x}}\tag{1} y=1+ex1(1)分段函数 Hard Sigmoid 的表达式为
y = c 1 1 + e − ( b + w x 1 ) (2) y = c\frac{1}{1+e^{-(b + w x_1)}}\tag{2} y=c1+e(b+wx1)1(2)代入 Sigmoid 函数后可得 y = c ∗ s i g m o i d ( b + w x 1 ) (3) y = c *sigmoid(b + w x_1)\tag{3} y=csigmoid(b+wx1)(3)
于是,将分段函数都近似为一个曲线函数,再相加,可得图中左下方的公式。
在这里插入图片描述
当我们面对的问题涉及多个特征 x 时,参数 wij 代表第 i 个 Sigmoid 里面,乘给第 j 个特征的权重。得到表达式如下
y = b + ∑ i c i ∗ s i g m o i d ( b i + ∑ j w i j x i ) (4) y = b + \sum_i c_i *sigmoid(b_i + \sum_j w_{ij} x_i)\tag{4} y=b+icisigmoid(bi+jwijxi)(4)

假设输入三个特征 x1、x2、x3,将函数从里往外依次展开,可以得到一种类似于全连接神经网络的可视化计算过程。
在这里插入图片描述
用线性代数来表示
y = b + c T s i g m o i d ( b + W x ) (5) y = b + \bold{c}^Tsigmoid(\bold{b}+\bold{W}\bold{x})\tag {5} y=b+cTsigmoid(b+Wx)(5)

Q: 优化是找一个可以让损失最小的参数,是否可以穷举所有可能的未知参数的值?
A:只有 w 跟 b 两个参数的前提之下,可以穷举所有可能的 w 跟 b 的值。
但是参数非常多的时候,就不能使用穷举的方法,需要梯度下降来找出可以让损失最低的参数。

Q:刚才的例子里面有 3 个 Sigmoid,为什么是 3 个,能不能 4 个或更多?
A:可以,Sigmoid 的数量是由自己决定的,而且 Sigmoid 的数量越多,可以产生出来的分段线性函数就越复杂。也可以不选择 Sigmoid ,换成 Hard Sigmoid。

定义损失与最优化

与线性回归相同的是,损失同样可以表达为
L = 1 N ∑ n e n (6) L = \frac{1}{N}\sum_ne_n \tag {6} L=N1nen(6)
优化同样是计算下式
θ ∗ = a r g min ⁡ θ L (7) \theta^* = arg \min_{\theta} L \tag {7} θ=argθminL(7)
其中 θ 包含除特征 x 外的所有参数。用线性代数表达优化过程为
θ 1 ← θ 0 − η g (8) \bold {\theta^{1}} ← \bold {\theta^{0}} - \eta \bold g \tag {8} θ1θ0ηg(8)

模型的变形——神经网络的生成

相比 Sigmoid,我们也可以用两个 ReLU 叠加为一个 Hard Sigmoid。在机器学习里面,Sigmoid 或 ReLU 称为激活函数(activation function)
Rectified Linear Uint (ReLU) 函数的表达式为
y = m a x ( 0 , b + w x 1 ) (9) y = max(0, b+wx_1) \tag {9} y=max(0,b+wx1)(9)其中,如果 max 返回两个函数中值更大的那个,即 b+wx > 0 时,返回 b+wx 的值;b+wx < 0 时,返回 0。
我们可以增加模型的深度,增加激活函数的数目,如图所示,每个激活函数 Sigmoid 或 ReLU 被称为一个神经元(neuron),很多的神经元称为神经网络(neural network)
在这里插入图片描述
参考资料:
[1] 李宏毅《深度学习详解》电子版:https://github.com/datawhalechina/leedl-tutorial
[2] 视频讲解:https://www.bilibili.com/video/BV1JA411c7VT?p=3&vd_source=3efd40f637f094c1da27b1a24b410e12

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值