目录

Pang T, Du C, Zhu J, et al. Max-Mahalanobis Linear Discriminant Analysis Networks[C]. international conference on machine learning, 2018: 4013-4022.

@article{pang2018max-mahalanobis,

title={Max-Mahalanobis Linear Discriminant Analysis Networks},

author={Pang, Tianyu and Du, Chao and Zhu, Jun},

pages={4013--4022},

year={2018}}

本文介绍了从最大化马氏距离的角度提出了一种defense.

主要内容

对于俩个分布来说, 区分样本属于哪一个分布, 最好的分类器就是贝叶斯分类, 特别的, 如果是高斯分布, 且协方差矩阵一致, 则其分类平面为

\[w^T(x-x_0)=0,
\]

其中

\[w=\Sigma^{-1} (\mu_1 - \mu_2),
\]
\[x_0=\frac{1}{\mu_1+\mu_2} - \ln (\frac{P(w_1)}{P(w_2)}) \frac{\mu_1-\mu_2}{\|\mu_1-\mu_2\|_{\Sigma^{-1}}^2}.
\]

特别的, 当\(\Sigma\)为对角矩阵的时候, 其分类平面只与\(\mu_1-\mu_2\)有关.

设一个混合高斯分布:

\[P(y=i)=\pi_i, P(x|y=i)=\mathcal{N}(\mu_i, \Sigma), \quad i \in [L]:=1,\ldots,L,
\]

并定义

\[\Delta_{i,j} := [(\mu_i-\mu_j)^T \Sigma^{-1} (\mu_i - \mu_j)]^{1/2}.
\]

因为神经网络强大的拟合分布能力, 我们可以假设\(\Sigma=I\)(文中将\Sigma$分解, 然后用变量替换可以得到, 马氏距离在此情况下具有不变性, 我觉得不如直接这么解释比较实在).

设想, 从第i个分布中采样\(x_{(i)} \sim \mathcal{N}(\mu_i, I)\), 将\(x_{(i)}\)移动到与\(j\)类的分类平面的距离设为\(d_{(i,j)}\),

定理: 如果\(\pi_i=\pi_j\), 则\(d_{(i,j)}\)的期望为

\[\mathbb{E}[d_{(i,j)}] = \sqrt{\frac{2}{\pi}} \exp(-\frac{\Delta_{i,j}^2}{8})+\frac{1}{2} \Delta_{i,j} [1-2\Phi(-\frac{\Delta_{i, j}}{2})],
\]

其中\(\Phi\)表示正态分布函数.

注意, 这里的\(d_{i,j}\)是\(x\)到分类平面的距离, 也就是说, 如果\(x_{(i)}\)如果本身就位于别的类中, 同样也计算这个距离, 不公平, 当然如果这么考虑, 证明起来就相当麻烦了.

如果定义

\[\mathrm{RB} = \min_{i,j\in [L]} \mathbb{E}[d_{(i,j)}],
\]

则我们自然希望\(\mathrm{RB}\)越大越好(越鲁棒, 但是根据我们上面的分析, 这个定义是存在瑕疵的). 然后通过导数, 进一步发现

\[\mathrm{RB} \approx \bar{\mathrm{RB}} := \min_{i,j \in [L]} \Delta_{i,j} / 2.
\]

有定理:

所以, 作者的结论就是, 最后一层

\[z_i =\mu_i^Tf(x)+b_i,
\]

满足\((4)\), 为此作者设计了一个算法



去构造. 所以, 这最后一层的参数是固定不训练的. 余下的与普通的网络没有区别.

Max-Mahalanobis Linear Discriminant Analysis Networks的更多相关文章

  1. 线性判别分析(Linear Discriminant Analysis,LDA)

    一.LDA的基本思想 线性判别式分析(Linear Discriminant Analysis, LDA),也叫做Fisher线性判别(Fisher Linear Discriminant ,FLD) ...

  2. 线性判别分析(Linear Discriminant Analysis, LDA)算法分析

    原文来自:http://blog.csdn.net/xiazhaoqiang/article/details/6585537 LDA算法入门 一. LDA算法概述:       线性判别式分析(Lin ...

  3. 线性判别分析(Linear Discriminant Analysis, LDA)算法初识

    LDA算法入门 一. LDA算法概述: 线性判别式分析(Linear Discriminant Analysis, LDA),也叫做Fisher线性判别(Fisher Linear Discrimin ...

  4. 机器学习: Linear Discriminant Analysis 线性判别分析

    Linear discriminant analysis (LDA) 线性判别分析也是机器学习中常用的一种降维算法,与 PCA 相比, LDA 是属于supervised 的一种降维算法.PCA考虑的 ...

  5. Linear Discriminant Analysis Algorithm

    线性判别分析算法. 逻辑回归是一种分类算法,传统上仅限于两类分类问题. 如果有两个以上的类,那么线性判别分析算法是首选的线性分类技术.LDA的表示非常直接.它包括数据的统计属性,为每个类计算.对于单个 ...

  6. 线性判别分析(Linear Discriminant Analysis)转载

    1. 问题 之前我们讨论的PCA.ICA也好,对样本数据来言,可以是没有类别标签y的.回想我们做回归时,如果特征太多,那么会产生不相关特征引入.过度拟合等问题.我们可以使用PCA来降维,但PCA没有将 ...

  7. 线性判别分析(Linear Discriminant Analysis)

    1. 问题 之前我们讨论的PCA.ICA也好,对样本数据来言,可以是没有类别标签y的.回想我们做回归时,如果特征太多,那么会产生不相关特征引入.过度拟合等问题.我们可以使用PCA来降维,但PCA没有将 ...

  8. [ML] Linear Discriminant Analysis

    虽然名字里有discriminat这个字,但却是生成模型,有点意思. 判别式 pk 生成式 阅读:生成方法 vs 判别方法 + 生成模型 vs 判别模型 举例: 判别式模型举例:要确定一个羊是山羊还是 ...

  9. Linear Discriminant Analysis

    Suppose that we model each class density as multivariate Gaussian, in practice we do not know the pa ...

随机推荐

  1. LeetCode 从头到尾打印链表

    LeetCode 从头到尾打印链表 题目描述 输入一个链表头节点,从尾到头反过来返回每个节点的值(用数组返回). 示例 1: 输入:head = [1,3,2] 输出:[2,3,1] 一得之见(Jav ...

  2. Spark基础:(三)Spark 键值对操作

    1.pair RDD的简介 Spark为包含键值对类型的RDD提供了一些专有的操作,这些RDD就被称为pair RDD 那么如何创建pair RDD呢? 在不同的语言中有着不同的创建方式 在pytho ...

  3. Vue中加载百度地图

    借助百度地图的 LocalSearch 和 Autocomplete 两个方法 实现方式:通过promise以及百度地图的callback回调函数 map.js 1 export function M ...

  4. 理解各种不同含义的 new 和 delete

    new operator new操作符 operator new 操作符new placement new 定位new string *ps = new string("Memory Man ...

  5. Kotlin 学习(1)

    本文出自链接:https://www.jianshu.com/p/ef9584a8ebf8 Kotlin的插件安装: Settings->Plugins->Browse Repositor ...

  6. Linux基础命令---mysql

    mysql mysql是一个简单的sql shell,它可以用来管理mysql数据库. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.Fedora.   1.语法      m ...

  7. Spring 文档汇总

    Spring Batch - Reference Documentation Spring Batch 参考文档中文版 Spring Batch 中文文档 Table 2. JdbcCursorIte ...

  8. 5.Vue.js-模板语法

    Vue.js 使用了基于 HTML 的模版语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据. Vue.js 的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统 ...

  9. Django auth

    auth是django一个自带的用户验证系统,使用它可以减少我们的开发流程. 基本使用 大体流程: 自定义类 from django.contrib.auth.models import Abstra ...

  10. ExecutorService 线程池详解

    1.什么是ExecutorService,为什么要使用线程池? 许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务,每当一个请求到达就创建一个新线程,然后在新线程中为请求服务,但是频繁创建新 ...