1 机器学习
2 集成算法的简介
对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断好。
集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务等。
- 结合策略
①简单平均法
②加权平均法
集成学习的结果通过投票法产生?即“少数服从多数”。
实训
- 先导入PyTorch及相关工具库,涵盖神经网络构建、优化器、数据处理等功能模块。
- 接着定义超参数,如批量大小、是否下载MNIST数据集、训练轮数和学习率。
- 定义名为CNNNet的卷积神经网络类。
- __init__ 方法初始化卷积层、池化层和全连接层,构建网络架构;
- forward 方法确定数据前向传播路径,依次经过卷积、激活、池化和全连接操作。
- 初始化函数中定义了卷积层、池化层、自适应平均池化层和全连接层。
- 前向传播函数则规定了数据流经各层的运算顺序,通过卷积、激活、池化等操作处理输入数据。
- 定义经典的LeNet神经网络模型类。
- __init__ 方法初始化卷积层和全连接层,构建基础架构;
- forward 方法描述数据前向传播流程,依次经过卷积、激活、池化和全连接操作。
- 代码构建了VGG神经网络。先通过字典 cfg 定义VGG16和VGG19的网络结构参数。
- VGG 类中, __init__ 方法依据传入名称构建特征提取层和分类层;
- _make_layers 方法按配置创建具体网络层;
- forward 方法规定数据前向传播路径。
- 准备数据和构建模型。
- 先判断设备是否支持CUDA,随后对训练和测试数据分别定义数据变换操作,包括裁剪、翻转、归一化等。
- 加载CIFAR10数据集,创建数据加载器。
- 实例化CNNNet、Net、LeNet和VGG16等多个神经网络模型。
- 将三个网络模型放入列表,使用Adam优化器和交叉熵损失函数进行训练。
- 清除梯度、前向传播计算损失并反向传播更新参数。
- 各模型进行预测,通过投票机制确定最终结果,同时计算并输出集成模型及各单个模型在每个训练轮次后的正确率。
- 进行训练与评估。
- 先将模型转移到指定设备,配置Adam优化器和交叉熵损失函数。
- 遍历训练数据,执行梯度清零、前向传播、计算损失、反向传播及参数更新。
- 利用模型预测,统计预测结果并基于投票机制确定最终预测。