数学表达式: 从恐惧到单挑 (10. Logistic 回归)

2024-01-03 13:59

本文主要是介绍数学表达式: 从恐惧到单挑 (10. Logistic 回归),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

10. Logistic 回归

logistic 回归用于分类, 特别是二分类 (仅有两个类别).

10.1 分割超平面

  • 线性分类模型的目标, 是找到一个超平面, 把正例、负例分割.
  • 问题: 如何评价每个超平面的性能?
  • 方案之一, 是最小化错分对象的数量, 但如果多个超平面都满足条件怎么办?
  • 哪个超平面是最优的, 就体现不同算法的设计理念.
  • 方案方二, 就是根据每个对象到超平面的距离, 来计算其损失. 如果正确分类, 则离超平面越远越好; 如果错误分类, 则离超平面越近越好.

在这里插入图片描述图 1. 分割超平面

10.2 点到直线的距离

  • m m m 维空间上, m m m维向量 w \mathbf{w} w 确定了一条直线.
  • 为方便起见, 令 w \mathbf{w} w 为列向量.
  • x \mathbf{x} x w \mathbf{w} w 的距离为 x w \mathbf{x}\mathbf{w} xw.
  • 这个距离带符号. 正号代表 x \mathbf{x} x w \mathbf{w} w 的某一边, 负号则表示另一边.
  • 参见《高等数学》.

10.3 sigmoid 函数

在这里插入图片描述

  • x \mathbf{x} x 到超平面的距离 (带符号) 取值范围为 ( − ∞ , + ∞ ) (-\infty, +\infty) (,+), 希望将其转成概率.
  • 如果距离为负而且离超平面很远, 则它为正例的概率就接近 0;
  • 如果距离为正而且离超平面很远, 则它为正例的概率就接近 1.
  • 使用 sigmoid 函数将距离转成 (我们以为的) 概率.
    P ( y = 1 ∣ x ; w ) = 1 1 + e − x w (1) P(y = 1 \vert \mathbf{x}; \mathbf{w}) = \frac{1}{1 + e^{-\mathbf{xw}}} \tag{1} P(y=1x;w)=1+exw1(1)
    源码: p(y = 1 \vert \mathbf{x}; \mathbf{w}) = \frac{1}{1 + e^{-\mathbf{xw}}}

10.4 优化目标

  • 统一 y i y_i yi 不同取值 (0 或 1):
    P ( y i ∣ x i ; w ) = P ( y i = 1 ∣ x i ; w ) y i ( 1 − P ( y i = 1 ∣ x i ; w ) ) 1 − y i (2) P(y_i \vert \mathbf{x}_i; \mathbf{w}) = P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w})^{y_i} (1 - P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w}))^{1 - y_i} \tag{2} P(yixi;w)=P(yi=1xi;w)yi(1P(yi=1xi;w))1yi(2)
    显然, 这个概率越大越好.
    要针对全部对象进行优化, 可将相应的概率相乘 (最大似然, maximal likelihood):
    arg max ⁡ w L ( w ) = ∏ i = 1 n P ( y i ∣ x i ; w ) (4) \argmax_\mathbf{w} L(\mathbf{w}) = \prod_{i = 1}^n P(y_i \vert \mathbf{x}_i; \mathbf{w}) \tag{4} wargmaxL(w)=i=1nP(yixi;w)(4)

10.5 求解

  • 相乘计算困难, 将其求一个对数, 不改变单调性
    log ⁡ L ( w ) = ∑ i = 1 n log ⁡ P ( y i ∣ x i ; w ) = ∑ i = 1 n y i log ⁡ P ( y i = 1 ∣ x i ; w ) + ( 1 − y i ) log ⁡ ( 1 − P ( y i = 1 ∣ x i ; w ) ) = ∑ i = 1 n y i log ⁡ P ( y i = 1 ∣ x i ; w ) 1 − P ( y i = 1 ∣ x i ; w ) + log ⁡ ( 1 − P ( y i = 1 ∣ x i ; w ) ) = ∑ i = 1 n y i x i w − log ⁡ ( 1 + e x i w ) (4) \begin{aligned}\log L(\mathbf{w}) & = \sum_{i = 1}^n \log P(y_i \vert \mathbf{x}_i; \mathbf{w}) \\ & = \sum_{i = 1}^n y_i \log P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w}) + (1 - y_i) \log(1 - P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w})) \\ & = \sum_{i = 1}^n y_i \log \frac{P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w})}{1 - P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w})} + \log (1 - P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w}))\\ & = \sum_{i = 1}^n y_i \mathbf{x}_i \mathbf{w} - \log (1 + e^{\mathbf{x}_i \mathbf{w}}) \end{aligned}\tag{4} logL(w)=i=1nlogP(yixi;w)=i=1nyilogP(yi=1xi;w)+(1yi)log(1P(yi=1xi;w))=i=1nyilog1P(yi=1xi;w)P(yi=1xi;w)+log(1P(yi=1xi;w))=i=1nyixiwlog(1+exiw)(4)
    源码: \begin{aligned}\log L(\mathbf{w}) & = \sum_{i = 1}^n \log P(y_i \vert \mathbf{x}i; \mathbf{w}) \
    & = \sum
    {i = 1}^n y_i \log P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w}) + (1 - y_i) \log(1 - P(y_i = 1 \vert \mathbf{x}i; \mathbf{w})) \
    & = \sum
    {i = 1}^n y_i \log \frac{P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w})}{1 - P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w})} + \log (1 - P(y_i = 1 \vert \mathbf{x}i; \mathbf{w}))\
    & = \sum
    {i = 1}^n y_i \mathbf{x}_i \mathbf{w} - \log (1 + e^{\mathbf{x}_i \mathbf{w}}) \end{aligned}\tag{4}

  • w \mathbf{w} w 求偏导
    ∂ log ⁡ L ( w ) ∂ w = ∑ i = 1 n y i x i − e x i w 1 + e x i w x i = ∑ i = 1 n ( y i − e x i w 1 + e x i w ) x i (5) \begin{aligned} \frac{\partial \log L(\mathbf{w})}{\partial \mathbf{w}} & = \sum_{i = 1}^n y_i \mathbf{x}_i - \frac{e^{\mathbf{x}_i \mathbf{w}}}{1 + e^{\mathbf{x}_i \mathbf{w}}} \mathbf{x}_i\\ & = \sum_{i = 1}^n \left(y_i - \frac{e^{\mathbf{x}_i \mathbf{w}}}{1 + e^{\mathbf{x}_i \mathbf{w}}}\right) \mathbf{x}_i\end{aligned} \tag{5} wlogL(w)=i=1nyixi1+exiwexiwxi=i=1n(yi1+exiwexiw)xi(5)
    源码: \begin{aligned} \frac{\partial \log L(\mathbf{w})}{\partial \mathbf{w}} & = \sum_{i = 1}^n y_i \mathbf{x}_i - \frac{e^{\mathbf{x}_i \mathbf{w}}}{1 + e^{\mathbf{x}_i \mathbf{w}}} \mathbf{x}i\
    & = \sum
    {i = 1}^n \left(y_i - \frac{e^{\mathbf{x}_i \mathbf{w}}}{1 + e^{\mathbf{x}_i \mathbf{w}}}\right) \mathbf{x}_i\end{aligned} \tag{5}

  • 令该偏导为 0, 无法获得解析式, 因此用梯度下降.
    w t + 1 = w t − α ∂ log ⁡ L ( w ) ∂ w (6) \mathbf{w}^{t + 1} = \mathbf{w}^t - \alpha \frac{\partial \log L(\mathbf{w})}{\partial \mathbf{w}} \tag{6} wt+1=wtαwlogL(w)(6)

10.6 作业

自己推导一遍, 并描述这个方法的特点 (不少于 5 条).

这篇关于数学表达式: 从恐惧到单挑 (10. Logistic 回归)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/565929

相关文章

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

06 C++Lambda表达式

lambda表达式的定义 没有显式模版形参的lambda表达式 [捕获] 前属性 (形参列表) 说明符 异常 后属性 尾随类型 约束 {函数体} 有显式模版形参的lambda表达式 [捕获] <模版形参> 模版约束 前属性 (形参列表) 说明符 异常 后属性 尾随类型 约束 {函数体} 含义 捕获:包含零个或者多个捕获符的逗号分隔列表 模板形参:用于泛型lambda提供个模板形参的名

uva 10014 Simple calculations(数学推导)

直接按照题意来推导最后的结果就行了。 开始的时候只做到了第一个推导,第二次没有继续下去。 代码: #include<stdio.h>int main(){int T, n, i;double a, aa, sum, temp, ans;scanf("%d", &T);while(T--){scanf("%d", &n);scanf("%lf", &first);scanf

uva 10025 The ? 1 ? 2 ? ... ? n = k problem(数学)

题意是    ?  1  ?  2  ?  ...  ?  n = k 式子中给k,? 处可以填 + 也可以填 - ,问最小满足条件的n。 e.g k = 12  - 1 + 2 + 3 + 4 + 5 + 6 - 7 = 12 with n = 7。 先给证明,令 S(n) = 1 + 2 + 3 + 4 + 5 + .... + n 暴搜n,搜出当 S(n) >=

uva 11044 Searching for Nessy(小学数学)

题意是给出一个n*m的格子,求出里面有多少个不重合的九宫格。 (rows / 3) * (columns / 3) K.o 代码: #include <stdio.h>int main(){int ncase;scanf("%d", &ncase);while (ncase--){int rows, columns;scanf("%d%d", &rows, &col

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

如何掌握面向对象编程的四大特性、Lambda 表达式及 I/O 流:全面指南

这里写目录标题 OOP语言的四大特性lambda输入/输出流(I/O流) OOP语言的四大特性 面向对象编程(OOP)是一种编程范式,它通过使用“对象”来组织代码。OOP 的四大特性是封装、继承、多态和抽象。这些特性帮助程序员更好地管理复杂的代码,使程序更易于理解和维护。 类-》实体的抽象类型 实体(属性,行为) -》 ADT(abstract data type) 属性-》成

Java基础回顾系列-第三天-Lambda表达式

Java基础回顾系列-第三天-Lambda表达式 Lambda表达式方法引用引用静态方法引用实例化对象的方法引用特定类型的方法引用构造方法 内建函数式接口Function基础接口DoubleToIntFunction 类型转换接口Consumer消费型函数式接口Supplier供给型函数式接口Predicate断言型函数式接口 Stream API 该篇博文需重点了解:内建函数式