Logistic 分类器与 softmax分类器

首先说明啊:logistic分类器是以Bernoulli(伯努利) 分布为模型建模的,它可以用来分两种类别;而softmax分类器以多项式分布(Multinomial Distribution)为模型建模的,它可以分多种互斥的类别。

补充:

什么是伯努利分布?伯努利分布[2]是一种离散分布,有两种可能的结果。1表示成功,出现的概率为p(其中0<p<1)。0表示失败,出现的概率为q=1-p。

什么是二项分布?二项分布即重复多次的伯努利分布哦;

什么是多项式分布?即它把两种状态推广到了多种状态,是二项分布的推广;

Logistic 分类器

要解决什么样的问题呢??假设有一训练样本集合X = {x1, x2, x3, ……},其中样本 xi 由一系列的属性表示即,xi = (a1, a2, a3,……),并且对于样本集合X中的样本要么属于类别0, 要么属于类别1.

现在呢,我们有一个测试样本x, 我们根椐上面的知识来推断: 样本x 属于类别0 还是类别1呢??

下面来解决这个问题哦:

1,首先引入参数θ=(θ1,θ2,θ3,……),对于样本中的属性进行加权,得到:θTx

2,引入logistic函数(sigmoid函数):g(z) = 1 / (1 + e-z), 该函数常作为神经网络里的激活函数的;构建这么一个式子(待会就会明白它的含义):

logistic函数的图像为:

我们发现呢,它总是介于0-1之间呢,所以呢,我们可以让 hθ(x) 函数作为一种概率估计哦,如,我们可以让它表示样本 x 属于类别1的概率,即 P(y = 1 | x; θ) = hθ(x) 。 其实一开始可能不那么容易理解,不过你这么想想,给定了样本 x , 当θTx的值大于0时,则hθ(x)大于0.5,表示样本为类别1的概率超过了50%,而如果当θTx的值小于0时,则hθ(x)大、小于0.5,表示样本为类别1的概率不会超过50%,那么它属于类别0的概率超过了50%了啊,所以呢,hθ(x) 函数作为样本 x 属于哪种类别的概率估计很好啊,关键问题就是根椐训练样本求出合适的参数θ。

3. 现在我们有: P(y = 1 | x; θ) = hθ(x) , 与  P(y = 0 | x; θ) = 1 - hθ(x), 那么呢,我们把它俩联合起来, 得到:P(y | x; θ) = {hθ(x)}y{(1-hθ(x)}1-y.

4. 现在,我们有了 P(y | x; θ) ,它的含义就是在给定样本 x 与参数 θ 时,标签为y 的概率; 然后我们还有一个训练样本集合(已经每个样本的标签)。现在我们假设每一个训练样本是独立的,我们写出它们联合概率密度:

注意:上式中,对应的 y(i) 是已经知道的了哦。其实上式中未知的参数就是 θ 。

其实呢,我们写的上面的公式就是似然函数啦,我们现在要把它最大化。(什么意思呢?这里就要看你对拟然函数的理解了。就是说,随机事件已经发生了,即把每一个样本对应的标签作为随机事件的话,我们已经知道了它们的具体标签,我们就就认为已经发生的事件即是概率最大的事件,所以呢,公式中唯一确定的就是参数 θ 了,我们要需要选择合适的参数θ 使似然函数最大化)

4,最大化似然函数,求出合适的参数θ。

把上面的式子变形为:

然后,我们利用梯度下降法来求参数 θ 。

过程大致是这样的,先对参数θ的求导,即得到梯度,然后呢,再利用梯度下降法的更新原则来更新参数θ就可以了。

求的梯度(注意哦,参数θ=(θ1,θ2,θ3,……)):

更新法则:

5.现在我们已经得到了参θ了,我们就相当于得到了hθ(x) ,然后呢,我们就可以用它进行对测试样本进行分类啦。

softmax分类器

它要解决的问题和上面的差不多,唯一的区别就是类别不局限于两类,而是多类了。

要解决什么样的问题呢??假设有一训练样本集合X = {x1, x2, x3, ……},其中样本 xi 由一系列的属性表示即,xi = (a1, a2, a3,……),并且对于样本集合X中的样本属于类别C = {c1, c2, c3, ……}中的一种。

现在呢,我们有一个测试样本x, 我们根椐上面的知识来推断: 样本x 属于哪种类别呢?

现在开始:

首先说一下指数布族,我也没有花太多的精力放上面哦。

一种形如如下公式的分布即为指数分布族:

第二提一下,一个广义线性模型,其实很多时候,我们很多常见的各种分布都可以用广义线性模型来概括。在一个分布为指数族分布时,我们如何来定义出一个广义线性模型呢?作出三个假设:

1,在给定 x 与 参数θ时,y|x 服从以 η 为变量的指数族的分布:

2, 给定x 时,我们的目标是来预测 T(y)的值。不过在很多时候,T(y) = y;

3, 参数 η =θTx; (为什么呢? 它就是这么设计的,广义线性模型哦)

下面正式推一下softmax回归 (可以用它用分类器的哦)

上面已经说了,对于给定的测试样本 x , 它的输出 有k种可能 (即可以分为k类),我们分别φ1,φ2,φ3,φ4,……,然后呢,我们定义T(y)如下:

并且定义一个运算 I{真} = 1, I{假} = 0; 所以呢,有:

1,上面的(T(y))i = I{y = i} ,其中(T(y))i 表示T(y)的第i 个元素);

2,E[(T(y))i] = P(y = i) = φi.

下面为推导过程:假设以已经φ的情况,把 p(y; φ)写出指数分布族的形式,如下 所示:

注意上面的η是K-1 维的哦,我们现在规定ηk = log(φk/φk) = 0。所以呢, ηi = log(φi / φk),其中i =1,2,……,k)

然后呢,

所以呢,推出:

上面我们假设的φi 已经知道了,其实我们不知道哦,现在我们就推出了怎么去求φi 了。上面的式子表示了怎么由ηi去求θi,这就是softmax函数。对于上式的 ηi = θiT x.(应用上面的第三个假设)。 还因为ηk =0,所以呢,我们又规定了θk = 0。(所以,这里一定注意,θk还是未知数哈,待会用得到这一点)。

其实到这里基本已经完了,因为我们所关心的φi 已经知道怎么去求了。

接下来呢,我们来预测T(y)的值哈(看假设的广义线性模型中的第二点哦)

到这里就剩下最后一步了,求拟合参数 θ1,θ2,……,θk-1。 可能会问什么没有θk呢,因为我们上面规定了θk=0. 追根到底是因为:φk =1-(φ1+φ2+ ……+φk-1).

如何求呢,我们写出它的似然函数,然后就可以转变为:用梯主下降或牛顿法等求最值的问题了。它的拟然函数为:

现在呢,我们把参数已经求出来了,可以解决我们的问题了,即给定了一个测试样本,我们估计它属于哪一类。方法是我们分别求出对应的φi, 哪个最大,它就属于哪一类了。

注意:

最后针对这里我们推出的softmax函数中的公式为:

要说明一点,这里的未知数的个数为θ1,θ2,……,θk-1, 而 θk = 0,因为我们只需要求出φ1,φ2, ……,φk-1的值来,我们就能求出φk的值。

而在很多用于分类的神经网络中,最后加的softmax的分类器,它是这样:公式是相同的,但是呢,把θ1,θ2,……,θk-1,θk作为参数,这样有一个什么问题呢,那就是过度参数化了(根本用不着这么多参数嘛),过度参数化会怎样啊? 假如我们对每一个参数θi 减去一个相同的数,变为θi-ψ,然后呢,

发现了,完全不影响假设函数的预测结果哦。

什么意思呢???

所以,在现实中,我们需要对代价函数做一个改动:加入权重衰减。权重衰减可以解决 softmax 回归的参数冗余所带来的数值问题。

最后,如果你觉得以上内容对你有帮助,如果你有钱的话,如果你愿意的话,可以打赏一下我这个穷学生哦,以资助我买几本书。靠脑力吃饭,哈哈哈,自愿自愿哈……

我是爱你们的杰克船长哦,嘎嘎!

您可以选择:2毛,5毛、1元。

时间: 2024-11-19 17:38:12

Logistic 分类器与 softmax分类器的相关文章

机器学习 —— 基础整理(五):线性回归;二项Logistic回归;Softmax回归;广义线性模型

本文简单整理了以下内容: (一)线性回归 (二)二分类:二项Logistic回归 (三)多分类:Softmax回归 (四)广义线性模型 二项Logistic回归是我去年入门机器学习时学的第一个模型,我觉得这个模型很适合用来入门(但是必须注意这个模型有很多很多很多很多可以展开的地方).比较有意思的是那时候还不会矩阵微积分,推导梯度时还是把矩阵全都展开求的(牛顿法要用的二阶梯度也是)... 下面的文字中,"Logistic回归"都表示用于二分类的二项Logistic回归. 首先约定一下记号

1.线性回归、Logistic回归、Softmax回归

本次回归章节的思维导图版总结已经总结完毕,但自我感觉不甚理想.不知道是模型太简单还是由于自己本身的原因,总结出来的东西感觉很少,好像知识点都覆盖上了,但乍一看,好像又什么都没有.不管怎样,算是一次尝试吧,慢慢地再来改进.在这里再梳理一下吧! 线性回归(Linear Regression) 什么是回归? 给定一些数据,{(x1,y1),(x2,y2)-(xn,yn) },x的值来预测y的值,通常地,y的值是连续的就是回归问题,y的值是离散的就叫分类问题. 高尔顿的发现,身高的例子就是回归的典型模型

logistic函数和softmax函数

  简单总结一下机器学习最常见的两个函数,一个是logistic函数,另一个是softmax函数,若有不足之处,希望大家可以帮忙指正.本文首先分别介绍logistic函数和softmax函数的定义和应用,然后针对两者的联系和区别进行了总结. 1. logistic函数 1.1 logistic函数定义 引用wiki百科的定义: A logistic function or logistic curve is a common "S" shape (sigmoid curve). 其实逻

3、Softmax分类器

wiki百科:softmax函数的本质就是将一个K维的任意实数向量压缩(映射)成另一个K维的实数向量,其中向量中的每个元素取值都介于(0,1)之间. 一.疑问 二.知识点 1. softmax函数公式的意义 ? 在softmax函数,输入向量z的值有正有负,正数表示对应的特征对分类结果是积极的,负数则表示是消极的.因此,在softmax函数中,要 先计算$e^z$, 目的是为了把所有的输入先处理到大于0的空间内,比如负数经过计算后会得到很接近0的数,因此归一化后,对应的概率也接近于0,这就很好得

【Python 代码】CS231n中Softmax线性分类器、非线性分类器对比举例(含python绘图显示结果)

1 #CS231n中线性.非线性分类器举例(Softmax) 2 #注意其中反向传播的计算 3 4 # -*- coding: utf-8 -*- 5 import numpy as np 6 import matplotlib.pyplot as plt 7 N = 100 # number of points per class 8 D = 2 # dimensionality 9 K = 3 # number of classes 10 X = np.zeros((N*K,D)) # da

机器学习方法(五):逻辑回归Logistic Regression,Softmax Regression

技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入. 前面介绍过线性回归的基本知识,线性回归因为它的简单,易用,且可以求出闭合解,被广泛地运用在各种机器学习应用中.事实上,除了单独使用,线性回归也是很多其他算法的组成部分.线性回归的缺点也是很明显的,因为线性回归是输入到输出的线性变换,拟合能力有限:另外,线性回归的目标值可以是(?∞,+∞),而有的时候,目标值的范围是[0,1](可以表示概率值),那么就不方便了. 逻辑回归可以说是最为常用的机器学习算法之一,最经典的场景就

高斯混合模型与EM算法

对于高斯混合模型是干什么的呢?它解决什么样的问题呢?它常用在非监督学习中,意思就是我们的训练样本集合只有数据,没有标签. 它用来解决这样的问题:我们有一堆的训练样本,这些样本可以一共分为K类,用z(i)表示.,但是具体样本属于哪类我们并不知道,现在我们需要建立一个模型来描述这个训练样本的分布.这时, 我们就可以用高斯混合模型来进行描述. 怎么入手呢? 高斯混合模型: 我们这么想,因为样本集合潜在地是可以分为K类的,用z(i)表示第 i 样本所属的类别,所以z(i) 的范围为从1至 K.对于我们可

栈式自编码算法

学习UFDL栈式自编码算法的笔记 深度网络的优势 深度神经网络,即含有多个隐藏层的神经网络.通过引入深度网络,我们可以计算更多复杂的输入特征.因为每一个隐藏层可以对上一层的输出进行非线性变换,因此深度神经网络拥有比"浅层"网络更加优异的表达能力(例如可以学到更加复杂的函数关系). 其实三层网络,只要能无限增加隐层的单元数就能拟合任何函数.而使用深度网络的最主要优势是:它能以更加紧凑简洁的方式来表达比浅层网络大得多的函数集合.正式点说,我们可以找到一些函数,这些函数可以用k层网络简洁地表

[转] 贺完结!CS231n官方笔记授权翻译总集篇发布

哈哈哈!我们也是不谦虚,几个"业余水平"的网友,怎么就"零星"地把这件事给搞完了呢!总之就是非常开心,废话不多说,进入正题吧! CS231n简介 CS231n的全称是CS231n: Convolutional Neural Networks for Visual Recognition,即面向视觉识别的卷积神经网络.该课程是斯坦福大学计算机视觉实验室推出的课程.需要注意的是,目前大家说CS231n,大都指的是2016年冬季学期(一月到三月)的最新版本. 课程描述:请