机器学习算法之 logistic、Softmax 回归

逻辑回归本质是分类问题,而且是二分类问题,不属于回归,但是为什么又叫回归呢。我们可以这样理解,逻辑回归就是用回归的办法来做分类。它是在线性回归的基础上,通过Sigmoid函数进行了非线性转换,从而具有更强的拟合能力

sigmoid 函数

https://blog.csdn.net/fenglepeng/article/details/104829873

Logistic回归分类器

为了实现Logistic回归分类器,我们可以在每个特征上都乘以一个回归系数,然后把所有的结果值相加,将这个总和代入Sigmoid函数中,进而得到一个范围在0~1之间的数值。任何大于0.5的数据被分入1类,小于0.5即被归入0类。所以,Logistic回归也可以被看成是一种概率估计。

\begin{aligned}p&=h_\theta(x)=g(\theta^Tx)=\frac{1}{1+e^{-\theta^Tx}} \end{aligned}

所以说,Logistic回归分类器可以看成线性回归与sigmoid的混合函数,是一个二分类的模型(这里是取的0和1,有的算法是+1和-1)

\hat{y}=\left\{\begin{matrix} 0,P(\hat{y}=1)>p\\ 1,P(\hat{y}=0)>p \end{matrix}\right.

在用于分类时,实际上是找一个阈值,大于阈值的属于1类别,小于的属于0类别。(阈值是可根据具体情况进行相应变动的)

Logistic回归及似然函数

我们假设

\begin{aligned}P(y=1|x;\theta)&=h_\theta(x) \\P(y=0|x;\theta)&=1-h_\theta(x) \end{aligned}

把两个式子结合起来

\begin{aligned}P(y|x;\theta)&=(h_\theta(x))^y(1-h_\theta(x))^{(1-y)}\end{aligned}

运用极大似然估计得到似然函数

\begin{aligned}L(\theta)&=p(\vec{y}|X;\theta) \\&=\prod_{i=1}^{m}p(y^{(i)}|x^{(i)};\theta) \\&=\prod_{i=1}^{m}(h_\theta(x^{(i)}))^{y^{(i)}}(1-h_\theta(x^{(i)}))^{(1-y^{(i)})}\end{aligned}

累乘不好求,我们可以求其对数似然函数。最值的问题,求导(第三行到第四行使用了sigmoid函数求导)

\begin{aligned}l(\theta)&=\log L(\theta) \\&=\sum_{i=1}^m(y^{(i)}\log h_\theta(x^{(i)})+(1-y^{(i)})\log(1-h_\theta(x^{(i)}))) \\\frac{\partial l(\theta)}{\partial\theta_j}&=\sum_{i=1}^m(\frac{y^{(i)}}{h_\theta(x^{(i)})}-\frac{1-y^{(i)}}{1-h_\theta(x^{(i)})})\cdot\frac{\partial h_\theta(x^{(i)})}{\partial\theta_j} \\&=\sum_{i=1}^m(\frac{y^{(i)}}{g(\theta^Tx^{(i)})}-\frac{1-y^{(i)}}{1-g(\theta^Tx^{(i)})})\cdot\frac{\partial g(\theta^Tx^{(i)})}{\partial\theta_j} \\&=\sum_{i=1}^m(\frac{y^{(i)}}{g(\theta^Tx^{(i)})}-\frac{1-y^{(i)}}{1-g(\theta^Tx^{(i)})})\cdot g(\theta^Tx^{(i)})(1-g(\theta^Tx^{(i)}))\cdot\frac{\partial\theta^Tx^{(i)}}{\partial\theta_j} \\&=\sum_{i=1}^m(y^{(i)}(1-g(\theta^Tx^{(i)}))-(1-y^{(i)})g(\theta^Tx^{(i)}))\cdot x_j^{(i)} \\&=\sum_{i=1}^m(y^{(i)}-g(\theta^Tx^{(i)}))\cdot x_j^{(i)}\end{aligned}

求解,使用批量梯度下降法BGD

\theta_j=\theta_j+\alpha\sum_{i=1}^m(y^{(i)}-h_\theta(x^{(i)}))x_j^{(i)}

或者随机梯度下降法SGD

\theta_j=\theta_j+\alpha(y^{(i)}-h_\theta(x^{(i)}))x_j^{(i)}

可以发现逻辑回归与线性回归梯度下降求解的形式类似,唯一的区别在于假设函数hθ(x)不同,线性回归假设函数为θTx,逻辑回归假设函数为Sigmoid函数。

线性回归模型服从正态分布,逻辑回归模型服从二项分布(Bernoulli分布),因此逻辑回归不能应用最小二乘法作为目标/损失函数,所以用梯度下降法。

极大似然估计与Logistic回归损失函数

我们要让对数似然函数最大,也就是他的相反数 -l(\theta )最小。而 -l(\theta ) 最小化,则可以看成损失函数,求其最小化:

loss = -l(\theta )

似然函数:

\begin{aligned}L(\theta)&=\prod_{i=1}^mp(y^{(i)}|x^{(i)};\theta) =\prod_{i=1}^mp_i^{y^{(i)}}(1-p_i)^{1-y^{(i)}} \end{aligned}

logistic函数

\begin{aligned}p_i&=h_\theta(x^{(i)}) =\frac{1}{1+e^{-\theta^Tx^{(i)}}} \end{aligned}

带入得

\begin{aligned}\\l(\theta)&=\ln L(\theta) \\&=\sum_{i=1}^m\ln[p_i^{y^{(i)}}(1-p_i)^{1-y^{(i)}}] \\&=\sum_{i=1}^m\ln[(\frac{1}{1+e^{-f_i}})^{y^{(i)}}(\frac{1}{1+e^{f_i}})^{1-y^{(i)}}] \\loss(y^{(i)},\hat{y^{(i)}})&=-l(\theta) \\&=\sum_{i=1}^m[y^{(i)}\ln(1+e^{-f_i})+(1-y^{(i)})\ln(1+e^{f_i})] \\&=\begin{cases}\sum_{i=1}^m\ln(1+e^{-f_i}), &y^{(i)}=1 \\ \sum_{i=1}^m\ln(1+e^{f_i}), &y^{(i)}=0\end{cases} \\\Rightarrow loss(y^{(i)},\hat{y^{(i)}})&=\sum_{i=1}^m\ln(1+e^{(1-2y^{(i)})\theta^Tx^{(i)}}), y^{(i)}=\begin{cases}1 \\ 0\end{cases}\end{aligned}

这个结果就是交叉熵损失函数。

总结

就一句话:通过以上过程,会发现逻辑回归的求解,跟线性回归的求解基本相同。

多分类问题(Multi-class classification)

        对于分类多于2个的问题, 可以将其看做二分类问题,即以其中一个分类作为一类,剩下的其他分类作为另一类,多分类问题的假设函数为 

h_{0}^{i}(x)=p(y=i|x;\theta)

one-vs-all/rest 问题解决方法:

  • 训练一个逻辑回归分类器,预测 i 类别 y=i 的概率;
  • 对一个新的输入值x,为了作出类别预测,分别在k个分类器运行输入值,选择h最大的类别 

Softmax回归模型  

Softmax回归是logistic回归的一般化模型,适用于k(k>2)分类的问题,第k类的参数为向量\theta_k,组成的二维矩阵为\theta _{k*n}(k为类别数,n为特征数,即为每一个类别构建一个\theta_k,用到的是ova思想)。

参考链接:机器学习之单标签多分类及多标签多分类

Softmax函数的本质就是将一个k维的任意实数向量映射成为另一个k维的实数向量,其中向量中的每个元素的取值都介于(0,1)之间。

Softmax回归的概率函数为:

p(y=k|x;\theta)=\frac{e^{\theta_k^Tx}}{\sum_{l=1}^{K}e^{\theta_l^{T}x}}, k=1,2,...,K
注释: e^{\theta_k^Tx}计算的是,他属于第k类的回归值,\sum_{l=1}^{K}e^{\theta_l^{T}x}计算的是他属于每个类别的累加,用e的指数是为了加大 大的类别的影响

Softmax回归的似然估计

似然函数:

\begin{aligned}L(\theta)&=\prod_{i=1}^m\prod_{k=1}^Kp(y=k|x^{(i)};\theta)^{y_k^{(i)}} \\&=\prod_{i=1}^m\prod_{k=1}^K(\frac{e^{\theta_k^Tx}}{\sum_{l=1}^Ke^{\theta_l^Tx}})^{y_k^{(i)}}\end{aligned}

对数似然函数:

\begin{aligned}l(\theta)&=\ln L(\theta) \\&=\sum_{i=1}^m\sum_{k=1}^Ky_k^{(i)}(\theta_k^Tx^{(i)}-\ln\sum_{l=1}^Ke^{\theta_l^Tx^{(i)}}) \\l(\theta)&=\sum_{k=1}^Ky_k(\theta_k^Tx-\ln\sum_{l=1}^Ke^{\theta_l^Tx})\end{aligned}

 

 推导和Logistic回归类似,只是将分类的个数从2扩展到k的情形。Softmax算法的损失函数:

梯度下降法

总结

  • 线性回归模型一般用于回归问题,逻辑回归和Softmax回归模型一般用于分类问题;
  • 求θ的主要方式是梯度下降算法,该算法是参数优化的重要手段,主要使用SGD或MBGD;
  • 逻辑回归/Softmax回归模型是实际问题中解决分类问题的最重要的方法;
  • 广义线性模型对样本的要求不必一定要服从正态分布,只要服从指数分布簇(二项分布、Poisson分布、Bernoulli分布、指数分布等)即可;广义线性模型的自变量可以是连续的也可以是离散的。
     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/454551.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

程序员成功之路

程序员成功之路 ——The road ahead for programmer(演讲稿) 一、我很羡慕在座的各位同学,因为你们是中国未来的程序员,而我不是,我一直很遗憾。 比尔盖茨曾经写过一本书叫做《未来之路》The road ahead, 那么今天我选…

部署egg需要用到pm2吗_使用宝塔面板部署校园综合服务平台项目

本文档为校园综合服务平台服务端的安装部署教程,欢迎star小程序端下载地址:https://github.com/landalfYao/help.git后台服务端下载地址:https://github.com/landalfYao/helpserver.git后台客户端下载地址:https://github.com/lan…

机器学习算法之线性回归

一、什么是回归算法 回归算法是一种有监督算法 回归算法是一种比较常用的机器学习算法,用来建立“解释”变量(自变量X)和观测值(因变量Y)之间的关系;从机器学习的角度来讲,用于构建一个算法模型(函数)来做属性(X)与标签(Y)之间的映射关系&a…

Console-算法[for]-国王与老人的六十四格

ylbtech-Arithmetic:Console-算法[for]-国王与老人的六十四格1.A,案例-- -- ylb:算法-- Type:算法[for]-- munu:国王与老人的六十四格-- 20:32 2012/3/16-- 案例:印度有个国王,他拥有超人的权力和巨大的财富。但权力和财富最终让他…

在OOW2009上寻宝撞大运续(床上篇)

历时5天的Oracle Open World 2009终于,终于结束了。今天最后的节目是去听一场金融分析师的会议,“只”开了不到6个钟。去的时候是毛毛雨,回来的时候终于看到了一缕阳光。说夕阳无限好不大合适。用Larry Ellison的说法是“太阳落下的地方也是太…

特征图注意力_从数据结构到算法:图网络方法初探

作者 | 朱梓豪来源 | 机器之心原文 | 从数据结构到算法:图网络方法初探如果说 2019 年机器学习领域什么方向最火,那么必然有图神经网络的一席之地。其实早在很多年前,图神经网络就以图嵌入、图表示学习、网络嵌入等别名呈现出来,其…

FFMPEG 源码分析

FFMPEG基本概念: ffmpeg是一个开源的编解码框架,它提供了一个音视频录制,解码和编码库。FFMPEG是在linux下开发的,但也有windows下的编译版本。 ffmpeg项目由以下几部分组成: ffmpeg 视频文件转换命令行工具,也支持经过实时电视…

面试之 Redis汇总

简介 Redis 持久化机制 RDB(Redis DataBase) AOF(Append-only file) Redis 4.0 对于持久化机制的优化 补充:AOF 重写 二者的区别 二者优缺点 Memcache与Redis的区别都有哪些? 缓存雪崩、缓存穿透、…

Oracle 10g 问题集锦

监听服务中Oracle数据库之中使用最主要的一个服务,但是这个服务经常会出现错误,包括以后在工作之中此服务也会出现错误,故给出两种常见错误的解决方案(故障1、故障2) 故障1: 注册表使用了优化软件(如&#…

iOS linker command failed with exit code 1 (use -v to see invocation)多种解决方案汇总

有时可能会遇到这种错误,关键是这种错误,有时只有这一句话,也不会给更多错误信息。 网上找了一些,总结了如下:(PS:以下是按照解决简易程度排序,不代表出现概率) 1、bitco…

面试之 Mysql 汇总

事务相关 什么是事务? 事务:是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务。事务的ACID属性: (1)原子性(Atomicity):   事务是一…

Exchange Server 2003 部署手册

1. 环境需求服务器: 域控制器1台; Exchange Server服务器1台。 IP和机器名配置: 域控制器:机器名:dc IP: 10.10.10.200 掩码:255.255.255.0 网关:10.10.10.254 DNS:127.0.0.1 Exchange&#xff…

html浏览器的区别是什么意思,不同浏览器对css的识别有区别吗?

不同浏览器对css的识别是有区别,因此针对不同的浏览器去写不同的CSS。下面本篇文章给大家介绍一些常用CSS书写技巧(不同浏览器之间的差异)。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。不同的浏览器,比如Int…

面试之 Python 进阶

前端相关 1.谈谈你对http协议的认识。 浏览器本质,socket客户端遵循Http协议   HTTP协议本质:通过\r\n分割的规范 请求响应之后断开链接 > 无状态、 短连接 具体:   Http协议是建立在tcp之上的,是一种规范,它…

Lync Server外部访问系列PART5:模拟公网DNS

因为要实现外部用户访问,所以我们必然需要在公网DNS中添加我们所需要的一些A记录,而这样的测试需要我们拥有一个公网的域名以及一个可发布、可访问的IP。如果没有的话就没办法这样测试,所以我们今天在物理局域网中搭建一台DNS服务器&#xff…

oracle对查询结果求和_Oracle 闪回技术详解

概述闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成)。需要注意的是,闪回技术旨在快速恢复逻辑错误,对于物理损坏或是…

html里写js ajax吗,js、ajax、jquery的区别是什么?

js、ajax、jquery的区别1、JS是一门前端语言。2、Ajax是一门技术,它提供了异步更新的机制,使用客户端与服务器间交换数据而非整个页面文档,实现页面的局部更新。3、jQuery是一个框架,它对JS进行了封装,使其更方便使用。…

泰安第一中学2021年高考成绩查询,等级考第一天结束 泰安部分考生已完成2021年高考...

6 月 9 日,山东新高考进入第三天,也是学业水平等级考试的第一天,物理、思想政治、化学三门选考科目的考试已全部完成。由于选考科目不同,考生结束高考的进程也不同,9 日下午,选考物理、思想政治、化学的考生…

机器学习原理与算法(六) 支持向量机

版权声明:本系列文章为博主原创文章,转载请注明出处!谢谢! 本章索引: 从第3章的Logistic回归算法开始,我们一直在讨论分类问题。在各种不同的分类算法中,...,我们一直在讨论如何分类…

读《程序员的SQL金典》[2]--函数

一、数学函数 1.RAND SELECT RAND () ---0.302870228294199取0-1之间的随机小数。 2.小数取整 CEILINT(data)舍掉小数部分并向上取整。FLOOR(data)舍掉小数部分并向下取整。SELECT TOP 3 FWeight, CEILING(FWeight ),FLOOR( FWeight) FROM T_PersonRound(m,d):四舍…