当前位置: 首页 > news >正文

机器学习笔记之策略

 

监督学习:策略

误差:

误差\epsilon^{(i))}是独立并且具有相同的分布,并且服从均值为0方差为\theta^2的高斯分布

损失函数:度量模型一次预测的好坏,记作L{(Y, f(x))}

风险函数:度量平均意义下模型预测的好坏

                R_{exp}(f) = E_p{[L(Y, f(x))]} \\

经验风险:模型f(X)关于训练集的平均损失

                \frac{1}{N}\sum\limits_{i=1}^NL(y_i, f(x_i))

其中,训练集T = \{(x_1, y_1), (x_2, y_2),...,(x_N, y_N)\}

四种常见的损失函数

  • 0-1损失函数(分类问题)

    

  • 平方损失函数(回归问题)
  • 绝对损失函数(回归问题)
  • 对数损失函数(概率模型)

经验风险最小化:

                \min\limits_{ f\epsilon F}\frac{1}{N}L(y_i, f(x_i))

结构风险:

                R_{srm} = \frac{1}{N}L(y_i, f(x_i)) + \lambda J(f)

结构风险最小化:

        ​​​​​​​        \min\limits_{f\epsilon F}\frac{1}{N}L(y_i, f(x_i)) + \lambda J(f))

根据大数定律,当样本容量N->正无穷时,经验风险趋近于风险函数

结构风险在经验风险的基础上加了正则项(针对模型的复杂度),平衡了经验风险和模型的复杂度

选取目标函数:经验风险函数或者结构风险函数

最优模型:不存在显示解析解的情况下,可以使用梯度下降的数值运算方法

无监督学习三要素:

  • 模型:函数z=g_\theta(x),条件概率分布P_\theta(z|x)或条件概率分布P_\theta(x|z)
  • 策略:优化目标函数
  • 算法:通常是迭代算法

第四节:模型的评估与选择

目录

 

监督学习:策略

无监督学习三要素:

第四节:模型的评估与选择

第五节 正则化和交叉验证

正则化:实现结构风险最小化策略

交叉验证

第六节 泛化能力


训练误差与测试误差

1. 训练误差

  • 学习到的模型:Y=\hat f(X)
  • 训练集(Training Set):

        ​​​​​​​        T = \{(x_1, y_1),(x_2, y_2),(x_N, y_N)\}

  • 训练误差(Training Error):

        ​​​​​​​        R_{emp}(\hat f) = \frac{1}{N}\sum\limits_{i=1}^NL(y_i, \hat f(x_i))

2. 测试误差

  • 学习到的模型:Y=\hat f(X)
  • 训练集(Test Set):

        ​​​​​​​        {T}' =\{({x_1}', {y_1}'),({x_2}', {y_2}'),...,({x_N}', {y_N}')\}

  • 训练误差(Test Error):

                e_test = \frac{1}{​{N}'} \sum\limits_{i'=1}^{N'}L(y_i',\hat f(x_{i'}))

误差率(Error Rate):

                e_test = \frac{1}{N'}\sum\limits_{i'=1}^{N'}I(y_i \neq \hat f(x_{i'}))

准确率(Accuracy):

                r_test = \frac{1}{N'}\sum\limits_{i'=1}^{N'}I(y_i=\hat f(x_{i'}))

        ​​​​​​​        

注:

r_{test} + e_{test} = 1

M次多项式:

f_M(x, w)=w_0+w_1x+w_2x^2+...+w_Mx^M = \sum\limits_{j=0}^M w_jx^j

经验风险:

L(w) = \frac{1}{2}\sum\limits_{i=1}^N(f_M(x_i, w)-y_i)^2

带入多项式:

L(w) = \frac{1}{2}\sum\limits_{i=1}^N(\sum\limits_{j=0}^Mw_jx_i^j-y_i)^2

通过最小二乘法求解参数

过拟合(Over-Fitting):学习所的模型包含参数过多,出现对已知数据预测很好,但对位置数据预测预测很差的现象。

第五节 正则化和交叉验证

正则化:实现结构风险最小化策略

  • 一般形式:

                \min\limits_{f\epsilon F}\frac{1}{N}\sum\limits_{i=1}^NL(y_i,f(x_i)) + \lambda J(f)

  • 经验风险:

                \frac{1}{N}\sum\limits_{i=1}^NL(y_i,f(x_i))

  • 正则化项:

                \lambda J(f)

其中,\lambda权衡经验风险和模型复杂度

最常见的两种正则化项

  • L_1范数:​​​​​​​

                L(w)=\frac{1}{N}\sum\limits_{i=1}^N(f(x_i;w)-y_i)^2+\lambda ||w||_1

其中,||w||_1=\sum\limits_j|w_j|

使某些参数为零,可以起到特征筛选的作用,稀疏模型,非零参数个数很少

  • L_2范数:

                L(w)=\frac{1}{N}(f(x_i;w)-y_i)^2 + \frac{\lambda}{2}||w||_2^2

其中,||w||_2=\sqrt{\sum\limits_jw_j^2}, ||w||_2^2 = \sum\limits_jw_j^2

参数可以无限接近于零,使得模型越来越简单,防止过拟合。

奥卡姆剃刀原理

在模型选择时,选择所有可能模型中,能很好解释已知数据并且十分简单的模型。

交叉验证

数据充足的情况下:

  • 训练集(Training Set):用以训练模型
  • 验证集(Validation Set):用以选择模型
  • 测试集(Test Set):用以最终对学习方法的评估

数据不充足的情况下:

  • 简单交叉验证:随机将数据分为两部分,即训练集和测试集
  • S折交叉验证:随机将数据分为S个互不相交、大小相同的子集,其中以S-1个子集作为训练集,余下的子集作为测试集
  • 留一交叉验证:S折交叉验证的特殊情形,S=N,在数据非常缺乏的情况下使用

第六节 泛化能力

泛化误差

若所学习到的模型是\hat f,那么这个模型对未知数据预测的误差即为泛化误差(Generalization Error):

R_{exp}(\hat f)=E_p{[Y, \hat f(X)]}=\int _{x\times y}L(y, \hat f(x))P(x, y)dxdy

损失函数的期望值,所求的积分是在全样本上进行的

泛化误差上界

泛化误差上界(Generalization Error Bound):指泛化误差的概率上界。两种学习方法的优劣,通常通过他们的泛化误差上界进行比较。

性质:

  • 样本容量的函数:当样本容量增加时,泛化上界趋于0
  • 假设空间容量的函数:假设空间容量越大,模型就越难学,泛化误差上界就越大

假设空间:所有可能的模型

例子:

二分类问题

  • 训练数据集:

        ​​​​​​​        T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}

其中,T是从联合概率分布P(X,Y)独立同分布产生的, X\epsilon R^n,Y \epsilon \{-1, +1\}

  • 假设空间:

        ​​​​​​​        F = \{f_1, f_2,...,f_d\}

其中,d是函数个数

假设f\epsilon F,损失函数为0-1损失,

期望风险:

                R(f)=E{[L(Y,f(X))]}

经验风险:

        ​​​​​​​        \hat R(f) = \frac{1}{N}\sum\limits_{i=1}^NL(y_i,f(x_i))

经验风险最小化:

                f_N =\arg \min\limits_{f\epsilon F}\hat R(f)

f_N的泛化能力:

                R(f_N)=E{[L(Y,f_N(X))]}
​​​​​​​

 https://www.cnblogs.com/sybil-hxl/p/13653932.html           

相关文章:

  • 面向对象练习题(6)
  • 基于springboot实现时间管理系统演示【附项目源码+论文说明】
  • 【致敬嵌入式攻城狮第2期活动预热征文】——蜂鸣器(内化)
  • 第8章_索引的创建与设计原则
  • 了解PL/SQL看这一篇够够了~
  • 为什么我们认为GPT是一个技术爆炸
  • 低代码打翻前端的饭碗?探秘两者藕断丝连的关系
  • Redis面试题 (2023最新版)
  • 文件转换-cad转geojson
  • 文件操作编程
  • 开发脚手架常用的JS库
  • 设备树dtb文件的格式分析
  • CNN PyTorch MNIST
  • python的简单读写操作
  • 面试官:你做过什么有亮点的项目吗?
  • CSS 提示工具(Tooltip)
  • PaddlePaddle-GitHub的正确打开姿势
  • 阿里云应用高可用服务公测发布
  • 记录:CentOS7.2配置LNMP环境记录
  • 面试遇到的一些题
  • 收藏好这篇,别再只说“数据劫持”了
  • 我建了一个叫Hello World的项目
  • 怎么将电脑中的声音录制成WAV格式
  • 自动记录MySQL慢查询快照脚本
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • ​水经微图Web1.5.0版即将上线
  • (11)MATLAB PCA+SVM 人脸识别
  • (175)FPGA门控时钟技术
  • (2024,Vision-LSTM,ViL,xLSTM,ViT,ViM,双向扫描)xLSTM 作为通用视觉骨干
  • (42)STM32——LCD显示屏实验笔记
  • (55)MOS管专题--->(10)MOS管的封装
  • (C#)获取字符编码的类
  • (C++20) consteval立即函数
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (转) Android中ViewStub组件使用
  • (转)h264中avc和flv数据的解析
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • .gitattributes 文件
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .net 程序发生了一个不可捕获的异常
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .net6使用Sejil可视化日志
  • .NET技术成长路线架构图
  • .net中我喜欢的两种验证码
  • @Autowired和@Resource的区别
  • [ C++ ] STL---stack与queue
  • [383] 赎金信 js
  • [BZOJ2850]巧克力王国
  • [C++] cout、wcout无法正常输出中文字符问题的深入调查(1):各种编译器测试
  • [C++] new和delete
  • [CISCN 2019华东南]Web11
  • [codevs] 1029 遍历问题