当前位置: 首页 > news >正文

从0开始深度学习(4)——线性回归概念

1 线性回归

回归(regression)指能为一个或多个自变量与因变量之间的关系进行建模。

1.1 线性模型

线性假设是指目标可以表示为特征的加权和,以房价和面积、房龄为例,可以有下面的式子:
在这里插入图片描述
w称为权重(weight)
b称为偏置(bias)、偏移量(offset)或截距(intercept)
给定一个数据集,我们的目标是寻找模型的权重和偏置, 使得根据模型做出的预测大体符合数据里的真实价格。

1.2 损失函数

在我们开始考虑如何用模型拟合(fit)数据之前,我们需要确定一个拟合程度的度量。损失函数(loss function)能够量化目标的实际值与预测值之间的差距。 通常我们会选择非负数作为损失,且数值越小表示损失越小,完美预测时的损失为0。

常用的损失函数:

  • 均方误差(Mean Squared Error, MSE):主要用于回归问题。
  • 交叉熵损失(Cross-Entropy Loss):常用于分类问题。
  • 绝对误差(Mean Absolute Error, MAE):用于回归问题。
  • 铰链损失(Hinge Loss):主要用于最大间隔分类器如支持向量机(SVM)。
  • 指数损失(Exponential Loss):用于分类问题。
  • Huber 损失(Huber Loss):结合了 MSE 和 MAE 的优点,在误差较小时类似于 MSE,误差较大时类似于 MAE。
  • Kullback-Leibler 散度(KL Divergence):用于衡量两个概率分布之间的差异

1.3解析解

解析解(Analytical Solution) 是指通过数学公式直接计算得到的最佳拟合参数的方法,而不是通过迭代优化算法来逐步逼近最优解。

1.4 随机梯度下降

在我们无法得到解析解的情况下,我们用到一种名为梯度下降(gradient descent) 的方法, 这种方法几乎可以优化所有深度学习模型, 它通过不断地在损失函数递减的方向上更新参数来降低误差。

简单的用法是计算损失函数关于模型参数的导数,但实际中的执行可能会非常慢,因此,我们通常会在每次需要计算更新的时候随机抽取一小批样本, 这种变体叫做小批量随机梯度下降(minibatch stochastic gradient descent)

在每次迭代中,我们首先随机抽样一个小批量B (batch size) , 它是由固定数量的训练样本组成的。,然后,我们计算小批量的平均损失关于模型参数的导数(也可以称为梯度)。 最后,我们将梯度乘以一个预先确定的正数n (learning rate),并从当前参数的值中减掉。

算法的步骤如下:
(1)初始化模型参数的值,如随机初始化;
(2)从数据集中随机抽取小批量样本且在负梯度的方向上更新参数,并不断迭代这一步骤。

事实上,更难做到的是找到一组参数,这组参数能够在我们从未见过的数据上实现较低的损失, 这一挑战被称为泛化(generalization)。

4.5 用模型进行预测

2 矢量化加速

矢量化(Vectorization)是一种编程技术,通过将操作应用于整个数组或矩阵,而不是单独的元素,从而提高代码的执行效率。

在训练我们的模型时,我们经常希望能够同时处理整个小批量的样本。 为了实现这一点,需要我们对计算进行矢量化, 从而利用线性代数库,而不是在Python中编写开销高昂的for循环。

例如使用Numpy模块对计算两个数组的点积

3 正态分布与平方损失

4 从线性回归到深度网络

http://www.lryc.cn/news/433022.html

相关文章:

  • C语言中的预处理指令中的其中一对——#ifdef和#ifndef
  • 交换机自动化备份配置(H3C_无人值守)
  • 缓存预热有哪些方案?
  • 「iOS学习」——Masonry学习
  • 828华为云征文|华为云Flexus云服务器X实例之openEuler系统下部署GitLab服务器
  • 51单片机的无线病床呼叫系统【proteus仿真+程序+报告+原理图+演示视频】
  • 计算机毕业设计 | SpringBoot+vue 游戏商城 steam网站管理系统(附源码)
  • 【CH395的简单示例代码】
  • AI模型:追求全能还是专精?
  • ffmpeg音视频开发从入门到精通——ffmpeg 视频数据抽取
  • Node.js之文件夹的操作
  • 线程的四种操作
  • 自我指导:提升语言模型自我生成指令的能力
  • 使用Node.js实现单文件上传功能—含代码解释
  • 【机器人工具箱Robotics Toolbox开发笔记(一)】Matlab机器人工具箱简介
  • 基于 Metropolis 的朗之万算法
  • SAM2POINT:以zero-shot且快速的方式将任何 3D 视频分割为视频
  • 深入理解FastAPI的response_model:自动化数据验证与文档生成
  • 【数据结构与算法 | 灵神题单 | 删除链表篇】力扣3217, 82, 237
  • 快速失败 (fail-fast) 和安全失败 (fail-safe)
  • 【MySQL】MySQL中表的增删改查——(基础篇)(超详解)
  • 【B题第二套完整论文已出】2024数模国赛B题第二套完整论文+可运行代码参考(无偿分享)
  • 大数据之Flink(四)
  • 《Web性能权威指南》-网络技术概览-读书笔记
  • 最新版php进销存系统源码 ERP进销存专业化管理 永久免费升级更新+完整图文搭建教程
  • 【高效办公】三、两台电脑共享鼠标、键盘和文件,两台电脑当一个用的神操作!barrier
  • 智能合约系统DAPP开发
  • 宠物狗检测-目标检测数据集(包括VOC格式、YOLO格式)
  • 2.5多任务示例编程2
  • JavaWeb - 4 - Vue Ajax