激励函数

通过一些数学手段,将上面讲的流程纯线性计算过程进行优化。使其加速的手段

Torch 中的激励函数有很多, 不过我们平时要用到的就这几个. relu, sigmoid, tanh, softplus

import torch
import torch.nn.functional as F     # 激励函数都在这
from torch.autograd import Variable
 
# 做一些假数据来观看图像
x = torch.linspace(-5, 5, 200)  # x data (tensor), shape=(100, 1)
x = Variable(x)

接着就是做生成不同的激励函数数据:

x_np = x.data.numpy()   # 换成 numpy array, 出图时用
 
# 几种常用的 激励函数
y_relu = F.relu(x).data.numpy()
y_sigmoid = F.sigmoid(x).data.numpy()
y_tanh = F.tanh(x).data.numpy()
y_softplus = F.softplus(x).data.numpy()
# y_softmax = F.softmax(x)  softmax 比较特殊, 不能直接显示, 不过他是关于概率的, 用于分类

优化器

优化器,主要是为了优化我们的神经网络,使他在我们的训练过程中快起来,节省网络训练的时间。

在 pytorch 中提供了 torch.optim 方法优化我们的神经网络,torch.optim 是实现各种优化算法的包

optimizer 的几种优化方法
这6种方法分为2大类:一大类方法是SGD及其改进(加Momentum);

另外一大类是Per-parameter adaptive learning rate methods(逐参数适应学习率方法),包括AdaGrad、RMSProp、Adam等。

损失函数

我们如何让优化器进行工作?需要有一个模型计算结果作为依据,而模型计算结果是非常复杂的而且结论是不统一的,所以我们要设计一个损失 loss 的计算方法,让它统一成一个损失值,进行计算。也就是算好了一个结论之后下一次模型要朝向哪个方向去优化权重

具体损失函数的选择要取决于模型最终吐出的结论和标签(数据标注)之间的关系上,常见的损失函数有如下几种:

0-1损失函数(zero-one loss)
绝对值损失函数
log对数损失函数
平方损失函数
指数损失函数(exponential loss)
Hinge 损失函数
感知损失(perceptron loss)函数
交叉熵损失函数 (Cross-entropy loss function)
均方误差(Mean Squared Error)
均方根误差
平均绝对误差(Mean Absolute Error)

每一种损失函数都对应一种数学模型计算,目的就是把模型训练的结果与标签建立起联系,在梯度下降优化器中,让loss不断减小的方向是训练方向

 posted on 2022-12-11 17:19  Rannie`  阅读(76)  评论(0)    收藏  举报
去除动画
找回动画