pytorch学习——线性神经网络——1线性回归

概要:线性神经网络是一种最简单的神经网络模型,它由若干个线性变换和非线性变换组成。线性变换通常表示为矩阵乘法,非线性变换通常是一个逐元素的非线性函数。线性神经网络通常用于解决回归和分类问题。

一.线性回归

线性回归是一种常见的机器学习算法,用于建立一个输入变量与输出变量之间的线性关系模型。在这种模型中,假设输入变量与输出变量之间存在一个线性关系,即输出变量可以通过输入变量的线性组合来预测。线性回归模型会尝试找到一条最佳拟合直线,使得该直线能够最好地拟合输入变量和输出变量之间的关系。

1.1线性模型

1.2损失函数

损失函数(loss function)是用于衡量模型预测结果与真实结果之间差异的函数,通常我们会选择非负数作为损失,且数值越小表示损失越小,完美预测时的损失为0。

在训练过程中,模型的目标是尽可能减小损失函数的值,以达到更准确地预测结果的目的。损失函数的选择对模型的训练和性能具有重要影响。通常将数据集分为训练集和测试集,模型在训练集上进行训练,通过优化损失函数来调整模型的参数。训练完成后,使用测试集来评估模型的性能。

1.2.1常见损失函数

  1. 均方误差(Mean Squared Error,MSE):计算预测值与真实值的平方差的平均值,适用于回归问题。

  2. 交叉熵(Cross Entropy):用于分类问题,计算预测值和真实值之间的差异,通常用于多分类问题。

  3. 对数损失(Log Loss):也用于分类问题,通常用于二分类问题,计算预测值和真实值之间的差异。

  4. Hinge loss:用于支持向量机(Support Vector Machine,SVM)的训练中,计算预测值和真实值之间的差异。

  5. KL 散度(Kullback-Leibler Divergence,KL Divergence):用于比较两个概率分布的差异,通常用于生成模型的训练中。

1.2.2损失函数的选择

具体选择哪种损失函数取决于具体问题的性质和需求。在选择损失函数时,应该考虑损失函数的数学性质、对模型训练的影响、对模型性能的影响等方面的因素。

二.实例------以买房为例

2.1房价模型

其中5498000是预估价格,并非成交价格,房价与多因素相关,房价是一个预测问题

上图中曲线是系统的估价,最好的情况是买入价格比预估价格低,通过此例子引出现线性回归

线性模型关键因素:权重,偏差

个人理解:权重是指各个因素对房子价格的影响程度,加权和是指根据不同的权重对一个序列中的元素进行加权求和的过程。在房价中,加权和是指所有影响因素都考虑情况下,制定的房子价格,偏差是指房价的预测价格和真实价格之间的差异。

线性模型可以看做是单层神经网络

输入层:d个输入元素,输入维度是d,输出维度是1

每个箭头代表了一个权重,这里没有画偏差

此神经网络有输入层和输出层,但之所以叫单层神经网络,是因为带权重的层只有一层------输入层

可以不把输出层当成一个层,因为权重和输入层放在一起

2.2房价预测

有了房价模型,就做预测

衡量预估质量:衡量我们模型预估的准确度,区别越小,模型质量越高,区别越大,模型质量越低

平方损失:我们没有完全猜中真实值所带来的损失(例如经济损失)

有了模型和损失,我们来学习参数

假设每个样本x都是一个列向量,y也是一个列向量,每个yi是一个实验数值

x:特征集合 y:预测值

有了模型,损失,参数,现在来求解我们的模型

根据我们之前的损失,给定数据,然后来评估模型在每一个数据上的损失平均值,就会得到一个损失训练函数

目标:找到一个w和b使得训练损失最小------最小化损失来学习参数

因为是线性模型,所以有显示解(一般线性模型都有)

解释:特征集合X后面加一列全1的特征,然后把偏差放到权重w的最后一行,这样Xw后=Xw前+偏差b

总结:

相关推荐
职业考试资料墙2 分钟前
水利水电安全员考试题库及答案
学习·考试·题库
MUTA️3 分钟前
RT-DETR学习笔记(2)
人工智能·笔记·深度学习·学习·机器学习·计算机视觉
炭烤玛卡巴卡29 分钟前
初学elasticsearch
大数据·学习·elasticsearch·搜索引擎
oneouto1 小时前
selenium学习笔记(一)
笔记·学习·selenium
张铁铁是个小胖子1 小时前
MyBatis学习
java·学习·mybatis
我曾经是个程序员1 小时前
鸿蒙学习记录之http网络请求
服务器·学习·http
m0_748232391 小时前
WebRTC学习二:WebRTC音视频数据采集
学习·音视频·webrtc
虾球xz3 小时前
游戏引擎学习第55天
学习·游戏引擎
oneouto3 小时前
selenium学习笔记(二)
笔记·学习·selenium
sealaugh323 小时前
aws(学习笔记第十九课) 使用ECS和Fargate进行容器开发
笔记·学习·aws