文章目录

  • step1 Function Set
  • step2 goodness of a function
  • step3 Find the best function
  • why not Logistic Regression + Square Error
  • Discriminative v.s. Generative
    • 结论(判别模型的优势)
    • 解释-生成模型为何稍逊色
    • 生成模型的优势
  • 多分类模型
  • 逻辑回归的局限性
    • 死穴
    • 特征转化
    • 串联起逻辑回归模型
    • 类神经网络

step1 Function Set

要找的是一个几率,对应不同的类别

如果用高斯分布,该几率可以表示成sigma of z,其中z为


因此函数集也就是许许多多含有不同w,b的函数

图像化模型(图中z的表示错了)

逻辑回归与线性回归对比(线性回归是最基础的嘛)

step2 goodness of a function

假设有N笔数据组成的测试数据,每笔分属于某个类别
并假设测试数据的结果是刚才的概率生成函数产生的

注:这里的概率生成函数指的是

给定w和b,就可以算出概率生成函数产生以上N笔数据组成的测试数据的几率(最大似然函数-用来衡量找到的函数的好坏)

最有可能产生以上测试数据对应的w,b也就是能使得以上函数几率最大的w,b。记作w和b最好的w和b

想让计算更容易,把找最大化L函数的(w,b)转化为找最小化-lnL函数的(w,b)

为了统一每一项的表示,写成大sigma的形式,作符号上的转换
将类别1记作1,类别2记作0(图中y^标错了,应该是110)

上式就可以写成

最大似然函数也就可以写成

其中中括号内的两项其实是两个伯努利分布的交叉熵(假设有两个伯努利分布p和q)

p和q的cross entropy(交叉熵)就是下式

它的作用是衡量两个分布有多接近,当两个分布一模一样,交叉熵就是0

对比逻辑回归(左)和线性回归的损失函数,结果如下
问题来了,为何不像线性回归一样直接使用平方损失/均方差作为损失函数?(见第四部分why not Logistic Regression + Square Error)

step3 Find the best function

使用梯度下降找到最佳函数
数学计算具体见视频18分钟左右
总之,对求对数、取反后的最大似然函数求导后得到的结果如下

使用梯度下降更新参数的过程如下所示

向量w更新的快慢取决于三个量①学习率(自己定)②真实结果和求出结果的差距③取决于数据的

比较逻辑回归和线性回归更新参数的方式,发现一样的
唯一不同的是f结果的取值范围

why not Logistic Regression + Square Error

如果这么做了,会造成(以类别1为例)
训练结果离真实结果很近时,微分是0(合理)
训练结果离真实结果很远时,微分是0(不合理)

这就造成,逻辑回归模型如果使用均方差作为损失函数,并使用梯度下降靠近最优解,离目标很远时,一开始就卡住了(微分为0)

Discriminative v.s. Generative

判别模型(逻辑回归)和生成模型(分类)对比
①step1 函数集相同

不同的是找w和b的过程(判别模型是直接找的,生成模型要通过概率,即要先找sigma1 sigma2 covariance)

问题是,两种方式找到的w和b一样吗?
答案是否定的。也就是两种方法是相同的函数集,找到的函数却不同。
在逻辑回归里面没有分布假设,生成模型里面假设成高斯分布、伯努利分布……

结论(判别模型的优势)

哪种方式找出的w和b更好?
来看结果
二维 难以分出胜负

七维 判别模型的精度更高

解释-生成模型为何稍逊色

例:训练集中有13笔数据,当两个特征值都为1时,认为属于Class1,否则认为属于Class2
可以分别算出取自class1/class2的数据特征1/特征2的值为1的概率是 1 1 1/3 1/3

在测试集中,给一个已知特征1,2的值的数据,可以使用朴素贝叶斯算出其属于class1的概率

结果小于0.5,也就是认为该测试数据是属于class2。
究其根本,生成模型做了一些前提假设(脑补),它认为class2里面没出现(1,1)是因为取样取得不够多。
脑补到底好不好?通常不好,但当数据比较少时,可以很好

生成模型的优势

  1. 生成模型需要的数据量更小(因为有自己的假设)
  2. 可以忽视掉数据中的噪声(label本身有问题)
  3. priors and class-dependent probabilities can be estimated from different sources.
    先验概率和类独立概率可以来自不同来源
    ex:语音识别这两部分就能分开考虑,所以整体上用的是生成模型

多分类模型

现在有三个类别分别对应3组参数
softmax-通过指数exp的方法将最大max放大了(增大了不同输入之间的差距3 1 -3 ->20 2.7 0.05)并且将最终的结果控制在了(0,1)

如下图,x是输入,y是由y1,y2,y3组成的输出。其中y和y^要能算交叉熵,都必须是概率分布

做出如下设定(好处是class1,2,3之间无谁跟谁更近)

之后就参照二分类,最小化交叉熵,找到最优函数。

逻辑回归的局限性

死穴

如果现在要做二分类,class1的两笔data分别是(0,1)(1,0),class2的两笔data分别是(0,0)(1,1)
可以画出一条直线y使得class1的两笔数据都在y>=0.5的范围而class2的两笔数据都在y<0.5的范围吗


做不到!

特征转化

如果还是坚持用逻辑回归,只能做feature transformation,问题是找到好的特征转换方式并不容易,如果在上面投入太多精力,就不是机器学习了

我们希望机器自己做特征转换,也就是

串联起逻辑回归模型

如下图所示,前两个逻辑回归模型做的事情是feature transformation,后一个逻辑回归模型做的事情是分类


回到刚刚那个死穴,原来一个神经元没解决的难题现在被三个神经元解决了
(下图中的三幅图分别对应上图中的三个神经元模型)

类神经网络

给多层模型换个名字,摇身一变成神经网络,也就是深度学习

hung-yi lee_p11_逻辑回归相关推荐

  1. 机器学习与高维信息检索 - Note 3 - 逻辑回归(Logistic Regression)及相关实例

    逻辑回归 Logistic Regression 3. 逻辑回归 补充: 凸性 Convexity 定义3.1 定理3.2 定理3.3 成本函数的凸性 3.1逻辑回归的替代方法 3.2 线性可分性和逻 ...

  2. 机器学习入门|快速掌握逻辑回归模型

    http://blog.itpub.net/29829936/viewspace-2558236/ 2019-01-14 17:30:19 主要内容: 一.逻辑回归的原理 二.极大似然估计 三.逻辑回 ...

  3. 逻辑回归损失函数(cost function)

    转载:https://www.cnblogs.com/richqian/p/4511557.html 逻辑回归模型预估的是样本属于某个分类的概率,其损失函数(Cost Function)可以像线型回归 ...

  4. 机器学习基础专题:逻辑回归

    逻辑回归 广义线性模型. 原理 输入 训练集数据T=(x1,y1)...(xM,yM)T = {(x_1,y_1) ... (x_M,y_M)}T=(x1​,y1​)...(xM​,yM​),xi∈X ...

  5. 逻辑回归原理(python代码实现)

    原文: https://blog.csdn.net/csqazwsxedc/article/details/69690655 Logistic Regression Classifier逻辑回归主要思 ...

  6. ML-1 逻辑回归和梯度下降

    Author:吾爱北方的母老虎 原创链接:https://mp.csdn.net/postedit/80244886 Logistic Regression The data 我们将建立一个逻辑回归模 ...

  7. 2.2 逻辑回归-机器学习笔记-斯坦福吴恩达教授

    逻辑回归 上一节我们知道,使用线性回归来处理 0/1 分类问题总是困难重重的,因此,人们定义了逻辑回归来完成 0/1 分类问题,逻辑一词也代表了是(1) 和 非(0). Sigmoid预测函数 在逻辑 ...

  8. 逻辑回归Logistic Regression 模型简介

    逻辑回归(Logistic Regression)是机器学习中的一种分类模型,由于算法的简单和高效,在实际中应用非常广泛.本文作为美团机器学习InAction系列中的一篇,主要关注逻辑回归算法的数学模 ...

  9. MATLAB之线性回归,逻辑回归,最小二乘法,梯度下降,贝叶斯,最大似然估计

    文章目录 线性回归(定义域(-∞,+∞),值域(-∞,+∞),即输入输出连续) 线性回归/最小平方误差理论 MATLAB之线性回归/最小平方误差 损失函数/代价函数求导法求线性回归 一次拟合求线性系统 ...

最新文章

  1. MonoCon:使用辅助学习的单目3D目标检测框架(AAAI 2022)
  2. Python 之 random模块
  3. coursera 《现代操作系统》 -- 第五周 同步机制(1)
  4. linux的系统移植——序言
  5. PS2: 这篇文章中的图片绘图工具使用的是Dia (sudo apt-get install dia)。据说yEd也很不错。...
  6. 实验2-2-8 阶梯电价 (15 分)
  7. index android js,reactjs – React Native项目没有index.ios.js或index.android.js
  8. 2019下半年软件设计师下午题
  9. Android MPush开源消息推送系统:简洁、安全、支持集群
  10. 在 Java 应用程序中访问 USB 设备
  11. vue 加headers_(vue.js)axios interceptors 拦截器中添加headers 属性
  12. fxp连接失败_flashfxp连接提示连接失败 (10061: 连接被拒)与列表错误
  13. fiddler抓手机APP包(安卓)
  14. 基于局部自适应色差阈值的彩色图像边缘检测_爱学术
  15. 1.background、color、渐变
  16. 文献 | 从认知和护理角度谈双相情感障碍
  17. linux查看exif软件,EXIF信息查看器使用教程及功能解析
  18. 安卓搭建http文件服务器,如何在安卓上搭建http服务器
  19. 1646. Prime Path
  20. CatBoost参数解释

热门文章

  1. iOS三种录制视频方式详细对比
  2. 没有学不会的C++:用户自定义的隐式类型转换
  3. 174. Dungeon Game
  4. 06、ActivationDeactivation
  5. iframe 自动适应高和宽问题 和 其他Frame操作技巧
  6. python——赋值与深浅拷贝
  7. WPF学习拾遗(二)TextBlock换行
  8. 在自己的网站添加关注新浪关注按钮
  9. [LeetCode系列]最大连续子列递归求解分析
  10. python快速小教程