LR逻辑回归于MLP多层感知机的区别与联系。

本文探讨了逻辑回归(LR)与多层感知器(MLP)的区别。LR是线性模型,参数数量与特征个数直接相关,而MLP作为非线性模型,能拟合更复杂的函数,参数个数通常较多。当MLP只有一层且只有一个神经元时,它就等同于LR。

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

1、LR是MLP的一种特殊情况,即:MLP只有一层,且只有一个神经元,则是LP。

2、LR是线性模型,MLP是非线性模型。MLP拟合的更加复杂。

3、LR逻辑回归的参数数量和特征的个数是一样的,或者是特征个数加一; 而MLP的参数个数,一般情况下比较多,单层的MLP是参数个数是m*n的。

 

 

### 使用 PyTorch 实现 MLP 进行回归任务 为了使用 PyTorch 构建一个多层感知器(MLP)来执行回归任务,可以遵循以下结构化的方法。此方法不仅涵盖了模型定义,还包括了训练过程中的重要细节。 #### 定义多层感知机模型 构建一个简单的三层全连接神经网络作为回归模型: ```python import torch.nn as nn class RegressionMLP(nn.Module): def __init__(self, input_dim, hidden_dims, output_dim): super(RegressionMLP, self).__init__() layers = [] current_dim = input_dim for hdim in hidden_dims: layers.append(nn.Linear(current_dim, hdim)) layers.append(nn.ReLU()) current_dim = hdim layers.append(nn.Linear(current_dim, output_dim)) # 输出层不加激活函数 self.model = nn.Sequential(*layers) def forward(self, x): return self.model(x) ``` 这段代码创建了一个具有指定输入维度 `input_dim` 隐藏层尺寸列表 `hidden_dims` 的 MLP 模型[^1]。 #### 设置超参数并准备数据集 在实际应用前,需设定批量大小、迭代次数等超参数,并准备好用于训练的数据集 X_train 及其标签 y_train: ```python batch_size = 64 num_epochs = 100 learning_rate = 0.001 ``` 对于给定的批次数量 batch,可以通过如下方式获取每一批次的数据索引范围[start:end]: ```python for i in range(len(X_train) // batch_size): start = i * batch_size end = start + batch_size ``` 这部分逻辑确保每次只处理一部分数据而不是整个数据集,从而提高效率内存利用率[^2]。 #### 训练循环 接下来,在主训练循环内完成正向传播、损失计算以及反向传播更新权重的过程: ```python criterion = nn.MSELoss() # 均方误差损失适合于回归问题 optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate) for epoch in range(num_epochs): running_loss = 0 for i in range(len(X_train) // batch_size): inputs = X_train[i*batch_size:(i+1)*batch_size] targets = y_train[i*batch_size:(i+1)*batch_size] outputs = model(inputs.float()) loss = criterion(outputs.squeeze(-1), targets.float()) optimizer.zero_grad() loss.backward() optimizer.step() running_loss += loss.item() print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {running_loss/(len(X_train)/batch_size)}') ``` 上述代码展示了完整的训练流程,其中包含了对每一 mini-batch 数据的操作,包括前向传递、计算均方差(MSE)损失、清零梯度缓冲区、执行反向传播算法并通过优化器调整参数值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值