吴恩达机器学习COURSE1 WEEK3
COURSE1 WEEK3
逻辑回归
逻辑回归主要用于分类任务
只有两种输出结果的分类任务叫做二元分类,例如预测垃圾邮件,只能回答是或否
实际上,在逻辑回归中,我们要做的任务就类似于在数据集中画出一个这样的曲线,用来作为类别的界限

在上图中,由于我们用的是线性回归模型,最终的输出是是一个连续的离散的值,而我们的二分类任务是输出0和1,代表不是和是,因此还需要将上图中的输出加入到 s i g m o i d sigmoid sigmoid函数中,映射到 [ 0 , 1 ] [0,1] [0,1]区间内

基本流程如下所示:

逻辑回归方程定义式
f w ⃗ , b ( x ⃗ ) = 1 1 + e − ( w ⃗ ⋅ x ⃗ + b ) f_{\vec w, b}(\vec x) = \frac{1}{1+e^{-(\vec w \cdot \vec x + b)}} fw,b(x)=1+e−(w⋅x+b)1
观察 S i g m o i d Sigmoid Sigmoid函数,我们可以观察到:
- 当输入值小于0,即 z < 0 → w x + b < 0 z <0 \to wx+b < 0 z<0→wx+b<0时,最终的输出趋近于0,代表负类
- 当输入值大于0,即 z > 0 → w x + b > 0 z >0 \to wx+b > 0 z>0→wx+b>0时,最终的输出趋近于1,代表正类
因此,我么可以找到决策边界,即 w ⃗ ⋅ x ⃗ + b = 0 \vec w\cdot \vec x + b = 0 w⋅x+b=0

而对于更复杂的数据,我们可以使用特征工程的方法对输入进行多项式变换组合,以满足实际的需求

逻辑回归中的损失函数
逻辑回归中不再使用平方误差函数,因为通过观察我们逻辑回归的函数定义式,带有指数项比较复杂,因此带入平方误差损失函数中,图像如下,

即是一个非凸的函数,存在很多局部最优的地方,容易使得我们的梯度下降算法效果不理想
在逻辑回归中,使用的是交叉熵损失函数,可以用来衡量预测的结果与实际的结果的一致性程度
L ( f w ⃗ , b ( x ⃗ ( i ) ) , y ( i ) ) = { − log ( f w ⃗ , b ( x ⃗ ( i ) ) ) i f y ( i ) = 1 − log ( 1 − f w ⃗ , b ( x ⃗ ( i ) ) ) i f y ( i ) = 0 L(f_{\vec w,b}(\vec x^{(i)}), y^{(i)})= \left\{ \begin{aligned} -\log (f_{\vec w,b}(\vec x^{(i)})) \ \ \ \ if \ y^{(i)} = 1 \\ -\log (1-f_{\vec w,b}(\vec x^{(i)})) \ \ \ \ if \ y^{(i)} = 0 \end{aligned} \right. L(fw,b(x(i)),y(i))={−log(fw,b(x(i))) if y(i)=1−log(1−fw,b(x(i))) if y(i)=0
如下函数图像 − l o g ( 1 − f ) -log(1-f) −log(1−f) ,可以发现,当 y ( i ) = 0 y^{(i)} = 0 y(i)=0时
- 如果预测的结果 y ^ = 0 \hat y = 0 y^=0,那么损失值会为0
- 如果预测结果 y ^ = 1 \hat y = 1 y^=1,那么损失值特别大

如下函数图像 − l o g ( f ) -log(f) −log(f) ,可以发现,当 y ( i ) = 1 y^{(i)} = 1 y(i)=1时

- 如果预测的结果 y ^ = 0 \hat y = 0 y^=0,那么损失值会为特别大
- 如果预测的结果 y ^ = 1 \hat y = 1 y^=1,那么损失值为0
因此,通过这种损失函数,可以发现其是一个凸函数,因此可以使用梯度下降得到一个可靠的答案
由于我们处理的是一个二分类任务,即 y y y 要么取 0 要么取 1 ,因此,我们的损失函数还可以简化为:
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_{\vec w,b}(\vec x^{(i)}), y^{(i)})=- y^{(i)}\log (f_{\vec w,b}(\vec x^{(i)})) - (1-y^{(i)})\log (1-f_{\vec w,b}(\vec x^{(i)})) L(fw,b(x(i)),y(i))=−y(i)log(fw,b(x(i)))−(1−y(i))log(1−fw,b(x(i)))
因此,当 y ( i ) = 1 y^{(i)} = 1 y(i)=1时,前面的式子有效,当 y ( i ) = 0 y^{(i)} = 0 y(i)=0时,后面的式子有效
逻辑回归中的梯度下降
参数的更新

同样,在逻辑回归中,也可以使用向量化的操作来加快梯度下降的收敛速度
过拟合问题
在训练过程中,经常会遇到过拟合的问题,导致模型的性能不好
过拟合与欠拟合
欠拟合
由于模型使用的不当等因素,使得模型不饿能很好的拟合训练集,算法无法捕捉训练数据中的重要特征模式,例如在预测房价时,如果我们使用线性模型,且不使用特征工程的方法时,就可能会出现欠拟合的现象

模型的泛化能力
模型的泛化能力是指模型的性能比较好,能够适用于大多数数据,即使在它一千从未见到过的全新示例上也能做出良好的预测

过拟合
过拟合是指我们的模型可能过于复杂,非常适合训练数据,在训练集上的表现性能非常优秀,但是在新的数据集上,不能做出良好精确的预测,这种模型不能进行推广到其他数据集上

过拟合与欠拟合的现象也会出现在分类任务里

解决过拟合的方法
-
收集更多的数据进行训练,即使用大量的数据样例进行训练
-
观察是否可以使用更少的特征,减少一些多项式特征的使用
可以通过将特征前的参数设置为0来去除该特征
-
加入正则化项——鼓励学习算法缩小参数值,而不必要求参数为0
可以保留所有特征,但只是防止特征产生过大的影响,有时也会导致过拟合
正则化技术时实际应用中一种非常常用的方法
正则化
正则化的方法就是对损失函数进行适当的修改,即对特征进行惩罚
例如我们的模型函数如下所示
f = w 1 x + w 2 x 2 2 + w 3 x 3 + w 4 x 4 + b f = w_1x + w_2x_2^2 + w_3x^3 + w_4x^4 + b f=w1x+w2x22+w3x3+w4x4+b
损失函数如下所示:
min 1 2 m ∑ i = 1 m ( f ( x ( i ) ) − y ( i ) ) 2 \min \frac{1}{2m}\sum_{i=1}^{m}(f(x^{(i)}) - y^{(i)})^2 min2m1i=1∑m(f(x(i))−y(i))2
由于 x 3 x^3 x3和 x 4 x^4 x4的出现,可能会导致我们的模型出现过拟合的现象,因此我们要对这两个特征的系数,即 w 3 w_3 w3和 w 4 w_4 w4进行正则化惩罚,从而,将损失函数改变如下:
min 1 2 m ∑ i = 1 m ( f ( x ( i ) ) − y ( i ) ) 2 + 1000 w 3 2 + 1000 w 4 2 \min \frac{1}{2m}\sum_{i=1}^{m}(f(x^{(i)}) - y^{(i)})^2 + 1000w_3^2 + 1000w_4^2 min2m1i=1∑m(f(x(i))−y(i))2+1000w32+1000w42
因此通过模型的不断训练, w 3 w_3 w3 和 w 4 w_4 w4 就会变得比较小,使得我们的模型具有较好的泛化能力
且一般而言,我们只对特征前的参数进行正则化处理,而不对偏置 b b b 进行正则化处理
而在实际中,往往会有成千的特征,而我们不知道哪些特征是重要的,因此正则化的典型实现方式就是惩罚所有的特征
正则化通用公式:
J ( w ⃗ , b ) = min 1 2 m ∑ i = 1 m ( f ( x ( i ) ) − y ( i ) ) 2 + λ 2 m ∑ j = 1 n w j 2 J(\vec w, b) = \min \frac{1}{2m}\sum_{i=1}^{m}(f(x^{(i)}) - y^{(i)})^2 + \frac{\lambda}{2m}\sum_{j=1}^{n}w_j^2 J(w,b)=min2m1i=1∑m(f(x(i))−y(i))2+2mλj=1∑nwj2
其中, λ \lambda λ 是正则化参数
当 λ \lambda λ 非常大时,我们的模型参数 w j w_j wj 都趋近于0,此时模型的输出就等于偏置 b b b,出现欠拟合现象
当 λ \lambda λ非常小时( λ = 0 \lambda = 0 λ=0),就相当于没有做正则化操作,此时我们的模型就会出现过拟合现象
因此,我们的任务就是要选择一个合适的正则化参数
用于线性回归的正则化
使用正则化后,我们的损失函数分为了两个部分:
- 损失项
- 正则化项
因此,使用梯度下降更新参数的表达式变为:
w j = w j − α ∂ ∂ w j = w j − α [ 1 m ∑ i = 1 m ( f w ⃗ , b ( x ⃗ ( i ) ) − y ( i ) ) x j ( i ) + λ m w j ] w_j= w_j-\alpha \frac{\partial}{\partial w_j} = w_j - \alpha[\frac{1}{m}\sum_{i=1}^{m}(f_{\vec w, b}(\vec x^{(i)})-y^{(i)})x_j^{(i)} + \frac{\lambda}{m}w_j] wj=wj−α∂wj∂=wj−α[m1i=1∑m(fw,b(x(i))−y(i))xj(i)+mλwj]
而偏置 b b b 的更新公式不变
用于逻辑回归的正则化
对于逻辑回归,加入正则化后,损失函数变为:
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 ) ) ) ] + λ 2 m ∑ j = 1 n w j 2 J(\vec w,b)=-\frac{1}{m}\sum_{i=1}^{m}[ y^{(i)}\log (f_{\vec w,b}(\vec x^{(i)})) - (1-y^{(i)})\log (1-f_{\vec w,b}(\vec x^{(i)}))] + \frac{\lambda}{2m}\sum_{j=1}^nw_j^2 J(w,b)=−m1i=1∑m[y(i)log(fw,b(x(i)))−(1−y(i))log(1−fw,b(x(i)))]+2mλj=1∑nwj2
使用梯度下降时,参数更新的变化和线性回归一样:
w j = w j − α ∂ ∂ w j = w j − α [ 1 m ∑ i = 1 m ( f w ⃗ , b ( x ⃗ ( i ) ) − y ( i ) ) x j ( i ) + λ m w j ] w_j= w_j-\alpha \frac{\partial}{\partial w_j} = w_j - \alpha[\frac{1}{m}\sum_{i=1}^{m}(f_{\vec w, b}(\vec x^{(i)})-y^{(i)})x_j^{(i)} + \frac{\lambda}{m}w_j] wj=wj−α∂wj∂=wj−α[m1i=1∑m(fw,b(x(i))−y(i))xj(i)+mλwj]
相关文章:
吴恩达机器学习COURSE1 WEEK3
COURSE1 WEEK3 逻辑回归 逻辑回归主要用于分类任务 只有两种输出结果的分类任务叫做二元分类,例如预测垃圾邮件,只能回答是或否 实际上,在逻辑回归中,我们要做的任务就类似于在数据集中画出一个这样的曲线,用来作为…...
白骑士的PyCharm教学高级篇 3.1 性能分析与优化
系列目录 上一篇:白骑士的PyCharm教学进阶篇 2.5 数据库连接与管理 在软件开发中,性能分析与优化是提高程序运行效率和用户体验的重要环节。PyCharm提供了强大的性能分析工具,帮助你识别和优化代码中的性能瓶颈。本文将详细介绍PyCharm中的代…...
swiper横向轮播(阶梯式滚动轮播)未生效
问题描述 版本问题 使用swiper4以上的版本可以解决该问题,4以上的swiper采用了this指向。...
基于arcpro3.0.2的北斗网格生成简介
基于arcpro3.0.2的北斗网格生成简介 采用2000坐标系、可基于行政区范围 软件可生成第一级到第十级北斗网格经纬跨度 等分 约赤道处距离 第一级 6X4度 60 和A~V 660 km 第二级 30X30分 12X8 …...
网络流算法:最大流问题
引言 最大流问题是网络流中的一个经典问题,其目标是在给定的流网络中找到从源点到汇点的最大流量。最大流问题在交通运输、计算机网络、供应链管理等领域有广泛的应用。本文将详细介绍最大流问题的定义、解决方法以及具体算法实现。 目录 最大流问题的定义Ford-F…...
C++从入门到入土(四)--日期类的实现
目录 前言 日期类的实现 日期的获取 日期的比较 const成员函数 日期的加减 日期的加等 日期的减等 日期的加减 日期的加加减减 日期的相减 流插入和提取的重载 友元 友元的特点 日期类代码 总结 前言 前面我们介绍了C中类和对象的相关知识和六个默认成员函数&…...
【香橙派系列教程】(七)香橙派下的Python3安装
【七】香橙派下的Python3安装 为接下来的Linux图像识别智能垃圾桶做准备。 图像处理使用京东SDK只支持pyhton和Java接口,目的是引入C语言的Python调用,感受大厂做的算法bug 此接口是人工智能接口,京东识别模型是通过训练后的模型,…...
贝叶斯优化算法(Bo)与门控循环单元(GRU)结合的预测模型(Bo-GRU)及其Python和MATLAB实现
### 背景 随着时间序列数据在各个领域(如金融、气象、医疗等)应用的日益广泛,如何准确地预测未来的数据点成为了一个重要的研究方向。长短期记忆网络(LSTM)和门控循环单元(GRU)作为深度学习模型…...
人工智能时代,程序员当如何保持核心竞争力?
目录 前言 一.AI辅助编程对程序员工作的影响 二.程序员应重点发展的核心能力 三.人机协作模式下的职业发展规划 结束语 前言 随着AIGC(如chatgpt、midjourney、claude等)大语言模型接二连三的涌现,AI辅助编程工具日益普及,程序…...
LMDrive 端到端闭环自动驾驶框架
LMDrive,一种新颖的语言引导的端到端闭环自动驾驶框架。LMDrive独特地处理和整合多模态传感器数据与自然语言指令,使车辆能够在现实的指令设置中与人类和导航软件进行交互。 LMDrive由两个主要部分组成: 1)一个视觉编码器&#x…...
P2045 方格取数加强版
Description 给定一个 n n n \times n nn 的矩阵,从左上角出发,可以往右或者往下走,每到达一个方格,就取走上面的数(取过后格子上的数会清零),一共要走 k k k 次,求取到的数之和…...
【Bigdata】OLAP的衡量标准
这是我父亲 日记里的文字 这是他的生命 留下留下来的散文诗 几十年后 我看着泪流不止 可我的父亲已经 老得像一个影子 🎵 许飞《父亲写的散文诗》 OLAP(联机分析处理)系统的衡量标准主要集中在以下几个方面:…...
关于DDOS攻击趋势及防护措施
随着互联网技术的飞速发展,网络安全问题日益成为企业不可忽视的重要议题。分布式拒绝服务(DDoS)攻击作为其中的典型代表,以其强大的破坏力和难以防范的特性,给企业的网络安全带来了巨大挑战。今天我们就来了解下当前DD…...
Apache Flink:一个开源流处理框架
文章目录 引言官网链接Flink 原理概述核心概念 基础使用环境搭建编写 Flink 程序注意事项 高级使用窗口操作状态后端复杂事件处理(CEP)与 Kafka 集成 优点结论 引言 Apache Flink 是一个开源流处理框架,专为高吞吐量、低延迟的实时数据处理设…...
Nginx 学习笔记
1. Nginx简介 Nginx 是一个高性能的Http和反向代理服务器。也是一个IMAP/POP3/SMTP等邮件代理服务器。 特点: 占有内存少并发能力强安装非常的简单配置文件非常简洁(还能够支持perl语法)Bug非常少启动特别容易,并且几乎可以做到…...
软甲测试定义和分类
软件测试定义 使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验他是否满足规定的需求或弄清预期结果与实际结果之间的差别 软件测试目的 为了发现程序存在的代码或业务逻辑错误 – 第一优先级发现错误为了检验产品是否符合用户需求 – 跟用户要求实…...
Vue 3+Vite+Eectron从入门到实战系列之(二)一Elementplus及VueRouter的配置
为了后续开发方便,在没有 UI 设计师配合的情况下,让我们的界面更加美观,我们使用 elementplus 组件库,并配置路由。 删除不需要的默认文件夹及文件,src 配置如下 实现效果 安装 elementplus,vue-router npm install element-plus --save npm install vue-router --save在…...
STL-list
1.list 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。 2. list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。 3. l…...
2024 7.29~8.4 周报
一、上周工作 2024 7.22~7.28周报-CSDN博客 二、本周计划 修改论文 三、完成情况 3.1 论文修改 3.1.1 摘要 问题:所写问题是一般性的深度网络问题(过拟合),并没有针对FWI的问题(边缘不清晰、深层不清晰、速度慢…...
随身助手271个可用api接口网站php源码(随身助手API)
源码简介: 随身助手API,本次更新了271个可用接口,现在开源给大家使用,无后门无加密,放心使用。 {“标题”:”看图猜成语接口”,”小标题”:”随身助手API”,”地址”:”tianyi/LookIdiom.php”,”状态”:”正常”} {…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...
数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !
我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...
