白话机器学习的数学-1-回归

1、设置问题

投入的广告费越多,广告的点击量就越高,进而带来访问数的增加。

2、定义模型

定义一个函数:一次函数
y = ax + b  (a 是斜率、b 是截距)
定义函数:

3、最小二乘法

例子:  用随便确定的参数计算的值与实际的值存在偏差。
假设有 n 个训练数据, 那么它们的误差之和可以用这样的表达式表示。
这个表达式称为 目标函数,E(θ) 的 E 是误差的英语单词 Error 的首字母,∑读作“西格玛”。
这么做是为了找到使 E(θ) 的值最小 的 θ,这样的问题称为最优化问题。
来计算一下表格 E(θ) 的值,设 θ0 = 1、θ1 = 2, 然后将刚才列举的 4 个训练数据代入表达式

4、梯度下降法(最速下降法)

微分是计算变化的快慢程度时使用的方法。
函数 g(x):
微分(求导):
x < 1 为负数,x = 1 为0,x > 1 为正数。
根据导数的符号来决定移动 x 的方向,只要向与导数的符号相反的方向移动 x,g(x) 就会自然而然地沿着最小值的方向前进了, 这也被称为最速下降法或梯度下降法 。
η  是称为学习率的正的常数,读作“伊塔”。根据学习率的大小, 到达最小值的更新次数也会发生变化。换种说法就是收敛速度会 不同。有时候甚至会出现完全无法收敛,一直发散的情况。
比如 η = 1,从 x = 3 开始 (结果是一直发散,无法收敛):
那设 η = 0.1,同样从 x = 3 开始:
回过头来看一下目标函数 E(θ):
这个目标函数是拥有 θ0 和 θ1 的双变量函数,所以不能用 普通的微分,而要用偏微分:
设:
计算微分:
同样:
所以参数 θ0 和 θ1 的更新表达式是:

5、多项式回归

上面是一次函数,用更大次数的表达式, 这样就能表示更复杂的曲线。
不过对于要解决的问题,在找出最合适的表达式之前,需要 不断地去尝试。
虽然次数越大拟合得越好,但难免也会出现过拟合的问题。
如二次函数:
曲线如下:
曲线看起来更拟合数据。
计算微分:
像这样增加函数中多项式的次数,然后再使用函数的分析方法被称为多项式回归。

6、多重回归

多项式回归问题中确实会涉及不同次数的项,但是使用的变量依然只有广告费一项。
我们稍微扩展一下之前设置的问题。之前只是根据广告费来预 测点击量,现在呢,决定点击量的除了广告费之外,还有广告的 展示位置和广告版面的大小等多个要素。
为了让问题尽可能地简单,这次我们只考虑广告版面的大小,设 广告费为 x1、广告栏的宽为 x2、广告栏的高为 x3,那么 fθ 可以 表示如下:
下面我们把它推广到有 n 个变量的情况:
使用向量表示:
求微分:
u 对 v 微分的部分是一样的,所以只需要求 v 对 θj 的微分就好了
那么第 j 个参数的更新表达式就是这样的:
像这样包含了多个变量的回归称为多重回归。

7、随机梯度下降法

梯度下降法是对所有的训练数据都重复进行计算,缺点是计算量大、计算时间长,且容易陷入局部最优解 。
在随机梯度下降 法中会随机选择一个训练数据,并使用它来更新参数。这个表达 式中的 k 就是被随机选中的数据索引:
梯度下降法更新 1 次参数的时间,随机梯度下降法可以更新 n 次。 此外,随机梯度下降法由于训练数据是随机选择的,更新参数时使用的又是选择数据时的梯度,所以不容易陷入目标函数的局部最优解。
我们前面提到了随机选择 1 个训练数据的做法,此外还有随机选 择 m 个训练数据来更新参数的做法。
设随机选择 m 个训练数据的索引的集合为 K,那么我们这样 来更新参数:
这种做法被称为小批量(mini-batch)梯度下降法。
不管是随机梯度下降法还是小批量梯度下降法,我们都必须考虑 学习率 η。
把 η 设置为合适的值是很重要的, 可以通过反复尝试来找到合适的值。

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

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

相关文章

elasticsearch系列七:聚合查询

概述 今天咱们来看下es中的聚合查询&#xff0c;在es中聚合查询分为三大类bucket、metrics、pipeline&#xff0c;每一大类下又有十几种小类&#xff0c;咱们各举例集中&#xff0c;有兴许的同学可以参考官网&#xff1a;https://www.elastic.co/guide/en/elasticsearch/refere…

使用pytorch搭建ResNet并基于迁移学习训练

这里的迁移学习方法是载入预训练权重的方法 net resnet34()# load pretrain weights# download url: https://download.pytorch.org/models/resnet34-333f7ec4.pthmodel_weight_path "./resnet34-pre.pth"assert os.path.exists(model_weight_path), "file {}…

Adobe Photoshop各版本安装指南

下载链接 https://pan.baidu.com/s/1b9BFDSIVLGXY4e0r5a5Srg?pwd0531 #2024版 1.鼠标右击【PS2024(64bit)】压缩包&#xff08;win11及以上系统需先点击“显示更多选项”&#xff09;【解压到 PS2024(64bit)】 2.打开解压后的文件夹&#xff0c;鼠标右击【Set-up】选择【以管…

HarmonyOS4.0系统性深入开发07创建一个ArkTS卡片

创建一个ArkTS卡片 在已有的应用工程中&#xff0c;创建ArkTS卡片&#xff0c;具体操作方式如下。 创建卡片。 根据实际业务场景&#xff0c;选择一个卡片模板。 在选择卡片的开发语言类型&#xff08;Language&#xff09;时&#xff0c;选择ArkTS选项&#xff0c;然后单…

全书大纲【计算机图像处理】

全书大纲【计算机图像处理】 前言版权推荐全书大纲第一章 01数字图像处理概论一、图像与数字图像二、数字图像处理与图像工程三、数字图像处理系统四、数字图像处理技术小结作业 第二章 02视觉过程与成像基础一、视觉过程二、光与电磁波谱三、成像模型小结作业 第三章 03采样量…

边界判断缺失

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 学习必须往深处挖&…

基于SSM实现的电动汽车充电网点管理系统

一、系统架构 前端&#xff1a;jsp | jquery | bootstrap | css 后端&#xff1a;spring | springmvc | jdbc 环境&#xff1a;jdk1.8 | mysql 二、代码及数据库 三、功能介绍 01. web端-首页 02. web端-登录 03. web端-注册 04. web端-我要充电 05. web端-个人中心-消…

在3D建模领域中Maya和Blender在专业性上哪个更强

在3D建模领域中&#xff0c;3D Max、Maya和Blender等软件都是备受推崇的工具&#xff0c;它们各自独特的功能和特性为用户提供了广泛的选择。然而&#xff0c;在Blender和Maya之间&#xff0c;究竟哪一款软件更加易于上手&#xff1f;哪一款功能更为出众&#xff1f;这一问题的…

Dockerfile - 基于 SpringBoot 项目自定义镜像(项目上线全过程)

目录 一、Dockerfile 自定义项目镜像 1.1、创建 SpringBoot 项目并编写 1.2、打包项目&#xff08;jar&#xff09; 1.3、编写 Dockerfile 文件&#xff0c;构建镜像 1.4、运行镜像并测试 一、Dockerfile 自定义项目镜像 1.1、创建 SpringBoot 项目并编写 a&#xff09;简…

Qt学习:Qt的意义安装Qt

Qt 的简介 QT 是一个跨平台的 C图形用户界面应用程序框架。它为程序开发者提供图形界面所需的所有功能。它是完全面向对象的&#xff0c;很容易扩展&#xff0c;并且允许真正地组件编程。 支持平台 xP 、 Vista、Win7、win8、win2008、win10Windows . Unix/Linux: Ubuntu 等…

RustDesk连接客户端提示key不匹配 Key Mismatch无法连接(已解决)

环境: RustDesk1.1.9 服务端docker部署 问题描述: RustDesk连接客户端提示key不匹配 Key Mismatch无法连接 解决方案: 1.docker部署RustDesk服务检查配置 networks:rustdesk-net:external: falsevolumes:hbbr:hbbs:services:hbbs:container_name: rustdesk-hbbsport…

大数据与人工智能|信息技术产业架构、行业发展与前沿技术(第2节)

内容链接&#xff1a;信息技术产业架构、行业发展与前沿技术&#xff08;大数据与人工智能系列课程 第2节&#xff09; 声明&#xff1a;学习使用&#xff0c;侵权必删&#xff01; 主要内容&#xff1a;1. 从算盘到量子计算机&#xff0c;介绍了半导体行业的发展历程和技术原…

K8S结合Prometheus构建监控系统

一、Prometheus简介 Prometheus 是一个开源的系统监控和警报工具&#xff0c;用于收集、存储和查询时间序列数据。它专注于监控应用程序和基础设施的性能和状态&#xff0c;并提供丰富的查询语言和灵活的告警机制1、Prometheus基本介绍 数据模型&#xff1a;Prometheus 使用时…

解密负载均衡:如何平衡系统负载(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

git 学习 之一个规范的 commit 如何写

最好的话做一件完整的事情就提交一次

磁盘相关知识

一、硬盘数据结构 1.扇区&#xff1a; 盘片被分为多个扇形区域&#xff0c;每个扇区存放512字节的数据&#xff08;扇区越多容量越大&#xff09; 存放数据的最小单位 512字节 &#xff08;硬盘最小的存储单位是扇区&#xff0c;512 个字节&#xff0c;八个扇区组成一块&…

python学习14

前言&#xff1a;相信看到这篇文章的小伙伴都或多或少有一些编程基础&#xff0c;懂得一些linux的基本命令了吧&#xff0c;本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python&#xff1a;一种编程语言&…

小米路由器2(R2D) 安装 MIXBOX

1. 先刷开发版 ROM http://www1.miwifi.com/miwifi_download.html 进入上述网页&#xff0c;找到 R2D 点击下载 开发版 ROM 教程 看 下载按钮上边的 “刷机教程” 刷机教程 2. 开启SSH工具 登录自己的小米账号后&#xff0c;里面会显示出 自己的 root密码&#xff1b; 默认…

视频美颜SDK趋势畅想:未来发展方向与应用场景

当下&#xff0c;视频美颜SDK正不断演进&#xff0c;本文将深入探讨视频美颜SDK的发展趋势&#xff0c;探讨未来可能的方向和广泛的应用场景。 1.深度学习与视频美颜的融合 未来&#xff0c;我们可以期待看到更多基于深度学习算法的视频美颜SDK&#xff0c;为用户提供更高质量…

【没有哪个港口是永远的停留~论文简读】Panoptic SegFormer

Panoptic SegFormer 原文&#xff1a;https://arxiv.org/pdf/2109.03814.pdf 代码&#xff1a;GitHub - zhiqi-li/Panoptic-SegFormer: This is the official repo of Panoptic SegFormer [CVPR22] 在全景分割中&#xff0c;图像内容可分为things和stuff两类。 things是可计…