Datawhale X 李宏毅苹果树AI夏令营-学习笔记task 2

读书笔记:《深度学习详解》1.2 线性模型详解

1. 线性模型的基本概念

线性模型是机器学习中最基础、最经典的模型之一,其核心思想是通过对输入特征进行线性组合来预测输出。这种方法不仅简单而且直观,非常适合处理线性关系较为明显的任务。线性模型的基本形式为:

y = b + w 1 x 1 + w 2 x 2 + . . . + w n x n y = b + w_1x_1 + w_2x_2 + ... + w_nx_n y=b+w1x1+w2x2+...+wnxn

在这个公式中:

  • y y y 是模型的预测值,是我们期望得到的结果。
  • b b b 是偏置项,起到调整整体预测值的作用,使得模型具有灵活性。
  • w 1 , w 2 , . . . , w n w_1, w_2, ..., w_n w1,w2,...,wn 是模型的权重参数,这些参数控制了各个特征在预测中的重要性。
  • x 1 , x 2 , . . . , x n x_1, x_2, ..., x_n x1,x2,...,xn 是输入特征,代表模型用来进行预测的数据。
例子 1:单特征线性模型

假设我们要预测某天视频的观看次数 ( y ),我们可以假设当天的观看次数主要取决于前一天的观看次数 ( x_1 )。那么,线性模型可以简单地表示为:

y = b + w 1 x 1 y = b + w_1x_1 y=b+w1x1

在这个模型中, w 1 w_1 w1 表示前一天观看次数对当天观看次数的影响。如果 w 1 > 0 w_1 > 0 w1>0,则前一天观看次数越多,当天观看次数也会更多。通过不断调整 w 1 w_1 w1 b b b 的值,我们可以找到一个最优解,使得模型预测的误差最小。

现实应用
比如,假设我们经营一家视频网站,通过分析历史数据,我们发现前一天的观看次数确实对当天的观看次数有较强的预测能力。因此,我们可以利用这一简单的线性模型来预测未来某一天的视频观看次数。这种模型的优势在于它计算简单且易于解释,适用于数据特征较少且具有明显线性关系的场景。

例子 2:多特征线性模型

线性模型不仅可以处理单个特征,还可以处理多个特征的组合。比如,如果我们认为视频的观看次数不仅受前一天的观看次数影响,还受过去一周(7 天)的观看次数影响,我们可以构建一个多特征的线性模型:

y = b + w 1 x 1 + w 2 x 2 + . . . + w 7 x 7 y = b + w_1x_1 + w_2x_2 + ... + w_7x_7 y=b+w1x1+w2x2+...+w7x7

在这个公式中:

  • x 1 x_1 x1 x 7 x_7 x7 分别表示过去 7 天的观看次数。
  • w 1 w_1 w1 w 7 w_7 w7 是各天观看次数对当天观看次数影响的权重。

现实应用
在实际操作中,我们可以通过历史数据来确定这些权重 w 1 w_1 w1 w 7 w_7 w7 的值,并通过调整它们来最小化模型的预测误差。这种多特征线性模型能够捕捉到更多的输入信息,从而提高预测的准确性,特别适用于影响因素较多且彼此相关的场景。
在这里插入图片描述
以上就是一个预测模型的应用

2. 梯度下降法的应用

在线性模型中,关键问题之一是如何找到一组最优的权重 w w w 和偏置 b b b,使得模型对所有训练数据的预测误差最小。为此,梯度下降法是一种常用且有效的优化方法。

梯度下降法的原理

梯度下降法是一种迭代优化算法,其基本思想是通过计算损失函数相对于模型参数的梯度,逐步调整参数,使损失函数的值逐渐减小。损失函数 L ( w , b ) L(w, b) L(w,b) 用于衡量模型预测值与实际值之间的差距,而梯度则指示了如何调整参数 w w w b b b 以减少这个差距。

梯度下降法的更新公式如下:

w ← w − η ∂ L ∂ w , b ← b − η ∂ L ∂ b w \leftarrow w - \eta \frac{\partial L}{\partial w}, \quad b \leftarrow b - \eta \frac{\partial L}{\partial b} wwηwL,bbηbL

其中:

  • η \eta η 是学习率,决定每次参数更新的步长。学习率过大会导致震荡,学习率过小则收敛过慢。
  • ∂ L ∂ w \frac{\partial L}{\partial w} wL ∂ L ∂ b \frac{\partial L}{\partial b} bL 分别是损失函数相对于 w w w b b b 的偏导数,表示在当前点上参数调整的方向和大小。
例子 3:最优权重的确定

假设我们还是在预测视频观看次数的场景下,模型形式为:

y = b + w 1 x 1 y = b + w_1x_1 y=b+w1x1

这里, x 1 x_1 x1 是前一天的观看次数, w 1 w_1 w1 是权重, b b b 是偏置。为了找到最优的 w 1 w_1 w1 b b b,我们可以使用梯度下降法。

  • 首先,我们随机选择一个初始的 w 1 w_1 w1 和 $b 值。
  • 然后,计算模型在训练数据上的损失,即预测的观看次数和实际观看次数之间的误差。
  • 接着,计算损失函数对 w 1 w_1 w1 b b b 的偏导数,以确定参数调整的方向。
  • 最后,根据梯度下降法的更新公式,调整 w 1 w_1 w1 b b b 的值,使得损失逐渐减小。

通过多次迭代,最终可以找到一组使损失函数达到最小的参数 w 1 w_1 w1 b b b

现实应用
在实际应用中,梯度下降法广泛用于训练各种机器学习模型。比如在线性回归、逻辑回归等任务中,梯度下降法是优化模型参数的重要手段。通过逐步调整模型参数,可以有效地提高模型的预测能力。

3. 模型扩展与改进

虽然线性模型简单而有效,但在实际应用中,线性模型往往不能捕捉到复杂的非线性关系。因此,我们需要对模型进行扩展和改进,以提高其表现。

多特征线性模型

一种直接的扩展方式是增加更多的输入特征。例如,在预测观看次数时,我们不仅可以考虑过去 7 天的观看次数,还可以考虑过去 28 天,甚至更长时间的数据。这种扩展的模型形式为:

y = b + w 1 x 1 + w 2 x 2 + . . . + w 28 x 28 y = b + w_1x_1 + w_2x_2 + ... + w_{28}x_{28} y=b+w1x1+w2x2+...+w28x28

通过增加特征数量,我们可以捕捉到更长时间范围内的数据模式,这可能会提高模型的预测能力。

例子 4:更复杂的多特征模型

考虑一个更复杂的场景,我们不仅希望预测某一天的观看次数,还希望预测某一特定节日期间的观看趋势。假设我们有过去 56 天的观看数据,同时还包括节日期间的特别事件数据(如广告投入、特别节目等)。我们可以构建一个更加复杂的线性模型:

y = b + w 1 x 1 + w 2 x 2 + . . . + w 56 x 56 + w e v e n t x e v e n t y = b + w_1x_1 + w_2x_2 + ... + w_{56}x_{56} + w_{event}x_{event} y=b+w1x1+w2x2+...+w56x56+weventxevent

在这个模型中, x e v e n t x_{event} xevent 代表节日期间的特别事件, w e v e n t w_{event} wevent 是其对应的权重。通过这个模型,我们可以更准确地预测节日期间的观看趋势。

现实应用
在金融市场预测中,投资者往往会考虑多个时间周期的历史数据,如过去一周、一个月,甚至一年的市场趋势。同时,还会考虑一些特殊的市场事件(如政策变动、经济指标发布等)。通过这种多特征线性模型,可以更全面地捕捉市场变化,从而提高预测的准确性。

分段线性模型

线性模型的一个显著缺点是它只能捕捉到线性关系,无法处理复杂的非线性关系。在实际应用中,数据的变化往往不是简单的线性关系,而是具有某种非线性特征。例如,在观看次数预测中,当某个视频的观看次数达到一定阈值后,可能会出现增长放缓或下降的情况。为了解决这个问题,我们可以引入分段线性模型。

例子 5:分段线性曲线

假设 y y y x 1 x_1 x1 的关系如下:

  • x 1 x_1 x1 小于某个值 c c c 时, y y y x 1 x_1 x1 呈线性正相关。
  • x 1 x_1 x1 大于 c c c 时, y y y x 1 x_1 x1 呈现出下降趋势。

这种关系可以通过两个线性模型拼接起来,形成分段线性

曲线。分段线性模型能够较好地模拟这种具有阈值效应的情况。虽然单一的线性模型只能捕捉简单的线性关系,但通过拼接多个线性部分,我们可以逼近更复杂的函数关系。
在这里插入图片描述
在这里插入图片描述

现实应用
在电商平台的定价策略中,常常会根据不同的销售量区间采取不同的定价策略。例如,当某商品销量较低时,平台可能会通过促销提高销量;当销量达到一定水平后,平台可能会逐渐减少促销力度,甚至提高价格以增加利润。分段线性模型能够有效模拟这种多阶段的定价策略,从而帮助平台优化定价。

4. 非线性激活函数与模型复杂性

尽管线性模型在处理简单问题时表现出色,但它们在面对复杂的非线性关系时常常力不从心。为了解决这个问题,我们可以在模型中引入非线性激活函数。常见的激活函数包括 Sigmoid 和 ReLU。

Sigmoid 与 ReLU 激活函数
  • Sigmoid 函数:通常用于平滑地逼近硬阶跃函数(Hard Sigmoid),其输出介于 0 和 1 之间,能够很好地拟合一些平滑的非线性关系。在实际应用中,Sigmoid 函数被广泛用于分类任务中,特别是逻辑回归模型中。

    Sigmoid ( x ) = 1 1 + e − x \text{Sigmoid}(x) = \frac{1}{1 + e^{-x}} Sigmoid(x)=1+ex1
    在这里插入图片描述

    Sigmoid 函数的特点是输入值越大,输出值越接近 1;输入值越小,输出值越接近 0。通过这种平滑的非线性映射,Sigmoid 函数可以将线性模型扩展为非线性模型,从而更好地捕捉数据中的复杂关系。

  • ReLU 函数:广泛用于深度学习中,其输出为输入值和 0 之间的较大者。这种简单的非线性变换能够有效解决梯度消失问题,并通过叠加多个 ReLU 函数生成复杂的分段线性函数。

    ReLU ( x ) = max ⁡ ( 0 , x ) \text{ReLU}(x) = \max(0, x) ReLU(x)=max(0,x)
    在这里插入图片描述

    ReLU 函数的特点是,当输入值为正时,输出值与输入值相等;当输入值为负时,输出值为 0。这种特性使得 ReLU 在处理非线性问题时具有很强的表现力,且计算效率高。

例子 6:使用 ReLU 提高模型复杂性

假设我们在观看次数预测的任务中,使用线性模型和 ReLU 激活函数来处理数据。通过引入 ReLU,我们可以在模型中引入非线性特性,从而更好地拟合复杂数据模式。

  • 使用 10 个 ReLU 函数时,模型在训练数据上的损失和普通线性模型类似,因为此时模型的复杂性尚不足以捕捉数据中的非线性关系。
  • 使用 100 个 ReLU 函数时,模型能够生成更复杂的曲线,大幅降低训练数据上的损失。这是因为更多的 ReLU 函数可以组合成更加复杂的分段线性函数,从而更好地拟合训练数据。
    在这里插入图片描述

现实应用
在图像识别任务中,ReLU 函数被广泛用于卷积神经网络(CNN)中。通过在每一层卷积之后使用 ReLU 激活函数,网络能够逐层提取图像中的复杂特征,从而实现对图像的精确分类。

5. 过拟合与模型选择

随着模型的复杂性增加,我们需要警惕过拟合现象。过拟合是指模型在训练数据上表现良好,但在未见过的数据上表现较差。过拟合通常发生在模型过于复杂,参数过多的情况下。为了避免过拟合,模型选择应考虑模型在测试数据上的表现,选择泛化能力更强的模型。

过拟合的原因

过拟合的根本原因在于模型过于复杂,导致其能够很好地拟合训练数据中的噪声,而不是捕捉到数据的真实模式。当模型过拟合时,它对训练数据的表现可能非常好,损失函数值非常低,但在新的数据上表现却很差。这种现象在数据量少或噪声较大的数据集中尤为明显。

防止过拟合的方法

为了解决过拟合问题,常用的方法包括:

  • 减少模型复杂性:通过降低模型的复杂度(如减少模型的参数或层数),可以减少过拟合的风险。
  • 增加训练数据:更多的训练数据可以帮助模型更好地学习数据中的真实模式,从而减少过拟合。
  • 使用正则化方法:通过在损失函数中引入正则化项,可以限制模型参数的大小,从而防止模型过拟合。
例子 7:模型选择

在一个预测观看次数的任务中,我们使用了 3 层和 4 层的神经网络模型。虽然 4 层模型在训练数据上表现更好(损失更低),但在测试数据上 3 层模型的表现更优。这说明 4 层模型可能存在过拟合问题,而 3 层模型则在泛化能力上表现更佳。因此,在实际应用中,我们应该选择 3 层模型来避免过拟合。
在这里插入图片描述

现实应用
在自动驾驶领域,模型的泛化能力至关重要。训练时,数据来自特定的路况和天气条件,但测试时,车辆可能面临全新的环境。选择泛化能力强的模型,能够保证车辆在各种环境下都能表现良好,避免因过拟合带来的安全隐患。

6. 结论

线性模型作为机器学习的基础模型,具有计算简单、易于解释的优点。然而,其在处理复杂非线性关系时表现不足。通过增加特征、引入非线性激活函数(如 Sigmoid 和 ReLU)等手段,可以扩展线性模型,提高其拟合能力。然而,随着模型复杂性的增加,过拟合的风险也随之提升。因此,在实际应用中,模型选择应综合考虑复杂性与泛化能力,以达到最佳效果。

现实意义
线性模型尽管基础,但其思想在深度学习等复杂模型中依然占据重要地位。理解线性模型的基本原理,对于深入理解更复杂的深度学习模型至关重要。在构建和优化复杂模型时,我们也应时刻牢记线性模型中的基本原则,保持模型的解释性和可控性,确保模型在不同数据集上的稳健性。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值