Pytorch 第三回:二分类逻辑回归模型(上)

Pytorch 第三回:二分类逻辑回归模型(上)

开启深度学习第三回,基于Pytorch的二分类逻辑回归模型。Logistic回归模型虽然名字中带有回归,但是在分类的情况中更为常用。当然,其形式上与多项式回归模型也很相似,也是基于y=ax+b的模型进行训练,变量x也可以是多维的形式。区别是Logistic回归模型会对函数结果y进行逻辑处理,或者说将结果输入给一个sigmoid函数,从而得到一个概率结果。


理论概述

1.sigmoid 函数

其公式如下:
在这里插入图片描述
其图形如下图所示,根据图像可以清晰看出,sigmoid函数值分布再0到1之间,输入一个越大的数值,其结果越接近1,输入一个越小的数值,其值约接近0,因此可以将模型转换为一个处理二分类的模型。当然,用sigmoid模型进行分类也有个前提,那就是给定数据是线性可分的,不能是混乱不可分的。
在这里插入图片描述

2.前向传播VS反向传播

再接下来的程序当中,需要用到前向传播和反向传播,在这里给大家简答说明以下。

1)前向传播:

前向传播是指神经网络从输入层接收数据开始,通过逐层计算和传递,最终到达输出层的过程。用之前线性回归模型和多项式回归模型用到的方式来说,相当是计算出模型f(x)、更新模型参数(a,b)、计算出当前的函数值y的过程。

2)反向传播:

反向传播是根据损失函数计算梯度,并据此更新网络的权重和偏置,以优化模型性能的过程。回到线性回归模型和多项式回归模型来说,就是做差获得函数的误差,更新参数(a,b)的梯度,接着就是更新模型参数(a,b)。

3.模型优化器

再介绍一个名词,模型优化器。随着深度学习探索的深入,咱们接触的数据量将不断增大,手动更新参数将远远不能满足使用的需求。因此需要借助模型优化器来辅助深度学习的训练。简单来说,优化器是前人封装的好的函数,提供接口给大家使用,进而言之,高级的优化器可以自适应学习率、进行参数更新、增强训练稳定性、应对非凸优化挑战、加速收敛过程等等优点。

4.二分类逻辑回归损失函数

二分类逻辑回归损失函数,推导公式较为繁琐,本人就直接上结论了,若想深入研究,建议查找其他资料,公式如下:
在这里插入图片描述

其中,y是真实数值,y’为模型计算的数值。

到此,话不多说,直接上程序。先上程序引用

import torch
import numpy as np
import matplotlib.pyplot as plt
import torch.nn.functional as F
from torch import nn

一、数据准备

如之前一样,先准备训练的数据。先展示一下需要准备的数据。如下图所示:
在这里插入图片描述

如上图所示,我这里准备了100个数据点,分别呈现了红蓝两种颜色。咱们接下要做的就是将这红蓝数据点线性分开。
言归正传,由于此次数据量较多,一个个的将数据写出来不太友好,因此这次采用文件读取的方式获得数据,txt文本数据分享在我的资源中,大家可以去下载。读取数据代码如下:

with open('./point.txt', 'r') as f:
    # 读取数据
    point_list = [i.split('\n')[0].split(',') for i in f.readlines()]
    # 将数据以分为三组,分别是x值,y值,类别
    point_data = [(float(i[0]), float(i[1]), float(i[2])) for i in point_list]

获得完数据后,为方便数据分类,接着就是对数据进行归一化处理。代码如下:

x_max = max([i[0] for i in point_data])#找到数据最大值
x_min = min(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值