我眼中的人工智能学习三境界

初识机器学习

之所以接触机器学习是因为本人研究生所做的工作主要应用卷积神经网络算法进行视频的动作分类。说实话要想搞机器学习,一个人琢磨是不行的向大牛请教多看博客结合代码分析才能加快理解,还有就是没有好的设备跑实验的话很难有效果上的突破,现有的关于机器学习的论文多向深度学习靠拢,而创新点大多进行算法的融合或者结构的微调,参数的修改,真正的革命性创新还是很少的。现总结一下自己对机器学习的理解,先说深度学习。

        美剧《西部世界》的高评分可以看出高烧闹剧带来的震撼,在未来世界若是机器人真的可以冥思拥有自我意识的话,机器人会不会真的反抗人类统治人类,就像电影《我,机器人》虽然在制造机器人的时候制定了绝对遵守的三大规则,但是随着机器人的更新换代机器人要实施对人类的管制,阻止人类继续破坏环境,他们的最高准则还是保护人类的长远发展,在这里人工智能想要获得的成果不再是机器可以通过图灵测试,而是真正取得自我意识。但是现阶段还是在继续努力靠近可以通过图灵测试的人工智能。

      对于计算机视觉来说,图像分类、语音识别到视频中目标的检测分割再到视频目标理解,现有大部分做法是对输入数据的定向处理(手工选取特征(对像素进行复杂的数学公式的变换得到一个所谓的特征值)),对于计算来说输入的数据就是0,1数字,机器学习就是让计算机模拟或实现人类的学习能力,(人类的进步包括很多科技产品都是仿生学带来的效应)。就拿图像分类来说吧,对于一张图像来说,计算机想要输出我们想要的结果,就必须对获得数据经过一些复杂的计算,其实就是特征提取到归类识别。这里面细节划分包括,预处理、特征提取、特征选择、预测分类。

图片来源(甘苦人生博客)对于预测分类重要的点就是特征表达。对图像经过复杂计算后得到的一个我们称之为特征向量,不同图像的计算特征向量一般不会一样。相似图像的特征向量也会很相似,所以计算特征向量的相似度就可以归类划分。现在有很多不错的特征计算算法,如SIFT,HOG等。但手工选取特征非常费力,怎样选取才好要通过大量的训练尝试。所以就有了自学习,就是自己学习比较好的有用的特征,刚才说了人类的好多科技发明的灵感来源于生物学,人类的学习除了老师授业还有自学,深度学习就是仿照人脑视觉分层机理(生物学家发现脑皮层的不同神经元对不同方向的刺激反应不一致称方向选择性细胞,卷积网络称之为局部感受野)。生物学认为视觉系统理解一个物体是一个不断抽象迭代过程,从最初的读入做最初的处理,边缘特征选择进行抽象,再进一步抽象融合成更复杂的特征,视觉的分层就是高层的特征是低层的特征抽象合成,高层的特征更加复杂和抽象,最后到最高层识别。现在生物学认为人类神经视觉系统是分层的复杂系统,从底层到高层是一个简单到复杂再到“简单”的过程。视觉提取特征是选取边缘简单的特征组合成复杂的抽象特征。就像英文26个字母,组合成千千万万个单词,单词再组成句子,组合顺序不一致句子中的含义就不一样。但最基本的组成是简单的字母,稀疏编码的灵感个人觉得也是来源这种思想,一个图像的构成可以有几个主要的边缘组成,不需要太多无关的点。

        对于深度学习的理解,刚开始重点放在了深度上,有深度学习就会想到浅层学习。它们的来源都是人工神经网络,而反向传播算法的出现给机器学习的发展带来了巨大的进步,利用反向传播算法构建一个大的网络结构模型通过训练得到我们想要的网络结构,之所以会得到我们想要得到的结构是因为通过大量的样本和反向传播的训练,网络模型里的参数都有了针对性,对具有相似性的输入会得到相似性的结构,所以就可以用已经训练好的模型去预测。含多隐层的人工神经网络概念上是增加层次结构但是带来了训练上的难度和一些调节问题。涉及到过拟合与欠拟合(网络模型参数过多或者少造成结果过于定向和随机性太大)。

       那么深度学习本质上通过多层次的网络结构通过网络结构的参数调节,通过大量的数据训练使得网络模型可以进行预测。关于真正的深度学习这一点有一个是逐层初始化和逐层训练,(说到底就是用一个非线性函数尽可能学习到数据中非线性关系中最重要的本质联系,用得到的特征去训练分类最后预测),和线性回归相比,虽然也可以用非线性函数对数据训练再多预测,但是这点参数对于深度学习里参数相比简直不值一提。

重点说一下关于网络模型的训练,就拿经典CNN代码来说,最初的代码用来分类10个数字,这里面有几个点要注意:

1:初始参数的设定,里面有一行代码规定卷积核初始参数的设定范围,(没有理解为什么计算规则是那样设定)不过一般是-1到1之间,而且开始时要随机生成的参数非常小。

2:关于随机打乱样本分布的代码,打乱样本分布还是必要的,因为在训练的时候如果样本集中的话,后面样本的训练就会把前面训练结构覆盖掉,使得网络模型只适用于后者。

3:样本分布要平均,不能某一样本多余其他,如果某一样本多余其他,其结果也是靠拢于样本多的那一类。

4:关于标签的选择,这个和你选的归一化函数有关,如果你的sigm函数,他的结果是0-1之间如果你的标签不是0 0 0 1之类,像是0 0 0 2之类的话,那么你的这类样本识别结果就会100%。

关于创新:虽然说现在网络结构不知道多少层好,但是现有的大的IT,如谷歌做的十几层的网络结构,分类涵盖上千种。但是属于层次结构的变化或者对数据加上一些预处理或者规则化,所以创新可以在参数设置上入手,比如下采样分为最大池化和平均池化,我们可以采用权值竞争的思想。对网络结构的微调和这结合其他算法如RCNN之类,其实效果并不一定比单个CNN好。

我眼中的三境界

人工智能像是新一轮的工业革命一样或者世界革命一样,学术界和科技公司如果不涉及到这方面好像你就会落伍和被淘汰,特别学术界如果你做的是图像处理方面,比如图像分类、人脸识别这块,现有的人工设计特征的算法远远比不上深度学习算法那样优秀,特别是卷积网络的改进和优化已经能在图像分类方便做到无可匹敌的地步。本人之所以能接触到这一块是因为在研究生阶段做的研究是对视频的智能处理。简单来说是图像智能分类的扩展-视频中人体行为识别。王国维先生认为读书有三境界,即为:"昨夜西风凋碧树,独上高楼,望尽天涯路"; "衣带渐宽终不悔,为伊消得人憔悴"; "众里寻他千百度,蓦然回首,那人却在灯火阑珊处"。此处借王国维先生的读书三境界来阐述一下本人接触学习人工智能的心里与实践路程。

"昨夜西风凋碧树,独上高楼,望尽天涯路"

上句是王国维先生的读书三境界之第一层境界,意思就是做学问之前,先要有思想准备,看到学海无边知识无涯,从而激发奋斗并为之献身的精神和勇气,同时又感慨自己的学问之不足。

“Hello world”与Hello world!,就像刚开始学习每一种语言都要去写第一个程序“Hello world”一样,学习人工智能也要有入手点,怎么才能不是机械的像语言输出而是真的对它打个招呼Hello world!呢?人工智能是个综合性复杂学科包含了太多的知识,想要学习它真是路漫漫其修远兮,吾将上下而求索。

“相见”

本人本科就读一个普通二本院校,大学浑浑噩噩的过了三年,等快要大四面临毕业了开始慌了,就决定考研了。研究生导师的研究方向是智能信息处理、模式识别与信息融合,当时被划分研究的项目是视频信息处理。大家都知道研究生毕业的主要依据是发表论文,当时关于图像处理的算法实验室已经做了很多的研究,大多是在比较经典的手工设计的算法上进行结合或微调,结合深度学习的算法进行处理还是第一次去做。关键的是那几年是人工智能、云计算、大数据的浪潮之时,有关这方面的论文也是井喷且易中的一种情况,所以导师也建议用比较火的卷积神经网络去做。其实刚接触人工智能的时候连图灵测试都不清楚,当时理解的人工智能比如智能聊天机器人、智能导航驾驶。而像电影里的那些和人无二的人工智能感觉是不能实现的,只是科幻电影。后来慢慢了解到,人工智能在历史的长河中由来已久,只是在其一个分支中的机器学习、深度学习等又一浪潮的兴起被人又拾起。

LeNet 5手写数字识别

如上图的LetNet5的手写数字识别,其内部实现正是卷积网络,当第一次接触到这种"智能"的时候感觉还是满神奇的,姑且算是真的与她”相见“了。当时在做研究时也看了大量的已存在人工设计的算法,想在师兄师姐工作的基础上再做些改进就可以产出论文,但当看了一段时间后,得出只有两个选择:一是理解已有算法进行修改结合,致命缺点就是已有算的改进已经被做的很多,想要找到创新点很难并且不容易中不新颖(相比较而言没有机器学习方向点热点度高和效果好);二是选择一个机器学习算法努力研究想办法改进,因为当时14年关于处理视频的结合深度学习的文章还不是特别的多(视频处理有不同方向点比如简单行为分类,复杂行为分析等等),而从关于图像分类处理的效果看首选卷积神经网络。所以从一个纯白的小白开始了接触什么是机器学习、智能模式识别,也就是"昨夜西风凋碧树,独上高楼,望尽天涯路",但相反的是在读了很多论文和大量的博客之后没有激发我的斗志,反而有想放弃的念头,感觉就是“这道题太难了,不会做,我不会做”。

”相识“

在担心自己没有能力结合深度学习算法写出论文后也曾找过导师商谈要不要换个研究点,因为一个人搞这个点的难度太大了,并且实验室做机器学习方向的人不多,有一位是用的是自动编码器做步态模拟识别,他的老师在机器学习中比较熟悉的是自动编码器,卷积网络也是没有怎么接触,所以对于我来说缺乏指导和交流,不过做步态模拟的同学还是给了很多指导和意见的,既然没的选只能望着远处高山之巅慢慢前行了。在学习卷积网络算法过程中,扩展阅读了很多关于人工智能的基本科普,机器学习算法是一个人工智能里很重要的组成部分,而所重点看得卷积网络算法也只是机器学习算法里的一种,即便连带了解了BP、自动编码器等,这也只是人工智能的冰山一角,姑且说与其相识了。

"衣带渐宽终不悔,为伊消得人憔悴"

王国维先生的读书第二层境界就是在第一层境界之后渐渐产生了对读书的兴趣,就算为此衣带渐宽和人憔悴都不悔

                               

                                                                      秋风落叶、时间易逝

”相知“

在选定目标后开始研读大量的论文和博客,时间总是过得很快,但是回过头来还是一头雾水,后来发现很多人都爱用高大上的语言来描述而不用通俗的解释或者白话的陈述来解释专有名词。所在学习了很长一段时间之后感觉重心没有放对,虽然要学习卷积神经网络要了解神经网络、机器学习、深度学习等等,但是最终要用的是使用卷积网络进行视频处理,所以后来就从最原始的手写数字识别的卷积网络代码结合理论文章进行学习分析。很多时候文章上的描述转换为数学表达式就是一些公式变化而我们就不需要纠结于理论上抽象研究,比如说卷积网络的局部感受野,谈到他或许也会读到关于他的发现,两位学者使用猫进行电位变换的研究发现局部感受的存在,转到代码的实现就是局部共享参数减少运算量。在这里所谓的相知并不是说对人工智能真的明白,只是对所研究的点有进一步的认知,在我之前的博客里机器学习(周志华)读书笔记-(五)神经网络(2)里已经描述了我个人对卷积神经网络的理解和在学习过程中遇到的问题和注意点。比如说(个人观点):1、为什么打乱样本分配和样本平均训练(某一时间只见某一个人你就淡忘之前还见过别的人);2、参数的随机设定在怎样的范围内更好、迭代次数的多少(一般是损失函数曲线来判定,并不是迭代次数愈多越好到一定程度会在最优值震荡);3、标签的设定(和选择的最后的激活函数选择有关,形如sigmod[0,1]或tanh[0,-1])等等。

"小成"

经过一段时间的苦涩研究基本了解卷积神经网络的一些知识点,主要是看一些大牛的博客和最新的关于卷积网络的优质文章,最主要的是看最经典的卷积网络代码,结合代码有助于理解一些晦涩的概念,更重要的是去发现代码里的一些技巧而在论文里不会提到的(如打乱样本顺序的实现,参数随机初始化归置的初始范围)。在了解了怎么通过去改变一些参数设置达到想要的效果,学习caffe框加并行加速等,最后在参考一篇3D卷积网络的行为识别的论文后,通过输入数据预处理和参数调节发了一篇比较普通的论文。所谓的3D卷积网络就是在2D图像的基础上结合了时间的维度,也有人使用深度摄像采集设备,比如kinect设备可以获取活动主题的深度信息,就是让图像不再是2D平面图而是三维图,但是深度采集设备目前还不具备普适性且设备价格也挺昂贵,所以还是结合时间维度将2D的卷积网络变成3D的卷积网络。视频是一帧帧图像构成,单张图像所带信息有限而且不能完全够显一个动作,所有选取一定时间内的图像组作为输入。在思路确定后其实代码实现也是一大块难点,当时有关3D实现的代码基本找不到,自己经过很长一段时间分析修改才完成自己想要的结果(主要是残差调节之间的链接关系和2D时的差别),不管怎么说卷积网络有关图像分类的理论算是了解了一些。后来有关机器学习算法又看了一些别的算法,比如自动编码器、决策树等等,在你能明白其中一种算法,其他算法学起来会相对容易一些,因为虽然他们的理论和构成元件不一样,但是最终知道他是得到一个黑盒模型,由输入得输出,模型怎样才会更好正是这些约束参数调节。

”众里寻他千百度,蓦然回首,那人却在灯火阑珊处“

此为第三境界,意思是经过前两个境界后你就会豁然开朗,读书就变得轻松简单。曾经我所认为的人工智能是有完全自主的智能就是感知、认知、推理、学习、执行。感知可以认为是计算机视觉的机械应用,认知、推理、学习就是像人一样思考做出决策,那么现在最好的实现算法就是机器学习。读了几本关于机器学习的书,像白话大数据与机器学学习、白话深度学习与TensorFlow、统计学习算法等,里面介绍了很多不同类别的算法及应用,像百度的人脸识别、页面智能推荐算法等等,能让冰冷机器做一些人工的工作,这就是人工智能啊,曾经也一度认为人工智能时代很快就要到来了。但是后来越来越觉得,现有的这么多的监督的、半监督的、非监督的算法仍然是在认为准则下对数据处理的一个模型,没有自我决策推演能力。

其实人们即希望真正的人工智能的到来,也害怕真正的人工智能给人类带来威胁。就像电影《我,机器人》虽然人们设计师规定了三大准则,但当真的有机器人拥有自我意识会不会像电影里一样,控制人类是它认为遵守三大准则也是最好的方法保护人类。在读过朱松纯的关于人工智能现状、任务、架构和统一之后,我又有了新认识,现在的大部分智能仍是指令工作,即使是现在的人脸识别、自动驾驶等都是一个大数据小任务模式,而不是小数据大任务模式。就拿卷积网络的图像识别来说,我们加深网络的层数或其他调节靠拢与深度学习,实现像生物学里发现生物视觉的分层结构达到像生物思考的模式一样,但是个人觉得我们创造出来的一个黑盒子无论有多少层和多少参数,还是一个冰冷的机械化结果,没有人类的推演化能力,也有专家认为最接近人脑思考的深度学习也陷入困境,人工智能的冬天正在路上。就像朱松纯先生说的,创造出来的应该是乌鸦学习的那种智能而不是鹦鹉学舌那种。

看山是山,看山不是山,看山还是山

人对一个概念的理解不同,原因有很多,有主观意识和客观知识的积累等等。从开始觉得图像识别、智能驾驶、智能推荐、语音聊天啊觉得是很了不起的人工智能,到后来觉得这不就是人工设定了准则和方法,让机器按照人为设定的”路线“走吗,哪有自我认知智能啊。但是能让按照指令去做人可以完成的工作甚至更甚于人(人脸识别区分双胞胎、智能推荐不用自己去搜索等等),这些不是智能是什么,当然了实现自主认知学习还要很长一段时间,他是计算机视觉、机器人学习、语言处理、博弈论等等学科综合的一个组成。而里面最重要的是算法,因为像人一样如果不会说话(计算机语言处理)可以去听去写还可以思考,如果看不见(计算机视觉),仍可以去感知对世界的思考和表达,如果没有思想就像人被抽出大脑你觉得会怎样。看到很多有关人工智能工程师的培训除了基础知识和具备一门语言以及数学基础,占重要篇幅的就是机器学习算法。作为“人工智能教父”的Geoffrey Hinton他坚信无监督学习未来会是一个很重要的算法。但是从目前来看监督学习,也就是有标签学习训练预测下一个目标的学习方法还是占主要位置。但是他也曾想推翻之前的理论研究,因为他认为反向传播从最低层依据残差不符合生物信息选择,每一层信息变换都会有信息丢失,所以循环网络结构就更接近与信息更迭,就是输入到隐层,隐层输出再次作为输入信息进输入层,信息循环,增强信息的关联。很多神将网络的算法的一个重要点就是感知机模型,类神经元工作原理,放在神经网络模型里就是激活函数对输入值在一定阈值到达时才会有想要的输出类似于轴突树突间的工作,但是他们都有一个假设层间神经元不相连,我之前博客中也写过对这种假设的怀疑,也有可能亿万神经元的星状链接我们在数学模型上怎么表达,怎么规范一个神经元到其他神经元的链接传输大小是个难题。现在规定的这种神经网络已经实现了了不起的处理效果,如果完全搞定生物神经的工作原理再到机器人的实现,那真正的智能也许就来了。

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值