机器学习:分类问题及损失函数优化

在模型训练过程中,我们发现参数paramenter越多,训练集和测试集的loss差别越大,反而越容易过拟合,这节课主要来看如何确定参数的数量保证最佳训练结果

上图显示,机器学习首先要定义一个带有未知参数的function,这个参数需要根据已有知识确定

H是分别指各个参数的可能性的数量,加绝对值是指所有参数可以选择的数目,也就是我们常说的模型复杂度

分类问题损失函数的设置:

h是指设置的参数,D是指数据集设置,预测值与真实值相同输出0,预测值与真实值不同输出1,然后取均值,最终输出错误率,但是我们之前讲过对于分类问题使用使用cross-entropy,这里错误率显示更直观,loss function 其实影响不大,后续会继续讨论

损失函数的function定好了,下面要看如何优化,理想的样本来自所有数据,但是实际上我们可能只有其中的一些样例

上面两张图可以看到,训练结果的好坏和sample 数据的质量有很大的关系

如何将训练的loss贴合全部训练的结果loss,选择其中的任意一组参数,使得它的训练结果无限贴近全部训练结果

下面的讨论可以用于多种情景下,不仅仅用于loss function,也适用于其他情况

上面我们已经提到,sample数据的质量可以很大程度影响loss的训练结果,那么下面我们继续讨论sample到一组坏的数据的几率有多大

train数据被某一个参数h弄坏的几率有一个上界:

总结:

H是可以选择的function的数目,那么sample到的date是坏的几率被我们用公式表示出来了,N是训练资料的数目

下面要考虑如何把这个几率变小

把N调大,每个h可以弄坏的训练资料变少了

H的数量变小:

下面的例子可以看到随着训练资料N的增加,sample到坏的数据的几率越来越小

出现问题:我们说function中参数的变化是连续的,那么H(function)的数值就可以变得无限大,那么带入原来的公式就没有意义了,我们用两个方向解释:1,计算机上有一个最小的单位,不可能是连续的 2,有一个专门的vc-dimension指标用来衡量模型的复杂度

但是H可不可以尽量小呢?

不能

如下图所示,当H数量足够小,htrain和hall几乎没什么区别效果都不好(因为function 的数量太少),就算h train尽量的靠近h all,但是效果也不会好的

怎么样在保证h train和h all尽量接近的情况下同时不削减h all的效果呢?答:可以利用及深度学习,后面我们会详细介绍

相关推荐
workflower1 小时前
SSH(Struts+Spring+Hibernate)
人工智能·机器学习·机器人·云计算·无人机
陈年老古董2 小时前
微博情感分析项目学习笔记
笔记·python·学习·机器学习·项目
isfox2 小时前
为什么说线性模型是深度学习的基石?从 Scikit-Learn 谈起
机器学习
别动我齐刘海2 小时前
ROS2 Jazzy + C++ 实战路线——ros2_control
c++·人工智能·python·opencv·机器学习·机器人·github
明志数科3 小时前
机器人数据采集过程中五类异常片段的判定与处理
机器学习·机器人
渡我白衣4 小时前
HttpRequest与HttpResponse的实现
服务器·数据结构·c++·人工智能·tcp/ip·机器学习·caffe
老鱼说AI21 小时前
从点积到希尔伯特空间:向量内积的几何本质与大模型相似度度量
人工智能·深度学习·线性代数·算法·机器学习·数学建模
Raas10021 小时前
AI 编程助手 5 选 1:场景匹配决策树
人工智能·深度学习·机器学习·企业级产品
Dr.Cup1 天前
英伟达SoL-Pi:让AI编码智能体自己优化自己的“脚手架“
人工智能·机器学习·ai智能体