[UFLDL-1] 监督学习和优化

2023-12-02 18:08
文章标签 学习 优化 监督 ufldl

本文主要是介绍[UFLDL-1] 监督学习和优化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 线性回归
    • 问题简介 
    • 函数最小化
  • 逻辑回归

线性回归

问题简介 

http://ufldl.stanford.edu/tutorial/supervised/LinearRegression/

作为一个回顾,我们将学习怎样实现线性回归。主要的目的是学习目标函数,计算它们的梯度并且在参数集上优化。这些基本的工具之后将成为更加复杂算法的基础。读者希望了解更多细节可以参考讲义上面的监督学习。

在线性回归中我们的目标是从输入向量 xRn 中预测目标值 y 。举个例子,我们可能对房子价格做预测,y 就代表房子的价格。 x 中的元素xj代表房子的特征(比如他的大小和卧室的数码)。假定我们有很多房子的样例,第i个房子的特征表示为 x(i) ,它的价格是 y(i) 。为了简便,我们的目标是为了找到一个函数 y=h(x) ,所以对于每一个训练样例我们有 y(i)h(x(i)) .如果我们成果找到了 h(x) 这样的函数,同时我们看到了足够多的房子和它们的价格。我们希望这样的函数 h(x) 对于一个新给定的不知道价格的房子的特征,也能对房子的价格有好的预测。

为了找到使得 y(i)h(x(i)) 的函数 h(x) 我们必须决定如何表达函数 h(x) .要开始了,我们使用线性函数 hθ(x)=jθjxj=θx .这里 hθ(x) 表示由 θ 参数化的一个很大的簇函数 (我们把这个函数空间称为“假设类”).通过这样的 h 的表示,我们的任务是找到一个θ使得 hθ(xi) 尽可能的靠近 y(i) .特别的,我们搜索 θ 来最小化 J(θ) :

J(θ)=12i(hθ(x(i))y(i))2=12i(θx(i)y(i))2

这个函数是损失函数,我们的问题是度量一个选定的 θ 在预测 y(i) 时导致了多少的误差。这也称为损失,惩罚或者目标函数。

函数最小化

我们现在希望找到一个 θ 使得给定的 J(θ) 最小化。有许多的优化算法来最小化这个函数。我们介绍一些非常有效而且容易自己实现的梯度下降算法。现在,让我理所当然的接受这个事实大多数使用的最小化函数算法都需要我们提供2部分的信息:我们需要用代码计算 J(θ) θJ(θ) .在这之后我们剩下的优化处理就是找到最好的 θ 来处理我们的优化算法(把梯度看作不同的目标函数,在梯度方向上增长最快,所以很容易明白优化算法怎样使用较小的 θ 来减少(或者增加) J(θ) )。

上的 J(θ) 在给定训练集后很容易在matlab上实现。需要计算的梯度是:

θJ(θ)=J(θ)θ1J(θ)θ2J(θ)θn

微分函数表示如下:

J(θ)θj=ix(i)j(hθ(x(i))y(i))

逻辑回归

http://ufldl.stanford.edu/tutorial/supervised/LogisticRegression/

前面我们学习了如何通过输入值的线性函数(比如,房子的大小)来预测连续的数值(比如,房子价格)。有些时候我们希望预测离散的变量例如预测一个灰度值表示的是数字0或者1.这是一个分类问题。逻辑回归是学习做这样决策的简单分类算法。

在线性回归中我们试图使用线性函数 y=hθ(x)=θT(x) 预测第i个样例 x(x) 输出值 y(i) 。这很明显对于一个二分类预测不是一个好的解决方案。在逻辑回归中,我们使用不同的假设类,我们试图预测一个样例属于属于1的概率与属于0的概率。特别的,我们试图学习下面的函数:

P(y=1|x)P(y=0|x)=hθ(x)=11+exp(θx)σ(θx),=1P(y=1|x)=1hθ(x).

函数 σ(z)11+exp(z) 经常被称为sigmoid或者logistic函数。它是一个S型的函数,压缩 θTx 的值到[0,1],所以我们把 hθ(x) 看作一个概率。我们的目标是搜索一个 θ 值使得x属于类别1的概率 P(y=1|x)=hθ(x) 大于x属于类别0的概率。对于二分类的训练集我们有下面的损失函数:

J(θ)=i(y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i))))

需要注意的是上面求和的部分只有1个不为0(这取决于标签是否为0)。 当 yi=1 最小化损失函数等价于最大化 hθ(xi) ,当 yi=0 时我们使得 1hθ 最大 。全面的逻辑回归解释以及损失函数的推导,在CS229监督学习笔记里面。

我们现在有了一个损失函数来度量一个假设到底拟合训练数据到怎样程度。我们可以找到使得 J(θ) 最小的最好的一个 θ 来分类训练数据。一但找到了这样的函数,我们能够对一个新的数据进行分类(0、1):如果 P(y=1|x)>P(y=0|x) 分为类别1,否则类别0.这也等同于检查是否 hθ(x)>0.5

为了最小化 J(θ) 我们使用和线性回归相同的工具。我们需要计算 J(θ) θJ(θ)

J(θ)θj=ix(i)j(hθ(x(i))y(i)).

向量表示形式:

θJ(θ)=ix(i)(hθ(x(i))y(i))

这篇关于[UFLDL-1] 监督学习和优化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/446297

相关文章

MyBatisPlus如何优化千万级数据的CRUD

《MyBatisPlus如何优化千万级数据的CRUD》最近负责的一个项目,数据库表量级破千万,每次执行CRUD都像走钢丝,稍有不慎就引起数据库报警,本文就结合这个项目的实战经验,聊聊MyBatisPl... 目录背景一、MyBATis Plus 简介二、千万级数据的挑战三、优化 CRUD 的关键策略1. 查

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

SpringBoot中HTTP连接池的配置与优化

《SpringBoot中HTTP连接池的配置与优化》这篇文章主要为大家详细介绍了SpringBoot中HTTP连接池的配置与优化的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、HTTP连接池的核心价值二、Spring Boot集成方案方案1:Apache HttpCl

PyTorch高级特性与性能优化方式

《PyTorch高级特性与性能优化方式》:本文主要介绍PyTorch高级特性与性能优化方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、自动化机制1.自动微分机制2.动态计算图二、性能优化1.内存管理2.GPU加速3.多GPU训练三、分布式训练1.分布式数据

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

MySQL中like模糊查询的优化方案

《MySQL中like模糊查询的优化方案》在MySQL中,like模糊查询是一种常用的查询方式,但在某些情况下可能会导致性能问题,本文将介绍八种优化MySQL中like模糊查询的方法,需要的朋友可以参... 目录1. 避免以通配符开头的查询2. 使用全文索引(Full-text Index)3. 使用前缀索

C#实现高性能Excel百万数据导出优化实战指南

《C#实现高性能Excel百万数据导出优化实战指南》在日常工作中,Excel数据导出是一个常见的需求,然而,当数据量较大时,性能和内存问题往往会成为限制导出效率的瓶颈,下面我们看看C#如何结合EPPl... 目录一、技术方案核心对比二、各方案选型建议三、性能对比数据四、核心代码实现1. MiniExcel

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分