机器学习
是一门使计算机在没有明确编程的情况下具备学习能力的研究领域。
监督学习(Supervised learning)
监督学习算法
通过学习输入(x)到输出(y)的映射关系。在监督学习中,你需要为算法提供一些带有正确答案(正确的y值)的样本来进行学习。
回归(Regression)
回归是监督学习的一种类型,任务是预测一个连续的数值。例如,根据房屋面积预测房价。在这个问题中,我们可以使用不同的算法来拟合数据(例如线性回归或曲线拟合)。
分类(Classification)
分类是监督学习的另一种类型,任务是将输入数据分配到有限数量的类别中,输出是离散值。例如,根据电子邮件内容判断是否为垃圾邮件,预测离散数值。
input X | output Y | Application |
---|---|---|
是垃圾? 0/1 | 垃圾分类 | |
英文语音 | 中文文字翻译 | 机器语音翻译软件 |
英语 | 日语 | 机器翻译 |
广告、客户信息 | click?0/1 | 在线广告策略分析 |
图片、雷达等 | 与其他车的位置关系 | 自动驾驶 |
二分类问题
输出只有两个类别,肿瘤良性或恶性
多分类问题
输出有多个类别,肿瘤可能被诊断为良性、恶性类型1或恶性类型2
输入特征
监督学习算法使用一或多个输入特征进行预测
边界线
在分类问题中,学习算法需要找到一个边界线,将不同类别的数据点分开。
非监督学习(Unsupervised Learning)
无监督学习
与监督学习不同,无监督学习算法不需要输出标签。它们的目标是从未标记的数据中找到某种结构、模式或者有趣的信息。
聚类算法(Clustering)
将未标记的数据分为不同的群组或簇。新闻归类、DNA 数据分析、市场细分
其他类型方法
异常检测(Anomaly Detection)
异常检测是一种用于检测数据中异常或罕见事件的方法。它在诸如金融欺诈检测、网络入侵检测和设备故障预测等领域有广泛应用。
降维(Dimensionality Reduction)
降维是一种将高维数据压缩到低维数据的方法,同时尽量保留原始数据中的信息。降维可以用于数据可视化、提高算法性能、减少存储需求等。常见的降维方法有主成分分析(PCA)、t-分布邻域嵌入算法(t-SNE)等。
生成模型(Generative Models)
生成模型是一类可以生成新数据的无监督学习方法。最近,生成对抗网络(GANs)和变分自编码器(VAEs)等生成模型在图像生成、文本生成和风格迁移等领域取得了显著的成功。
回归模型(Regression Model)
线性回归模型(Linear Regression with One Variable)
通过拟合一条直线来描述数据之间的关系。
数据表示及基本概念
关于数据表示,我们通常用小写的x表示输入变量,也称为特征;用小写的y表示输出变量,也称为目标变量。数据集中的每一行代表一个训练样本。我们用小写的m表示训练样本的总数。为了表示特定的训练样本,我们使用带上标的表示法,如x(i)和y(i),上标i表示第i个训练样本。
==训练集(Training Set)==是用于训练模型的数据集合。它通常是一个包含输入特征和对应输出值(或目标变量)的数据集,模型使用这些数据来学习如何将输入特征映射到正确的输出值。
==单个训练样本(Single Training Example)==指的是用于训练机器学习模型的单个输入数据样本。在监督学习中,单个训练样本通常包含一个输入特征向量和一个对应的输出标签或目标变量。
函数 f:模型Model 、
变量 X:特征 Feature 、
输出 y-hat( y ^ \widehat{y} y ):预测值
算法(单变量线性回归)从训练集数据 X、Y 中学习并生成最佳拟合线 f(x)=wx+b。
函数 f(x) 的作用是使用 x 的直线函数预测 y-hat。
成本函数(Cost function)
是指机器学习模型中用于衡量预测结果与实际结果之间差异的函数。成本函数通常用于优化机器学习模型的参数。
线性函数
线性回归的基本形式是$ f_{w, b}(x) = wx + b$,其中 b是截距(y-intercept),w是斜率(slope)。通过训练数据来学习这个模型的参数b和w,使得模型能够对新的输入数据进行准确的预测。
参数(w 和 b):机器学习模型中可以在训练过程中调整的变量,有时也称为系数或权重。
平方误差成本函数(Squared error cost function)
是一种用于衡量模型预测结果与真实结果之间误差大小的函数。在一元线性回归模型中,通常使用平方误差成本函数作为优化目标,目的是最小化预测值与真实值之间的平方误差。我们可以找到合适的参数 w 和 b,使得模型能够更好地拟合训练数据。
- J(w,b)表示损失函数,m表示训练集中样本的数量, y ( i ) y^{(i)} y(i) 表示第i个样本的真实标签值, x ( i ) x^{(i)} x(i) 表示第i个样本的输入特征,w和b分别表示模型的参数。
- 平方误差成本函数的意义是,对于所有的训练样本,计算模型预测值与真实值之间的差值,取差值的平方后再求平均值。最小化平方误差成本函数的过程,就是找到使预测值与真实值之间误差最小的模型参数。
成本函数直觉(Cost function intuition)
成本函数(cost function)J
代价函数衡量模型预测值与实际值之间的差异。在线性回归中,我们希望找到一组参数使得代价函数的值最小。
线性回归模型
简化版的线性回归模型为 f w ( x ) = w x f_w(x) = wx fw(x)=wx,其中 w 是模型的参数。在这个简化版的问题中,我们的目标是找到一个 w 值,使得代价函数 J(w) 最小。
线性回归与成本函数的关系
通过改变参数 w(或 w 和 b),我们可以得到不同的直线。当这条直线贴近数据时,代价函数 J 较小。线性回归的目标是找到一组参数(w 或 w 和 b),使得成本函数 J 的值最小。
可视化成本函数(Visualizing the cost function)
线性回归模型
线性回归是一种简单的机器学习算法,用于根据输入特征预测数值型目标变量。线性回归模型可以表示为 f ( x ) = w x + b f(x) = wx + b f(x)=wx+b,其中x是输入特征,w是权重,b是偏置项。
模型参数
模型参数是机器学习模型中用于调整模型性能的变量。在线性回归模型中,w和b就是模型参数。
损失函数(代价函数)
损失函数用于衡量模型的预测与实际值之间的差异。在线性回归中,通常使用平均平方误差作为损失函数,表示为 J(w, b)。线性回归的目标是找到一组参数w和b,使得损失函数J(w, b)的值最小。
损失函数三维绘制:直观感受是碗(碗底J最小,沿w 或 b 轴切一刀都是抛物线)、富士山(等高线表示 J 相等)。
成本函数和损失函数的关系
成本函数(Cost Function)
是用来衡量整个训练集上模型预测值与实际标签之间的差异的函数。成本函数通常是由损失函数的平均值,并可能包括正则化项。
1 / N ∗ ∑ i = 1 N ∣ y i − f ( x i ) ∣ 1/N*\sum_{i=1}^N|y_i-f(x_i)| 1/N∗∑i=1N∣yi−f(xi)∣
损失函数(Loss Function)
是用来度量单个样本预测值与实际标签之间差异的函数
∣ y i − f ( x i ) ∣ |y_i-f(x_i)| ∣yi−f(xi)∣
梯度下降(Gradient descent)
是一种用于寻找使损失函数最小化的参数 w 和 b 的值的方法。
梯度下降算法可以应用于任何函数的最小化问题,包括具有多个参数的模型的损失函数。
梯度下降过程:初始 w,b,每次微调以损失函数下降最快的方向更新 J,直到 J 达到最小值。(人坐在山头往下滑) 梯度下降存根据初始值的不同收敛到不同的局部最小化。
w : = w − α ∗ d d w J ( w , b ) w := w - α * {d\over{dw}}J(w,b) w:=w−α∗dwdJ(w,b)
$b := b - α * {d\over{db}}J(w,b) 其中, α 是学习率, 其中,α 是学习率, 其中,α是学习率, {d\over{dw}}J(w,b)$ 和 d d b J ( w , b ) {d\over{db}}J(w,b) dbdJ(w,b) 分别是成本函数 J(w, b) 关于 w 和 b 的偏导数。
学习率α(learning rate)
控制每次迭代时参数更新的步长。较大的学习率表示更大的步长,较小的学习率表示更小的步长。选择合适的学习率很重要,因为它影响了梯度下降算法的收敛速度和稳定性。
导数(derivative)
函数在某一点的导数等于该点处的切线斜率。正导数表示函数单调递增,负导数表示函数单调递减,而零导数表示函数在该点处取得极值。 在梯度下降算法中,偏导数用于确定参数更新的方向。
同步更新(Simultaneously update w and b)
在实现梯度下降时,应同时更新参数 w 和 b。这意味着在计算新值之前,不应更改任何一个参数。同步更新有助于正确实现梯度下降算法.
导数 d J d w {dJ\over{dw}} dwdJ 为斜率。切线角度离水平线越大,斜率越大,单位△w引起的△J 的值越大,即导数越大梯度下降越快。
批量梯度下降(Batch gradient descent)
是一种使用所有训练样本更新参数的梯度下降算法。它的基本思想是在每一次迭代中,使用所有训练数据计算损失函数对参数的偏导数,并且根据该偏导数对所有参数进行更新。
批量梯度下降算法的收敛速度相对来说更为稳定,可以更好地收敛到全局最优解。
学习率(Learning rate)
当参数已经位于局部最小值时,梯度下降算法会自动停止更新参数。这是因为此时导数为零,参数更新的量为零。
学习率过小训练速度慢、学习率过大无法收敛。 当达到局部最小值后,梯度下降会自动停止更新参数。 逼近局部最小值时,梯度下降会自动采取较小的步长(斜率越小,单位△w引起的△J越小 )。
线性回归的梯度下降(Gradient descent for linear regression)
平方误差代价函数在线性回归中具有一个特殊性质:它是一个凸函数。这意味着代价函数是一个碗状函数,仅有一个全局最小值,没有其他局部最小值。
这个图是一个等高线图(contour plot),用于展示损失函数在不同的参数值下的表现。在这个例子中,图中的椭圆表示损失函数的等高线,即损失函数在这些椭圆上的点具有相同的值。图中心点处的椭圆表示损失函数的最小值。
这个等高线图的横轴代表参数 w(权重),纵轴代表参数 b(偏置)。椭圆越靠近图中心,损失函数的值越小;椭圆越靠近图的边缘,损失函数的值越大。
通过这个等高线图,你可以观察到梯度下降算法在参数空间中的搜索过程。在这个过程中,算法会根据梯度的方向逐步更新参数值,以最小化损失函数。从而在图中找到损失函数最小值的位置,即最优的参数值。
多特征线性回归模型(Multiple linear regression)
多特征(Multiple features)
x ⃗ \vec{x} x表示第i个训练样本的特征
n特征总数
w i w_i wi 是权重,b 是偏置项。
f ( X ) = W • X + b f(X) = W • X + b f(X)=W•X+b。这里的点乘(•)表示两个向量的对应元素相乘后求和。
多元线性回归的梯度下降算法(Gradient descent for multiple linear regression)
多元线性回归
多元线性回归是在具有多个特征的情况下进行线性回归的推广
梯度下降法
正规方程法(Normal equation)
是求解线性回归中 w 和 b 的另一种方法。与梯度下降法不同,正规方程法不需要迭代,而是直接通过一次计算来求解 w 和 b。正规方程法的局限性在于,它只适用于线性回归问题,而且在特征数量较大时计算速度较慢(>10000)。
梯度下降实践(Gradient descent in practice)
特征缩放(Feature scaling)
不同特征值范围:当我们使用不同特征进行预测时,它们的取值范围可能差异很大,例如房屋面积和卧室数量。
参数大小关系
当特征值 x i x_i xi的范围较大时,我们需要选择相对较小的参数值 w i w_i wi;而特征值范围较小时,参数值可能会相对较大。
梯度下降的表现
当特征值范围相差很大时,损失函数的等高线可能呈椭圆形,导致梯度下降算法在寻找全局最小值时需要较长时间。
特征缩放
为了解决这个问题,可以对特征进行缩放,使得它们的取值范围相对相似。这样做可以使损失函数的等高线更接近圆形,从而加速梯度下降算法。
特征缩放方法
特征值范围在大约 -1 到 1 之间。这些值可以有一定的灵活性
缩放特征
可以通过除以最大值的方法来缩放特征, x i = x i / x m a x x_i=x_i/ x_{max} xi=xi/xmax
均值归一化(Mean Normalization)
将特征重新缩放,使它们的均值为0。为了实现这一点,需要减去每个特征的均值,然后除以最大值和最小值之间的差值, x i = ( x i − x ˉ ) / ( x m a x − x m i n ) x_i=(x_i-\bar{x}) / (x_{max}-x_{min}) xi=(xi−xˉ)/(xmax−xmin)
Z得分归一化(Z-score Normalization)
这种方法需要计算每个特征的标准差。然后,对于每个特征值,减去其均值并除以其标准差。
x i = ( x i − x ˉ ) / σ , [ σ = 1 N ∑ i = 1 N ( x i − x ˉ ) 2 ] x_i=(x_i-\bar{x})/\sigma,[ \sigma = \sqrt{\frac{1}{N} \sum_{i=1}^{N} (x_i - \bar{x})^2} ] xi=(xi−xˉ)/σ,[σ=N1∑i=1N(xi−xˉ)2]
特征工程(Feature engineering)
为问题设计新特征的过程。 原始特征→组合为新特征
多项式回归(Polynomial regression)
通过原始特征的幂的方式,实现非线性(曲线)拟合。 即由 f w , b ( x ) = w x + b f_{w,b}(x)=wx+b fw,b(x)=wx+b 的直线 → f w , b ( x ) = x a f_{w,b}(x)=x^a fw,b(x)=xa