当前位置:   article > 正文

单层神经网络-线性回归_线性回归在神经网络的哪一层

线性回归在神经网络的哪一层

单层神经网络-线性回归

大家有兴趣可以关注我的个人博客,可以相互添加友链,哈哈。
TiManchi

神经网络简介

神经网络是模仿人类大脑结构所构建的算法,在人脑里,我们有轴突连接神经元,在算法中,我们用圆表示神经元,用线表示神经元之间的连接,数据从神经网络的左侧输入,让神经元处理之后,从右侧输出结果。

在这里插入图片描述

在这里插入图片描述

回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。这种技术通常用于预测分析,时间序列模型以及发现变量之间的因果关系。线性回归是回归问题中的一种,线性回归假设目标值与特征之间线性相关,即满足一个多元一次方程。通过构建损失函数,来求解损失函数最小时的参数w和b。通常我们可以表达成如下公式:

y ^ = x 1 w 1 + x 2 w 2 + . . . + b \hat{y}=x_{1}w_{1}+x_{2}w_{2} + ... + b y^=x1w1+x2w2+...+b

y-hat表示预测值,w为权重,b为偏差,x为特征值

pytorch实现单层神经网络的正向传播

数据

x1x2
00
10
01
11
import torch
X = torch.tensor([[0,0],[1,0],[0,1],[1,1]], dtype = torch.float32)
output = torch.nn.Linear(2,1)
z = output(X)

  • 1
  • 2
  • 3
  • 4
  • 5
  • nn.Linear是一个类,在这里代表了输出层
  • 实例化的时候,nn.Linear需要输入两个参数,分别是(上一层的神经元个数,这一层的神经元个 数)。上一层是输入层,因此神经元个数由特征的个数决定(2个)。这一层是输出层,作为回归 神经网络,输出层只有一个神经元。因此nn.Linear中输入的是(2,1)。
  • 我只定义了X,没有定义w和b。所有nn.Module的子类,形如nn.XXX的层,都会在实例化的同时随机生成w和b的初始值。所以实例化之后,我们就可以调用以下属性来查看生成的w和b:
output.weight
output.bias
  • 1
  • 2
  • 由于w和b是随机生成的,所以同样的代码多次运行后的结果是不一致的。如果我们希望控制随机 性,则可以使用torch中的random类。如下所示
torch.random.manual_seed(420) #人为设置随机数种子
output = torch.nn.Linear(2,1)
z = output(X)
z
  • 1
  • 2
  • 3
  • 4
ual_seed(420) #人为设置随机数种子
output = torch.nn.Linear(2,1)
z = output(X)
z
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/123452
推荐阅读
相关标签
  

闽ICP备14008679号