神经网络训练流程

神经网络训练基本流程:

1、收集训练数据
2、设计网络结构
3、数据预处理
4、权重初始化
5、网络训练

1、收集训练数据

神经网络的训练需要大量数据,训练的数据需要有input和label相互对应,这些对应数据的获得也同样消耗大量时间进行人工处理,所以人工智能背后必然有更多不智能的付出。
例如 input数据 x的维度是39,label的维度是48

2、设计网络结构

对于深度神经网络来说,设计网络结构主要是确定层数,每层隐藏层的节点数和激活函数,以及输出层的激活函数和损失函数。
例如设计的深度神经网络有两层隐藏层和最终的输出层。
隐藏层的激活函数是ReLu,输出层的激活函数是线性liner(即没有激活函数)。
隐藏层的节点是1000。
loss函数MSE。MSE越小表示预测的效果越好,训练过程就是不断在缩小MSE的过程。
网络结构确定后,则所有数据维度便能够确定:

训练数据: input = 39;label = 48
权重矩阵: Wh1 = 1000 * 39;Wh2 = 1000 * 1000;Wo = 48 * 1000
偏移向量: bh1 = 1000;bh2 = 1000;bo = 48
输出矩阵: output = 48

3、数据预处理

数据预处理过程比较复杂,在整个神经网络和深度学习中是比较困难的地方。因为要根据自己的实际场景做出相应的处理。处理的目的是能够帮助网络更加高效和准确的收敛。在处理过程中所有的input和label处理成能够使用神经网络的数据,label的值域要求符合激活函数的值域。

4、权重初始化

对Wh1、Wh2和Wo在训练之前进行初始化赋值,权重的初始化决定了网络的训练起点。

5、网络训练

训练过程就是用训练的数据input经过网络计算出output,再同label进行loss计算,然后通过反向传播来更新权重后,在进行前面过程,直至loss值达到预期效果。

正向传递
计算loss
计算梯度
更新权重
计算新loss

    原文作者:QUIZ_JS
    原文地址: https://www.jianshu.com/p/9ccc533d391e
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞