统计学习策略相关知识简记

策略可以理解为统计学习方法从假设空间中学习或选择最优模型的准则

一、概念

1、决策函数

决策函数在监督学习问题中是从假设空间F中选取的模型f,对于给定的输入X,由f(X)给出相应的输出y,这个输出的预测值f(X)与真实值y可能一致也可能不一致。可以用一个损失函数(loss function)或代价函数(cost function)来度量预测错误的程度。

2、损失函数

损失函数是f(X)和y的非负实值函数, 记作L(Y,f(X)),损失函数可以度量模型一次预测的好坏。

3、常用损失函数
(1) 0-1 损失函数(0-1 loss function)

(2)平方损失函数(quadratic loss function)

(3)绝对损失函数(absolute loss function)

(4)对数损失函数(logarithmic loss function)或对数似然损失函数(log-likelihood
loss function)

4、风险函数(损失函数期望)
损失函数值越小, 模型就越好。 由于模型的输入、 输出(x,y)是随机变量, 遵循联合分布p(x,y),所以损失函数的期望是


这是理论上模型f(x)关于联合分布p(x,y)的平均意义下的损失, 称为风险函数(risk function)或期望损失(expected loss) 

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

5、病态问题

学习的目标就是选择期望风险最小的模型。 由于联合分布P(X,Y)是未知的, 风险函数

不能直接计算。

一方面根据期望风险最小学习模型要用到联合分布, 另一方面联合分布又是未知的, 所以监督学习就成为一个病态问题(ill-formedproblem)

6、经验风险

给定一个训练数据集


模型f(X)关于训练数据集的平均损失称为经验风险(empirical risk)或经验损失 (empirical loss)记作:

期望风险Rexp(f)是模型关于联合分布的期望损失, 经验风险Remp(f)是模型关于训练样本集的平均损失。

7、估计与矫正

根据大数定律, 当样本容量N趋于无穷时, 经验风险Remp(f)趋于期望风险Rexp(f)。所以可以考虑用经验风险估计期望风险。
但是, 由于现实中训练样本数目有限, 甚至很小, 所以用经验风险估计期望风险常常并不理想, 要对经验风险进行一定的矫正。

为此引入监督学习的两个基本策略: 经验风险最小化和结构风险最小化

8、经验风险最小化

在假设空间、 损失函数以及训练数据集确定的情况下, 经验风险函数式就可以确定。

经验风险最小化(empirical risk minimization, ERM)的策略核心思想是:经验风险最小的模型是最优的模型。

根据这一策略, 按照经验风险最小化求最优模型就是求解最优化问题:


其中, F是假设空间。
当样本容量足够大时, 经验风险最小化能保证有很好的学习效果。

极大似然估计(maximum likelihood estimation)就是经验风险最小化的一个例子。

当模型是条件概率分布、 损失函数是对数损失函数时, 经验风险最小化就等价于极大似然估计。
但是, 当样本容量很小时, 经验风险最小化学习的效果就未必很好, 会产生过拟合(over-fitting)现象。

9、结构风险最小化
结构风险最小化(structural risk minimization, SRM)是为了防止过拟合而提出来的策略。

结构风险最小化等价于正则化(regularization) 。

结构风险在经验风险上加上表示模型复杂度的正则化项(regularizer)或罚项(penalty term) 。

在假设空间、 损失函数以及训练数据集确定的情况下, 结构风险的定义是:


其中J(f)为模型的复杂度, 是定义在假设空间F上的泛函。

模型f越复杂, 复杂度J(f)就越大

反之, 模型f越简单, 复杂度J(f)就越小。

也就是说, 复杂度表示了对复杂模型的惩罚。

λ≥0是系数, 用以权衡经验风险和模型复杂度。

结构风险小需要经验风险与模型复杂度同时小。

结构风险小的模型往往对训练数据以及未知的测试数据都有较好的预测。

结构风险最小化的策略认为结构风险最小的模型是最优的模型。

10、求最优模型的最优化问题

将求最优模型, 转化为求解最优化问题:

监督学习问题就变成了经验风险或结构风险函数的最优化问题。

此时经验或结构风险函数是最优化的目标函数

二、贝叶斯学习(Bayesian learning)/贝叶斯推理(Bayesian inference)

1、定义

在概率模型的学习和推理中, 利用贝叶斯定理, 计算在给定数据条件下模型的条件概率, 即后验概率, 并应用这个原理进行模型的估计, 以及对数据的预测。

特点:将模型、 未观测要素及其参数用变量表示, 使用模型的先验分布

2、示例

朴素贝叶斯、 潜在狄利克雷分配的学习属于贝叶斯学习

3、后验概率

假设随机变量d表示数据, 随机变量e表示模型参数。 根据贝叶斯定理, 可以用
以下公式计算后验概率


其中p(θ) 是先验概率, P(D|θ)是似然函数。

4、模型选取
模型估计时, 估计整个后验概率分布。如果需要给出一个模型, 通常取后验概率最大的模型。

5、预测
预测时, 计算数据对后验概率分布的期望值:

6、贝叶斯估计与极大似然估计

贝叶斯估计与极大似然估计在思想上有很大的不同, 代表着统计学中贝叶斯学派和频率学派对统计的不同认识。

其实, 可以简单地把两者联系起来, 假设先验分布是均匀分布, 取后验概率最大, 就能从贝叶斯估计得到极大似然估计。

三、核方法

1、核方法

核方法(kernel method)是使用核函数表示和学习非线性模型的一种机器学习方法

有一些线性模型的学习方法基于相似度计算,更具体地,比如向量内积计算。

核方法可以把它们扩展到非线性模型的学习, 使其应用范围更广泛。

2、示例

核函数支持向量机, 以及核PCA、核k均值属于核方法

3、非线性扩展

把线性模型扩展到非线性模型, 直接的做法是显式地定义从输入空间(低维空间)到特征空间(高维空间) 的映射, 在特征空间中进行内积计算。

比如, 支持向量机, 把输入空间的线性不可分问题转化为特征空间的线性可分问题

4、核函数

核方法的技巧在于不显式地定义这个映射, 而是直接定义核函数, 即映射之后在特征空间的内积

假设x1和x2是输入空间的任意两个实例(向量), 其内积是〈x1,x2〉 。

假设从输入空间到特征空间的映射是h,于是x1和x2在特征空间的映像是h(x1)和h(x2) ,其内积是<h(x1),h(x2)> 。

核方法直接在输入空间中定义核函数K(x1,x2),使其满足K(x1,x2) = <h(x1),h(x2)> 。

### 如何在 IntelliJ IDEA 中配置和使用 Swagger #### 添加 Maven 依赖 为了使 Swagger 能够工作,在 `pom.xml` 文件中需加入特定的依赖项。这可以通过编辑项目的构建文件来完成: ```xml <dependencies> <!-- swagger2 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.8.0</version> </dependency> <!-- swagger ui --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.8.0</version> </dependency> </dependencies> ``` 这些依赖会引入必要的库用于生成 API 文档以及提供交互式的 UI 页面[^4]。 #### 创建 Swagger 配置类 接着创建一个新的 Java 类用来初始化并配置 Swagger 实例。通常命名为类似于 `SwaggerConfig.java` 的名称,并放置于合适的位置,比如 `config` 包内: ```java import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; @Configuration public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .build(); } private ApiInfo apiInfo(){ return new ApiInfoBuilder().title("API文档").description("").termsOfServiceUrl("") .contact(new Contact("", "", "")) .license("").licenseUrl("").version("1.0") .build(); } } ``` 这段代码定义了一个 Spring Bean 来设置 Swagger 的基本信息和其他选项。 #### 启动应用测试 当上述步骤完成后,启动应用程序即可访问默认路径 `/swagger-ui.html` 查看自动生成的 RESTful 接口文档界面。通过浏览器打开该链接可以浏览到所有已暴露出来的 HTTP 请求方法及其参数说明等信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

well_fly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值