神经网络的基本原理(自用版)

1.基本的神经网数学模型

输出 y=activate(w*x+b)

其中,x表示输入矩阵,w表示权重矩阵,b表示偏置,y表示输出

2.基础的神经网络模型

(1)全连接神经网络(用来处理和数值相关的任务)

(2)卷积神经网络(用来处理和计算机视觉相关的任务)

(3)循环神经网络(用来处理与序列相关的任务)

3.全连接神经网络

含义:将神经元按照层进行组合,相邻层之间的节点相互连接

结构:包含输入层、隐藏层和输出层

图1 全连接层结构图

设计思想:

1)输入节点根据外部的特征数据确定

2)隐藏层的节点数决定了模型的拟合能力,节点越多,拟合能力越强,泛化能力越差。

隐藏层的数量决定模型的泛化能力,层数越多,泛化能力越强,拟合能力越差。

4.激活函数

作用:加入非线性因素,弥补线性模型表达能力不足的缺陷

(1)Sigmoid函数

f(x)=\frac{1}{1+e^{-x}}

pytorch中的对应实现:torch.nn.Sigmoid()

(2)tanh函数

tanh(x)=2Sigmoid(2x)-1

pytorch中的对应实现:torch.nn.tanh()

\rightarrow上面的两个函数要求输入的绝对值不能过大,要不会有饱和问题

(3)ReLU函数

f(x)=max(0,x)

pytorch中的对应实现:torch.nn.ReLU(input,inplace) 如果inplace为False,则不改变原数据

(4)Softmax算法

作用:判断输入属于某一类的概率大于属于其他类的概率,要求分类值互斥

pytorch中的对应实现:torch.nnSoftmax(dim)

5.模型训练步骤

(1)将样本数据输入模型算出正向结果

(2)计算模型结果与样本的目标标签之间的差值

(3)根据损失值,使用链式反向求导方法,一次计算模型中每个参数

(4)使用优化器中的策略对模型中的参数进行更新

6.损失函数

(1)L1损失函数

loss(y',y)=mean(|y'-y|)

(2)均值平方差(MSE)损失函数

MSE=\frac{1}{n}\sum_{t=1}^{n}(y_{observed,t}-y_{pred,t})^{2}

类似:均方根误差(RMSE=sqrt(MSE))

平方绝对值误差(MAD,对一个真实值与预测值相减后的绝对值取平均值)

(3)交叉熵损失函数

一般用在分类问题上,预测输入样本属于某一类的概率,值越小表示预测结果越准

c=-\frac{1}{n}\sum [xlna+(1-x)ln(1-a)]

7.优化器

作用:基于误差反向传播(BP)算法,帮助模型在训练过程中更快更好地将参数调整到位

基础策略是梯度下降法(批量梯度下降、随机梯度下降、小批量梯度下降)

构建Adam优化器对象:optimizer=torch.optim.Adam(model.parameter(),lr=learning rate)

学习率表示模型在反向优化中沿着梯度方向调节的步长大小。值越大,训练速度提升,但是精度不够;值越小,训练精度提升,但耗时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值