深度学习的模型是怎么训练/优化出来的
以典型的分类问题为例,来梳理模型的训练过程。训练的过程就是问题发现的过程,一次训练是为下一步迭代做好指引。
1.数据准备准备:
数据标注前的标签体系设定要合理用于标注的数据集需要无偏、全面、尽可能均衡标注过程要审核整理数据集
将各个标签的数据放于不同的文件夹中,并统计各个标签的数目如:第一列是路径,最后一列是图片数目。PS:可能会存在某些标签样本很少/多,记下来模型效果不好就怨它。
样本均衡,样本不会绝对均衡,差不多就行了如:控制最大类/最小类
人工智能是怎么准备训练样本的
我是一个前端,机缘巧合加入了一家AI创业公司,一年多过去了,所幸公司没倒,我得到了一些参与AI模型开发的机会,我发现所谓的“AI”虽然很复杂,但并不神奇,是可以被理解、学习的。趁着最近有空,计划写些文章分享见闻吧。
神经网络是一种学习算法,也是目前最火的人工智能技术了。“网络”由许多“层”组成,每层是一个处理单元,作用是将输入值按该层逻辑转换为输出值。如果说特征抽取是一个复杂的大任务,那么“层”就是将大任务拆解后形成的一个一个独立的、单一职责的小任务,比如有些层是将图像文件转换为RGB矩阵;有些层用于抽取图像的颜色特征;有些层专门用于降维,将输入压缩为特定大小的矩阵。每层都能在不同层面描述或者处理图像的某个片面信息,将这些层按适当的规则连接在一起后,就构成一个能描述图像完整信息的“网”。模型开发的主要任务就在于如何设计层,以及如何将层连接在一起上。原理就是这样,但实际的开发非常非常复杂。
神经网络包含前向传播与反向传播两个过程,前向是将输入,比如一张图片,从网络输入层开始经过各层迭代处理,输出特征值;反向则是将输出的特征值与样本预期特征值之间的误差反向传回各层,各层根据误差调整权重。“模型训练”就是将大量样本输入到网络,网络在不断前向、反向的过程中慢慢调整各层权重,使得最终结果能“大概率”满足样本需求的状态。这个状态我们可以理解为一大堆参数,参数与网络模型共同组成我们日常所说的“模型”。