当前位置: 首页 > backend >正文

【学习笔记】机器学习(Machine Learning) | 第五章(3)| 分类与逻辑回归

机器学习(Machine Learning)

简要声明

基于吴恩达教授(Andrew Ng)课程视频
BiliBili课程资源


文章目录

  • 机器学习(Machine Learning)
    • 简要声明
  • 三、代价函数
    • 平方误差代价函数
    • 逻辑回归的损失函数
      • 损失函数的性质
    • 逻辑回归的代价函数
    • 代价函数的凸性
    • 简化的损失函数
    • 简化的代价函数


一、逻辑回归的基本原理

二、决策边界

三、代价函数

平方误差代价函数

在逻辑回归中,如果我们直接使用线性回归的平方误差代价函数:

J ( w → , b ) = 1 m ∑ i = 1 m 1 2 ( f w → , b ( x → ( i ) ) − y ( i ) ) 2 J(\overrightarrow{w}, b) = \frac{1}{m} \sum_{i=1}^{m} \frac{1}{2} (f_{\overrightarrow{w}, b}(\overrightarrow{x}^{(i)}) - y^{(i)})^2 J(w ,b)=m1i=1m21(fw ,b(x (i))y(i))2

其中, f w → , b ( x → ) = w → ⋅ x → + b f_{\overrightarrow{w}, b}(\overrightarrow{x}) = \overrightarrow{w} \cdot \overrightarrow{x} + b fw ,b(x )=w x +b 是线性回归模型的输出。

然而,对于逻辑回归,这种代价函数可能会导致非凸问题,使得梯度下降算法难以收敛到全局最小值。

在这里插入图片描述
线性回归
在这里插入图片描述
并不像线性回归的“汤碗”那么光滑

逻辑回归的损失函数

为了解决这个问题,逻辑回归采用了不同的损失函数。对于单个训练样本 ( x → ( i ) , y ( i ) ) (\overrightarrow{x}^{(i)}, y^{(i)}) (x (i),y(i)),逻辑回归的损失函数定义为:

L ( f w → , b ( x → ( i ) ) , y ( i ) ) = { − l o g ( f w → , b ( x → ( i ) ) ) if  y ( i ) = 1 − l o g ( 1 − f w → , b ( x → ( i ) ) ) if  y ( i ) = 0 L(f_{\overrightarrow{w}, b}(\overrightarrow{x}^{(i)}), y^{(i)}) = \begin{cases} -log(f_{\overrightarrow{w}, b}(\overrightarrow{x}^{(i)})) & \text{if } y^{(i)} = 1 \\ -log(1 - f_{\overrightarrow{w}, b}(\overrightarrow{x}^{(i)})) & \text{if } y^{(i)} = 0 \end{cases} L(fw ,b(x (i)),y(i))={log(fw ,b(x (i)))log(1fw ,b(x (i)))if y(i)=1if y(i)=0

其中, f w → , b ( x → ) = 1 1 + e − ( w → ⋅ x → + b ) f_{\overrightarrow{w}, b}(\overrightarrow{x}) = \frac{1}{1 + e^{-(\overrightarrow{w} \cdot \overrightarrow{x} + b)}} fw ,b(x )=1+e(w x +b)1 是逻辑回归模型的输出。

损失函数的性质

  • y ( i ) = 1 y^{(i)} = 1 y(i)=1 时:

    • 如果 f w → , b ( x → ( i ) ) → 1 f_{\overrightarrow{w}, b}(\overrightarrow{x}^{(i)}) \to 1 fw ,b(x (i))1,损失 → 0 \to 0 0
    • 如果 f w → , b ( x → ( i ) ) → 0 f_{\overrightarrow{w}, b}(\overrightarrow{x}^{(i)}) \to 0 fw ,b(x (i))0,损失 → ∞ \to \infty
  • y ( i ) = 0 y^{(i)} = 0 y(i)=0 时:

    • 如果 f w → , b ( x → ( i ) ) → 0 f_{\overrightarrow{w}, b}(\overrightarrow{x}^{(i)}) \to 0 fw ,b(x (i))0,损失 → 0 \to 0 0
    • 如果 f w → , b ( x → ( i ) ) → 1 f_{\overrightarrow{w}, b}(\overrightarrow{x}^{(i)}) \to 1 fw ,b(x (i))1,损失 → ∞ \to \infty

这种损失函数的设计使得模型在预测错误时付出更大的代价,从而激励模型尽可能准确地预测。
在这里插入图片描述

逻辑回归的代价函数

逻辑回归的代价函数是所有训练样本损失的平均值:

J ( w → , b ) = 1 m ∑ i = 1 m L ( f w → , b ( x → ( i ) ) , y ( i ) ) J(\overrightarrow{w}, b) = \frac{1}{m} \sum_{i=1}^{m} L(f_{\overrightarrow{w}, b}(\overrightarrow{x}^{(i)}), y^{(i)}) J(w ,b)=m1i=1mL(fw ,b(x (i)),y(i))

展开后为:

J ( w → , b ) = 1 m ∑ i = 1 m { − l o g ( f w → , b ( x → ( i ) ) ) if  y ( i ) = 1 − l o g ( 1 − f w → , b ( x → ( i ) ) ) if  y ( i ) = 0 J(\overrightarrow{w}, b) = \frac{1}{m} \sum_{i=1}^{m} \begin{cases} -log(f_{\overrightarrow{w}, b}(\overrightarrow{x}^{(i)})) & \text{if } y^{(i)} = 1 \\ -log(1 - f_{\overrightarrow{w}, b}(\overrightarrow{x}^{(i)})) & \text{if } y^{(i)} = 0 \end{cases} J(w ,b)=m1i=1m{log(fw ,b(x (i)))log(1fw ,b(x (i)))if y(i)=1if y(i)=0

代价函数的凸性

逻辑回归的代价函数是凸的,这意味着它只有一个全局最小值,梯度下降算法可以保证收敛到这个全局最小值。

相比之下,平方误差代价函数在逻辑回归中可能会导致非凸问题,使得梯度下降算法陷入局部最小值。
在这里插入图片描述

简化的损失函数

逻辑回归的损失函数可以简化为一个统一的表达式:

L ( f w → , b ( x → ( i ) ) , y ( i ) ) = − y ( i ) log ⁡ ( f w → , b ( x → ( i ) ) ) − ( 1 − y ( i ) ) log ⁡ ( 1 − f w → , b ( x → ( i ) ) ) L(f_{\overrightarrow{w}, b}(\overrightarrow{x}^{(i)}), y^{(i)}) = - y^{(i)} \log(f_{\overrightarrow{w}, b}(\overrightarrow{x}^{(i)})) - (1 - y^{(i)}) \log(1 - f_{\overrightarrow{w}, b}(\overrightarrow{x}^{(i)})) L(fw ,b(x (i)),y(i))=y(i)log(fw ,b(x (i)))(1y(i))log(1fw ,b(x (i)))

这个表达式结合了两种情况:

  • y ( i ) = 1 y^{(i)} = 1 y(i)=1 时,损失函数为 − log ⁡ ( f w → , b ( x → ( i ) ) ) - \log(f_{\overrightarrow{w}, b}(\overrightarrow{x}^{(i)})) log(fw ,b(x (i)))
  • y ( i ) = 0 y^{(i)} = 0 y(i)=0 时,损失函数为 − log ⁡ ( 1 − f w → , b ( x → ( i ) ) ) - \log(1 - f_{\overrightarrow{w}, b}(\overrightarrow{x}^{(i)})) log(1fw ,b(x (i)))

简化的代价函数

逻辑回归的代价函数也可以相应地简化为:

J ( w → , b ) = − 1 m ∑ i = 1 m [ y ( i ) log ⁡ ( f w → , b ( x → ( i ) ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − f w → , b ( x → ( i ) ) ) ] J(\overrightarrow{w}, b) = - \frac{1}{m} \sum_{i=1}^{m} \left[ y^{(i)} \log(f_{\overrightarrow{w}, b}(\overrightarrow{x}^{(i)})) + (1 - y^{(i)}) \log(1 - f_{\overrightarrow{w}, b}(\overrightarrow{x}^{(i)})) \right] J(w ,b)=m1i=1m[y(i)log(fw ,b(x (i)))+(1y(i))log(1fw ,b(x (i)))]

这个代价函数实际上是对数似然函数的负数,因此最小化这个代价函数等价于最大化似然函数。这种方法被称为 最大似然估计(Maximum Likelihood Estimation)。

逻辑回归采用了不同于线性回归的损失函数,以适应分类问题的特点。其代价函数是凸的,保证了梯度下降算法可以收敛到全局最小值。通过最小化这个代价函数,我们可以找到最优的模型参数,使模型在训练数据上的表现最佳。


continue…

http://www.xdnf.cn/news/4111.html

相关文章:

  • Linux网络编程 day4
  • 「OC」源码学习——objc_class的bits成员探究
  • 五一作业-day02
  • 软件设计师-错题笔记-程序语言
  • 《Effective java》 第三版 核心笔记
  • 蓝桥杯嵌入式按键长短按移植
  • LeetCode:链表的中间结点
  • Linux的时间同步
  • HTTP/HTTPS协议(请求响应模型、状态码)
  • 1247: 彩色的棋子(chess)
  • 《Spring 中 @Autowired 注解详解》
  • 2023年408真题及答案
  • 读《人生道路的选择》有感
  • Day11 训练
  • 30天开发操作系统 第27天 -- LDT与库
  • Gateway网关:路由和鉴权
  • LeetCode 238:除自身以外数组的乘积(Java实现)
  • CRM客户关系管理系统高级版客户管理销售管理合同管理数据分析TP6.0框架源码
  • 阿里云服务器深度科普:技术架构与未来图景
  • kdump详解
  • 基于SRS实现流媒体服务器(最简单的流媒体服务器)
  • 【外围电路】0.介绍
  • react路由使用方法
  • 【ArUco boards】标定板检测
  • 《架构安全原则》解锁架构安全新密码
  • c++进阶——AVL树主要功能的模拟实现(附带旋转操作讲解)
  • ADK 第四篇 Runner 执行器
  • 把Android设备变成“国标摄像头”:GB28181移动终端实战接入指南
  • 博图V20编译报错:备不受支持,无法编译。请更改为受支持的设备。
  • C++初学者的入门指南