DUTI算法的学习(从零开始)

一、介绍

在机器学习当中,我们的数据可能存在着一些bug,这些bug可以分为两类,一类是和一般数据偏差较大的“粗大误差”,另一类是数据整体向某个方向偏差的“系统误差”。DUTI算法主要用于发现数据的bug,即“粗大误差”和“系统误差”。

为实现这一工作,需要机器学习算法,以及一些可靠数据

二、训练“捉虫”工具

2.1 三个输入

1、训练数据

所有训练数据的集合 { ( x i , y i ) } 1 : n \{(x_i,y_i)\}_{1:n} {(xi,yi)}1:n,其中 y i y_i yi x i x_i xi的预测输出,可能存在错误。可以设 y i = f ( x i , θ ) y_i=f(x_i,\theta) yi=f(xi,θ),其中 θ \theta θ是待求参数。当回归函数
X = ( x 1 , x 2 , ⋯   , x n ) X=(x_1,x_2,\cdots,x_n) X=(x1,x2,,xn) Y = ( y 1 , y 2 , ⋯   , y n ) Y=(y_1,y_2,\cdots,y_n) Y=(y1,y2,,yn)

2、可靠数据

所有可靠数据的集合 { ( x ~ i , y ~ i , c i ) } 1 : m \{(\widetilde x_i,\widetilde y_i,c_i)\}_{1:m} {(x i,y i,ci)}1:m,这些数据是已经被专家证实可靠的,可靠程度 c i ≥ 0 c_i \ge 0 ci0。记 X ~ = ( x ~ 1 , x ~ 2 , ⋯   , x ~ m ) \widetilde X=(\widetilde x_1,\widetilde x_2,\cdots,\widetilde x_m) X =(x 1,x 2,,x m) Y ~ = ( y ~ 1 , y ~ 2 , ⋯   , y ~ m ) \widetilde Y=(\widetilde y_1,\widetilde y_2,\cdots,\widetilde y_m) Y =(y 1,y 2,,y m)

我们假设 m < < n m<<n m<<n,所以仅由可靠数据,是远远不够训练神经网络的

3、学习算法

学习算法是由训练数据得到的一组参数 θ ∈ R p \theta \in R^p θRp p p p根据需要来确定。

学习算法 A ( X , Y ) = arg min ⁡ θ ∈ R p 1 n ∑ i = 1 n l ( x i , y i , θ ) + λ Ω ( θ ) \Alpha (X,Y)= \argmin \limits_{\theta \in R^p} \frac 1n \sum \limits_{i=1}^n l(x_i,y_i,\theta)+\lambda \Omega(\theta) A(X,Y)=θRpargminn1i=1nl(xi,yi,θ)+λΩ(θ),其中 l ( x , y , θ ) l(x,y,\theta) l(x,y,θ)为损失函数, Ω ( θ ) \Omega(\theta) Ω(θ)为正则项, λ \lambda λ为事先取定的系数。关于损失函数和正则项的具体解释可参见损失函数和正则项。通俗来讲, A ( X , Y ) \Alpha(X,Y) A(X,Y)得到的是 θ \theta θ的极大后验估计,即使得 P ( θ ∣ ( X , Y ) ) P(\theta|(X,Y)) P(θ(X,Y))最大的 θ \theta θ

DUTI事实上是在求 θ \theta θ使得:
P r e d i c t o r = A ( X , Y ′ ) Predictor=A(X,Y') Predictor=A(X,Y)
P r e d i c t o r ( X ~ ) = Y ~ , P r e d i c t o r ( X ) = Y ′ Predictor(\widetilde X)=\widetilde Y,Predictor(X)=Y' Predictor(X )=Y ,Predictor(X)=Y
要让 ∣ ∣ Y − Y ′ ∣ ∣ ||Y-Y'|| YY尽可能小。在这里,我们取L1型范数,即希望 Y Y Y Y ′ Y' Y之间的曼哈顿距离尽可能小。

接下来,就是要对其做一些松弛操作,好让其可解

2.2 回归捉虫

δ = Y − Y ′ \delta=Y-Y' δ=YY,则原问题等价于为:
θ = arg min ⁡ β ∈ R p 1 n ∑ i = 1 n l ( x i , y i + δ i , β ) + λ Ω ( β ) ( 2.1 ) l ( x ~ i , y ~ i ) = 0 ( 2.2 ) l ( x i , y i ) = 0 ( 2.3 ) min ⁡ ∣ ∣ δ ∣ ∣ 1 ( 2.4 ) \begin{aligned} & \theta =\argmin \limits_{\beta \in R^p} \frac 1n \sum \limits_{i=1}^nl(x_i,y_i+\delta_i,\beta)+\lambda \Omega(\beta)&(2.1) \\ & l(\widetilde x_i,\widetilde y_i) =0 &(2.2)\\ & l(x_i,y_i)=0 &(2.3)\\ & \min||\delta||_1 &(2.4) \end{aligned} θ=βRpargminn1i=1nl(xi,yi+δi,β)+λΩ(β)l(x i,y i)=0l(xi,yi)=0minδ1(2.1)(2.2)(2.3)(2.4)
( 2.1 ) (2.1) (2.1)右式做全微分, ( 2.1 ) (2.1) (2.1)式等价于
g ( δ , θ ) = 1 n ∑ i = 1 n ∇ θ l ( x i , y i + δ i , θ ) + λ ∇ θ Ω ( θ ) = 0 g(\delta,\theta)=\frac 1n\sum \limits_{i=1}^n\nabla_{\theta}l(x_i,y_i+\delta_i,\theta)+\lambda \nabla_\theta \Omega(\theta)=0 g(δ,θ)=n1i=1nθl(xi,yi+δi,θ)+λθΩ(θ)=0
( 2 , 2 ) , ( 2.3 ) , ( 2.4 ) (2,2),(2.3),(2.4) (2,2),(2.3),(2.4)可松弛写成
min ⁡ δ ∈ R n , θ 1 m ∑ i = 1 m c i l ( x ~ i , y ~ i , θ ) + 1 n ∑ i = 1 n l ( x i , y i + δ i , θ ) + γ ∣ ∣ δ ∣ ∣ 1 n (2.5) \min \limits_{\delta \in R^n,\theta} \frac 1m\sum \limits_{i=1}^mc_il(\widetilde x_i,\widetilde y_i,\theta)+\frac 1n\sum \limits_{i=1}^nl(x_i,y_i+\delta_i,\theta)+\gamma \frac {||\delta||_1}n \tag{2.5} δRn,θminm1i=1mcil(x i,y i,θ)+n1i=1nl(xi,yi+δi,θ)+γnδ1(2.5)
其中 γ \gamma γ可以自行取值。
g ( δ , θ ) = 0 g(\delta,\theta)=0 g(δ,θ)=0可得到隐函数 θ = θ ( δ ) \theta=\theta(\delta) θ=θ(δ)。将其代入 ( 2.5 ) (2.5) (2.5),设函数的结果为 O γ ( δ ) O_{\gamma}(\delta) Oγ(δ)。接下来,我们就可以通过梯度下降的方法,求 O γ ( δ ) O_{\gamma}(\delta) Oγ(δ)的最小值

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值