俄罗斯科学家开发了一种图像识别算法,比同类算法快40%
HSE(俄罗斯国立高等经济学院)大学的一位科学家开发了一种图像识别算法,其工作速度比同类算法快40%。它可以加快基于视频的图像识别系统的实时处理速度。研究结果已发表在《信息科学》(Information Sciences)杂志上。
卷积神经网络(CNNs)包含一系列卷积层,在计算机视觉中有着广泛的应用。网络中的每一层都有一个输入和一个输出。图像的数字描述进入第一层的输入端,并在输出端转换成一组不同的数字。结果将转到下一层的输入,依此类推,直到在最后一层中预测图像中对象的类标签为止。例如,这个类可以是人、猫或椅子。为此,CNN在一组具有已知类别标签的图像上进行训练。数据集中每类图像的数量和可变性越大,训练的网络就越精确。
如果训练集中只有几个例子,则使用神经网络的附加训练(微调)。CNN被训练来识别来自解决原始问题的相似数据集的图像。例如,当一个神经网络学习识别面孔或他们的属性(情绪、性别、年龄)时,它被初步训练以从照片中识别名人。然后,在可用的小数据集上对所得到的神经网络进行微调,以识别家庭视频监控系统中家庭或亲属的面孔。CNN中的层的深度(数量)越多,它就越准确地预测图像中对象的类型。但是,如果层数增加,则需要更多的时间来识别对象。
这项研究的作者,HSE的Nizhny Novgorod校区的Andrey Savchenko教授,在他的实验中能够加速一个预先训练的任意结构的卷积神经网络的工作,该网络由90-780层组成。结果识别速度提高了40%,准确率损失控制在0.5-1%以内。这位科学家依靠统计方法,如序列分析和多重比较(多重假设检验)。
“图像识别问题中的决策是由一个分类器做出的,这个分类器是一种特殊的数学算法,它接收一组数字(图像的特征/嵌入)作为输入,并输出一个关于图像属于哪一类的预测。该分类器可以应用于任何一层神经网络的输出。为了识别“简单”的图像,分类器只需要分析来自神经网络第一层的数据(输出)。
如果我们已经对所作决定的可靠性有信心,就没有必要再浪费时间了。对于“复杂”的图片,第一层显然不够,你需要继续下一层。因此,分类器被添加到神经网络的几个中间层。该算法根据输入图像的复杂程度决定是继续识别还是完成识别。由于在这样一个过程中控制错误很重要,我应用了多重比较理论:我引入了许多假设,在中间层停止,然后依次测试这些假设。
如果第一个分类器已经产生了一个被多假设检验过程认为是可靠的决策,那么算法停止。如果判定不可靠,则神经网络中的计算继续进行到中间层,并重复可靠性检查。
正如科学家所指出的,对于神经网络最后几层的输出,可以得到最精确的决策。早期的网络输出分类要快得多,这意味着需要同时训练所有分类器,以便在控制精度损失的同时加快识别速度。例如,由于提前停止导致的误差不超过1%。
“对于图像识别来说,高精度总是很重要的。例如,如果人脸识别系统中的决策不正确,那么外部的某个人可以访问机密信息,或者相反,用户将被反复拒绝访问,因为神经网络无法正确识别他。速度有时会被牺牲,但它很重要,例如在视频监控系统中,实时决策是非常可取的,即每帧不超过20-30毫秒。萨夫琴科教授说:“要在此时此地识别视频帧中的物体,快速行动非常重要,同时又不会失去准确性。”。