【深度学习】P1 单层神经网络 - 线性回归(待完成)

单层神经网络 - 线性回归

  • 线性回归基本要素
    • 1. 模型
    • 2. 模型训练
    • 3. 训练数据
    • 4. 损失函数
    • 5. 优化算法
    • 6. 模型预测
  • 线性回归与神经网络
    • 1. 神经网络图

以一个简单的房屋价格预测为例,介绍解释线性回归这一单层神经网络。无需纠结于什么是单层神经网络,在本文的下半段将引入。首先我们假设影响房价只有两个因素,其一是面积,其二是房龄。

线性回归基本要素

1. 模型

设房屋面积为 x 1 x_1 x1,房龄为 x 2 x_2 x2,售出价格为 y y y
我们建立基于驶入 x 1 x_1 x1 x 2 x_2 x2 来计算输出 y y y 的表达式,即模型(model):
y ^ = w 1 x 1 + w 2 x 2 + b \hat y = w_1x_1+w_2x_2+b y^=w1x1+w2x2+b

其中 w 1 w_1 w1 w 2 w_2 w2 称为权重, b b b 称为偏差;其三为线性回归模型的参数。模型的输出 y ^ \hat y y^,是线性回归对真实价格 y y y 的预测或估计。实际上,预测值 y ^ \hat y y^ 与实际价格 y y y 存在误差。


2. 模型训练

所谓模型训练(model training),就是通过数据来寻找模型的参数值,即上述模型中的 w 1 w_1 w1 w 2 w_2 w2 b b b,目标是使模型在数据上的误差尽可能小。这个过程,称为模型训练。


3. 训练数据

为训练上述模型,我们需要一些房屋的售卖真实数据。房屋的售价,与其对应的面积和房龄。在机器学习的术语中,这些数据构成的数据集,称为训练数据集,简称训练集(training set)。

房屋面积(特征)房屋房龄(特征)房屋价格(标签)
1002¥100,000,000
1200¥125,000,000

每个房屋的售卖数据称为一个样本(sample),真实的售出价格 y y y 则称为标签(label),两个属性(房屋面积、房龄)称为特征(feature),特征用来表征样本的特点。


4. 损失函数

衡量模型优劣的标准为损失最小。而所谓损失,即预测值 y ^ \hat y y^ 与真实值 y y y 之间的误差。一般,我们使用的是误差是平方函数,表达式为:
l ( i ) ( w 1 , w 2 , b ) = 1 2 ( y ^ ( i ) − y ( i ) ) 2 l^{(i)}(w_1,w_2,b)=\frac 1 2 (\hat y^{(i)}-y^{(i)})^2 l(i)(w1,w2,b)=21(y^(i)y(i))2

其中 l l l l o s s loss loss l ( i ) l^{(i)} l(i) 可以理解为第 i i i 个样本的损失值。所以所有样本损失值为:

l ( w 1 , w 2 , b ) = 1 n ∑ i = 1 n l ( i ) ( w 1 , w 2 , b ) = 1 n ∑ i = 1 n 1 2 ( w 1 x 1 ( i ) + w 2 x 2 ( i ) + b − y ( i ) ) 2 l(w_1,w_2,b)=\frac 1 n \sum _{i=1} ^n l^{(i)}(w_1,w_2,b)=\frac 1 n \sum ^n _{i=1} \frac 1 2 (w_1x_1^{(i)}+w_2x_2^{(i)}+b-y^{(i)})^2 l(w1,w2,b)=n1i=1nl(i)(w1,w2,b)=n1i=1n21(w1x1(i)+w2x2(i)+by(i))2


5. 优化算法

当模型和损失函数形式较为简单时,误差最小化问题的解可以直接用公式表达出。这类解叫做解析解。
然而,大多数深度学习模型并没有解析解,只能通过优化算法有限次迭代模型参数来尽可能降低损失函数的值,这类解称为数值解。
在求解数值解的优化算法中,小批量随机梯度下降在深度学习中广泛应用。通过对参数的多次迭代,每次目标都是降低损失函数的值。
在每次迭代中,先随机均匀采样一个由固定数目训练数据样本所组成的小批量 β β β,然后求小批量中数据样本的平均损失有关模型参数的导数(梯度),最后用此结果与预先设定的一个正数(往往小于1,一般取值0.01,称为学习率,表示为 η η η )的乘积作为本次迭代的减小量。

w 1 = w 1 − η ∣ β ∣ ∑ i ∈ β δ l ( i ) ( w 1 , w 2 , b ) δ w 1 w_1 = w_1-\frac η {|β|} \sum _{i∈β} \frac {δl^{(i)}(w_1,w_2,b)} {δw_1} w1=w1βηiβδw1δl(i)(w1,w2,b)

w 2 = w 2 − η ∣ β ∣ ∑ i ∈ β δ l ( i ) ( w 1 , w 2 , b ) δ w 2 w_2 = w_2-\frac η {|β|} \sum _{i∈β} \frac {δl^{(i)}(w_1,w_2,b)} {δw_2} w2=w2βηiβδw2δl(i)(w1,w2,b)

b = b − η ∣ β ∣ ∑ i ∈ β δ l ( i ) ( w 1 , w 2 , b ) δ b b = b-\frac η {|β|} \sum _{i∈β} \frac {δl^{(i)}(w_1,w_2,b)} {δb} b=bβηiβδbδl(i)(w1,w2,b)

其中 ∣ β ∣ |β| β 为每个小批量中样本的个数, η η η 为学习率。


6. 模型预测

在完成 5. 优化算法 后,我们将模型参数 w 1 , w 2 , b w_1, w_2, b w1,w2,b 在优化后的值分别记为 w 1 ^ , w 2 ^ , b ^ \hat {w_1}, \hat {w_2}, \hat b w1^,w2^,b^
但是事实上,这只是对最优解的一种近似。就像我们攀登一座山一样,我们希望走的最优路线,但是往往我们只是最优路线的近似。
我们使用优化后的参数值,使用线性回归模型来估算一个房屋的价格,称为模型的预测。也称模型的推断。


线性回归与神经网络

1. 神经网络图

深度学习中,我们使用神经网络图直观地表现模型结构。

在这里插入图片描述

输入分别为 x 1 x_1 x1 x 2 x_2 x2

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

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

相关文章

Hadoop_02

hadoop相比于传统文件系统的优点: 1.无限扩展 2.传统文件元数据分布在不同的机器上难以寻找,通过将元数据统一存放在一个服务器上解决 3.传统文件太大导致上传下载慢,通过分块并行上传到服务器解决 4.副本机制数据不容易丢失,解决…

python代码笔记230910

1.解释错误:TypeError: only integer scalar arrays can be converted to a scalar index 抱歉给出的解释有误。要返回列表中最小值的索引,可以使用index()方法。然而,当你尝试在列表中包含多个相同最小值时,index()方法可能会引…

JavaScript里面的二进制

概述 最近在做IOT设备配网开发的时候,处理了很多跟二进制、字节相关的事情,总结了一下JavaScript中有关二进制方面的一些知识点。 二进制和字节 首先,现代计算机是基于二进制的,从现代计算机电路来说,只有高电平/低电平…

Sql语句大全--查询

今天抽空整理下项目中的Sql语句* 项目中用到的Sql语句大全 Selcet 语句,有简有难 Selcet 语句,有简有难 基本的查询语句 select * from OLASCS.LLDC where CAPOLselect CATAX,CASU from OLASCS.LLDC where CAPOL IN (122345)SELECT EO,EANT, EAUS, sub…

TypeScript 中的 any、unknown、never 和 void

any any 表示 任意类型。 它是任意类型的父类,任意类型的值都可以赋予给 any 类型: // 编译不会报错 let anything: any 前端西瓜哥;let flag: boolean true; anything flag;anything { num: 2 };它可以表示任何类型,并使用它们的语法…

AIGC参数量节节攀升,对存储带来的挑战如何解决?

引言 近期,AIGC 相关产品如同雨后春笋一般不断涌现。但在技术层面,大家普遍的关注点更多集中在性能方面,却经常忽略了存储对推理和训练效率的影响,以及 AIGC 内容可能带来的合规风险。我们特邀腾讯云存储的产品负责人 崔剑老师和…

C++ QT qml 学习之 做个登录界面

最近在学习QT,也初探到qml 做ui 的灵活性与强大,于是手痒痒,做个demo 记录下学习成果 主要内容是如何自己编写一个按钮以及qml多窗口。 参考WX桌面版,做一个登录界面,这里面按钮是写的一个组合控件,有 按下,释放,以及正常 三种状态。 import QtQuick 2.0 import QtQ…

数据在内存中的存储——练习3

题目&#xff1a; 3.1 #include <stdio.h> int main() {char a -128;printf("%u\n",a);return 0; }3.2 #include <stdio.h> int main() {char a 128;printf("%u\n",a);return 0; }思路分析&#xff1a; 首先二者极其相似%u是无符号格式进行…

【Linux】—— 在Linux上进行读写文件操作

前言&#xff1a; 在之前&#xff0c;我已经对进程的相关知识进行了详细的介绍。本期开始&#xff0c;我们将要学习的是关于 “基础I/O”的知识&#xff01;&#xff01;&#xff01; 目录 &#xff08;一&#xff09;C文件接口 &#xff08;二&#xff09;系统文件I/O 1、接…

WebDAV之π-Disk派盘 + BubbleUPnP

BubbleUPnP是一款功能强大的Android播放器,支持UPnP/DLNA多屏互动。它可以将手机内容投屏到电视大屏上,与家人和朋友一起共享。此外,BubbleUPnP还提供了丰富的音乐和影视资源,您可以在线搜索并播放喜欢的内容。 以下是BubbleUPnP的一些主要特点: 1. 支持Chromecast和转码…

android java读写yaml文件

目录 申请读写权限&#xff1a; build.gradle中添加库引用&#xff1a; android java读写yaml文件 java修改yaml文件 YamlFile&#xff1a; 修改yaml文件方法2 Yaml&#xff1a; 删除值&#xff1a; 申请读写权限&#xff1a; <uses-permission android:name"and…

WebGL 绘制矩形

上一节绘制了圆点&#xff0c;调用的绘制方法如下&#xff1a;gl.drawArrays(gl.POINTS, 0, 1); 第一个参数明显是个枚举类型&#xff0c;肯定还有其他值&#xff0c;如下所示&#xff1a; POINTS 可视的点LINES 单独线段LINE_STRIP 线条LINE_LOOP 闭合线条TRIANGLES 单独三…

计算机网络篇之域名

计算机网络篇之域名 介绍 一个域名是一个由点分割的字符串序列&#xff0c;用于标识一组IP地址或互联网上的计算机&#xff0c;域名用于在因特网上标识和定位特定的网站或服务 组成 域名由两个主要部分组成&#xff1a;顶级域和二级域&#xff0c;顶级域是域名的最高级别&a…

Codeforces Round 895 (Div. 3) (A~G)

A. Two Vessels 题意&#xff1a;你有两个无限容量杯子A,B&#xff0c;分别装了a&#xff0c;b升的水&#xff0c;此外你还有一个容量为c的杯子C&#xff0c;你可以将一杯的水先倒入C中&#xff0c;再倒入另一个杯子&#xff0c;问你最少需要操作几次能使得A B杯的水量相同。 …

【题解】2596. 检查骑士巡视方案

题解&#xff1a; class Solution {int n,m;bool st[100][100];int flag;int dx[8]{-1,-2,-2,-1,1,2,2,1};int dy[8]{-2,-1,1,2,2,1,-1,-2}; public:bool checkValidGrid(vector<vector<int>>& grid) {m grid.size();n grid[0].size();dfs(grid,0,0,0);ret…

运行时链接

基本概念 运行时链接&#xff0c;是在程序运行时&#xff08;而非编译时或加载时&#xff09;将程序代码与其依赖的库代码进行链接的过程。动态链接在程序启动时或实际运行过程中通过API函数完成。这种方式的主要优点是它允许程序在运行时加载和卸载不同的库模块&#xff0c;从…

在Python中解决自定义类型比较的问题

1 问题原因 在Python编程中&#xff0c;当我们尝试对自定义类型进行比较时&#xff0c;可能会遇到这样的错误&#xff1a;TypeError: < not supported between instances of User and User 这个错误的原因是Python不知道如何对你的自定义类型进行比较。为了解决这个问题&a…

redisson常用api

redisson提供了很多对象类型的api&#xff0c;下面介绍下一些常用的对象api。 RBucket 可操作任何对象的api&#xff0c;前提是要确定好泛型&#xff0c;方法比较少。大小限制为512Mb。 RBucket<AnyObject> bucket redisson.getBucket("anyObject");bucket…

vue3中的吸顶导航交互实现 | VueUse插件

目的&#xff1a;浏览器上下滚动时&#xff0c;若距离顶部的滚动距离大于78px&#xff0c;吸顶导航显示&#xff0c;小于78px隐藏。使用vueuse插件中的useScroll方法​​​​​​​和动态类名控制进行实现 1. 安装 npm i vueuse/core 2. 获得滚动距离 项目中导入&#xff0…

@Resource 注入为null 的解决方法

Resource Resource可以用于注入对象 一般我们在编码中都会使用Resource来注入一个实例对象&#xff0c;但是特殊情况下可能会是null。 这个时候可以用SpringUtil.getBean()来手动获取 代码示例 private HbaseProperties hbaseProperties SpringUtil.getBean(HbasePropertie…