机器学习与深度学习
机器学习(Machine Learning,ML)概述
机器学习,是指机器具备自主学习的能力。简而言之,机器学习就是让计算机通过大量数据找到隐藏的模式,并基于这些模式进行预测或决策。它涉及建立一个能够从数据中学习的函数,也就是所谓的模型或模式。
机器学习的类型
机器学习有多种类型,每种类型适用于不同的任务和应用场景:
1. 监督学习(Supervised Learning)
监督学习是一种通过使用带标签的数据集来训练模型的方法。每条输入数据都有一个相应的输出标签,模型通过学习输入与输出之间的关系来进行预测。
- 分类(Classification): 将输入数据分成两个或多个离散类别。常用算法包括逻辑回归、KNN、决策树、随机森林、支持向量机(SVM)、朴素贝叶斯等。应用场景有垃圾邮件分类、图像识别、医学诊断等。
- 回归(Regression): 用于预测连续的数值输出。常见的回归算法包括线性回归、决策树回归、随机森林回归、支持向量回归(SVR)等。应用场景有房价预测、股票价格预测、销售额预测等。
2. 无监督学习(Unsupervised Learning)
无监督学习使用未标记的数据集进行训练。其目标是发现数据中的隐藏模式或结构,常见算法有聚类分析、关联规则学习等。
3. 半监督学习(Semi-Supervised Learning)
半监督学习介于监督学习和无监督学习之间。它利用少量标记数据和大量未标记数据进行训练,适用于标记数据难以获取或标记成本高的情况。
4. 强化学习(Reinforcement Learning)
强化学习通过与环境的交互来学习最佳策略。模型(或称为代理)通过在环境中采取行动来获得奖励或惩罚,目的是最大化累计奖励。
5. 自监督学习(Self-Supervised Learning)
自监督学习是一种无监督学习的变种,模型利用数据中的内在结构为自己生成标签,然后通过这些标签进行训练。
6. 迁移学习(Transfer Learning)
迁移学习是利用在一个任务中学到的知识来帮助解决另一个相关任务。在源任务和目标任务之间共享知识,有助于在新任务中快速取得成果。
深度学习(Deep Learning)
深度学习是机器学习的一个子领域,主要通过模拟人脑的神经网络结构来学习和处理数据。深度学习的核心是深度神经网络(Deep Neural Networks),由多个层次的人工神经元组成,能够自动提取和学习数据中的复杂特征。
案例:预测视频点击次数
在这个案例中,我们的目标是通过机器学习预测视频观看次数。整个过程可以分为三个主要步骤:模型定义、损失函数定义、参数优化。
步骤 1:模型定义
模型定义是机器学习中的第一个步骤,其核心在于选择一个适当的函数形式来描述预测任务。在这个案例中,我们使用了一个简单的线性模型:
其中:
- y 是我们希望预测的值,即今天的视频观看次数。
- x是前一天的观看次数,这是已知的输入特征。
- w和 b 是模型的未知参数,分别称为权重(weight)和偏置(bias)。
我们假设今天的观看次数与昨天的观看次数之间存在某种线性关系,这种假设基于领域知识,认为过去的观看行为可能对未来的观看次数有影响。
步骤 2:损失函数定义
损失函数用于衡量模型预测值与实际值之间的差距。在本案例中,我们使用均方误差(Mean Absolute Error, MAE)作为损失函数。损失函数的形式为:
其中:
- yi是第 i天的实际观看次数。
根据模型预测的第 iii 天的观看次数。
- NNN 是训练数据的总天数。
损失函数的值代表模型在训练数据上的平均预测误差,值越小,说明模型的预测越准确。
步骤 3:参数优化
参数优化的目标是通过调整模型的参数 www 和 bbb 使损失函数达到最小值。这通常通过梯度下降(Gradient Descent)等优化算法来实现。梯度下降的基本原理是根据损失函数对参数的导数(梯度)来调整参数的值,使得每次更新都朝着使损失减少的方向前进。
梯度下降算法
梯度下降是一种迭代优化算法,其目的是通过不断调整模型参数来最小化损失函数 LLL。算法的基本思想是根据损失函数对参数的梯度(或导数)来更新参数,通常以如下方式进行:
其中:
- η是学习率(Learning Rate),决定了每次参数更新的步长。
和
是损失函数对 www 和 bbb 的偏导数,表示损失函数随参数变化的方向和速率。
参数更新的终止条件
- 固定迭代次数:在设定的最大迭代次数后停止参数更新。
- 梯度为零:当计算出的梯度为零时,参数将停止更新,这通常意味着已经达到了一个极值点(局部最小值、鞍点或全局最小值)。
局部最小值与全局最小值
- 局部最小值(Local Minima):这是损失函数在某一特定区域内的最低点,但不是整个函数的最低点。梯度下降可能会陷入局部最小值,使参数更新停滞。
- 全局最小值(Global Minima):这是损失函数的绝对最低点,使得模型的误差最小。找到全局最小值通常是优化的最终目标。
尽管梯度下降有可能陷入局部最小值,但在实际应用中,这种情况并不常见。更常见的挑战是找到一个足够好的解,而不是严格的全局最小值。
多参数梯度下降
当涉及多个参数时,梯度下降的过程与单参数情况类似。对每个参数分别计算梯度,并根据梯度调整所有参数。在深度学习框架(如 PyTorch)中,这些微分计算是自动完成的。
实际应用中的参数更新
算法从随机初始化的参数开始,逐步计算各参数的梯度。根据梯度,决定参数更新的方向和幅度。学习率 η\etaη 决定了每次更新的步长。反复进行参数更新,直到达到某个停止条件(如迭代次数上限或梯度为零)。
影响梯度下降优化过程的因素
- 学习率的选择:学习率太大可能导致训练不稳定,太小则收敛速度太慢。
- 局部极小值和鞍点:虽然局部最小值是一个潜在问题,但在高维空间中,鞍点更常见,它们同样可能使梯度下降停滞。
- 多参数的复杂性:随着参数数量增加,优化过程变得更加复杂,需要更多的计算资源和更好的算法来确保有效的收敛。
通过这些步骤,机器学习和深度学习可以用来解决各种实际问题,如图像识别、自然语言处理和金融预测等