吴恩达《Machine Learning》精炼笔记 3:回归问题和正则化

简介: 吴恩达《Machine Learning》精炼笔记 3:回归问题和正则化


今天带来第三周课程的笔记:梯度下降与正规方程。


主要讲解的内容包含:

  • 逻辑回归
  • 代价函数
  • 线性回归和逻辑回归的比较
  • 正则化问题


逻辑回归


分类问题


假设预测的变量y是离散的值,需要使用逻辑回归Logistic Regression,LR的算法,实际上它是一种分类算法


二元分类问题


将因变量dependent variable可能属于的两个类分别称为负向类negative class和正向类positive class,因变量y的取值只能在0和1之间,其中0表示负类,1表示正类


image.png


假说表示Hypothesis Representation


分类器的输出值在0和1之间,因此,希望找出一个满足某个性质的假设函数,这个性质是它的预测值要在0和1之间


image.png

image.pngimage.png

例如:对于给定的x,通过已经确定的参数计算得出hθ(x)=0.7hθ(x)=0.7,则表示有70%的几率y属于正类


决策边界decision boundary


解释逻辑回归


  1. 在逻辑回归中h≥0.5h0.5预测y=1y=1;反之y=0
  2. 在激活函数g(z)g(z)中:


z≥0z0g(z)≥0.5g(z)0.5


z<0z<0g(z)<0.5g(z)<0.5


又因为 z=θTx ,即: θTx>=0 时,预测 y=1y=1 ;反之:θTx<0 时,预测 y=0


实例demo


在下图的中实例中,参数θ满足[-3,1,1],当3+x1+x20,即x1+x23时,模型预测y=1;说明此时:直线x1+x2=3就是决策边界


image.png

复杂的模型边界问题


image.png


代价函数Cost Function


如何拟合LR模型的参数θ

image.pngimage.pngimage.pngimage.pngimage.pngimage.png


Python代码实现代价函数


利用Python实现下面的代价函数


  • first 表示的是右边第一项
  • second 表示的是右边第二项

image.png

import numpy as np
def cost(theta, X, y):
  # 实现代价函数
  theta=np.matrix(theta)
  X = np.matrix(X)
  y = np.matrxi(y)
  first = np.multiply(-y, np.log(sigmod(X * theta.T)))
  second = np.multiply((1 - y), np.log(1-sigmod(X * theta.T)))
  return np.sum(first - second) / (len(X))

image.png

image.png


线性回归 VS 逻辑回归


  1. 假设的定义规则发生变化

线性回归:


image.png

逻辑回归:


image.png

因此,即使更新参数的规则看起来基本相同,但由于假设的定义发生了变化,所以逻辑函数的梯度下降,跟线性回归的梯度下降实际上是两个完全不同的东西。

其他求解代价函数最小的算法


  • 共轭梯度conjugate gradient
  • 局部优化法Broyden fletcher goldfarb shann,BFGS
  • 有限内存局部优化法LBFGS


多类别分类one-vs-all


我们举一个实际中的例子来说明:

假如现在需要一个学习算法能自动地将邮件归类到不同的文件夹里,或者说可以自动地加上标签,那么需要一些不同的文件夹,或者不同的标签来完成这件事,来区分开来自工作、朋友、家人或者有关兴趣爱好的邮件,那么,就有了这样一个分类问题:其类别有4个,分别用y=1,2,3,4 来代表。

image.png


正则化问题Regularization


正则化基础

正则化技术主要是为了解决过拟合的问题。过拟合指的是:对样本数据具有很好的判断能力,但是对新的数据预测能力很差。


image.png


  • 第一个模型是一个线性模型,欠拟合,不能很好地适应我们的训练集
  • 第三个模型是一个四次方的模型,过于强调拟合原始数据,而丢失了算法的本质:预测新数据
  • 中间的模型似乎最合适


如果是多项式拟合,x的次数越高,拟合的效果越好,但是相应的预测能力就可能变差。对于过拟合的处理:


  1. 丢弃一些不能正确预测的特征。可以是手工选择保留哪些特征,或者使用一些模型选择的算法,例如PCA
  2. 正则化。保留所有的特征,但是减少参数的大小magnitude*


image.pngimage.pngimage.pngimage.pngimage.pngimage.png

import numpy as np
# 实现代价函数
def costReg(theta, X, y, lr):
  theta= np.matrix(theta)
  X = np.matrix(X)
  y = np.matrix(y)
  first = np.multiply(-y, np.log(sigmoid(X * theta.T)))
  second = np.multiply((1 - y), np.log(1 - sigmoid(X * theta.T)))
  reg = (lr / (2 * len(X)) * np.sum(np.power(theta[:, 1:theta.shape[1]], 2))   # theta[:, 1:theta.shape[1]] 代表的是 \theta_j
  return np.sum(first - second) / len((X)) + reg


通过求导,得到梯度下降算法,本质上就是对θ的不断更新:


image.png

至此,第三周的课程笔记完毕!


相关文章
|
机器学习/深度学习 人工智能 算法
Stable Diffusion AI绘画
Stable Diffusion是人工智能领域的文本到图像生成模型,基于概率的连续扩散过程,学习数据潜在分布并生成新样本。模型使用Web UI进行交互,提供不同采样器如Euler和DPM++,后者常配以Karras算法。提示词对生成效果至关重要,可以利用GPT等生成提示词。用户还能调整参数如高清修复和批处理次数来影响生成的图像。此外,模型文件(ckpt/safetensors)和Lora微调模型需存放在正确目录以确保功能正常。
|
JavaScript 开发工具 C++
探索 Visual Studio Code:开发者的瑞士军刀
Visual Studio Code(VS Code)是由微软开发的免费开源代码编辑器,支持多种编程语言及代码高亮、智能补全、重构和调试等功能。本文详细介绍其核心功能、丰富的插件生态系统及定制化设置方法,帮助开发者提升效率。VS Code 支持 JavaScript、TypeScript、Python 等语言,具备智能感知、代码调试和 Git 集成等功能。推荐插件如 Live Server 和 GitLens 可进一步增强编辑器功能。通过自定义设置,用户可个性化编辑器界面和行为。掌握 VS Code 的使用技巧将显著提升开发体验。
|
存储 传感器 安全
【C++ std::variant】深入探索 C++ std::variant:构造方法与实践应用
【C++ std::variant】深入探索 C++ std::variant:构造方法与实践应用
864 5
|
搜索推荐 前端开发 数据格式
业务中台构建策略:划分子域、上下文、事件风暴、需求结构化和能力可配置(3)
业务中台构建策略:划分子域、上下文、事件风暴、需求结构化和能力可配置(3)
596 0
业务中台构建策略:划分子域、上下文、事件风暴、需求结构化和能力可配置(3)
|
监控 关系型数据库 MySQL
|
数据管理 索引
探究 | Elasticsearch如何物理删除给定期限的历史数据?
想到删除,基础认知是delete,细分为删除文档(document)和删除索引;要删除历史数据,基础认知是:删除了给定条件的数据,用delete_by_query。 实际操作发现: 删除文档后,磁盘空间并没有立即减少,反而增加了? 除了定时任务+delete_by_query,有没有更好的方式?
3505 0
|
15天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
5744 29
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
|
10天前
|
存储 定位技术 数据库
CodeGraph 如何让 Claude Code减少 7 成工具调用?
CodeGraph 为 Coding Agent 提供本地代码知识图谱,把函数、类、调用链和框架路由提前整理成“项目地图”,减少盲目搜索和文件读取。它不是新 Agent,而是上下文基础设施,让 Agent 更快找到正确代码路径,平均减少 7 成工具调用。
1166 2
|
7天前
|
人工智能 安全 定位技术
CodeGraph深度解析 让Claude Code工具调用直降七成的核心原理与实操教程
如今以Claude Code为代表的AI编程智能体已经成为开发者日常编码、项目重构、漏洞修复的必备工具。但在长期使用过程中,几乎所有开发者都会遇到同一个明显痛点:AI虽然具备强大的代码生成与分析能力,却常常陷入盲目探索的循环中。
929 1