Mindspore框架循环神经网络RNN模型实现情感分类|(四)损失函数与优化器

Mindspore框架循环神经网络RNN模型实现情感分类

Mindspore框架循环神经网络RNN模型实现情感分类|(一)IMDB影评数据集准备
Mindspore框架循环神经网络RNN模型实现情感分类|(二)预训练词向量
Mindspore框架循环神经网络RNN模型实现情感分类|(三)RNN模型构建

Mindspore框架循环神经网络RNN模型实现情感分类|(四)损失函数与优化器

Mindspore框架循环神经网络RNN模型实现情感分类|(五)模型训练与推理

tips :pip install -i https://pypi.mirrors.ustc.edu.cn/simple mindspore==2.2.14


一、损失函数

完成模型主体构建后,选择损失函数和优化器。本项目情感分类问题的特性,即预测Positive或Negative的二分类问题,选择nn.BCEWithLogitsLoss(二分类交叉熵损失函数)。

关于损失函数的作用意义和梯度下降,在"损失函数自动微分+梯度下降"相关博客有详细讲解,请前往查阅。

此处,直接选择二分类交叉熵损失函数:nn.BCEWithLogitsLoss

python 复制代码
import mindspore.nn as nn
loss_fn = nn.BCEWithLogitsLoss(reduction='mean')

BCEWithLogitsLoss:

σ ( x ) = Sigmoid函数,log是自然对数。y是真实标签,p是预测值。

相较于BCELoss,

当然,BCELoss和BCEWithLogitsLoss一样,会遍历所有输出求均值

仅相差一个sigmoid函数对预测值进行处理。

所以,使用BCEWithLogitsLoss会直接计算输入值

python 复制代码
loss_fn = nn.BCEWithLogitsLoss()
loss = loss_fn (predicts, labels)

使用BCELoss,会额外调用nn.sigmoid()对p预测值进行处理。

python 复制代码
sig = nn.Sigmoid()
loss_bec = nn.BCELoss()
loss = loss_bec(sig(predicts), labels)

输出损失值一样:

二、优化器

Adam(Adaptive Moment Estimation) :它是利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。前面我们提到损失函数和梯度下降,Loss = loss_fn (predicts, labels)=loss_fn(W(x)+b,y),x是数据,y是标签,为已知量,假设模型【w,b】组成的矩阵参数;其实损失函数loss是关于w和b的函数,我们已知了很多很多的(x,y)(即,标注的数据集),去求【w,b】的最优解。
求的方法:首先给【w,b】随机初始化一个初始值,将(x,y)一组(或者一批一批,并行)带到损失函数方程里面去求loss值;第一组loss1,计算第二组前让【w,b】变化lr(学习率),计算得到第二次loss2,要求修正【w,b】使后面的loss要越来越小;每次计算loss,都要修改一下模型参数(这是训练过程),确保loss递减,这个优化参数,修改参数的工具(算法)就是优化器。

python 复制代码
optimizer = nn.Adam(model.trainable_params(), learning_rate=lr)

深度学习的目标是通过不断改变网络模型参数值,使得参数能够对输入做各种非线性变换拟合输出,本质上就是一个函数去寻找最优解。

为了使模型输出逼近或达到最优值,需要用各种优化策略和算法,来更新和计算影响模型训练和模型输出的网络参数。

按吴恩达老师所说的:梯度下降(Gradient Descent)就好比一个人想从高山上奔跑到山谷最低点,用最快的方式(steepest)奔向最低的位置(minimum)。

tips:你可以想象,模型参数【w,b】中的每一位参数个人,听从优化器的统一指挥。"各就位,变!"

相关推荐
元岳数字人小元2 小时前
AI 数字人开发公司浅谈 虚拟数字人打造景区新服务
人工智能·人机交互·交互
哦哦~9212 小时前
AI赋能生物医学:从临床数据到药物分子性质预测实战培
人工智能·生物医学·药物分子
GIS数据转换器2 小时前
城市排水生命线安全运行监测平台深度解析
java·运维·人工智能·python·安全·数据挖掘·无人机
虫无涯2 小时前
本地离线大模型实战:Ollama + Llama 3.1 8B 全流程部署(适配VSCode Continue代码助手)
人工智能
Rocky Ding*2 小时前
Latent Consistency Models:一篇读懂扩散模型的少步生成核心基础知识
人工智能·深度学习·机器学习·ai作画·stable diffusion·aigc·ai-native
大山佬2 小时前
AI 边缘部署:MCU 上的轻量级目标检测,从 YOLO 到 TFLite Micro 的全链路优化
人工智能
数睿数据无代码开发2 小时前
深度解析smardaten数据大屏:六大核心功能重塑可视化开发
人工智能·信息可视化
陈猪的杰咪2 小时前
GitHub Copilot 2026计费新规:AI Credits消耗解析与节省策略
人工智能·ai·架构·github·copilot
学术头条2 小时前
清华团队开源SCAIL-2:角色动画告别骨骼依赖,端到端还原视频中动作细节
人工智能·科技·机器学习·ai·开源·音视频·agi
لا معنى له2 小时前
世界模型的功能分类法——Renderers, Simulators, Planners, and the Loop That Connects Them
人工智能