机器学习——不成体系
Posted 三三木木七
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习——不成体系相关的知识,希望对你有一定的参考价值。
记录了一些目前在自己的知识库中不成体系但又很重要的知识点吧。
2023.3.26 更
1.模型检查点
💡在机器学习中,模型检查点(Model)是在训练期间定期保存模型的一种技术。
检查点是指在训练过程中保存的模型的快照,可以捕获模型的状态(参数和权重)。
作用:
(1)保存模型训练的进度
(2)选择最佳的模型
🙌解释(1):
通过使用模型检查点,可以确保在发生任何故障或中断的情况下不会丢失模型的进度。
如果在训练过程中发生了中断,可以使用最后一个检查点来继续训练模型,而无需从头开始训练。
🙌解释(2):
在每个检查点时,可以使用验证集来测试模型的性能,并根据其性能保存最佳的模型。
这使得在训练过程中选择最佳的模型,而无需等到训练完成后再进行选择。
⏰总结:
模型检查点,是机器学习中一种非常有用的技术,可以确保训练的顺利进行,并帮助选择最佳的模型。
2.超参数
在机器学习中,超参数是指那些影响模型行为但不是由模型学习得到的参数。
这些参数在训练模型之前需要手动设置,并且通常需要通过试错或经验确定最佳值。
🙌举例:
常见的超参数包括:学习率、正则化强度、批量大小、网络结构的深度和宽度等。
超参数的值对于模型的性能和效果至关重要。设置不当的超参数可能导致模型欠拟合或过拟合,从而导致性能下降。
3.预训练的模型
预训练模型是指在大规模数据集上预先进行训练的机器学习模型。
这些数据集通常包含大量的文本、图像或音频等数据,预训练模型通过学习这些数据的特征,可以学习到通用的语义表示。这些通用的语义表示可以应用于各种不同的任务中,从而能够更好地进行特定任务的训练。
预训练模型通常使用无监督学习的方法,例如自编码器、词向量模型、生成对抗网络等,通过最大化预测或生成数据的概率来训练模型。
预训练模型可以通过微调来进行特定任务的训练,微调过程通常包括在特定数据集上进行有监督学习的过程。
🙌举例:
(1)BERT
(2)GPT
(3)RoBERTa
(4)ResNet
机器学习知识体系 - 线性回归
这是机器学习知识体系中的线性回归内容,完整的知识体系可以查看这里。
机器学习
什么是机器学习?业界有如下定义:
• ArthurSamuel(1959).MachineLearning:Fieldof study that gives computers the ability to learn without being explicitly programmed.
• TomMitchell(1998)Well-posed Learning Problem: A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.
通常情况下,人类进行编程让机器完成一项工作,需要事先定义好一系列程序逻辑,机器然后根据编写的代码来执行,这种方式其实人类定义的规则,机器仅仅是运算执行而已。机器学习强调的是“without explicitly programmed”,通过机器根据某些经验数据,自我归纳总结算法,从而对一些新的数据进行准确的预测推导。
常见的应用场景包括:
1. 数据挖掘
2. 手写识别、自然语言处理(NLP)、计算机视觉
3. 产品推荐系统
4. ...
监督学习和无监督学习
机器学习方式大体上分为两种类别:监督学习和非监督学习。
监督学习指的是人类给机器一大堆标示(label)过的数据,通常指机器通过学习一系列(, )数据,X代表输入数据(特征Feature),Y代表输出数据,然后自我推导到X -> Y的公式,用于未来其他数据的预测判断使用。监督学习根据输出数据又分为回归问题(Regression)和分类问题(Classfication)。回归问题通常输出是一个连续的数值,分类问题的输出是几个特定的数值。
举例如下:
(a) 回归问题 - 给定一张人脸照片,估计出这个人的年龄(年龄输出是一个连续的数值)
(b) 分类问题 - 假定一个人患有肿瘤,判断是为恶性还是良性(恶性和良性的输出是几个特定的数值)
回归问题 - 房价预测
分类问题 - 肿瘤恶性/良性判断
无监督学习所学习的数据没有属性或标签这一概念 也就是说所有的数据都是一样的没有区别,通常给的数据是一系列(),并不存在Y的输出数据。所以在无监督学习中,我们只有一个数据集,没人告诉我们该怎么做,我们也不知道每个数据点究竟是什么意思,相反它只告诉我们现在有一个数据集,你能在其中找到某种结构吗?对于给定的数据集,无监督学习算法可能判定,该数据集包含不同的聚类,并且能够归纳出哪些数据是一个聚类。
模型表达
在建立数学模型之前,先约定好一些表达形式:
- 代表输入数据 (features)
- 代表输出数据(target)
- 代表一组训练数据(training example)
m - 代表训练数据的个数
n - 代表特征数量
监督学习目标就是,假定给一组训练数据,可以学习到一个函数方法h,可以使得h(x) -> y。这个函数方法h被称为假设(hypothesis)。整体流程如下:
代价函数
对于线性回归而言,函数h的表达式如下:
我们通常指定:
如果使用线性代数来表达的话
,
, 其中是矩阵的转置(Transpose)。
那么对于一系列训练数据,如何获得最优的成为解决问题的核心。直观上而言,我们希望获取一组值,使得h(x)越接近y越好。于是定义这个衡量标准为代价函数(Cost Function)如下:
这个函数又称为Squared Error Function。
我们看下两个参数的Cost Function图像通常如下:
它是一个弓形的图像,这个弓形的最低点就是的最优解。
梯度下降算法
对于线性回归问题,我们需要解决的事情往往如下:
定义出Cost Function -
希望能够找到一组,能够最小化,即
梯度下降算法步骤如下:
1. 随机选择一组
2. 不断的变化,让变小
j=0,1,...n,是所有n+1个值同时进行变化。α 是代表学习速率。 是Cost Function对的偏导数。
3. 直到寻找到最小值
偏导求解如下:
因此最终的梯度下降算法表达如下:
从Cost Function的图上,我们可以看到选择最优解的过程
寻找到局部最优解1
寻找到局部最优解2
从上面两个图可以看出,寻找最优解的过程很想是在下山,沿着下山的路下来,并最终到达一个局部的底部保持不变。
正规方程Normal Equation
梯度下降算法给出了一种方法可以最小化Cost Function。正规方程(Normal Equation)是另外一种方法,它使用非常直接的方式而不需要进行迭代的算法。在这个方法中,我们通过对J取对应的的偏导数,然后将偏导数设置为0。通过推导,正规方程如下:
梯度下降算法和正规方程对比如下:
梯度下降算法 | 正规方程 |
需要选择学习速率参数 | 不需要学习速率参数 |
需要很多次迭代 | 不需要迭代 |
n如果很大依旧还能工作 | n如果很大,速度会非常慢 |
因此两种方法能否工作取决于n(特征x的数量)的大小,如果n很大(> 10000),那么使用梯度下降算法是比较明智的选择。
=================华丽的分割线===========================
有兴趣同学可以关注微信公众号奶爸码农,不定期分享投资理财、IT相关内容:
以上是关于机器学习——不成体系的主要内容,如果未能解决你的问题,请参考以下文章