【论文精读】Learning Bounds for Importance Weighting

Learning Bounds for Importance Weighting

原论文地址:Learning Bounds for Importance Weighting

补充材料:Supplemental material

Abstract

通过Renyi熵给出了importance weighting方法的收敛的理论依据,并且据此提出了几种新的importance weight方法,还讨论了归一化weights的性质。

1 Introduction

现实世界中机器学习训练数据和测试数据样本的分布会有偏差。一个常见的修正方法叫做importance weighting,它通过给不同的训练样本的带价值赋予权重来平衡这种偏差。一种常见的权重形式是 w ( x ) = P ( x ) / Q ( x ) w(x) = P(x)/Q(x) w(x)=P(x)/Q(x),其中 P P P Q Q Q分别是测试数据分布和训练样本分布,这样做可以得到泛化误差的无偏估计。但这样做会有一些问题,Figure 1中展示了importance weighting失败的例子。

在这里插入图片描述

目标数据和源数据都是两个相同的高斯分布,但标准差不同,用标准差之比 σ Q / σ P \sigma_Q/\sigma_P σQ/σP表示importance weighting进行训练,当 σ Q / σ P = 0.3 \sigma_Q/\sigma_P=0.3 σQ/σP=0.3时表现不好,当 σ Q / σ P = 0.7 \sigma_Q/\sigma_P=0.7 σQ/σP=0.7时表现较好(两者分布越接近,误差越小)。许多文献表明importance weighting使用时需要比较谨慎并且强调需要找到收敛范围并且保证通过这种技术是可以学习的。

作者通过标准泛化边界证明,当权重有界时,important weighting可以成功。但这种条件不太实用,作者证明了即使权重不是有界的,在一个相对弱的条件,即权重的二阶矩有界时,也能保证收敛,这个条件与 P P P Q Q QRenyi熵有关。作者据此探索了其他reweighting的方法。

2 Preliminaries

2.1 Renyi Divergences

Renyi熵可以用来衡量两个分布之间的相关性,公式如下:

在这里插入图片描述

简单变形:

在这里插入图片描述

Importance Weight

P P P Q Q Q的importance weight定义为 w ( x ) = P ( x ) / Q ( x ) w(x) = P(x)/Q(x) w(x)=P(x)/Q(x),可以得到如下引理及证明(期望是关于 Q Q Q的):

在这里插入图片描述

既然是关于Q的,那么期望很容易得到就是1。根据Renyi熵,二阶矩(平方的期望)可以表示如下:

在这里插入图片描述

方差就是平方的期望(二阶矩)减去期望的平方:

在这里插入图片描述

没加weights和加了weights的loss如下:

在这里插入图片描述

L h ( x ) L_h(x) Lh(x)表示 L ( h ( x ) , f ( x ) ) L(h(x), f(x)) L(h(x),f(x)),那么由于非归一化的 w ( x ) w(x) w(x)是无偏的,那么:

在这里插入图片描述

下面的引理给出了二阶矩的边界:

在这里插入图片描述

对于 α = 1 \alpha=1 α=1,不等式变为:

在这里插入图片描述

证明:

在这里插入图片描述

里面用到两个不等式,其中一个是赫德尔不等式

3 LearningGuarantees-BoundedCase

w ( x ) w(x) w(x)有界时,令 M = sup x w ( x ) = d ∞ ( P ∣ ∣ Q ) M=\text{sup}_xw(x)=d_\infin(P||Q) M=supxw(x)=d(PQ) d α ( P ∣ ∣ Q ) d_\alpha(P||Q) dα(PQ)关于 α \alpha α单调递增),根据Hoeffding不等式,有以下命题:

在这里插入图片描述

上界 M M M有可能很大,下面又给出了下面这个更友好一点的定理:

在这里插入图片描述

证明中用随机变量 Z Z Z表示 w ( x ) L h ( x ) − R ( h ) w(x)L_h(x)-R(h) w(x)Lh(x)R(h),那么 Z Z Z的方差:

在这里插入图片描述

根据Bernstein不等式得到:

在这里插入图片描述

δ \delta δ作为概率上界带入可整理得到下面的不等式以最低概率 1 − δ 1-\delta 1δ成立:

在这里插入图片描述

再用一个简单的不等式变换得到:

在这里插入图片描述

这个结果对于任意的假设集都成立,特别地对于一个有限假设集 α = 1 \alpha=1 α=1有如下结果:

在这里插入图片描述

下面的命题给出了一个下界,说明了2阶的Renyi熵对于importance weighting收敛的重要意义:

在这里插入图片描述

Learning Guarantees - Unbounded Case

d ∞ ( P ∣ ∣ Q ) &lt; ∞ d_\infin(P||Q)&lt;\infin d(PQ)<的条件并不一定有效,下面讨论一些无界的例子。

4.1 Examples

对于下面的分布:

在这里插入图片描述

在这里插入图片描述

importance weights是无界的,2阶的Renyi熵:

在这里插入图片描述

对于 σ Q &gt; 2 2 σ P \sigma_Q&gt;\frac{\sqrt2}{2}\sigma_P σQ>22 σP,importance weights的方差是有界的,在Figure 1最右侧图中importance weights是无界的,但其二阶矩有界。但对于 σ Q = 0.3 σ P \sigma_Q=0.3\sigma_P σQ=0.3σP学习就困难得多了。

然后又在高斯分布的例子上说为什么有时候importance weights会失败。同时,importance weights归一化有时也不能完全解决问题。

Importance weighting learning bounds - unbounded case

这里说明即使importance weights无界,只要二阶矩有界,那么泛化误差有界。

在这里插入图片描述

这种无界的情况下收敛的速率会略有下降( O ( m − 3 / 8 ) O(m^{-3/8}) O(m3/8) vs O ( m − 1 / 2 ) O(m^{-1/2}) O(m1/2))。

5 Alternative reweighting algorithms

这里介绍了如何找其他的weights策略 u ( x ) u(x) u(x)来代替上面讨论的 w ( x ) = P ( x ) / Q ( x ) w(x)=P(x)/Q(x) w(x)=P(x)/Q(x)。首先给出了下面的定理:

在这里插入图片描述

这是对 w ( x ) w(x) w(x) u ( x ) u(x) u(x)的偏差和二阶矩的一种权衡,可以由如下的优化问题表示:

在这里插入图片描述

作者给出了一种利用分位点确定 u u u的方法:用q个分位点之间 w w w的均值表示 u u u。这样,当 λ \lambda λ比较小时, w ( x ) w(x) w(x) u ( x ) u(x) u(x)的偏差项主导,那么分位点越多, u u u就越接近 w w w;当 λ \lambda λ比较大时, u u u的方差项主导,越接近没有importance weighting的情况。另外,作者还介绍了一种通过threshold限制 w w w的方法。Figure 2展示了改进的importance weight方法的结果。

在这里插入图片描述

6 Relationship between normalized and unnormalized weights

归一化的weights将 w w w进行了限制,但是这样就不是无偏的了,另外在Section 4中提到的,会使得有些样本的 w w w占主导地位。

7 Conclusion

本文利用Renyi熵在理论和实践上说明了权重有界和权重无界但二阶矩有界的情况下importance weight方法的可行性。另外提出了两种改进的Importance weighting方法。

引用\[1\]:报错内容:Exception in thread “pool-1-thread-3” java.lang.IndexOutOfBoundsException: Index 4 out of bounds for length 4 看字面的报错意思:有4个index,发生了长度溢出。主要关注点在index上,看到报错内容有代码所在行:找到(ReadAndWrite.java:27) 。 引用\[2\]:根据错误提示,这个模块的某个方法在执行时发生了“IndexOutOfBoundsException”的异常,也就是说它试图访问一个数组、列表或集合中不存在的元素。错误信息中显示“Index 0 out of bounds for length 0”,也就是说该模块的某个方法尝试获取一个长度为0的数组或列表中的第一个元素,这听起来就是有问题的,那么重点在于为什么这个长度为0。 对于扶梯组,如果让长度为0还要获取智能体,在测试中我能想到的只有扶梯方向设置反了。 。 引用\[3\]:这样的报错信息,首先找不到是出现在什么智能体上面,二是给出的报错信息,要么来自java原生包的、要么来自于anylogic的实例化函数(用户不可调),再看问题:Index 0 out of bounds for length 0。怎么说咱java也写了这么长时间了,可太熟悉这个了。 第一步 检查所有的定义循环、collection、queue的位置的逻辑是否正确 。 问题:Index 46 out of bounds for length 46 回答:根据报错信息"Index 46 out of bounds for length 46",这个错误提示意味着在某个程序中,试图访问一个长度为46的数组或列表中的第46个元素,但是该数组或列表的长度只有46。这意味着数组或列表的索引超出了其有效范围。要解决这个问题,需要检查代码中的索引逻辑,确保索引值在有效范围内。可能需要检查循环、集合或队列的定义和使用,确保索引的正确性。 #### 引用[.reference_title] - *1* [创建线程池报错解决:Exception in thread “pool-1-thread-3“ java.lang.IndexOutOfBoundsException](https://blog.csdn.net/liyanfang1004/article/details/123878107)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [anylogic报错:Index 0 out of bounds for length 0](https://blog.csdn.net/weixin_45670481/article/details/129439341)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值