pytorch感知机

1、损失函数LOSS

损失函数(Loss Function)在机器学习和深度学习中是一个核心概念,它用于度量模型的预测值与真实值之间的差距。换句话说,损失函数衡量了模型的误差或损失,通常表示为L(y, f(x)),其中y是真实值,f(x)是模型的预测值。损失函数的目标是最小化误差或损失,使模型能够更好地拟合数据。

在训练过程中,模型通过调整参数来减小损失函数的值,从而提高性能。不同的任务和问题需要不同的损失函数,因此了解如何选择和定制损失函数至关重要。

常见的损失函数类型包括均方误差损失(Mean Squared Error,MSE)、交叉熵损失(Cross-Entropy Loss)、对数损失(Logarithmic Loss,Log Loss)、感知损失(Perceptron Loss)和汉明损失(Hamming Loss)等。

(1)MSE

优点:MSE的函数曲线光滑、连续,处处可导,便于使用梯度下降算法,是一种常用的损失函数。 而且,随着误差的减小,梯度也在减小,这有利于收敛,即使使用固定的学习速率,也能较快的收敛到最小值。
缺点:当真实值y和预测值f(x)的差值大于1时,会放大误差;而当差值小于1时,则会缩小误差,这是平方运算决定的。MSE对于较大的误差(>1)给予较大的惩罚,较小的误差(<1)给予较小的惩罚。也就是说,对离群点比较敏感,受其影响较大。
 

2、感知机

(1)单层感知机

左侧为输入层,对于所有元素,上标0代表为输入层,下标1~N表示有(N-1)个元素。左面由输入层到加和符号,再到σ为一个连接层。加和符号代表了一个节点。Wij中,i代表了上一层的节点编号,j代表了这一层的节点编号。其中加和符号上的x代表了第一层上的0号单层输出感知机,经过激活函数后,得到了第1层的第0号输出值。

后面的E代表了error,将输出值与error进行了对比。

#感知机梯度推导
import torch
from torch.nn import functional as F


#MSE 均方误差-loss函数


#单层感知机
x = torch.randn(1,10)
print(x)
w = torch.randn(1,10,requires_grad=True)
print(w)
    #激活函数使用SIGMOD
o = torch.sigmoid(x@w.t())#o为输出,。t表示矩阵转置
print(o)
    #计算损失函数LOSS,使用MSE
loss = F.mse_loss(torch.ones(1,1),o)
print(loss)
loss.backward()
w.grad
print(w.grad)

输出:

tensor([[ 1.4464e-05, -3.3433e-05, -9.8845e-05,  7.8284e-05, -2.7778e-05,
          1.0374e-05, -9.1783e-06,  1.6131e-05,  4.5356e-05, -1.2137e-05]]) 

(2)多层感知机

3、反向传播MLP(全连接网络/感知机)

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值