神经网络的通用训练流程 原创
“ 神经网络模型核心有三步,模型搭建,数据处理,模型训练评估”
今天总结一下神经网络模型的通用训练步骤和流程,以及其作用。
模型通用训练流程
从功能上来说,所有基于神经网络搭建的模型都要经过以下三个步骤:
- 模型搭建
- 数据处理
- 模型训练及评估
模型搭建需要经过以下几个步骤:
- 模型定义
根据任务需求,可以设计不同的网络层,比如嵌入层,卷积层等。一般的神经网络模型都由多层网络层组成。
网络层实现了对输入信号的处理,比如卷积层是怎么卷积的,活动的神经元是哪些。本质上是一个函数,有一个输入就有一个输出。
- 前向传播算法
前向传播算法是神经网络模型的核心模块,用来对传入的神经信号进行处理。比如一个输入,需要经过那几个网络层计算,最后的输出结果是什么等。
- 损失函数
损失函数是用来计算模式执行结果是否正确的判官,损失函数结果越小,说明网络模型训练效果越好。
- 优化器
优化器的作用就是,根据损失函数计算的结果,通过反向传播算法使用优化器对模型的参数(权重)进行调整优化,以达到最小损失。比如,梯度下降算法。
梯度下降
- 数据处理
数据处理属于模型训练的准备阶段,其主要作用就是整理出一份能满足某种训练需求,并且能够让神经网络模型处理的数据。
数据一般会分为训练数据集和测试数据集。
主要步骤分为:
- 数据清洗
- 数据统一格式
比如,在NLP(自然语言处理)中,数据需要经过清洗,删除一些无效数据,乱码等;清洗之后需要进行分词处理,构建词汇表等。
而在CV(计算机视觉)中同样需要对图片和视频进行清洗和裁剪,以及格式统一。
而根据不同的需求可以进行适当的调整,但主要必须经过这两步处理,主要表现形式为Dataset数据集。
- 模型训练及评估
模型训练的本质就是通过训练数据,及损失函数和优化器不断调整模型参数的过程。
- 数据加载
准备训练的数据需要经过加载才能传入到神经网络中,而加载的过程也需要解决几个问题:
能够加载的数据格式文本,图片,视频等,数据结构,结构化数据与非结构化数据,以及数据的加载来源,是本地加载,还是从网络中加载等;还有大规模训练数据的拆分等。
最重要的是,要把数据转换成神经网络能够识别的形式——张量(tensor)/向量(vector)
- 分批次处理
分批处理是因为大模型的训练数据量比较大,需要分批次加载,每次加载部分数据,否则会导致系统崩溃。
- 模型训练
模型的训练就是把训练数据输入到模型中,并且使用损失函数根据输出计算损失差,最后使用优化器优化网络模型参数的过程。
模型根据数据量会进行多次训练。
- 模型保存与加载
训练过程中或训练好的模型,需要被保存下来后续使用;而使用模型需要先加载模型。
而模型的保存与加载有多种形式,比如模型和参数是一块保存还是分开保存,保存的模型和参数的格式是什么样的,是否需要分布式保存等;加载模型的方式是什么样的,以及从哪里加载模型。
- 模型评估
模型评估的作用就是使用测试数据集,对训练好的模型进行测试,测试其训练成果。如果未通过测试,则说明模型训练有问题,需要进行调整。
而模型评估的方式方法,以及评估标准是需要考虑的问题。
本文转载自公众号AI探索时代 作者:DFires