深度学习与机器视觉

  • 来源:光虎



机器视觉就是给计算机装上
眼睛(相机)大脑(算法),让计算机可以感知周围的环境。目前机器视觉研究主要集中在基础应用场景,像物体分类、识别、3D建模等。


 


物体识别是一个比较常见的应用,例如识别一个简单的工件,我们首先要给计算机定义模型,然后准备大量工件的图片去训练这个模型,让计算机能识别出来,输一张图片的时候能识别出图片是不是该工件。正常情况下计算机模型能识别得比较准确,但是当我们输入了一些有遮挡、形态多变或者角度、光照不一的图片时,之前我们建立的模型就识别不出来。这就是机器视觉在应用中存在的难点问题。


深度学习是机器学习的一种,机器学习的本质其实是为了找到一个函数,让这个函数在不同的领域会发挥不同的作用。像语音识别领域,这个函数会把一段语音识别成一段文字;图像识别的领域,这个函数会把一个图像映射到一个分类;下围棋的时候根据棋局和规则进行博弈;对话,是根据当前的对话生成下一段对话。

 




机器学习离不开学习两个字,根据不同的学习方式,可以分为
监督学习非监督学习两种方式。


监督学习

算法和数据是模型的核心所在。在监督学习中最关键的一点是,我们对训练的每个数据都要打上标签,然后通过把这些训练数据输入到算法模型经过反复训练以后,每经过一次训练都会减少算法模型的预计输出和标签数据的差距。通过大量的训练,算法模型基本上稳定下来以后,我们就可以把这个模型在测试数据集上验证模型的准确性。这就是整个监督学习的过程,监督学习目前在图片分类上应用得比较多。


非监督学习

跟监督学习不同的地方是,非监督学习不需要为所有的训练数据都打上标签。非监督学习主要应用在两个大类,第一类是做聚类分析,聚类分析是把一组看似无序的数据进行分类分组,以达到能够更好理解的目的;另外一类是做自动编码器,在数据分析的时候,原始数据量往往比较大,除了包含一些冗余的数据,还会包含一些对分析结果不重要的数据。自动编码器主要是对原始数据做降维操作,把冗余的数据去掉,提高后面数据分析的效率。

 


深度学习; 深度学习与机器视觉; 深度学习与神经网络; 机器学习


通过不同的学习方式获取到数据后,算法是接下来非常重要的一环。算法之于计算机就像大脑对于我们人类,选择一个好的算法也是特别重要的。


 
神经网络

神经网络是受人脑神经元结构的启发,研究者认为人脑所有的神经元都是分层的,可以通过不同的层次学习不一样的特征,由简单到复杂地模拟出各种特征。


神经网络就是由许多的神经元级联而形成的,每一个神经元都经过线性变换和非线性变换,为什么会有非线性变换?从数学上看,没有非线性变换,不管你神经网络层次有多深都等价于一个神经元。如果没有非线性变换,神经网络深度的概念就没有什么意义了。

 


深度学习; 深度学习与机器视觉; 深度学习与神经网络; 机器学习



训练步骤
第一步:定义一个网络模型,初始化所有神经网络的权重和偏置。定义好网络模型以后再定义好这个模型的代价函数,代价函数就是我们的预测数据和标签数据的差距,这个差距越小,说明模型训练得越成功。第一次训练的时候会初始化所有神经元的参数。输入所有训练数据以后,通过当前的模型计算出所有的预测值,计算预测值以后和标签数据比较,看一下预测值和实际值有多大的差距。

第二步:不断优化差距,使差距越来越小。神经网络根据导数的原理发明了反向传播和梯度下降算法,通过N次训练后,标签数据与预测值之间的差距就会越来越小,直到趋于一个极致。这样的话,所有神经元的权重、偏置这些参数都训练完成了,我们的模型就确定下来了。接下来就可以在测试集上用测试数据来验证模型的准确率。


 
卷积神经网络

以上所讲的都是一般的全连接神经网络,接下来进入卷积神经网络。卷积神经网络是专门针对图片处理方面的神经网络。卷积神经网络首先会输入一张图片,比如图片是30×30,有三个颜色通道的数据,这是输入层。下面是卷积层,有一个卷积核的概念,每一个卷积核提取图片的不同特征。

 


深度学习; 深度学习与机器视觉; 深度学习与神经网络; 机器学习



提取出来以后到池化层,就是把卷积层的数据规模缩小,减少数据的复杂度。
卷积和池化连起来我们叫做一个隐层,一个卷积神经网络会包含很多个隐层,隐层之后是全连接层,全连接层的目的是把前面经过多个卷积池化层的特征数据平铺开,形成特征向量,我们把特征向量输入到分类器,对图片进行分类。


简单来说,卷积神经网络更适合机器视觉主要有两个原因,一是参数共享,另外一个是稀疏连接。




【来源:网络】



http://www.optiger.com.cn   光虎光电科技(天津)有限公司