深度学习的一般性流程2-------PyTorch选择损失函数

深度学习的一般性流程:

1. 构建网络模型结构

2. 选择损失函数

3. 选择优化器进行训练

 

【背景----百度百科给出的基本概念】
最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。

监督学习中,如果预测的变量是离散的,我们称其为分类(如决策树,支持向量机等),如果预测的变量是连续的,我们称其为回归

一元线性模型:回归分析中,如果只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析

 

监督学习从数据中学习一个分类模型或者分类决策函数,它被称为分类器(classifier)。

分类器对新的输入进行输入预测,这个过程称为分类(classification)


【解决方案】

一元线性回归分析使用均方误差(对应了欧几里得距离,有着很好的几何意义)进行模型求解的办法也称为“最小二乘法”,多元线性回归分析使用梯度下降法求解最小二乘问题

torch.nn.MSELoss()   #均方误差loss
import numpy as np
import torch.nn.functional as F
import torch
A = np.array([[1,2],[3,4]])
B = np.array([[1,4],[2,4]])

cost_np = np.sum((A-B)**2)
print(cost_np)

AT = torch.FloatTensor(A)
BT = torch.FloatTensor(B)

cost_torch = F.mse_loss(AT,BT,reduction='sum')
print(cost_torch)

 

参数reduction 为none则将把所有误差输出,mean求所有误差的均值,sum求所有误差的和

二分类问题使用交叉熵进行模型求解

torch.nn.CrossEntropyLoss() #交叉熵的loss
input =  torch.ones(4,6, requires_grad = True)
print(input)
target = torch.tensor([1,2,3,4])

#--------------交叉熵求法1------------
temp = F.log_softmax(input)
output = F.nll_loss(temp,target)
print(output)
#--------------交叉熵求法2------------
output2 = F.cross_entropy(input,target)
print(output2)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值