✨机器学习笔记(二)—— 线性回归、代价函数、梯度下降

news/2024/9/17 9:14:11/ 标签: 机器学习, 笔记, 线性回归
Course1-Week1:
https://github.com/kaieye/2022-Machine-Learning-Specialization/tree/main/Supervised%20Machine%20Learning%20Regression%20and%20Classification/week1

1️⃣线性回归(linear regression)

f w , b ( x ) = w x + b f_{w,b}(x) = wx + b fw,b(x)=wx+b

🎈A linear regression model predicting house prices:

在这里插入图片描述

如图是机器学习通过监督学习运用线性回归模型来预测房价的例子,当房屋大小为1250 f e e t 2 feet^2 feet2时,预测的价格为 220k$。

在这里插入图片描述

🎈Terminology:
线性回归中可能用到的术语及含义
在这里插入图片描述

2️⃣代价函数(cost function)

为了预测出更准确的结果,需要模型更好的拟合程度,对于线性回归模型 f w , b ( x ) = w x + b f_{w,b}(x) = wx + b fw,b(x)=wx+b,我们需要找到合适的参数 w w w b b b,使得拟合程度最高。

在这里插入图片描述
🎉而如何找到合适的 w w w b b b 呢,这时需要通过代价函数(cost function)来进行衡量。我们希望对于每组数据,模型通过 x ( i ) x^{(i)} x(i) 预测出的 y ^ ( i ) \hat{y}^{(i)} y^(i) 接近真实的 y ( i ) y^{(i)} y(i) ,于是有如下的代价函数:

J = 1 2 m ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) 2 J = \frac{1}{2m}\sum_{i=1}^{m}(\hat{y}^{(i)}-y^{(i)})^2 J=2m1i=1m(y^(i)y(i))2

J ( w , b ) = 1 2 m ∑ i = 1 m ( f w , b ( x ( i ) ) − y ( i ) ) 2 J(w,b)=\frac{1}{2m}\sum_{i=1}^{m}(f_{w,b}(x^{(i)})-y^{(i)})^2 J(w,b)=2m1i=1m(fw,b(x(i))y(i))2

✨现在的目标就变为 minimize w , b J ( w , b ) \underset{w, b}{\text{minimize}}J(w,b) w,bminimizeJ(w,b)


为了简单理解代价函数,让 b = 0 b=0 b=0 简化函数,针对 f ( x ) = w x f(x) = wx f(x)=wx 讨论。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对所有的 w w w 取值最终可以列出一个代价函数:

在这里插入图片描述
可以看到当 w = 1 w=1 w=1 J ( w ) J(w) J(w) 最小,此时的 w w w 即为我们找到的最合适的参数。


当我们不再忽略 b b b ,来研究两个参数 w w w b b b 影响下的代价函数时,它的函数是一个三维图形,此时 J J J 的最小值在这个3D图形的底部:
在这里插入图片描述

假设我们拿一把小刀🔪去水平地给这样的三维图形砍一刀,去看这个横切面,大概可以得到这样的图形:
在这里插入图片描述

回归函数 f w , b f_{w,b} fw,b 和代价函数中的点的对应关系如下:
在这里插入图片描述

3️⃣梯度下降(gradient descent)

✨​ 用于求代价函数 J ( w , b ) J(w,b) J(w,b) 的最小值的方法, α \alpha α 为学习率(learning rate)。
w = w − α ∂ ∂ w J ( w , b ) w=w-\alpha\frac{\partial}{\partial w} J(w, b) w=wαwJ(w,b)

b = b − α ∂ ∂ b J ( w , b ) b=b-\alpha\frac{\partial}{\partial b} J(w, b) b=bαbJ(w,b)

对于一个三维的代价函数,想象成有个小人站在山上一个点,对于自己的360度的方向,需要选择一个方向迈出一步,确保这一步比其他各个方向下降的都要快,然后到达下一个点后以此类推,最终下降到最低点。
在这里插入图片描述
如果从不同的 ( w , b ) (w,b) (w,b) 作为起点,最后降低到的最低点不同,这些谷底被称为 local mininum(局部极小值)

🎉这个梯度下降的过程就是不断调整 w w w b b b 的过程:

在这里插入图片描述


学习率 α \alpha α
在这里插入图片描述

在这里插入图片描述


http://www.ppmy.cn/news/1522850.html

相关文章

85、 探针

一、pod的进阶 pod的进阶: 1.1、pod的生命周期当中的状态: 1、Running运行中,pod已经分配到节点上且pod内的容器正常运行。正常状态(ready 1/1)。 2、complete:完成之后退出,容器内的返回码…

python获取音频文件采样率的方法

在 Python 中,你可以使用多种库来获取音频文件的采样率(sampling rate)。常见的音频文件格式包括 .wav、.mp3、.flac 等。对于不同的音频文件格式,可以使用不同的库来处理。以下是一些常见的库和对应的方法: 1. 使用 w…

pytest压力测试:不断发送数据,直到发现数据丢失

示例场景 假设有一个 send_data 函数接受数据并返回成功或失败的状态。 创建一个测试用例,通过逐步增加数据量来测试这个函数,直到返回失败为止。 步骤 定义压力测试函数 定义一个函数。不断发送数据,直到发现数据丢失。 创建 pytest 测试…

电脑驱动分类

电脑驱动程序(驱动程序)是操作系统与硬件设备之间的桥梁,用于使操作系统能够识别并与硬件设备进行通信。以下是常见的驱动分类: 1. 设备驱动程序 显示驱动程序:控制显卡和显示器的显示功能,负责图形渲染和…

Java并发编程实战 07 | 如何正确停止线程

什么时候需要停止一个线程? 一个线程被创建并启动之后,大部分情况下都会自然运行至结束,但是也有一些情况需要主动停止线程,比如: 用户主动取消执行:用户可能会中止一个正在进行的操作,这时需…

python---爬取QQ音乐

如Cookie为非vip,仅能获取非vip歌曲 1.下载包 pip install jsonpath 2.代码 import os import time import requests from jsonpath import jsonpathdef search_and_download_qq_music(query_text):headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; …

网络层ip协议

一.概念 ip协议主要是为了在复杂的网络环境中确定一个合适的路径来传输主机间的数据。简单来说就是用来确定主机的位置。 ip协议中的一些设备如下: 主机: 配有 IP 地址, 但是不进行路由控制的设备;路由器: 即配有 IP 地址, 又能进行路由控制;节点: 主机和路由器的统…

vue多环境配置和打包

件名的后缀来指定它们仅在特定模式下被加载。 .env:所有环境下都会加载的通用配置。 .env.local:本地覆盖配置,不加入版本控制。 .env.[mode]:仅为指定的模式加载的配置文件,例如.env.development、.env.production、…

Claude Enterprise推出计划

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

探究零工市场小程序如何改变传统兼职模式

近年来,零工市场小程序正逐渐改变传统的兼职模式,为求职者和雇主提供了一个更为高效、便捷的平台。本文将深入探讨零工市场小程序如何影响传统兼职模式,以及它带来的优势和挑战。 一、背景与挑战 传统的兼职市场往往存在信息不对称的问题&am…

本地Gitblit使用

首先创建一个本地的gitblit的服务,创建流程如下: 【GitBlit】Windows搭建Git服务器详细教程_搭建gitblit服务-CSDN博客 GitBlit的使用教程-CSDN博客 创建好一个仓库后,分配好用户权限,再将项目拉下来,这里是再visua…

C++如何创建一个单例模式的类

单例模式(Singleton Pattern)是一种创建型设计模式,其核心目的是确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。单例模式通常用于管理共享资源,如配置文件、线程池、缓存等。在C中,创建一个…

页面小组件-表格封装(基础版)

说明 这一版封装的主要原因是当时有很多报表&#xff0c;数据列很多很多&#xff0c;基本在二十个左右。相应领导安排简洁代码&#xff0c;也为了偷懒&#xff0c;直接插槽循环搞起。其余是为了统一样式修改。 组件源码 <template><el-tablev-loading"loading…

DML、DQL、DCL的基础介绍

1.DML、DQL、DCL 1.1DML-介绍 DML英文全称Data Manipulation Language&#xff08;数据操作语言&#xff09;&#xff0c;用来对数据库中表的数据记录进行增删改操作 添加数据&#xff08;INSERT&#xff09;修改数据&#xff08;UPDATE&#xff09;删除数据&#xff08;DEL…

docker 启动容器报错 Error response from daemon: network XXX not found

华为的云服务器,重启后启动容器报上述错误 可能是容器依赖的网络被删除了 查看现有网络 docker network ls docker run -it \-p 80:80 \-p 443:443 \--name nginx \--network app --hostname nginx \-e TZAsia/Shanghai \--add-host adminJar:192.168.0.169 \-v /guazai/do…

比特币客户端和API

1. 比特比客户端的安装 Bitcoin Core 客户端适用于从 x86 Windows 到 ARM Linux 的不同架构和平台&#xff0c;如下图所示&#xff1a; 2. Bitcoin Core客户端的类型 2.1 Bitcoind Bitcoind 末尾的字母 d 表示 daemon (守护程序&#xff09;。所谓守护程序&#xff0c;就是指常…

线程相关内容

线程 一、介绍二、thread库1、构造函数&#xff08;1&#xff09;函数&#xff08;2&#xff09;说明&#xff08;3&#xff09;注意 2、join函数3、detach4、joinable函数5、get_id函数 三、mutex的种类1、mutex&#xff08;1&#xff09;介绍&#xff08;2&#xff09;lock&a…

从JavaScript入门Go三

前情提要 上一章中我们讲了Go中的变量与函数&#xff0c;这一节我们说说Go中的逻辑语法for、if、switch。最近正好有空&#xff0c;正好给大家更新一下入门的第三章。 PS&#xff1a;没看过的第一章、第二章的小伙伴&#xff0c;可以进入下面的链接查看 从JavaScript入门Go一 从…

损坏SD数据恢复的8种有效方法

SD卡被用于许多不同的产品来存储重要数据&#xff0c;如图片和重要的商业文件。如果您的SD卡坏了&#xff0c;您需要SD数据恢复来获取您的信息。通过从损坏的SD卡中取回数据&#xff0c;您可以确保重要文件不会永远丢失&#xff0c;这对于工作或个人原因是非常重要的。 有许多…

比特币网络和支付

1. 比特币网络 比特币网络是一个去中心化的点对点网络&#xff0c;节点之间可以直接进行交易。网络上有不同类型的节点。 1.1 比特币网络的节点 比特币网络的节点有两种主要类型&#xff1a;全节点也称为完整节点和简单支付验证&#xff08;Simple Payment Verification,SPV)节…