吴恩达《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:构造方法与实践应用
853 5
|
搜索推荐 前端开发 数据格式
业务中台构建策略:划分子域、上下文、事件风暴、需求结构化和能力可配置(3)
业务中台构建策略:划分子域、上下文、事件风暴、需求结构化和能力可配置(3)
586 0
业务中台构建策略:划分子域、上下文、事件风暴、需求结构化和能力可配置(3)
|
监控 关系型数据库 MySQL
|
数据管理 索引
探究 | Elasticsearch如何物理删除给定期限的历史数据?
想到删除,基础认知是delete,细分为删除文档(document)和删除索引;要删除历史数据,基础认知是:删除了给定条件的数据,用delete_by_query。 实际操作发现: 删除文档后,磁盘空间并没有立即减少,反而增加了? 除了定时任务+delete_by_query,有没有更好的方式?
3479 0
|
16天前
|
人工智能 JSON 供应链
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
LucianaiB分享零成本畅用JVS Claw教程(学生认证享7个月使用权),并开源GeoMind项目——将JVS改造为科研与产业地理情报可视化AI助手,支持飞书文档解析、地理编码与腾讯地图可视化,助力产业关系图谱构建。
23521 12
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
|
4天前
|
Shell API 开发工具
Claude Code 快速上手指南(新手友好版)
AI编程工具卷疯啦!Claude Code凭借任务驱动+终端原生的特性,成了开发者的效率搭子。本文从安装、登录、切换国产模型到常用命令,手把手带新手快速上手,全程避坑,30分钟独立用起来。
1296 7
|
5天前
|
人工智能 BI 持续交付
Claude Code 深度适配 DeepSeek V4-Pro 实测:全场景通关与真实体验报告
在 AI 编程工具日趋主流的今天,Claude Code 凭借强大的任务执行、工具调用与工程化能力,成为开发者与自动化运维的核心效率工具。但随着原生模型账号稳定性问题频发,寻找一套兼容、稳定、能力在线的替代方案变得尤为重要。DeepSeek V4-Pro 作为新一代高性能大模型,提供了完整兼容 Claude 协议的 API 接口,只需简单配置即可无缝驱动 Claude Code,且在任务执行、工具调用、复杂流程处理上表现极为稳定。
1405 3