【深度学习|学习笔记】从机器学习范式看神经网络能解决什么?(二)

【深度学习|学习笔记】从机器学习范式看神经网络能解决什么?(二)

【深度学习|学习笔记】从机器学习范式看神经网络能解决什么?(二)



欢迎铁子们点赞、关注、收藏!
祝大家逢考必过!逢投必中!上岸上岸上岸!upupup

大多数高校硕博生毕业要求需要参加学术会议,发表EI或者SCI检索的学术论文会议论文。详细信息可扫描博文下方二维码 “学术会议小灵通”或参考学术信息专栏:https://blog.csdn.net/2401_89898861/article/details/148877490


前言

  • 下面这份“总览 + 代码示例”会把神经网络能解决的问题,放在机器学习的经典范式里系统讲清楚,并给出可直接改造的 PyTorch 小样例。你可以把它当作“问题→方法→实现”的速查表。

5. Python 代码小册(PyTorch 迷你范式)

  • 说明:以下示例都尽量精简,展示“问题→网络→损失→指标”的骨架,便于你替换数据集与超参。

5.2 图像分类:极简 CNN

import torch, torch.nn as nn, torch.nn.functional as F

class SmallCNN(nn.Module):
    def __init__(self, n_classes=10):
        super().__init__()
        self.conv = nn.Sequential(
            nn.Conv2d(1, 16, 3, padding=1), nn.ReLU(), nn.MaxPool2d(2),
            nn.Conv2d(16, 32, 3, padding=1), nn.ReLU(), nn.MaxPool2d(2)
        )
        self.fc = nn.Sequential(nn.Linear(32*7*7, 128), nn.ReLU(), nn.Linear(128, n_classes))
    def forward(self, x):
        x = self.conv(x)              # [B,32,7,7] for 28×28 输入
        x = x.flatten(1)
        return self.fc(x)

# pred = model(images); loss = F.cross_entropy(pred, labels)

5.3 时间序列单步/多步预测:LSTM 版

import torch, torch.nn as nn

class LSTMForecaster(nn.Module):
    def __init__(self, in_dim=1, hid=64, layers=1, horizon=1):
        super().__init__()
        self.rnn = nn.LSTM(input_size=in_dim, hidden_size=hid, num_layers=layers, batch_first=True)
        self.head = nn.Linear(hid, horizon)  # 输出未来 horizon 步
    def forward(self, x):                    # x: [B, T, in_dim]
        y, _ = self.rnn(x)
        return self.head(y[:, -1, :])       # 取最后时刻

# loss = nn.MSELoss()(model(x_seq), y_future)

5.4 自编码器异常检测:重建误差为分数

import torch, torch.nn as nn, torch.nn.functional as F

class AE(nn.Module):
    def __init__(self, d):
        super().__init__()
        self.enc = nn.Sequential(nn.Linear(d,128), nn.ReLU(), nn.Linear(128,16))
        self.dec = nn.Sequential(nn.Linear(16,128), nn.ReLU(), nn.Linear(128,d))
    def forward(self, x): z = self.enc(x); return self.dec(z)

# 训练:最小化 MSE 重建误差
# 预测:score = ((x - x_hat)**2).mean(dim=1); 分位数阈值判异常

5.5 图学习:极简 GCN(以 PyG 为例,思路示意)

# pip install torch-geometric (需匹配版本)
# from torch_geometric.nn import GCNConv
# class GCN(nn.Module):
#     def __init__(self, in_dim, hid, out_dim):
#         super().__init__()
#         self.g1, self.g2 = GCNConv(in_dim, hid), GCNConv(hid, out_dim)
#     def forward(self, x, edge_index):
#         x = F.relu(self.g1(x, edge_index))
#         return self.g2(x, edge_index)  # 节点分类 logits

5.6 推荐/排序:DeepFM 思路骨架(示意)

# 稀疏类别特征 embedding + MLP 的 deep 分支 + 因子分解机 FM 分支 → concat → sigmoid
# loss = BCEWithLogitsLoss(); metrics = AUC/NDCG

6. 选型与落地:一张小抄

  • 图像/栅格:分类→ResNet/EfficientNet;分割→U-Net/DeepLab;超分辨→SRResNet/EDSR/扩散;下尺度化/重建→U-Net/残差+注意力/条件扩散。
  • 时序:短依赖→TCN/GRU;长依赖/多变量→Transformer;不平稳→差分/局部归一化+注意力。
  • 表格:小数据→树模型;中大规模→MLP+正则(Dropout/BatchNorm)或 TabTransformer、FT-Transformer。
  • 推荐:特征交互明显→FM/DeepFM;行为序列→DIN/Transformer。
  • 科学/物理:PINNs(物理损失)/学术先验+NN 组合;不确定性→Bayesian/MC-Dropout/分位数回归。
  • 工程:蒸馏(Distillation)、剪枝、量化;ONNX/TensorRT 导出;A/B 测试与监控(概念漂移、数据漂移)。

7. 实践要点

  • 数据与标签决定上限;良好划分与评估(时间/空间外推)才可信。
  • 损失函数要与业务目标一致;类别极不均衡用 Focal/加权 CE、或重采样。
  • 正则化:Dropout、权重衰减、早停;数据增强对视觉/语音尤关键。
  • 可解释性:特征归因(SHAP/IG)、注意力可视化、启发式可解释模块。
  • 鲁棒性/安全:对抗扰动、异常输入、概念漂移检测与再训练策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不想努力的小土博

您的鼓励是我创作的动力!谢谢!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值