机器学习中的经验风险,期望风险和结构风险最小化

机器学习笔记之经验风险与结构风险 经验风险与结构风险 阅读详情

机器学习任务几乎没有例外的都使用了损失函数cost function这一概念。常见的损失函数有平方误差损失函数,交叉熵损失函数等,在分类任务中一般使用交叉熵损失函数,回归问题中一般使用平方误差损失函数。


损失函数的核心思想是建立一种预测结果和真实结果之间误差的衡量标准,而机器学习的优化目标就是让这个衡量项越小越好,这种差别也叫做风险,风险分为经验风险和结构风险两种,经验风险是样本集合的预测值和真实值的差的平方的期望,这个期望也叫期望风险,但是由于期望风险难以求解,常常以经验风险来代替,但是经验风险存在一定问题,说明在下面,所以才提出了结构风险,结构风险到提出者也是SVM的提出者,所以对于SVM的优化问题是围绕着模型的结构风险最小化进行的,结构风险包含了经验风险和正则化项两项,并要求它们同时达到最小化。

上文提到经验风险最小化存在问题是什么问题呢?这个问题就是当在训练集上得到很好的效果的时候,在测试集上往往得到很差的效果。这是因为模型在训练集上产生了过拟合,直观理解是最小二乘法(最小二乘也是机器学习包括深度学习的思想的一个很重要的来源),当存在一系列杂乱无章的数据的时候,我们先去拿直线来拟合它,结果发现效果很差,然后使用二次曲线,发现结果要好一点,于是我们认为加大曲线的阶次可以提升模型的拟合效果,我们可能终于找到了一个很高阶的曲线拟合训练数据得到了一个很好的效果,但是这个曲线用到测试数据上也很好吗?答案往往是否定的。这个时候采用的办法就是正则化的办法,正则化分为L0,L1,L2三种分别表示非零项的个数,各项绝对值之和,各项平方和,(虽然在几何上三种正则化都有自身的解释,但是在我看来,它们无一例外的都是用来提高特征向量的稀疏性,从而避免过拟合的)。其中L2范数最难理解但是也最好解释,直观上,一条高次曲线,减小高次项系数与低次项系数的比值可以使得这条高次曲线更加的缓和,缓和自然也就降低了过拟合。所以,在经验风险的后面加上一个正则化项或者叫稀疏项就可以得到既准确拟合又不至于过拟合的模型。拿这个模型用在测试数据上也会得到差不多的性能。

参考文献
http://blog.youkuaiyun.com/shenxiaoming77/article/details/51614601

【机器学习】6 Frequentist statistics 本章介绍了频率统计学的核心概念与方法。主要内容包括:估计量的抽样分布(自助法、MLE大样本理论)、频率决策理论(贝叶斯风险、极小极大风险、可容许估计量)、估计量的理想性质(一致性、无偏性、最小方差及偏差-方差权衡),以及经验风险最小化(正则化、结构风险、交叉验证、统计学习理论、替代损失函数)。最后讨论了频率统计的潜在问题,如置信区间反直觉行为、p值争议、似然原则等,并反思为何贝叶斯方法未被普遍采用。 阅读详情

相关推荐

AI脸部替换Roop-Unleashed,一键整合包教程

Roop-Unleashed是一个无须训练模型的深度伪造工具,专为图像和视频的面部替换而设计。它通过简洁的浏览器界面提供用户友好且跨平台的使用体验,无论用户是业余爱好者还是专业人士,都能快速上手。它无需复杂的设置即可实现高效的处理和转换,使图像和视频的编辑变得更加轻松和便捷。

m0_72580657的博客 1万+

期望风险最小化、经验风险最小化、结构风险最小化

本文为阅读《关于统计学习理论与支持向量机》论文笔记 风险最小化损失函数期望风险最小化经验风险最小化结构化风险最小化VC维推广性的界结构风险最小化 损失函数 损失函数(loss function)或代价函数(cost function)是将随机事件或其有关随机变量的取值映射为非负实数以表示该随机事件的“风险”或“损失”的函数。损失函数通常作为学习准则与优化问题相联系,即通过最小化损失函数求解和评估模型。 有三类基本的机器学习问题 ,即模式识别、函数逼近和概率密度估计。 对模式识别问题 ,输出 y 是类别标号

刘广鑫的博客 5595

【AI助力科研】不看一篇文献,手把手教你用chatGPT写文献综述!

这篇文章以【AI助力科研】为题,介绍了如何利用ChatGPT编写文献综述的方法。作者通过详细的指导,展示了不需要阅读大量文献,只需依靠ChatGPT模型即可完成文献综述的过程。该方法旨在提高科研工作者的效率,减少阅读负担,并且能够生成具有逻辑性和准确性的文献综述。

研究方向//图像视频处理/信号算法/红外无损检测/数值仿真/机器学习/优化算法/python/matlab 2万+

啥也不会照样看懂交叉熵损失函数

聊一聊损失函数什么是损失函数损失函数重要吗有哪些损失函数 什么是损失函数 损失函数(loss function)是用来估量模型的预测值与真实值的不一致程度,它是一个非负函数,记为一般来说,损失函数越小,模型的鲁棒性越好。损失函数分为经验风险损失函数和结构风险损失函数。经验风险损失函数表示预测值与真实值之间的差异,结构风险损失函数是指经验风险损失函数加上正则化。一般形式为: θ=argminθ1N∑...

LEEANG121的博客 9430

Xilinx SDK工程编译、链接、调试注意事项

1、添加工程 启动SDK时选取workspace,如下图所示: 对应的workpace文件夹中会生成如下几个文件: 如果当前workspace是首次加载工程,SDK会进入启动界面 点击Import Project,导入已有工程 点击Browse,添加工程路径,一个完整的工程包含一个bsp文件夹,一个HW文件夹,和一个src文件夹(添加C功能函数) 点击Fini...

Autumn_He的博客 1万+

2024最新版Anaconda Navigator安装使用指南

本文简要介绍如何下载安装Anaconda Navigator最新版,以及如何使用Python内核搭载来完成应用程序开发。

jackson_lingua的博客 1万+

Softmax,交叉熵损失函数,经验风险,正则化

过拟合是指学习时选择的模型所包含的参数过多,以至于出现这一模型对已知的数据预测的很好,但对未知数据预测得很差的现象。权重衰减(Weight Decay)作用是抑制模型的过拟合,以此来提高模型的泛化性。交叉熵损失函数(Cross Entropy Loss)是机器学习中常用的损失函数,它能够用来衡量两个分布之间的距离。拟合是一个数理科学术语,形象的说,拟合就是把平面上一系列的点,用一条光滑的曲线连接起来。过拟合和欠拟合之间就是一个模型的承载力。过拟合和欠拟合都是我们不希望得到的。

GXH15的博客 293

Cadence Orcad Capture原理图断线的检查与避免方法

在设计电路图中,尤其是直接借鉴别人的设计进行二次开发的过程中难免会遇到如下尴尬的情况。有没有眼神好的朋友发现图纸的哪里有不对劲的地方呢?

fydar的博客 3267

经验风险、期望风险、结构风险

1、经验风险:将所有的样本点都求一次损失函数然后进行累加。 经验风险是对训练集中所有样本点损失函数的平均最小化。经验风险越小说明模型f(X)对训练集的拟合程度越好。 2、期望风险:期望风险是全局概念,表示决策函数对所有的样本<X,Y>预测能力的大小,而经验风险是局部的概念,仅仅表示决策函数对训练数据集里样本的预测能力。 理想的模型(决策)函数应该是让所有的样本的损...

Sesen的木屋 1943

软考高级架构师笔记-10数学计算题

专栏《软考高级架构设计师》更新了,本章列举了10个场景计算题的解法,温故而知新,大家快来卷一卷

java后端开发的博客,不仅仅是后端开发 1597

基于 STM32 的智慧农业温室控制系统设计与实现

本文提出一种基于 STM32 微控制器的智慧农业温室控制系统设计方案,通过集成多类型环境传感器、执行机构及无线通信模块,实现对温室内温湿度、光照、土壤湿度等参数的实时监测与自动调控。文中详细阐述硬件选型、电路连接及软件实现流程,并附关键代码示例,为智慧农业领域提供低成本、高可靠性的温室控制解决方案。

weixin_42300449的博客 1923

朴素贝叶斯 后验概率最大化与期望风险最小化

关于李航机器学习中4.1.2节中后验概率最大化含义的理解补充

langtaosha1996的博客 1049

Ubuntu 系统下安装 OpenClaw(原 Clawdbot)的详细指南

Ubuntu 系统下安装 OpenClaw(原 Clawdbot)的详细指南

Science prince的博客 3535

结构风险最小化

http://pathfinder88.blog.163.com/blog/static/1682852582010481031765/

u011860731的专栏 772

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

期望风险、经验风险与结构风险之间的关系

在机器学习中,通常会遇到期望风险、经验风险和结构风险这三个概念,一直不知道这三个概念之间的具体区别和联系,今天来梳理一下: 要区分这三个概念,首先要引入一个损失函数的概念。损失函数是期望风险、经验风险和结构风险的基础。 损失函数是针对单个具体的样本而言的。表示的是模型预测的值与样本真实值之间的差距。比如对于某个样本,其真实的值为Yi,而我们的模型选择决策函数为f,那么通过模型预测的值为

bbbeoy的专栏 3919

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

vc获取n卡编号_VC维及结构风险最小化

一、VC维 我们以二分类为例来说明此概念。在此之前,我们先来解释如下四个概念(都很简单,别怕):增长函数/growth function、对分/dichotomy、打散/shattering和断点/break point。然后再来说明什么是VC维。定义两个符号:假设空间 ,其中h代表一个具体的函数或者模型。数据集 1、增长函数:假设空间H对D中m个元素能进行标记的最大可能结果数。...

weixin_35145307的博客 193

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

机器学习名词解释

1.损失函数:用来评价模型的预测值和真实值不一样的程度,损失函数越好,通常模型的性能越好。损失函数通常作为学习准则与优化问题相联系,即通过最小化损失函数求解和评估模型。 2.期望风险:模型定义: 1.损失函数:用来评价模型的预测值和真实值不一样的程度,损失函数越好,通常模型的性能越好。损失函数通常作为学习准则与优化问题相联系,即通过最小化损失函数求解和评估模型。 2.期望风险:模型 F(x) 关于联合分布 P(X,Y) 的平均意义下的代价损失,称为风险函数(risk function)或期望损失(expec

zstu_lihang的博客 785

线性回归csv数据集_数据科学的基石:统计学、机器学习、计算机科学(三)——线性回归...

数据科学家们常说,所有的模型都是错的,但是,其中一些是有用的。如果一个“有用”的模型能够过滤掉数据中哪些不重要的细枝末节,抓住其主要的内在关系,从而帮助我们更好地理解数据。很多情况下,线性回归就是这样一个“有用”模型,本篇我们从机器学习以及统计学两个角度去探索《线性回归》。以下内容来自于笔者阅读各类数据科学相关书籍的读书摘录笔记,希望能够对数据分析行业从业者起到点滴帮助,由于笔者水平能力有限,整理...

weixin_39554290的博客 615

【ML学习笔记】7:查漏补缺1(期望风险,经验风险,过学习,结构风险)

目前把花书和清华大学出版社的《机器学习和视觉感知》一起看,这本书里用数学的方式讲了一些具体的机器学习模型。定义与地位机器学习是研究人工智能算法的科学,旨在如何在经验学习中改善具体算法的性能,即通过经验提高其自动性。 按应用领域分类这本书简述了对机器学习区分类别的几种方式,目前只有这种方式比较能看懂。机器学习目前大部分的应用集中在这两个部分: ①分类任务:根据已知的分类知识对输入的未知模式确定其

大桔骑士的学习笔记 1909

机器学习系列笔记(1)——统计机器学习基础

统计学习概论 损失函数是指:针对单个具体样本,表示模型预测值与真实样本值之间的差距。损失函数越小,说明模型对于给样本预测越准确。常见损失函数有0-1损失函数、平方损失函数、绝对损失函数以及对数损失函数。 经验风险:对所有训练样本都求一次损失函数,再累加求平均。即,模型f(x)f(x)f(x)对训练样本中所有样本的预测能力。 Remp(f)=1N∑i=1NL(yi,f(xi))R_{emp}(f)...

Ray的博客 532

算法面试必备-----损失函数

算法面试必备-----损失函数算法面试必备-----损失函数 算法面试必备-----损失函数

Avery123123的博客 877

【机器学习---02】机器学习相关名词解释

1. 损失函数、期望风险、经验风险 2. 经验风险最小化和结构风险最小化 2.1 结构风险(正则化) 2.2 两者的定义 3. 训练误差 与 测试误差 4. 过拟合 与 欠拟合 4.1 过拟合及解决方法 4.2 交叉验证 4.3 欠拟合 5. 泛化误差 与 泛化误差上界 5.1 泛化误差 5.2 泛化误差上界 6. 生成模型 与 判别模型 7. 最大似然估计 7.1 极大似然估计 7.2 最大似然估计 与 经验风险 关系

渐渐的忘记,赶不上明天(读研ing,2024年毕业) 1908

利用点到直线的距离最小二乘法_模型之母:简单线性回归&最小二乘法

本文转载自公众号木东居士,文章为数据茶水间群友原创,经授权木东居士公众号发表。关于作者:Japson。某人工智能公司AI平台研发工程师,专注于AI工程化及场景落地。持续学习中,期望与大家多多交流技术以及职业规划。0x00前言I‘m Linear Regression, One of the most important mathematical models and Mother of ...

weixin_39796149的博客 705

正则化

正则化相关知识复习

听了个听儿 435

泛化误差上界

文章目录1. 损失函数与风险函数2. 泛化能力与泛化误差上界3. 相关证明3.1 马尔可夫不等式3.2 霍夫丁引理3.3 霍夫丁不等式3.4 假设空间有限的二分类问题的泛化误差上界 1. 损失函数与风险函数 机器学习中,需要通过损失函数来度量模型一次预测的好坏,通常用L(Y,f(x))L(Y,f(x))L(Y,f(x))来表示,常见的损失函数有: 0-1损失函数(指示函数) L(Y,f(X))={1,Y≠f(X)0,Y=f(X) L(Y,f(X))= \begin{cases} 1, \quad &a

吴智深的博客 3483
下一篇: 机器学习感悟:此技无它,唯手熟尔
河流儿
博客等级 码龄11年 45粉丝 77原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值