• AI遮天传 DL-回归与分类


    本文主要介绍Logistic回归Softmax回归

    一、回归与分类回忆

    给定数据点集合 x^{n}\epsilon R^{n} 和相应的标签 t^{n}\epsilon \Omega,对于一个新的数据点x,预测它的标签(目标是找到一个映射 f:R^{m}\rightarrow \Omega):

    如果\Omega是一个连续的集合,称其为回归(regression)

    如果\Omega是一个离散的集合,称其为分类(classfication)

    多项式回归 

    考虑一个回归问题,输入x和输出y都是标量。寻找一个函数  f:\mathbb{R}\rightarrow \mathbb{R} 来拟合数据

    f(x)=wx+b

    f(x)=w_{1}x+w_{2}x^2+b

    f(x) = \sum_{i=1}^{n}w_{i}x^{i} + b

     

    无论是线性回归还是非线性回归,我们一般都是通过一些成本函数如最小均方误差(MSE),作为损失函数,来确定 f 的参数。

    线性回归

    • f(x)是线性的

    f(x) = w^{T}x+b

            其中w\epsilon R^{m},\, b\epsilon R,\:b(偏置/残差/误差项)可以融入\theta并且得到f(x) = \theta ^{T}x 

    • 设均方误差(MSE)为成本函数

    E=\frac{1}{2N}\sum_{n=1}^{N}(f(x^{(n)})-t^{(n)})^2 = \frac{1}{2N}\sum_{n=1}^{N}(w^{t}x^{(n)}+b-t^{(n)})^2

    • 通过最小化成本函数来找到最优的w和b

            如最小二乘法、梯度下降法使得损失函数最小来求解参数。 

     AI遮天传 ML-回归分析入门

    利用回归进行二分类

    在特征空间,一个线性分类器对应一个超平面

    两种典型的线性分类器:

    • 回归 - 预测连续的 y=f(x)
    • 分类  - 预测 y=\left\{\begin{matrix} 1 & f(x)\geq 0.5\\ 0& f(x)< 0.5 \end{matrix}\right.

    利用线性回归进行二分类: 

    假定t\epsilon \left \{0,1 \right \},考虑一维特征的情况

    假定t\epsilon \left \{0,1 \right \},考虑高维特征的情况 

    使用非线性回归进行二分类

    f(x) 可以是非线性函数,如:logisitic sigoid function

    同理我们可以用训练线性回归模型的方法训练非线性回归,只不过原来的 f(x) = w^{T}x+b

    变成了  f(x) = h(w^{T}+b) 

    注:这里的h是一个函数如 logisitic sigoid function

    从概率的角度看问题

    假设标签服从均值为 f(x) = h(w^{T}+b) 的正态分布,则其极大似然估计等同于最小化:

    • 对于回归问题(t是连续的),正态分布假设是自然的。
    • 对于分类问题(t是离散的),正态分布假设会很奇怪。
    • 对于二分类问题的数据分布有更适合的假设 ----> 伯努利分布

    为什么伯努利分布更适合二分类问题呢?

    二、Logistic回归

    对于一个二分类任务,一个0-1单元足以表示一个标签

    尝试学习条件概率(已经将b融入\theta,x为输入,t为标签)

    • P(t=1|x) = \frac{1}{1+exp(-\theta ^{T}x)}\overset{\Delta }{=}h(x)
    • P(t=0|x) = 1-P(t=1|x)=1-h(x)

    我们的目标是寻找一个\theta 值使得概率  P(t=1|x)=h(x)

    当x属于类别1时,取很大的值如0.99999。

    当x属于类别2时,取很小的值如0.00001 (因此 P(t=0|x) 取很大的值) 

    我们实质上是在用另一个连续函数 h 来 “回归” 一个离散的函数 (x -> t)

    交叉熵误差函数(CSE)

    对于伯努利分布,我们最大化条件数据似然,得到等同于最小化:

    得到新的损失函数(CSE)  E(\theta) = -\frac{1}{N}\sum_{n=1}^{N}(t^{(n)}ln(h(x^{(n)}))-(1-t^{(n)})ln(1-h(x^{(n)})))  

    我们拿出其中一项:E(\theta )^{(n)} = -t^{(n)}ln(h(x^{(n)}))-(1-t^{(n)})ln(1-h(x^{(n)}))

    • 可见,如果t=1, 则E = -ln(h)

    • 如果t=0, 则E = -ln(1-h)

    可见河里。 

    训练和测试

    二分类问题总结

    三、SoftMax回归

    我们上面讲解了一维和多维二分类,其实对于多分类,只是增加了函数个数作为维度。 

    如上图,比如对于一个x,三个函数的结果为1.2、4.1、1.9,那么便可根据后续操作对其进行回归或者分类。这三个函数可能是线性的,也可能是非线性的,如logistic回归。

    选择均方误差(MSE)作为损失函数

    E = \frac{1}{2N}\sum_{n=1}^{N}\sum_{k=1}^{K}(f_{k}(x^{(n)})-t_{k}^{(n)})^{2}

    对其使用最小二乘法/梯度下降法进行计算得出参数。 

    标签类别的表示  

    对于分类问题,即经过一个映射f 输出是一个离散的集合,我们有两种表示标签的方法:

    对于第一种方法,类别之间有了远近的关系,因此我们一般使用第二种表示法。 每一个维度只有0-1两种结果。

    我们只需看输出的某个点里哪一类代表的点更近即可进行分类。

    概率角度:

    我们上面提到,对于二分类任务,伯努利分布更加适合,因此我们引入了logistic回归。

    而当面对多分类任务(K>2)时,我们选择 统筹 multinoulli/categorical 分布

    回顾统筹 multinoulli/categorical 分布 

    统筹分布学习:

    •  令 P(t_{k}=1|x) 采取以下形式:

    P(t_{k}=1|x)=\frac{exp(\theta ^{(k)T}x)}{\sum_{j=1}^{K}exp(\theta ^{(j)T}x)}\overset{\Delta }{=}h(x)

            明显地,h_{k}(x)\epsilon (0,1) 并且 \sum_{k=1}^{K}h_{k}(x)=1

    • 给定一个测试输入x,对每一个k=1,2,...,K,估计 P(t_{k}=1|x)

            - 当x属于第K个类时,取很大的值

            - 当x属于其他类时,取很小的值

    • 由于 h_{k}(x) 是一个(连续的)概率,我们需要将它转换为符合分类的离散值

    Softmax函数

    P(t_{k}=1|x)=\frac{exp(\theta ^{(k)T}x)}{\sum_{j=1}^{K}exp(\theta ^{(j)T}x)}\overset{\Delta }{=}h(x)

    下列函数被称为Softmax函数:

    \psi (x_{i})=\frac{exp(z_{i})}{\sum_{j}^{}exp(z_{i})}=\frac{exp(z_{i})}{exp(z_{i})+\sum_{j\neq i}^{}exp(z_{i})}\, \epsilon \, (0,1)

    • 如果 z_{i} > z_{j } 对于所有 j\neq i 都成立,则对于所有的 j\neq i 有 \psi (z_{i})>\psi (z_{j}) 但其值小于1。
    • 如果 z_{i} > z_{j } 对于所有 j\neq i 都成立,则对于所有的 j\neq i有  \psi (z_{i})\rightarrow 1,\: \: \psi (z_{j})\rightarrow 0

    同样,我们最大条件似然得到交叉熵误差函数

    E(\theta )=-\frac{1}{N}lnP(t^{(1)},...,t^{(N)})=-\frac{1}{N}\sum_{n=1}^{N}\sum_{k=1}^{K}t_{k}^{(n)}ln\frac{exp(\theta ^{(k)T}x^{(n)})}{\sum_{j=1}^{K}exp(\theta ^{(j)T}x^{(n)})}

    注:

    \sum_{k=1}^{K}\frac{exp(\theta ^{(k)T}x^{(n)})}{\sum_{j=1}^{K}exp(\theta ^{(j)T}x^{(n)})}   对于每个K,只有一个非0项(因为如(0,0,0,1,0,0))

    计算梯度

    向量-矩阵形式 

    训练和测试

    随机梯度下降

    在整个训练集中,最小化成恨函数的计算开销非常大,我们通常将训练集划分为较小的子集或 minibatches 然后在单个 minibatches (xi,yi)上优化成本函数,并取平均值。

    引入偏置bias

    到目前为止,我们已经假设 h_{k}(x)=P(t_{k}=1|x)=\frac{exp( u_{k}^{(n)})}{\sum_{j=1}^{K}exp( u_{j}^{))n})}

    其中 u_{k}^{(n)}=\theta ^{(k)T}x^{(n)}

    有时偏置项可以引入到 u_{k}^{(n)} 中,参数成为{w,b}

    u_{k}^{(n)}=w^{(k)T}x^{(n)}+b^{(k)}

    得到

    正则化通常只应用在w上

    J(W,b)=E(W,b)+\lambda \begin{Vmatrix} W \end{Vmatrix}^{2}/2

    Softmax过度参数化

    有假设 P(t_{k}=1|x)=\frac{exp(\theta ^{(k)T}x)}{\sum_{j=1}^{K}exp(\theta ^{(j)T}x)} =\frac{exp((\theta ^{(k)}-\phi )^{T}x)}{\sum_{j=1}^{K}exp((\theta ^{(k)}-\phi )^{T}x)}

    新的参数 \widehat{\theta }^{(k)}\equiv \theta ^{(k)}-\phi 会得到同样的预测结果

    最小化交叉熵函数可以有无限多个解,因为:

    E(\theta )=-\frac{1}{N}\sum_{n=1}^{N}\sum_{k=1}^{K}t_{k}^{(n)}ln\frac{exp(\theta ^{(k)T}x^{(n)})}{\sum_{j=1}^{K}exp(\theta ^{(j)T}x^{(n)})}=E(\theta -\phi )

    其中 \phi = (\phi_{1},\phi_{2},\phi_{3}...)

    四、Softmax回顾和logistic回顾的关系

    Softmax回归中,令K=2

    h_{1}(x)=P(t_{1}=1|x)=\frac{exp(\theta ^{(1)T}x)}{exp(\theta ^{(1)T}x)+exp(\theta ^{(2)T}x)} = g(\theta ^{(1)}-\theta ^{(2)})

    h_{2}(x)=P(t_{1}=1|x)=\frac{exp(\theta ^{(2)T}x)}{exp(\theta ^{(1)T}x)+exp(\theta ^{(2)T}x)} = 1-g(\theta ^{(1)}-\theta ^{(2)})

    其中h是softmax函数 g 是logistic函数 

    如果定义一个新的变量 \widehat{\theta }\equiv \theta ^{(1)}- \theta ^{(2)} 那么就和logistic回归是相同的

    五、总结

    一般意义的交叉熵

  • 相关阅读:
    指针-成绩统计
    Linux下的IMX6ULL——环境搭建与软件安装(一)
    数据结构初阶——堆排序
    MySQL的日志
    VSCode 配置C语言环境 全程记录 ,配置成功
    Java-泛型基础
    YUM退役了?DNF本地源配置
    怎样判断磁场力方向
    函数柯里化
    传统 51 与STC-Y5内核 51 单片机对比&汇编指令
  • 原文地址:https://blog.csdn.net/suic009/article/details/125903662