文档章节

逻辑回归与softmax回归

abcijkxyz
 abcijkxyz
发布于 2016/11/22 16:46
字数 754
阅读 10
收藏 1
点赞 0
评论 0

深度神经网路已经在语音识别,图像识别等领域取得前所未有的成功。本人在多年之前也曾接触过神经网络。本系列文章主要记录自己对深度神经网络的一些学习心得。


第四篇,谈谈我对逻辑回归和softmax回归的一点理解。网络上对逻辑回归和softmax回归论述也很多,包括各种不同语言的代码,都可以下载到。


1.  逻辑回归源于线性回归模型。

     线性回归问题的自变量是连续变量,而逻辑回归问题的自变量一般是取值为离散的名义变量,例如,男,女。逻辑回归是对因变量和自变量之前发生关系的概率解释。例如,某种疾病的发生与抽烟的关系,这种关系可以解释为抽烟会导致这种疾病发生的概率值。当逻辑回归用于分类的时候,分类器的阈值点就是0.5。


2. 优化算法

    回归问题是统计学里面最基础的问题。在统计学里面,一般采用最大似然和最小二乘法直接导出解析解。具体可以参考任何一般统计学的教材。其解析解里面有一个矩阵的逆。求逆和伪逆运算有一些快速算法可以利用。所以对于数据量小的回归问题,直接用解析解就可以快速的得到模型的参数。而对于数据挖掘,海量数据导致内存的开销巨大,这时候直接求解析解是不现实的。于是,在机器学习相关的教程里面,对于回归问题,描述的都是迭代算法。基于随机梯度下降的迭代算法的好处是,内存开销小。


3. 对开源softmax回归的一点解释

   对深度学习的开源代码中有一段softmax的代码,下载链接如下:

   https://github.com/yusugomori/DeepLearning

   这个开源的代码是实现了深度网络的常见算法,包括c,c++,java,python等不同语言的版本。


  softmax回归中有这样一段代码:

void LogisticRegression_softmax(LogisticRegression *this, double *x) {
  int i;
  double max = 0.0;
  double sum = 0.0;


  for(i=0; i<this->n_out; i++) if(max < x[i]) max = x[i];
  for(i=0; i<this->n_out; i++) {
    x[i] = exp(x[i] - max);
    sum += x[i];
  }

  for(i=0; i<this->n_out; i++) x[i] /= sum;
}


乍一看这段代码,发现它和文献中对softmax模型中参数优化的迭代公式中是不一样!其实,如果没有那个求最大值的过程,直接取指数运算就一样的。而加一个求最大值的好处在于避免数据的绝对值过小,数据绝对值太小可能会导致计算一直停留在零而无法进行。就像对数似然函数,似然函数取对数防止概率过小一样。








© 著作权归作者所有

共有 人打赏支持
abcijkxyz
粉丝 60
博文 6195
码字总数 1876
作品 0
深圳
项目经理
python机器学习案例系列教程——逻辑回归/逻辑分类器

全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 LR:逻辑分类(Logistic Classification),是一种线性分类模型 理解LR 把每个特征对分类结果的“作用”加起来——这就是线性模型...

luanpeng825485697 ⋅ 01/03 ⋅ 0

回归(regression)与分类(classification)的区别

回归与分类的不同 1.回归问题的应用场景 回归问题通常是用来预测一个值,如预测房价、未来的天气情况等等,例如一个产品的实际价格为500元,通过回归分析预测值为499元,我们认为这是一个比较...

断桥残雪断桥残雪 ⋅ 2015/12/14 ⋅ 0

回归与分类

分类(regression)和回归(classification)区别 两者在于输出变量的类型 分类和回归均是监督学习问题,区别在于学习函数的预测输出是类别还是值。 回归问题的要求是:给定一个新的模式,根...

Alex142857 ⋅ 2016/11/05 ⋅ 0

神经网络常用激活函数对比:sigmoid VS sofmax(附python源码)

首发地址:https://yq.aliyun.com/articles/73661 更多深度文章,请关注:https://yq.aliyun.com/cloud Softmax函数与Sigmoid函数之间的区别 作者介绍: Saimadhu Polamuri:是一名自学成才的...

uncle_ll ⋅ 2017/07/12 ⋅ 0

TensorFlow学习笔记(3):逻辑回归

前言 本文使用tensorflow训练逻辑回归模型,并将其与scikit-learn做比较。数据集来自Andrew Ng的网上公开课程Deep Learning 代码 输出如下: 思考 对于逻辑回归,损失函数比线性回归模型复杂...

丹追兵 ⋅ 2017/01/04 ⋅ 0

TensorFlow入门——Softmax Regression

Softmax Regression是Logistic回归在多分类上的推广,对于Logistic回归以及Softmax Regression的详细介绍可以参见: 简单易学的机器学习算法——Logistic回归 利用Theano理解深度学习——Log...

google19890102 ⋅ 04/18 ⋅ 0

机器学习之逻辑回归和softmax回归及代码示例

一、逻辑回归 在 机器学习之线性回归 中,我们可使用梯度下降的方法得到一个映射函数 来去贴近样本点,这个函数是对连续值的一个预测。 而逻辑回归是解决分类问题的一个算法,我们可以通过这...

cxmscb ⋅ 2016/11/29 ⋅ 0

从逻辑回归到玻尔兹曼机—一个生儿育女的故事

开篇高能预警:这是一篇思维量比较大的文章,深夜阅读小心失眠哦~ 在那很久很久以前,可爱的小夕写了一篇将逻辑回归小题大做的文章,然后在另一篇文章中阐述了逻辑回归的本质,并且推广出了s...

夕小瑶Elsa ⋅ 2017/06/13 ⋅ 0

广义线性模型与指数分布族

在机器学习领域,很多模型都是属于广义线性模型(Generalized Linear Model,GLM),如线性回归,逻辑回归,Softmax回归等。这篇文章广义线性模型,并由它推导出线性回归,逻辑回归,Softmax...

flying_sfeng ⋅ 2017/09/17 ⋅ 0

TensorFlow指南(四)——练习思考:深度神经网络(初级)

本文地址: http://blog.csdn.net/u011239443/article/details/71173351 为什么使用逻辑回归分类器而不是经典感知器(例如:用感知器训练算法训练的一层线性阈值单元)?如何调整感知器使其与逻辑...

小爷Souljoy ⋅ 01/16 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

RabbitMQ学习以及与Spring的集成(三)

本文介绍RabbitMQ与Spring的简单集成以及消息的发送和接收。 在RabbitMQ的Spring配置文件中,首先需要增加命名空间。 xmlns:rabbit="http://www.springframework.org/schema/rabbit" 其次是模...

onedotdot ⋅ 20分钟前 ⋅ 0

JAVA实现仿微信红包分配规则

最近过年发红包拜年成为一种新的潮流,作为程序猿对算法的好奇远远要大于对红包的好奇,这里介绍一种自己想到的一种随机红包分配策略,还请大家多多指教。 算法介绍 一、红包金额限制 对于微...

楠木楠 ⋅ 32分钟前 ⋅ 0

Python 数电表格格式化 xlutils xlwt xlrd的使用

需要安装 xlutils xlwt xlrd 格式化前 格式化后 代码 先copy读取的表格,然后按照一定的规则修改,将昵称中的学号提取出来替换昵称即可 from xlrd import open_workbookfrom xlutils.copy ...

阿豪boy ⋅ 今天 ⋅ 0

面试题:使用rand5()生成rand7()

前言 读研究生这3 年,思维与本科相比变化挺大的,这几年除了看论文、设计方案,更重要的是学会注重先思考、再实现,感觉更加成熟吧,不再像个小P孩,人年轻时总会心高气傲。有1 道面试题:给...

初雪之音 ⋅ 今天 ⋅ 0

Docker Toolbox Looks like something went wrong

Docker Toolbox 重新安装后提示错误:Looks like something went wrong in step ´Checking if machine default exists´ 控制面板-->程序与应用-->启用或关闭windows功能:找到Hyper-V,如果处......

随你疯 ⋅ 今天 ⋅ 0

Guacamole 远程桌面

本文将Apache的guacamole服务的部署和应用,http://guacamole.apache.org/doc/gug/ 该链接下有全部相关知识的英文文档,如果水平ok,可以去这里仔细查看。 一、简介 Apache Guacamole 是无客...

千里明月 ⋅ 今天 ⋅ 0

nagios 安装

Nagios简介:监控网络并排除网络故障的工具:nagios,Ntop,OpenVAS,OCS,OSSIM等开源监控工具。 可以实现对网络上的服务器进行全面的监控,包括服务(apache、mysql、ntp、ftp、disk、qmail和h...

寰宇01 ⋅ 今天 ⋅ 0

AngularDart注意事项

默认情况下创建Dart项目应出现以下列表: 有时会因为不知明的原因导致列表项缺失: 此时可以通过以下步骤解决: 1.创建项目涉及到的包:stagehand 2.执行pub global activate stagehand或pub...

scooplol ⋅ 今天 ⋅ 0

Java Web如何操作Cookie的添加修改和删除

创建Cookie对象 Cookie cookie = new Cookie("id", "1"); 修改Cookie值 cookie.setValue("2"); 设置Cookie有效期和删除Cookie cookie.setMaxAge(24*60*60); // Cookie有效时间 co......

二营长意大利炮 ⋅ 今天 ⋅ 0

【每天一个JQuery特效】淡入淡出显示或隐藏窗口

我是JQuery新手爱好者,有时间就练练代码,防止手生,争取每天一个JQuery练习,在这个博客记录下学习的笔记。 本特效主要采用fadeIn()和fadeOut()方法显示淡入淡出的显示效果显示或隐藏元...

Rhymo-Wu ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部