零基础一步一步pytorch实现Logistic regression逻辑回归编程教程

本文介绍了Logistic Regression的基础知识,包括其在神经网络中的作用和模型定义。通过PyTorch进行实践,讲解了如何使用自动求导工具进行梯度下降,以及手动求导并实现梯度下降的过程。同时提供了数据加载、模型输出计算和损失函数的求导方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么我们需要了解Logistic regression逻辑回归?

因为神经网络的一个神经元就是Logistic regression逻辑回归。

Logistic regression(LR)逻辑回归是什么?

它就是套一个概率分布模型上去。什么是模型?模型就是一个函数比如:f(x)=ax+b。至于逻辑回归套的那个概率分布模型是什么稍后再说,先说套概率分布模型上去有什么用?假如需要判断样本x是属于A类还是属于B类。在前面提到了模型就是一个函数,概率分布模型就是输入一个样本数据x,函数输出它属于A类的概率。逻辑回归只能分出两种类。x属于A类的概率大于0.5那就我们可以认为当前样本属于A类,如果概率小于0.5那就认为它属于B类。

那么逻辑回归套的是什么函数呢?答: f ( x ) = 1 1 + e − w T x f(x) = \frac{1}{1+e^{-w^Tx}} f(x)=1+ewTx1。其中 w w w是待求解的参数,不同的数据是不一样的。那我们怎么根据当前已有的数据调整得到最优的参数 w w w?答:用梯度下降。
如果你对梯度下降不理解可以参考这两篇文章:
易懂的神经网络理论到实践(1):单个神经元+随机梯度下降学习逻辑与规则
{高中生能看懂的}梯度下降是个啥?

pytorch编程实践

本文的实践会先介绍使用的数据是什么。然后介绍如何检验自己程序是否正确。然后介绍如何用pytorch的反向传播求导(求导结果是否正确可以我们自己手动计算下来检验),并用这个导数实现梯度下降。然后介绍如何我们自己求导实现梯度下降(我们自己写的导数是否计算正确检验方法1是可以用前面反向传播求导结果检验2是我们自己手动计算看程序运行结果是否正确)。

使用pytorch自带的自动求导工具求导,然后实现梯度下降

大家一定要注意机器学习必备下面那几个步骤。写程序一定要对这些步骤烂熟于心。

  1. 加载数据
  2. 输入样本计算模型的输出
  3. 计算损失函数对参数w的导数(梯度)
  4. 梯度下降调节参数w
  5. 重复2-4

1.加载数据

首先我们需要加载数据,这次我们想实现的是让逻辑回归识别逻辑异或(两个数字相同那就是0,两个数字不同那就是1)。
所以数据(前面两个数字)与标签(最后那个数字)是:

1 1 0
1 0 1
0 1 0
0 0 1

现在我们用代码实现加载数据

# -*- coding:utf-8 -*-
import torch
import numpy as np
'''
用逻辑回归实现异或功能
'''
# 加载数据
data = torch.tensor([[1,1],[1,0],[0,1],[0,0]],dtype=torch.float)
label = torch.tensor([
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值