本章重点
- 数学知识: 函数, 求导和微分
- 机器学习的动力之源 —— 梯度下降
- 机器学习的数据结构 —— 张量以及Python中的向量化运算 —— 切片, 广播和点积
- 机器学习的几何意义 —— 从空间的角度去理解机器学习
- 数学知识: 概率和统计
函数
- 普通函数
-
定义
从数学角度看,函数是一种对应关系,它将一个集合(定义域)中的每个元素,按照某种确定的规则,对应到另一个集合(值域)中的唯一元素 。
- 示例
对于函数y=2x,x 是定义域中的元素,通过 “乘以 2 ” 这个规则,得到唯一的y值,y 属于值域。
-
三要素
- 定义域 (输入集)
- 值域 (输出集)
- 对应法则 (关系)
- 机器学习函数
-
定义
机器学习基本上等价于寻找函数的过程。机器学习的目的是进行预测,判断,实现某种功能。通过学习训练集中的数据,计算机得到一个从x到y的拟合结果, 也就是函数。
-
三要素
- 定义域通常由训练数据的特征空间决定
-
作用
确定模型能够处理的数据范围,防止输入无效或不合理的数据,同时也有助于在数据预处理阶段对数据进行合理的归一化、标准化等操作,以提高模型的性能和稳定性。
-
- 值域取决于模型的目标和任务。
-
作用
有助于我们评估模型的输出结果是否合理,以及确定合适的评估指标。例如,如果预测的房价超出了合理的市场范围,那么可能说明模型存在问题。
-
- 对应关系描述了输入(定义域中的元素)如何映射到输出(值域中的元素),它是机器学习模型的核心部分,由模型的算法和参数决定。
-
作用
决定了模型的预测能力和性能。通过调整模型的参数和算法,优化对应关系,使得模型能够尽可能准确地将输入映射到正确的输出,从而提高模型在训练数据和未知数据上的泛化能力。
-
- 定义域通常由训练数据的特征空间决定
机器学习所关心的问题之一是捕捉函数的变化趋势,也就是研究y如何随着x而改变,这个趋势是通过求导和微分来实现的。
求导
-
定义
导数是函数图像在某一点处的斜率,也就是纵坐标增量(Δy)和横坐标增量(Δx)在Δx-->0时的比值。
-
通过求导发现y如何随x而变
- 导数是定义在连续函数的基础之上的 。
- 直线的斜率是它相对于横轴的倾斜程度,求法是dy/dx, 也等价于从A点到B点的变化方向。
- 当A点和B点的距离越来越小,两个点无限接近,逼近极限的时候,在即将重合而又未重合的一刹那,割线就变成了切线。
- 当斜率为正, 变化趋势在上升。
- 当斜率为负, 变化趋势在下降。
- 当斜率为0, 说明函数正处于全局或者局部的最低点,趋势即将发生改变。
微分
-
定义
微分是指函数图像在某一点处的切线在横坐标取得增量Δx以后,纵坐标取得的增量,一般表示为dy。回顾知识 微分简介和定义
梯度下降
-
什么是梯度
对多元函数的各参数求偏导数,然后吧所求得的各个参数的偏导数以向量的形式写出来。
-
梯度下降有什么用
- 机器学习的本质是找到最优的函数。
- 如何衡量函数是否最优? 其方法是尽量减小预测值和真值间的误差(在机器学习中也叫损失值)。
- 可以建立误差和模型参数之间的函数(最好是凸函数)。
- 梯度下降能够引导我们走到凸函数的全局最低点, 也就是找到误差最小时的参数。
数据结构
定义
-
张量
张量是机器学习程序中的数字容器,本质上就是各种不同维度的数组。
张量的维度称为轴(数学中的,x轴,y轴 ...), 轴的个数称为阶(rank)(也就是俗称的维度),这里统一把张量的维度称为张量的阶,Numpy中把它叫作数组的秩。 -
标量 —— 0D(阶)张量
仅包含一个数字的张量叫作标量(scalar), 即 0阶张量或0D张量。
-
向量 —— 1D(阶)张量
由一组数字组成的数组叫作张量(vector),也就是一阶张量,或称1D张量,一阶张量只有一个轴。
强调: 机器学习中把5个元素的向量称为5维向量, 千万不要把5维向量和5阶张量混淆。
-
矩阵 —— 2D张量
形状为(样本,特征)。第一个轴是样本轴, 第二个轴是特征轴。
-
序列数据 —— 3D(阶)张量
形状为(样本,时戳,特征)。第一个轴是样本轴, 第二个轴是时戳轴, 第三个轴时特征轴。
-
图像数据 —— 4D(阶)张量
形状为(样本,图像高度,图像宽度,颜色深度)。
-
视频数据 —— 5D(阶)张量
形状为(样本,帧,高度,宽度,颜色深度)。
计算
- 向量点积
就是两个相同维度的向量对应元素先相乘,后相加,形成等号右边的多项式。
- 矩阵点积
矩阵点积就是第一个矩阵的行向量,和第二个矩阵的列向量进行点积,然后把结果标量放进新矩阵,作为矩阵中的一个元素。请注意当两个矩阵相乘时,第一个矩阵的列数必须等于第二个矩阵的行数。 即形状为(m, n)的矩阵乘以形状为(n, m), 结果得到一个矩阵(m, m)
python之numpy核心讲解
- shape 属性
- 功能:返回数组的维度信息,以元组形式表示各维度长度
- 示例:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.shape) # 输出:(2, 3) → 2行3列的二维数组
- ndim 属性
- 功能:返回数组的维度数(轴数)
- 示例
arr_3d = np.arange(24).reshape(2, 3, 4) # 创建三维数组
print(arr_3d.ndim) # 输出:3
- reshape 方法
- 功能:重构数组维度而不改变数据,返回新数组(原数组不变)
- 参数与规则:
- 新形状元素总数需与原数组一致
- 使用 -1 可自动计算某一维度长度(如 reshape(-1, 2))
- 示例:
arr = np.arange(6) # 一维数组:[0, 1, 2, 3, 4, 5]
reshaped = arr.reshape(2, 3) # 转为二维数组
print(reshaped)
# 输出:[[0 1 2],
# [3 4 5]]
- dot 函数
- 功能:执行矩阵乘法(点积),支持高维数组运算
- 规则:
- 对于二维数组:遵循 (m, n) · (n, p) → (m, p);
- 对于一维数组:计算内积(标量)。
- 示例:
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
print(np.dot(a, b))
# 输出:[[19 22],
# [43 50]]
空间角度分析
-
数据空间
机器学习的基础是数据,数据空间就是所有可能的数据点所构成的空间。例如,对于一个简单的二维平面上的点集数据,每个数据点都由两个特征(如x坐标和y坐标)来描述,那么这些点就构成了一个二维的数据空间。在实际应用中,数据空间可能是高维的,比如图像数据,一张图片可以被看作是一个由像素值组成的高维向量,所有这样的图片就构成了一个非常高维的数据空间。
-
特征空间
为了更好地对数据进行分析和建模,我们通常会从原始数据中提取特征,将数据从原始空间映射到特征空间。特征空间是由所选择的特征构成的空间。例如,对于文本数据,我们可以通过词袋模型、TF - IDF 等方法提取特征,将文本表示为一个在特征空间中的向量。
-
假设空间
- 假设空间是机器学习模型中所有可能的假设(即模型)的集合。例如,在简单的线性回归中,假设空间就是所有可能的直线(由不同的斜率和截距确定)。对于一个更复杂的神经网络模型,假设空间则是由不同的网络结构、参数取值等所构成的所有可能的函数集合。
- 机器学习的目标就是在假设空间中寻找一个最优的假设(模型),使得它能够最好地拟合训练数据,并对未知数据具有良好的泛化能力。搜索假设空间的过程通常通过优化算法来实现,如梯度下降等。
-
参数空间
- 参数空间是模型参数所有可能取值的空间。以线性回归模型y=θ0+θ1x为例,参数空间就是由θ0和 θ1所有可能的取值构成的二维空间。对于神经网络来说,参数空间则是由网络中所有神经元的权重和偏置的所有可能取值构成的高维空间。
- 在训练机器学习模型时,我们通过调整参数空间中的参数值,使得模型在训练数据上的损失函数最小化。这个过程可以看作是在参数空间中进行搜索,寻找最优参数组合的过程。
-
决策空间
- 决策空间是模型对输入数据进行预测或决策后得到的结果所构成的空间。
- 模型通过学习数据空间到决策空间的映射关系,对新的输入数据进行分类或回归预测。决策边界是决策空间中用于划分不同类别区域的边界,例如在二维的线性分类问题中,决策边界是一条直线,将平面划分为两个不同的类别区域。
概率在机器学习中的应用
- 建模不确定性:机器学习中面临的数据和问题往往存在不确定性,概率提供了一种量化和处理这种不确定性的方式。例如,在分类问题中,通常不能确定一个样本绝对属于某个类别,而是用概率来表示样本属于各个类别的可能性。通过估计这些概率,模型可以做出更合理的决策。
- 生成模型:基于概率的生成模型旨在学习数据的生成过程。它假设数据是由某种潜在的概率分布生成的,通过估计这个分布的参数,模型可以生成新的数据样本。常见的生成模型有隐马尔可夫模型(HMM)、高斯混合模型(GMM)和变分自编码器(VAE)等。以高斯混合模型为例,它假设数据是由多个高斯分布混合而成,通过估计每个高斯分布的均值、协方差和权重等参数,来拟合实际数据的分布,进而可以生成符合该分布的新数据。
- 贝叶斯方法:贝叶斯定理是贝叶斯方法的核心,它在机器学习中被广泛应用于参数估计和模型选择。贝叶斯方法将参数视为随机变量,并根据先验知识和观测数据来更新对参数的信念,得到后验分布。例如,在贝叶斯线性回归中,我们先对模型的参数(如斜率和截距)设定一个先验分布,然后根据观测到的数据,利用贝叶斯定理计算参数的后验分布。这样可以在估计参数时纳入先验信息,避免过拟合,并且能够提供参数的不确定性估计。
统计在机器学习中的应用
- 数据描述与探索:统计方法用于对数据进行描述性分析,帮助我们了解数据的基本特征,如均值、中位数、方差、分位数等。这些统计量可以让我们快速把握数据的中心趋势、离散程度和分布形态。此外,通过绘制直方图、箱线图、散点图等可视化工具,结合统计量,能够更直观地探索数据的分布规律、变量之间的关系以及是否存在异常值等,为后续的数据预处理和模型选择提供依据。
- 模型评估与选择:统计指标在评估机器学习模型的性能和选择最优模型方面起着关键作用。例如,在分类任务中,常用的准确率、精确率、召回率、F1 值等指标可以衡量模型对样本分类的准确程度;在回归任务中,均方误差(MSE)、平均绝对误差(MAE)等指标用于评估模型预测值与真实值之间的差异。通过在验证集或测试集上计算这些统计指标,可以比较不同模型的性能,选择出最适合具体问题的模型。
- 统计推断:在机器学习中,我们通常从一个较大的总体中抽取样本数据来训练模型。统计推断方法可以帮助我们根据样本数据来推断总体的特征,以及评估模型的泛化能力。例如,通过置信区间估计可以给出模型参数的可能取值范围,假设检验可以用于判断模型在总体上是否具有显著的性能提升,或者判断两个模型之间是否存在显著差异等。
如果对你有帮助, 请点赞+关注鼓励下