我发现这种数学问题,国内的教材,就会给你整的罗里吧嗦,说不清楚,让人非常难理解
激活函数:是调整模型的,也就是σ。来调整模型的权重,使需要的神经元高亮,
损失函数(loss function)或代价函数(cost function):用来评价模型好坏的,在epoch每次迭代的时候展示
梯度下降法(gradient descent)是一个最优化算法,常用于机器学习和人工智能当中用来递归性地逼近最小偏差模型
前言:网络模型训练的实质,就是让损失函数最小
一、模型如何训练出来的
二、损失函数:
定义:1,它是用来衡量模型预测值与实际标签之间差异的函数
2,输出值和最终结果之间的差 的平方。也成为loss,损失,取平均
降低:
1.反向传播,计算梯度
2.更新模型参数(权重(weights)和偏置(biases),nn.Linear里),利用优化算法((SGD)、Adam),根据计算出的梯度更新,使得损失函数值逐渐减小
3.多次迭代(多个 epoch),模型达到最好
先用一维函数,做铺垫,通过斜率可以找到函数的最小值
优化算法图解
SGD:通常需要手动调整学习率,并且在训练过程中保持不变或按照预定的时间表进行调整。
Adam:自适应地调整每个参数的学习率,可以根据每个参数的历史梯度表现来动态调整学习率。
梯度下降
梯度:损失函数对模型参数的偏导数,表示损失函数在参数空间中的变化率
定义:每次迭代,根据梯度信息更新模型参数,使得损失函数值减小
损失函数的问题
过拟合
训练损失迅速下降并趋近于0,而验证损失在较高水平波动,表明模型在训练集上表现非常好,但在验证集上表现很差。这是典型的过拟合现象
梯度消失
梯度消失是指在反向传播过程中,梯度在向后传递时逐渐变得非常小,以至于在靠近输入层的参数几乎没有更新
判断:
梯度爆炸
反向传播过程中,梯度在向后传递时迅速变得非常大,导致模型参数更新过大。损失函数变大
损失函数不收敛
损失函数保存图片
1 2 3 4 5 6 7 8 | epochs = list( range (1, num_epochs + 1)) train_losses = [] # 用于存储每个epoch的训练损失 plt.plot(epochs, train_losses, label= 'Training Loss' ) plt.title( 'Training Loss Over Epochs' ) plt.xlabel( 'Epochs' ) plt.ylabel( 'Loss' ) plt.legend() plt.savefig( 'training_loss_plot.png' ) |
pytorch里的损失函数
三、激活函数
权重w,激活值a,偏置b
定义:
引入非线性特性的函数。它们决定了一个神经元的输出是否应该被激活
作用:
前向传播时候:引入非线性,使得神经网络能够学习和表示复杂的数据模式。如果没有激活函数,神经网络的每一层仅仅是线性变换的叠加(y=ax+b),最终的输出还是线性变换,无法处理非线性问题
反向传播时候:反向传播过程中需要计算损失函数对各参数的梯度,以进行梯度下降优化,更新参数
分类:
案例:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!