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

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


相关文章
|
机器学习/深度学习 算法 索引
吴恩达《Machine Learning》精炼笔记 4:神经网络基础
吴恩达《Machine Learning》精炼笔记 4:神经网络基础
233 0
吴恩达《Machine Learning》精炼笔记 4:神经网络基础
|
机器学习/深度学习 算法
吴恩达《Machine Learning》精炼笔记 6:关于机器学习的建议
吴恩达《Machine Learning》精炼笔记 6:关于机器学习的建议
263 0
吴恩达《Machine Learning》精炼笔记 6:关于机器学习的建议
|
机器学习/深度学习 算法
吴恩达《Machine Learning》精炼笔记 5:神经网络
吴恩达《Machine Learning》精炼笔记 5:神经网络
219 0
吴恩达《Machine Learning》精炼笔记 5:神经网络
|
2天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
13天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1281 5
|
12天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1308 87
|
1天前
|
弹性计算 安全 数据安全/隐私保护
2025年阿里云域名备案流程(新手图文详细流程)
本文图文详解阿里云账号注册、服务器租赁、域名购买及备案全流程,涵盖企业实名认证、信息模板创建、域名备案提交与管局审核等关键步骤,助您快速完成网站上线前的准备工作。
171 82
2025年阿里云域名备案流程(新手图文详细流程)