机器学习——线性回归算法、代价函数、梯度下降算法基础

线性回归

还是以之前的预测房价为例,根据不同尺寸的房子对应不同的售价组成的数据集画图,图如下

监督学习算法工作流程

假设函数其实就是我们所说的函数,在房价这个例子中,我们可以从上图中看出房价和房子面积是一个一元的线性函数(当然有更复杂更贴近数据集的函数拟合数据集,但是我们从最简单的开始学习),所以我们要来预测y关于x的线性函数,可以简单写成:y = h(x),但它更完整的写法是下图的形式:

接下来的例子中会用到的一些符号

训练集:数据集又称为训练集,如下面的房价数据集

小写字母m:训练集中样本的数量,也就是数据集中总的数据个数

小写字母x:输入变量,这里指的是房子的面积

小写字母y:输出变量,预测的对应面积x的房子售价

(x, y):表示某一个训练样本,如房价数据集中的某一行数据

(x^i, y^i);i是上标,表示第i个样本

代价函数

下面介绍的代价函数称为平方误差函数,有时还称为平方误差代价函数。,是代价函数中的一种,在解决线性回归问题中比较常用,当然还有其他代价函数

模型参数介绍

如图,我们要做的是如何选择两个模型参数,以让假设函数更贴近训练集,也就是选择对两个模型参数θ0和θ1,会让预测结果更准确

 模型参数的选择

选择不同的模型参数,会得到不同的假设函数

现在我们要根据训练集,得出两个模型参数的值,进而得到具体的假设函数,让该假设函数尽可能多的与训练集中的数据点拟合。那我们该怎么选择这两个模型参数呢?

思路是:对于训练集中的每个数据,每个房子面积x都对应着已知的售价y,假如已经确定两个模型参数,即已经得到假设函数,应该使得对该假设函数输入训练集中的某个x得到的yy,与实际的y最接近(也就是我们说的要最大程度的拟合数据点)

总之就是,我们要使得预测的房价和真实的售价之间差值的平方越小越好(至于为什么是平方,是因为预测价和真实价的差值可能正可能负)

代价函数的数学定义

理解代价函数

为了更好理解,现在我们简化一下假设函数,如图(因为公式不好写,所以都用截图表示了)

 θ1可以取不同的值,包括正数、负数、0,我们的目标是找到让J(θ1)最小的θ1,由J(θ1)的图像可以看出,在这个例子中,θ1 = 1时,J(θ1)能取到最小值,而当θ1=1时,假设函数也是能最大程度的拟合训练集的每个样本的(在这个例子中,假设函数完全拟合训练集中的三个数据点)

上面我们为了容易理解,简化了假设函数,让θ0=0,即假设函数中只有一个模型参数,现在讨论原本的假设函数(有两个模型参数θ0,θ1)

代价函数J(θ0,θ1)的函数图像如下:

 我们用等高线图代替上面的立体图,可以看出,越接近等高线图的中心,代价函数的值就越小,而对应的假设函数就越拟合训练集数据。

我们都是随便取某个点来进行分析,但是实际上不可能一个个列举,所以算法要做的就是快速找到最小的代价函数值J(θ0,θ1)对应的θ0和θ1.

梯度下降算法

上面我们的需求是想得到最小的代价函数值,那么我们此时可以使用梯度下降算法来实现这个需求。梯度下降算法不仅仅可以最小化线性回归的代价函数,还可以最小化其他函数,即梯度下降算法可以最小化任意函数,被广泛应用于机器学习的众多领域。

梯度下降算法可以最小化任意函数J(θ0,θ1,θ2,...,θn),即得到任意函数的最小值或局部最小值,下面为了更容易理解,以两个模型参数为例J(θ0,θ1)描述梯度下降算法的思路

在每一个位置选择不同方向的路时,实际上上就是在不断修改θ0和θ1的值

梯度下降算法的数学定义

公式中的α控制着以多大幅度更新参数θj

梯度下降算法的理解

导数项的意义

我们先来看导数的概念及基本含义,这里只写出了最基本的一点(来自百度,因为我也忘完了(╥╯^╰╥)):

导数是用来描述函数局部变化率的度量。对于给定的函数,它在某一点处的导数,就是函数曲线在该点处的切线斜率。具体地说,若函数y=f(x)在点x0处可导,则点(x0, f(x0))处切线的斜率就是f(x)在点x0处的导数f'(x0)。导数本质上是一个极限,即函数在某个点x0处的导数,就是其在此点附近取极限时的极限值,即:f'(x0) = lim (x->x0) [f(x) - f(x0)] / [x - x0]

为了容易理解,现在假设代价函数只有一个模型参数,即J(θ1),跟之前一样,我们可以得到J(θ1)的函数图像如下,由上面的导数概念,可以知道函数J(θ1)在位置A的导数,就是在函数图像上的位置A作一条切线,该切线的斜率就是J(θ1)在位置A的导数值。

我们再看看另一个位置B的导数,如下

梯度下降算法的运行过程

学习率α大小的影响,如下

 从上面可以出α是一个固定值,不影响梯度下降算法会自动根据导数值的不同来调整每一步走的步子大小。说到这里,好像也没说α的用处,也没说该如何定义α的值,以及为什么还要乘以α,而不是直接减去导数值?

我看了一下视频弹幕,说我们现在举的都是最简单的函数,但是实际应用中,函数会很复杂,非常有可能是多维的,而且函数不一定连续等等。所以这里就当做是理解梯度下降算法的思想吧。如果后面的视频讲到原因,会做笔记的(B站视频链接 这个专栏里的文章应该都是这个视频的笔记)

梯度下降算法在代价函数中的应用

求梯度下降算法中的导数项

我们先求梯度下降算法中的导数项的值,这里求导数的过程使用了复合函数求导和偏导数这两个知识点。

偏导就是当一个函数中有多个变量,如这里代价函数中有两个变量θ0和θ1,在对其中某一个变量求导数时,将其他变量都视作常数项,如对变量θ0求偏导时,将θ1项都看作是常数项,而复合函数求导法则如下(来自知乎):

 下图中,隐函数为假设函数h(x) = θ0 + θ1*x,在对θ0求偏导时,h(θ0)` = 1(θ1*x这一项看作常熟项),在对θ1求偏导时,h(θ1)` = x(θ0和x都看作常熟项

外函数J(h(x)) = (1/2m)[h(x) - y]^2,对J函数偏导时,由于J是复合函数,所以运用复合函数的求导法则,首先J(h(x))` = (1/m)(h(x) - y) (说明:将h(x)看作一个变量,相当于((x-a)²)'=2(x-a),所以求导之后平方没了,前面的二分之一也消掉了2,这也是为什么之前要写成1/2m的原因),结合上面的h(x)对θ0和θ1的偏导,可以得到图中针对θ0和θ1的导数项的值

将计算得到的导数项代入梯度下降算法公式,如下:

梯度下降函数在线性回归中的具体实现过程

在下面这张图中,从不同的位置出发,即初始化的值不同会得到不同的局部最优解

但是我们所举例的房价这一线性回归的例子的代价函数的图像是一个弓状函数(这种称为凸函数,具体的自行百度一下吧,我也不懂),这个函数没有局部最优解,只有全局最优,从图形也可以看出这一点,当计算这种代价函数的梯度下降时,总能得到全局最优解

首先,先初始化θ0和θ1的值,一般都初始化为0,在这里为了方便演示,从图中的点开始

 

上面所展示的梯度下降算法,有时也称为batch梯度下降,从上面的过程中可以看到,batch梯度下降算法每运行一次,即从一个点到另一个点所运行的一次梯度下降,都会遍历训练集中的每个样本(因为在单独的一次梯度下降中,计算偏导时最终都是计算m个样本的总和\sum (h(x) - y)).所以batch梯度下降算法每一次都是从整个训练集入手,而还有其他的梯度下降算法,只从训练集的小子集入手

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/262819.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

爬取数位观察城市数据知识总结

# 抓取数位观察中城市的GDP,公交车数量,户籍人口 # url "https://www.swguancha.com/home/query-city-page" # 1.找数据 # 1.1如果数据在页面源代码里,则访问,在本案例中并没有在源代码中 # 1.2如果数据不在页面源代码里&#xff…

QT3作业

1 2. 使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数,将登录按钮使用t5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin"&#…

docker自定义网络实现容器之间的通信

Background docker原理 docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上。通过Socket从客户端访问。docker核心三大组件:image–镜像、container-容器、 repository-仓库。docker使用的cpu、内存以及系统内核等资源都是直接使用宿主…

Matlab/simulink光伏发电的扰动观察法MPPT仿真(持续更新)

1.光伏发电的电导增量法MPPT仿真 2.光伏发电的恒定电压法MPPT仿真 3.光伏发电的扰动观察法MPPT仿真 4.光伏发电的占空比法MPPT仿真 5.基于神经网络的MPPT光伏发电仿真 6. 基于模糊控制的MPPT光伏发电仿真 7. 基于粒子群算法(PSO)的500w光伏系统MPPT控…

【自然语言处理-二-attention注意力 是什么】

自然语言处理二-attention 注意力机制 自然语言处理二-attention 注意力记忆能力回顾下RNN(也包括LSTM GRU)解决memory问题改进后基于attention注意力的modelmatch操作softmax操作softmax值与hidder layer的值做weight sum 计算和将计算出来的和作为memo…

即时设计和Axure对比,哪一个好用?

无论是国外页面设计工具,页面设计工具的发展从来没有停滞过, Axure,无论是国产设计工具即时设计,其功能都在不断更新迭代,为设计带来更高效的设计体验。今天对比两个设计工具,帮你找到最适合自己的&#xf…

二百二十四、Kettle——曲线实现从Hive插入更新到ClickHouse(分区字段是month或year)

一、目的 对于以month、year为分区字段的数据,不是像day字段分区那样每天增量插入更新即可,而是要以部分字段查询、部分字段更新,但是ClickHouse数据库并不适合更新操作,直接使用Kettle的插入更新控件会导致问题,必须…

osg qt5.15 osg3.6.3 osgEarth3.1 编译爬山

Demo演示:Qt5.15.2OSG3.6.3OsgEarth3.1的QtCreator下的msvc2019x64版本 osgQt编译 步骤一:下载解压 步骤二:CMake配置 步骤三:CMake配置添加osg环境 步骤四:CMake配置添加Qt环境 步骤五:CMake修改CMakeLis…

《TCP/IP详解 卷一》第4章 地址解析协议ARP

目录 4.1 引言 4.2 一个例子 4.3 ARP缓存 4.4 ARP帧格式 4.5 ARP例子 4.6 ARP缓存超时 4.7 代理ARP 4.8 免费ARP和地址冲突检测 4.9 ARP命令 4.10 使用ARP设置嵌入式设备IPv4地址 4.11 与ARP相关攻击 4.12 总结 4.1 引言 地址解析: IPv4:AR…

《TCP/IP详解 卷一》第6章 DHCP

目录 6.1 引言 6.2 DHCP 6.2.1 地址池和租用 6.2.2 DHCP和BOOTP消息格式 6.2.3 DHCP和BOOTP选项 6.2.4 DHCP协议操作 6.2.5 DHCPv6 6.2.6 DCHP中继 6.2.7 DHCP认证 6.2.8 重新配置扩展 6.2.9 快速确认 6.2.10 位置信息(LCI和LoST) 6.2.11 移…

外包干了3个月,技术退步明显

先说一下自己的情况,本科生,19年通过校招进入广州某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

git使用记录

1.使用 "git reset --hard 版本号"的方式回退版本号会覆盖从当前版本到回退版本之间的版本号,为避免这种情况,可以用"git revert -n 版本号"指令,具体看:https://blog.csdn.net/L1147484597/article/details/…

MYSQL-入门

一.安装和连接 1.1 安装 mysql安装教程: 2021MySql-8.0.26安装详细教程(保姆级)_2021mysql-8.0.26安装详细教程(保姆级)_mysql8.0.26_ylb呀的博客-cs-CSDN博客 workbench安装: MySQL Workbench 安装及使用-CSDN博客 1.2 配…

古天乐演唱会内涵梅西,郑中基助阵,网友狂赞。

♥ 为方便您进行讨论和分享,同时也为能带给您不一样的参与感。请您在阅读本文之前,点击一下“关注”,非常感谢您的支持! 文 |猴哥聊娱乐 编 辑|徐 婷 校 对|侯欢庭 梅西的香港之行虽已落幕,但他对中国球迷造成的伤害…

MybatisPlus--03--IService、ServiceImpl

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1. IService接口1.1 IService、ServiceImpl 接口的使用第一步:实现basemapper接口第二步:编写service类第三步:编写serviceImpl第…

5个精美的wordpress中文企业主题模板

元宇宙WordPress主题模板 简洁大气的元宇宙 Metaverse WordPress主题模板,适合元宇宙行业的企业官网使用。 https://www.jianzhanpress.com/?p3292 职业技术培训WordPress主题模板 简洁大气的职业技术培训WordPress主题,适合用于搭建教育培训公司官方…

【动态规划】【前缀和】【推荐】2463. 最小移动总距离

作者推荐 【广度优先搜索】【网格】【割点】【 推荐】1263. 推箱子 本文涉及知识点 动态规划汇总 C算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 2463. 最小移动总距离 X 轴上有一些机器人和工厂。给你一个整数数组 robot &#xff0c…

Vue学习之计算属性

模板中的表达式虽然方便,但也只能用来做简单的操作。如果在模板中写太多逻辑,会让模板变得臃肿,难以维护。比如说,我们有这样一个包含嵌套数组的对象: const author reactive({name: John Doe,books: [Vue 2 - Advan…

mysql-MVCC

一、基础概念 1. MVCC的含义 MVCC (Multiversion Concurrency Control),即多版本并发控制技术,它是通过读取某个时间点的快照数据, 来降低并发事务冲突而引起的锁等待, 从而提高并发性能的一种机制. MVCC 的实现,是通过保存数据…

危险!Wyze 摄像头安全漏洞致1.3万用户隐私遭窥探

最近,一则关于 Wyze 摄像头再次出现安全漏洞的新闻引起了人们的广泛关注。据报道,该安全漏洞导致约1.3万用户的摄像头受到了未经授权的访问,使得这些用户的隐私信息遭到了窥视。这一事件再次引发了人们对网络安全的关注和讨论。 网络安全不仅…