启迪云Tuscloud■详解人工智能是如何处理数据的?

人工智能如何处理数据?如果把重点放在数据的处理方式上 , 那么长期共存的方式大概有两种:
特征学习(featurelearning) , 又叫表示学习(representationlearning)或者表征学习 。
特征工程(featureengineering) , 主要指对于数据的人为处理提取 , 有时候也代指“洗数据” 。
不难看出 , 两者的主要区别在于前者是“学习的过程” , 而后者被认为是一门“人为的工程” 。 用更加白话的方式来说 , 特征学习是从数据中自动抽取特征或者表示的方法 , 这个学习过程是模型自主的 。 而特征工程的过程是人为的对数据进行处理 , 得到我们认为的、适合后续模型使用的样式 。
举个简单的例子 , 深度学习就是一种表示学习 , 其学习过程是一种对于有效特征的抽取过程 。 有用的特征在层层学习后抽取了出来 , 最终交给了后面的分类层进行预测 。
【启迪云Tuscloud■详解人工智能是如何处理数据的?】一种比较不严谨但直观的理解可以是 , 假设一个n层的深度学习网络 , 那么输入数据在被网络逐层抽象化 , 靠前的层(1~k)学到了低阶特征(lowlevelfeatures) , 中间层(k+1~m)学到了中阶特征(middlelevelfeatures) , 而靠后的层上(m+1~n-1)特征达到了高度的抽象化获得了高阶特征(highlevelfeatures) , 最终高度的抽象化的特征被应用于分类层(n)上 , 从而得到了良好的分类结果 。
一个常用例子是说卷积网络的前面几层可以学到“边的概念” , 之后学到了“角的概念” , 并逐步学到了更加抽象复杂的如“图形的概念” 。
下图就给出了一个直观的例子 , 即图像经过深度网络学习后得到了高度抽象的有效特征 , 从而作为预测层的输入数据 , 并最终预测目标是一只猫 。
启迪云Tuscloud■详解人工智能是如何处理数据的?
文章图片
另一个常见的例子就是下图中 , 深度信念网络(deepbeliefnetwork)通过堆叠的受限玻尔兹曼机(StackedRBM)来学习特征 , 和cnn不同这个过程是无监督的 。 将RBF堆叠的原因就是将底层RBF学到的特征逐渐传递的上层的RBF上 , 逐渐抽取复杂的特征 。 比如下图从左到右就可以是低层RBF学到的特征到高层RBF学到的复杂特征 。 在得到这些良好的特征后就可以传入后端的传统神经网络进行学习 。
启迪云Tuscloud■详解人工智能是如何处理数据的?
文章图片
换个不严谨的白话说法 , 深度学习的层层网络可以从数据中自动学习到有用的、高度抽象的特征 , 而最终目的是为了帮助分类层做出良好的预测 。 而深度学习为什么效果好?大概和它能够有效的抽取到特征脱不了关系 。
当然 , 深度学习的一大特点是其对数据的分布式表示(distributedrepresentation)(*也和稀疏性表示等其他特性有关) , 最直观的例子可以是nlp中的word2vec , 每个单词不再是割裂的而互相有了关联 。 类似的 , 不少网络中的参数共享就是分布式表示 , 不仅降低了参数量需求也提高对于数据的描述能力 。 仅看分类层的话 , 深度学习和其他的机器学习似乎没有天壤之别 , 但正因为有了种种良好的表示学习能力使其有了过人之处 。
下图直观的对比了我们上文提到的两种特征的学习方式 , 传统的机器学习方法主要依赖人工特征处理与提取 , 而深度学习依赖模型自身去学习数据的表示 。
启迪云Tuscloud■详解人工智能是如何处理数据的?
文章图片
综上 , 机器学习模型对于数据的处理可以被大致归类到两个方向:表示学习:模型自动对输入数据进行学习 , 得到更有利于使用的特征(*可能同时做出了预测) 。
代表的算法大致包括:深度学习 , 包括大部分常见的模型如cnn/rnn/dbn , 也包括迁移学习等某些无监督学习算法 , 如主成分分析(PCA)通过对数据转化而使得输入数据更有意义某些树模型可以自动的学习到数据中的特征并同时作出预测特征工程:模型依赖人为处理的数据特征 , 而模型的主要任务是预测 , 比如简单的线性回归期待良好的输入数据(如离散化后的数据)需要注意的是 , 这种归类方法是不严谨的 , 仅为了直观目的而已 。 并没有一种划分说a算法是表示学习 , 而b算法不是 , 只是为了一种便于理解的划分 。