Pytorch(三)logistics 回归

一.逻辑回归简述
  • 逻辑回归的模型:
    逻辑回归实质上是线性回归,把特征线性求和(一阶)之后再使用Sigmoid函数将结果映射到[0,1]区间,得到分类结果为1的概率大小。具体表达式如下:

h(w,x) =1/(1+exp(-(w*x+b)))

其中x为特征向量,可以表示为[x1,x2,…,xN],的取值范围为[0,1]表示分类结果为1的概率大小。通过公式可以看出,逻辑回归可以理解为单层的全连接网络加上sigmoid激活函数的神经网络结构,具体如下:
在这里插入图片描述

其中f(x)为sigmoid函数,函数图像为:

在这里插入图片描述
https://cloud.tencent.com/developer/news/91332
为什么要使用logistic函数:.
1、输入范围是−∞→+∞ ,而之于刚好为(0,1),正好满足概率分布为(0,1)的要求。我们用概率去描述分类器,自然比单纯的某个阈值要方便很多;
2.他是一个单调上升的函数,具有良好的连续性,不存在不连续点。

  • 损失函数:
    cost ⁡ ( h θ ( x ) , y ) = − y i log ⁡ ( h θ ( x ) ) − ( 1 − y i ) log ⁡ ( 1 − h θ ( x ) ) \operatorname{cost}\left(h_{\theta}(x), y\right)=-y_{i} \log \left(h_{\theta}(x)\right)-\left(1-y_{i}\right) \log \left(1-h_{\theta}(x)\right) cost(hθ(x),y)=yilog(hθ(x))(1yi)log(1hθ(x))
    推导:https://blog.csdn.net/bitcarmanlee/article/details/51165444
二、网络搭建

使用PyTorch定义线性回归模型一般分以下几步:
1.设计网络架构
2.构建损失函数(loss)和优化器(optimizer)
3.训练(包括前馈(forward)、反向传播(backward)、更新模型参数(update))

  • 优化器
    优化器基本使用方法:
    建立优化器实例
    循环:
    清空梯度
    向前传播
    计算Loss
    反向传播
    更新参数
from torch import optim
 
# 通常的step优化过程
optimizer = optim.SGD(params=net.parameters(), lr=1)
optimizer.zero_grad()  # net.zero_grad()
 
input_ = t.autograd.Variable(t.randn(1, 3, 32, 32))
output = net(input_)
output.backward(output)
 
optimizer.step()

完整代码:https://github.com/viki6666/Pytorch_learn/blob/master/logistic.ipynb

笔记:

一、理论
https://blog.csdn.net/bitcarmanlee/article/details/51165444
https://blog.csdn.net/qq_41641805/article/details/81514851
方法=模型+策略+算法
模型=logistic回归
策略=损失函数
算法=求解损失函数的方法(梯度下降)

二、程序解读:

  • class MyNet(torch.nn.Module),torch.nn.Module:继承torch.nn.Module类的意思。
    Module类来自定义模型:https://blog.csdn.net/qq_27825451/article/details/90550890
    我们在定义自已的网络的时候,需要继承nn.Module类,并重新实现构造函数__init__构造函数和forward这两个方法。但有一些注意技巧:

(1)一般把网络中具有可学习参数的层(如全连接层、卷积层等)放在构造函数__init__()中;
(2)不具有可学习参数的层(如ReLU、dropout、BatchNormanation层)可放在构造函数__init__()中,也可不放在构造函数中,如果不放在构造函数__init__里面,则在forward方法里面可以使用nn.functional来代替。
(3)forward方法是必须要重写的,它是实现模型的功能,实现各个层之间的连接关系的核心。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值