吴恩达《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

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


相关文章
|
JavaScript 开发工具 C++
探索 Visual Studio Code:开发者的瑞士军刀
Visual Studio Code(VS Code)是由微软开发的免费开源代码编辑器,支持多种编程语言及代码高亮、智能补全、重构和调试等功能。本文详细介绍其核心功能、丰富的插件生态系统及定制化设置方法,帮助开发者提升效率。VS Code 支持 JavaScript、TypeScript、Python 等语言,具备智能感知、代码调试和 Git 集成等功能。推荐插件如 Live Server 和 GitLens 可进一步增强编辑器功能。通过自定义设置,用户可个性化编辑器界面和行为。掌握 VS Code 的使用技巧将显著提升开发体验。
|
数据管理 索引
探究 | Elasticsearch如何物理删除给定期限的历史数据?
想到删除,基础认知是delete,细分为删除文档(document)和删除索引;要删除历史数据,基础认知是:删除了给定条件的数据,用delete_by_query。 实际操作发现: 删除文档后,磁盘空间并没有立即减少,反而增加了? 除了定时任务+delete_by_query,有没有更好的方式?
3460 0
|
5天前
|
缓存 人工智能 自然语言处理
我对比了8个Claude API中转站,踩了不少坑,总结给你
本文是个人开发者耗时1周实测的8大Claude中转平台横向评测,聚焦Claude Code真实体验:以加权均价(¥/M token)、内部汇率、缓存支持、模型真实性及稳定性为核心指标。
|
22天前
|
人工智能 数据可视化 安全
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
本文详解如何用阿里云Lighthouse一键部署OpenClaw,结合飞书CLI等工具,让AI真正“动手”——自动群发、生成科研日报、整理知识库。核心理念:未来软件应为AI而生,CLI即AI的“手脚”,实现高效、安全、可控的智能自动化。
34935 57
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
|
17天前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
15363 44
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
|
12天前
|
人工智能 JavaScript Ubuntu
低成本搭建AIP自动化写作系统:Hermes保姆级使用教程,长文和逐步实操贴图
我带着怀疑的态度,深度使用了几天,聚焦微信公众号AIP自动化写作场景,写出来的几篇文章,几乎没有什么修改,至少合乎我本人的意愿,而且排版风格,也越来越完善,同样是起码过得了我自己这一关。 这个其实OpenClaw早可以实现了,但是目前我觉得最大的区别是,Hermes会自主总结提炼,并更新你的写作技能。 相信就冲这一点,就值得一试。 这篇帖子主要就Hermes部署使用,作一个非常详细的介绍,几乎一步一贴图。 关于Hermes,无论你赞成哪种声音,我希望都是你自己动手行动过,发自内心的选择!
2975 28
|
1天前
|
云安全 人工智能 安全

热门文章

最新文章

下一篇
开通oss服务