吴恩达机器学习COURSE1 WEEK3

news2025/4/9 15:50:36

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<0wx+b<0时,最终的输出趋近于0,代表负类
  • 当输入值大于0,即 z > 0 → w x + b > 0 z >0 \to wx+b > 0 z>0wx+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)=1log(1fw ,b(x (i)))    if y(i)=0
如下函数图像 − l o g ( 1 − f ) -log(1-f) log(1f) ,可以发现,当 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)))(1y(i))log(1fw ,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=1m(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=1m(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=1m(f(x(i))y(i))2+2mλj=1nwj2
其中, λ \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=1m(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=1m[y(i)log(fw ,b(x (i)))(1y(i))log(1fw ,b(x (i)))]+2mλj=1nwj2
使用梯度下降时,参数更新的变化和线性回归一样:
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=1m(fw ,b(x (i))y(i))xj(i)+mλwj]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1978300.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据拯救利器:必备免费数据恢复软件清单

说起办公室里的那些小插曲&#xff0c;有时候真是让人哭笑不得。这不&#xff0c;前几天我就遇到了个大麻烦——硬盘分区一不小心给搞砸了&#xff0c;眼看着那些重要的文件、报告还有客户资料就要跟我“说拜拜”&#xff0c;心里那个急啊&#xff0c;简直就像热锅上的蚂蚁&…

CSP2019第二题: 公交换乘

CSP 2019 公交换乘 题目来源&#xff1a;牛客网 题目&#xff1a;* 示例1 输入 6 0 10 3 1 5 46 0 12 50 1 3 96 0 5 110 1 6 135输出 36题意&#xff1a; 根据输入&#xff0c;计算地铁花费不能用到优惠券的公交车的花费 知识点&#xff1a; 结构体 思路&#xff1…

Spring(Day2)

一、静态代理 静态代理的主要特点是代理类和被代理类通常具有相同的接口&#xff0c;这样客户端代码可以透明地使用代理类代替被代理类。 首先我们建立一个接口Shopping&#xff0c;在里面定义一个shopping方法。然后创建两个类EasyA和Proxy类来继承Shopping类&#xff0c;并重…

前端 react 实现图片上传前压缩 缩率图

目录 一、安装 二、编写工具类 三、获取压缩后的File对象 一、安装 npm install compressorjs 或 yarn add compressorjs 官方文档&#xff1a;compressorjs - npm (npmjs.com) 二、编写工具类 /*** author Dragon Wu* since 2024/8/4 12:23* 图片压缩工具*/ import Com…

《无畏契约》现已正式登陆Xbox Series X|S和PS5主机

拳头游戏日前已在没有任何通知的情况下直接在 Xbox Series X|S 和 PS5 主机上推出了其竞技射击游戏《无畏契约》。经过6 月的短暂测试后&#xff0c;游戏的主机版已经在美国、加拿大、欧洲、日本和巴西推出&#xff0c;将包括与 PC 版相同的玩法、英雄和技能。 主机版本将永远不…

论网络流(最大流篇)--新手入门超详解--包教包会

论网络流--新手入门超详解--包教包会 1 前言2 什么是最大流3最大流问题的求解&#xff08;1&#xff09;问题转化--增广路的引入&#xff08;2&#xff09;走回头路--EK算法&#xff08;3&#xff09;EK的弊端&#xff08;4&#xff09;化图为树--DINIC算法 4后记 1 前言 网络…

小型空气净化器什么牌子好?小型空气净化器用户体验

自从家里有了4只英短后&#xff0c;一到季节我就得不停的拖地刷床&#xff0c;除了这些可以手动清理的猫毛之外&#xff0c;那么空气中的猫毛怎么办&#xff1f;多猫家庭确实很快乐&#xff0c;但一到换毛季&#xff0c;家里地上、空气里全是猫毛。每天都需要拼命的吸地板&…

Linux命令用法

文章目录 前言一、Linux基础命令1. Linux目录结构2. Linux命令入门3. 目录切换相关命令&#xff08;cd、pwd&#xff09;4. 相对路径、绝对路径和特殊路径符5. 创建目录命令&#xff08;(mkdir&#xff09;6. 文件操作命令part1(touch、cat、more&#xff09;7. 文件操作命令pa…

经验分享|temu电商项目怎么做能更好的盈利?

在当今竞争激烈的电商市场中&#xff0c;如何让TEMU这样的电商项目实现更好的盈利&#xff0c;是每个创业者和企业家关注的核心问题。以下是几点关键的策略和方法&#xff0c;可以帮助TEMU电商项目实现更好的盈利。 首先&#xff0c;产品选择和定位至关重要 TEMU需要选择具有市…

黑马Java零基础视频教程精华部分_10_面向对象进阶(2)_多态、包、final、权限修饰符、代码块

系列文章目录 文章目录 系列文章目录一、多态1、什么是多态&#xff1f;2、多态的表现形式3、多态的前提4、多态的好处5、多态调用成员的特点6、多态的优势和弊端7、引用数据类型的类型转换 二、包1、什么是包&#xff1f;2、包名的规则3、使用其他类的规则 三、final 最终的&a…

通过指令深入了解Linux

1.简单介绍XShell 未来我的所有关于Linux的讲解都是提供XShell登入远程的Linux云服务器来教学的&#xff0c;且以centos为例。 1.1下载安装XShell xshell 下载安装时选择“home/school”为免费版本。 1.2 使用XShell登录主机 在XShell终端输入 ssh rootip ip为你所购买的…

功能实现——使用 RestTemplate 进行跨项目接口调用

目录 1.需求说明2.项目环境搭建3.代码实现3.1.使用 RestTemplate 进行调用3.1.1.项目 A3.1.2.项目 B 3.2.测试3.3.使用 JsonObject 来传递和接收 json 数据3.3.1.说明3.3.2.代码实现 3.4.其它说明3.4.1.restTemplate.exchange()3.4.2.restTemplate.postForObject()3.4.3.区别总…

【Java】Java学生成绩管理系统(源码+论文)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

Ubuntu 18.04,调整字体大小, 隐藏GNOME顶部状态栏

先安装 sudo apt-get install gnome-tweak-tool sudo apt install gnome-shell-extensions 安装后出现这个界面 这里可以调整字体大小 安装工具扩展&#xff1a; sudo apt-get install gnome-shell-extension-autohidetopbar 这里可以出现设置项 打开&#xff0c;并且…

【Altium Designer】Details Net has only one pin (Pin U1-12) 解决办法

报错图&#xff1a; 报错含义&#xff1a; Details Net has only one pin (Pin U1-12) 引脚label没接其他元器件。 解决办法1 修改报告提示&#xff0c;将“错误”改为“不报告”&#xff0c;如下图&#xff0c;在工程上 右键>>工程选项>>找到相应的错误标签提示…

个人主体的小程序可以变更为企业主体吗?

小程序迁移变更主体有什么作用&#xff1f;长期以来&#xff0c;由于部分小程序在注册时&#xff0c;主体不准确的历史原因&#xff0c;或者小程序的主体发生合并、分立或业务调整等现实状况&#xff0c;在小程序登记主体不能对应实际运营人的情况下&#xff0c;导致账号在认证…

基于微信小程序的微课堂笔记的设计与实现(源码+论文+部署讲解等)

博主介绍&#xff1a;✌全网粉丝10W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术栈介绍&#xff1a;我是程序员阿龙&#xff…

【MongoDB数据库之未授权漏洞】

步骤一&#xff1a; 在Kali上执行以下命令搭建起MongoDB的漏洞环境.. 拉取mongo(3.6.6版本)镜像 docker pull mongo:3.6.6 启动镜像 docker run --name mongo-master -p 27017:27017 -d mongo:3.6.6 查看镜像 docker ps 步骤二&#xff1a;使用Nmap的插件脚本进行扫描..发现…

RIR转换Revit尺寸标注和值到Rhino指定图层中

RIR转换Revit尺寸标注和值到Rhino指定图层中 1、使用新增的Dimension Properties节点&#xff0c;获取尺寸标注的线和文字 2、通过elefont包的节点&#xff0c;将起按指定图层bake到rhino中 3、funbim v0.6.4版本节点包已更新到food4rhino&#xff0c;欢迎下载试用

平安养老险宿州中支参加中国特色金融文化“我在行动”演讲比赛

为积极培育和弘扬以“五要五不”为核心的中国特色金融文化&#xff0c;积极传播保险行业正能量&#xff0c;7月30日&#xff0c;由宿州市保险行业协会主办的培育和弘扬中国特色金融文化“我在行动”演讲比赛拉开帷幕。本次演讲比赛共有16位选手参与&#xff0c;平安养老保险股份…