[Datawhale X 李宏毅苹果书 AI夏令营]跟李宏毅学深度学习(入门)笔记-task2

目录

0. task2 任务 :1.2 了解线性模型

1. 线性模型

1.1 分段线性曲线

step1: function with unknown

step2: define loss from training data

step3:optimization

1.2 模型变形

1.3 关于激活函数

1.3.1 ReLU (Rectified Linear Unit)

1.3.2 Sigmoid

1.3.3 Tanh (Hyperbolic Tangent)

1.3.4 Softmax

2. 知识竞答

2.1 0828

2.2 0829

2.3 0830


0. task2 任务 :1.2 了解线性模型

对应《深度学习详解》目录

第一章 机器学习基础

1.2 线性模型

1. 线性模型

观察长期数据,有周期性增加,可以增加特征,模拟周期性循环。

7天循环模型:y=b+\sum_{j=1}^{7}w_{j}x_{j}      (前七天的数据都纳入考虑,不是只考虑前第七天的值)

表格理解:b的最优值50;w则是不同j值下的不同最优值;

                  前一天数据j=1,y=b+w1x1,权重w1最优值0.79;

                  前三天j=3,权重0.12;……;每一个特征xj都有一个对应的最优权重wj;

                  w正值正相关,负值负相关。

七天数据得出一个损失L:2017-2020 L=0.38k(已知数据损失)2021 L'=0.49k(未知数据损失)

28天循环模型:y=b+\sum_{j=1}^{28}w_{j}x_{j} 

56天循环模型:y=b+\sum_{j=1}^{56}w_{j}x_{j} 

结论:到一定天数后,损失无法再降低

线性模型 linear model :这些模型都是 权重w×特征x+偏置b

1.1 分段线性曲线

model bias :模型(形式上)的偏差(比如:分段线性不能用单一线性描述)

结论:只要有足够多的蓝色函数相加,就可以变成任何连续的曲线

step1: function with unknown

这里直接写出蓝色函数(Hard sigmoid)很难,选择用sigmoid函数逼近(调整参数c,b,w)

        sigmoid函数:y=\frac{c}{1+e^{-(b+wx_{1})}}=c\cdot sigmoid(b+wx_{1})

        c——高度height,b——偏移 shift,w——斜率 slopes

红色函数: y=b+\sum_{i}^{}c_{i}\cdot sigmoid(b_{i}+w_{i}x_{1})                           [y=b+wx的升级]

纳入j天的函数:y=b+\sum_{i}^{}c_{i}\cdot sigmoid(b_{i}+\sum_{j}^{}w_{ij}x_{j})         [y=b+\sum_{j}^{}w_{j}x_{j}的升级]

详细解析

        ①j—j天前的数据; i—一个蓝色函数

        ②  (b_{i}+\sum_{j}^{}w_{ij}x_{j})

        i=1,j=123                r_{1}=b_{1}+w_{11}x_{1}+w_{12}x_{2}+w_{13}x_{3}

        i=2,j=123                r_{2}=b_{2}+w_{21}x_{1}+w_{22}x_{2}+w_{23}x_{3}

        i=3,j=123                r_{3}=b_{3}+w_{31}x_{1}+w_{32}x_{2}+w_{33}x_{3}

                                   r       =      b      +              W                   x

        ③得到曲线  sigmoid(b_{i}+\sum_{j}^{}w_{ij}x_{j})=sigmoid(\mathbf{r})  

        a_{1}=sigmoid(r_{1})=\frac{1}{1+e^{-r_{1}}}        ,a_{2}a_{3}化简表达:\mathbf{a}=\sigma(\mathbf{r})        

        ④最终形成y=b+\sum_{i}^{}c_{i}\cdot sigmoid(b_{i}+\sum_{j}^{}w_{ij}x_{j})

                y=b+\mathbf{c}^{T}\mathbf{a}        其中 \mathbf{a}=\sigma(\mathbf{r})\mathbf{r}=\mathbf{b}+\mathbf{W}\textbf{x}

                y=b+\mathbf{c}^{T}\sigma (\mathbf{b}+\mathbf{W}x)

                x—特征,W, b, cT, b—未知参数

step2: define loss from training data

定义损失L(θ):  把所有未知数的每一行/列 组合(叠拼)形成向量θ 

(这里的损失L还能如何判断损失是小还是大?可以)

 依旧 : L=\frac{\sum_{n}^{}e_{n}}{N}        这里e仍然是计算出的y和真实的\hat{y}的误差

step3:optimization

对于损失L(θ),视作        \theta =\begin{bmatrix} \theta _{1}\\ \theta _{2} \\ \theta _{3} \\ ... \end{bmatrix}        

找到最优的\theta ^{*}使得L最小:

       ①计算L对每一个参数的微分,                     

                                                               记为

       

        ② 依旧更新每一个参数,\theta _{0}\rightarrow \theta _{1}\rightarrow \theta _{2}\rightarrow \theta _{3}\rightarrow ...

                

        ③结束条件依旧是:1)完成指定步数;2)计算到梯度为0向量(微分=0)

        ④实际计算时,会把L的N行/列数据随机分配成批量 batch,每个批量里有B行/列数据,一个批量统一计算一个损失L1和g,用来更新 update θ1,把所有的批量都算过一次(更新过一次θ),算作一个回合 epoch 。

        批量的大小(batch size)是人为设定的,也是一个超参数 hyperparameter。

1.2 模型变形

①蓝色函数(Hard sigmoid)可以看做两个修正线性单元 Rectified Linear Unit ReLu 的加和

        ReLU=c\cdot max(0,b+wx_{1})

       上小节的结论 y=b+\sum_{i}^{}c_{i}\cdot sigmoid(b_{i}+\sum_{j}^{}w_{ij}x_{j})         

        变形成          y=b+\sum_{2i}^{}c_{i}\cdot max(0, b_{i}+\sum_{j}^{}w_{ij}x_{j})

激活函数 activation function : sigmoid或ReLU                                              [ReLU是更好的选择]

y=b+\mathbf{c}^{T}\sigma (\mathbf{b}+\mathbf{W}x) 

        其中a=\sigma (\mathbf{b}+\mathbf{W}x),  x可以视作一个深层的a,

        形成{a}'=\sigma (\mathbf{b}+\mathbf{W}a); a=\sigma (\mathbf{b}+\mathbf{W}x);

        叠加的层数是人为设定的,也是一个超参数 hyperparameter。

③取一个fancy的名字

        神经元 neuron :sigmoid或ReLU          神经网络 neural network : 整套神经元

        隐藏层 hidden layer :一层                      深度学习 deep learning : 整套技术

        过拟合 overfitting :增加层数时,在已知数据上的误差还在减少,但在未知数据上的误差开始反弹变大。

1.3 关于激活函数

激活函数主要作用在于引入非线性因素,因为仅靠线性函数堆叠起来的模型无法学习和表示复杂的模式。

1.3.1 ReLU (Rectified Linear Unit)

定义:f(x)=max(0,x)

②优点:

  • 计算简单,速度快。
  • 在大多数情况下可以有效地缓解梯度消失问题。
  • 能够提供稀疏激活,有助于减少模型复杂度。

③适用范围:

  • 深度网络:特别适合深层神经网络,因为可以有效避免梯度消失。
  • 计算机视觉:在图像识别任务中表现优异,如卷积神经网络(CNNs)中广泛使用。
  • 语音识别:在一些语音识别任务中也有不错的表现。

④局限性:

  • “死亡ReLU”问题:如果输入为负,则梯度为0,导致神经元永久失活。
  • 输出非零均值:可能需要对权重初始化和偏置项进行特殊处理以保持网络的稳定性。

1.3.2 Sigmoid

①定义:f(x)=\frac{1}{1+e^{-x}}

②优点:

  • 输出在(0, 1)之间,适用于二分类问题作为输出层。
  • 激活函数具有光滑性,易于求导。

③适用范围:

  • 二分类任务:特别适合用作输出层,用于生成概率值。
  • 浅层网络:在较浅的网络中,梯度消失问题不严重时可以使用。

④局限性:

  • 梯度消失:随着网络加深,梯度消失问题严重。
  • 计算成本较高:指数运算相对耗时。

1.3.3 Tanh (Hyperbolic Tangent)

①定义:f(x)=tanh(x)=\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}}

②优点:

  • 输出在(-1, 1)之间,有助于数据归一化。
  • 光滑且连续,适合梯度下降优化。

③适用范围:

  • 中间层:常用于隐藏层中,特别是在需要输出值中心化的任务中。
  • RNNs和LSTMs:在循环神经网络(RNNs)和长短期记忆网络(LSTMs)中用于门控机制。

④局限性:

  • 梯度消失:与Sigmoid类似,随着网络深度增加,梯度消失问题明显。
  • 计算成本高:涉及指数运算。

1.3.4 Softmax

①定义:用于多分类问题,将输入向量转换为概率分布。

②优点:

  • 输出为概率分布,适用于多分类任务。
  • 提供了一种自然的方式将多个输出节点转换为概率。

③适用范围:

  • 多分类任务:特别适合于最后一层,用于生成类别的概率分布。
  • 独热编码:与独热编码(one-hot encoding)标签一起使用。

④局限性:

  • 只适用于输出层。
  • 计算成本较高,特别是当类别数目很大时。

2. 知识竞答

2.1 0828

Q1: 单选题 :下面哪种激活函数可以用来逼近Hard Sigmoid函数

        A) ReLU
        B) Sigmoid
        C) tanh
        D) softmax
        E) ELU

        B 用sigmoid 模拟hard sigmoid

参考答案: B


Q2: 不定项选择题-在深度学习中,我们经常遇到过拟合现象。以下哪些方法可以用来解决过拟合现象?

        A) 增加训练数据量
        B) 减少模型的参数数量
        C) 增加模型的层数
        D) 使用正则化技术
        E) 使用Dropout技术

ABDE A-加数据降低过拟合风险;B-降低模型复杂度;C-错误,加剧过拟合;D-向损失函数添加惩罚项,限制过拟合;E-随机丢弃部分神经元输出,减少过拟合

正则化技术通过向模型的损失函数中添加一个正则项(‌或惩罚项)‌来实现,‌这个正则项会对模型的复杂度进行惩罚,‌从而限制模型在训练数据上的过度拟合。‌

Dropout技术在训练过程中随机丢弃一部分神经元的输出,‌这可以降低模型对特定神经元输出的依赖,‌从而减少过拟合。‌

参考答案: ABDE


Q3: 单选题—在预测观看人次的模型中,考虑前 7 天的数据而非前 1 天的数据有什么好处?
        A. 可以降低模型的复杂度
        B. 可以减少训练时间
        C. 可以捕捉数据的周期性变化,降低损失
        D. 可以提高模型的非线性能力
        E. 可以避免过拟合

        C,A-增加复杂度,B-增加训练时间 C √  D-增加历史数据本身并不直接提高模型的线性能力,但能帮助模型更好地拟合数据中的线性关系  E-no 加剧

参考答案: C

2.2 0829

Q1: 简答题-教程中提到,模型在训练数据上的性能通常好于在测试数据上的性能。这种现象为什么会发生?
        训练数据都是模型看过的数据,而测试数据是未知的。
参考答案:这种现象发生是因为模型直接在训练数据上优化,不可避免会学习到一些训练数据特有的模式,包括可能的噪声。测试数据代表了模型未见过的数据,更能反映模型的泛化能力。在实际应用中,应该更关注模型在测试数据上的表现。

Q2: 简答题-在教程的视频观看次数预测例子中,我们看到了如何从考虑前1天扩展到考虑前7天、28天甚至56天。这种扩展的意义是什么?教程中显示,从28天增加到56天时,在未见过的数据上的性能并没有显著提升,为什么考虑更多天数不一定总能提高预测准确性?

        意义:增加特征,模拟大于一天的时间周期循环趋势。为什么:因为周期的趋势是有限的,过长的时间不再影响未来的数据
参考答案:扩展考虑的天数允许模型捕捉更长期的模式,如周期性变化。然而,考虑更多天数并不总是能提高准确性,因为:1) 可能引入无关或噪声信息;2) 增加了模型复杂度,可能导致过拟合;3) 很久以前的数据可能对当前预测不再相关。

Q3: 简答题-在视频观看人数预测模型中,为什么使用100个ReLU比使用10个ReLU效果更好?这种改进是否总是有效的?

        为什么:增加ReLU是在增加模型的复杂度,可以模拟更复杂的非线性关系。是否:否,会有过拟合的风险,不能无限增加
参考答案:每一层ReLU都可以被视为对数据的一次非线性变换,使用更多的ReLU可以增加模型的复杂度,使其能够捕捉更复杂的非线性关系。100个ReLU相比于10个ReLU,可以学习更细致的模式,有更强的表达能力。然而,这种改进并非总是有效,因为过多的ReLU可能导致过拟合,特别是在数据量较小的情况下。此外,还需要考虑计算资源和推理时间的限制。应该在模型性能不再显著提升,或者验证集性能开始下降时停止增加复杂度。

2.3 0830

Q1:在教程中,我们看到了如何使用ReLU函数构建深层网络。为什么要在每个线性变换后都加入非线性激活函数?如果去掉这些激活函数会发生什么?
        因为很多问题不是单一线性可以描述的,激活函数可以叠加来模拟非线性的连续曲线。去掉会增加损失,降低模型复杂度,增加模型偏差
参考答案:非线性激活函数(如ReLU)在每个线性变换后引入非线性变换,使得模型能够学习复杂的非线性关系。如果去掉这些激活函数,多层线性变换可以简化为单个线性变换,这会大大降低模型的表达能力,使其无法捕捉复杂的模式。

Q2:在改进模型时,为什么使用ReLU函数比使用Sigmoid函数效果更好?这可能与什么因素有关?

         Sigmoid函数会让误差变得越来越小,导致“梯度消失”现象,减慢训练速度。ReLU函数偏向于稀疏激活,大多数神经元输出为0,可以更快获得有用的特征。

参考答案:ReLU函数比Sigmoid函数计算更简单,能缓解梯度消失问题,允许模型学习更复杂的非线性关系。在视频观看人数预测这种可能存在突然变化的场景中,ReLU的非饱和性可能更有利于捕捉数据中的急剧变化。

与Sigmoid激活函数相比,ReLU有几个明显的优点。首先,ReLU在处理正数时非常简单,它直接将正数传递出去,这使得计算更高效。相比之下,Sigmoid函数在处理正数时会变得非常平缓,导致梯度变得非常小,这使得训练过程变得缓慢。这种平缓的性质还可能导致训练过程中会出现梯度消失的问题,即模型在训练时更新参数的速度变得非常慢。
其次,ReLU函数的计算过程非常简单,只需检查输入是否大于零,这使得模型训练速度更快。而Sigmoid函数需要进行复杂的数学运算,这会增加计算的复杂性和时间。


Q3:在使用梯度下降法优化模型时,为什么使用小批量而不是整个数据集?这种方法有什么优势和劣势?

        优势:小批量数据减少对计算能力的要求。   劣势:小批量的大小是一个超参数,受人为设定影响,设置不合适会导致计算成本增加;数据太小可能会过拟合。

参考答案:

优势:
小批量更新可以充分利用现代计算硬件(如GPU)的并行处理能力,而且不需要等待整个数据集的梯度计算完成就可以更新参数,从而加快训练速度。其次,处理整个数据集可能需要大量内存,而小批量可以在有限的内存中进行训练,使得训练过程更加可行。另外还引入了一定的随机性,有助于逃离局部最小值。
劣势:
由于小批量梯度下降每次更新都是基于一个子集的估计,这可能导致收敛路径不如全批量梯度下降平滑,有时可能会出现震荡或不稳定。此外,选择小批量的大小是一个需要经验的过程,不同的大小可能对训练过程的效率和模型性能产生影响。过小的批量可能导致梯度估计不准确,过大的批量可能导致内存不足或训练速度慢。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值