关于模型建立的深入思考

        随着人工智能被推上了风口浪尖,支撑其理论基础的机器学习也被媒体,培训机构,各种公众号迅速炒热。但是它本身并不是神秘玄学,只是随着计算机越来越强大而能够从数据中学习规律的理论方法,而这些理论方法的汇总就被称为机器学习。

        那么机器到底在学习什么呢?学习模型。模型是什么?模型是能够描述现实事物的通用、简洁、精准表述。这种表述可以是实体的,也可以是虚拟的,eg.实体: 车模型,船模型,建筑模型虚拟: 3D动画模型,设计模型,数学模型;而在机器学习领域所说的模型特指数学模型。

        数学模型在很多学科和领域都被广泛使用,而每个领域都会根据其专业情景以数学为工具进行建模,来解决专业领域内的问题。而机器学习则属于研究如何对数据进行预测、分类、标注的一系列数学模型。既然是数学模型,就具备了提出假设,模型建立,模型求解的过程。统计学习方法当中把这个称为,模型,策略,算法。

       传统数学模型更关注模型本身,即模型的表现形式,eg: F = m * a,E = m * c^2,像这样具有跨时代意义的模型,其表述形式都非常简单,自然具备很好的泛化能力。而机器学习的模型更关注策略和算法,也就是模型求解的过程。因为传统数学模型的提出是在计算机尚未问世的时代,模型是依靠数学牛人们依靠演绎推理强行推导出来的,因此设计出太复杂的模型都是很难求解的。一方面缺少更多的数据支持,一方面会遇到计算求解的技术瓶颈。而机器学习恰好在计算机性能越来越强大的今天,数据支持和计算求解都可以交给机器去完成,故而机器学习更关注模型的性能,以及从数据中学习到信息的能力,这样学习策略和算法就显得尤为重要了,模型的表现形式就显得不那么被关注了。这种不那么关注就反应在我周围的程序员同伴,同事认为模型就是实现封装好的那个函数的调用,以及训练好的pkl文件。当然从程序的角度来说,这种说法还真没错。

        我相信大多数对数学模型没有什么概念的童鞋可能都会有这样类似的认知。其实还有个原因是机器学习模型的表现形式不像牛顿定律,质能方程那么友好。数学水平还停留在高中阶段的童鞋们自然不能很好的领会,但是这并不影响大家进行数据清洗,特征选择,训练模型,模型选择等。(毕竟大牛们已经为我们造好了很多轮子)。但这并不能说明机器学习就不具备模型表现形式,详情见统计学习方法一书,传统机器学习方法都有其表现形式。

       机器学习分为有监督,无监督,强化。

       - 有监督: 基于距离(KNN),基于概率(NABAYIES、HMM,CRF),基于线性(SVM、GLM),基于规则(DTREE),基于网络(MLP、CNN、RNN)

        - 无监督: 基于距离(KMEANS、DBSCAN),基于网络(ATUOENCODE、RBM)

       - 强化: 阿法狗

        清楚了模型的划分, 下面着重讨论如何根据数据来建立模型.这里重点讨论有监督和无监督模型的建立,

       有监督的模型, 根据一系列特征来预测标签, 也可以说是根据一系列自变量来对响应变量进行描述, 有点统计学当中多元线性回归的意思. 事实上, GLM 是将多元线性回归的响应变量采用不同函数进行映射, SVM 则是添加条件约束转换为线性规划问题, MLP 则是多个线性回归在激活函数下的非线性组合; 规则模型基于决策树, 随机森林, 提升树等都是以决策树为基础模型的集成模型; 概率模型则以贝叶斯理论为基础; 基于距离的模型以距离相似为基础; 

        在有了这些基础认知以后, 针对不同数据集采用不同的模型来进行拟合.

         - 当数据无标注时, 则采用无监督学习方法来寻找数据规律;

        - 当数据有标注时, 则采用有监督学习方法, 针对有监督方法, 随机森林属于万能模型, 对各种数据集都能获得不错的效果, 而且不依赖数据的预处理, 但是用其预测的速度是最慢的(树越多, 越慢). LR 这样的线性模型做预测非常快, 但是基础 LR 只能处理线性分割问题, 对于非线性的问题要构造组合特征, 或者直接采用网络模型.(LR本身也是最简单的神经网络模型).而且 LR 对异常数据较为敏感, 容易受异常数据的影响. 此时可采用svm是个不错的选择, 但是在处理非线性问题时, 核函数的选择是个难点(通常采用高斯核), 同时它训练花费时间较长, 不太适合大数据量来建立模型. 如果特征之间相互独立(事实上不太可能)可以采用朴素贝叶斯, 训练速度和预测速度都很快, 但是精度上会低于上述其它模型. 又适合大数据量, 又能很快进行预测的模型莫过于神经网络系列(深度学习对大数据量的学习远远优于传统模型), 但是如果数据量不足, 可能就有点歇菜了.

        综上所述, 并不存在真正意义上十全十美的模型, 来对数据进行学习. 通常是根据经验和具体需求标准来选择更合适的模型.理论上来说, 对于处理的很干净的有标注数据而言, 所有分类模型的效果差异很小, 从精度上来说复杂的模型要高于简单模型, 但是要以更长的训练时间最为代价.

        不管是有监督学习, 还是无监督学习, 其实本质都是寻找不同观测的特征在空间上的划分. 只是这种划分被分化为了有人工干预的和无人工干预的, 即: 有监督学习与无监督学习. 而不同的模型就好比如何在空间当中划分这些观测的特征的不同的划分策略, 而根据策略要求解出最佳的模型参数就需要算法来逼近. 这就印证了统计学习方法当中, 统计学习方法 = 模型 + 策略 + 算法, 的说法. 有时候会直接将其称为模型算法. 因为前文说过机器学习模型形式在工程应用中被淡化, 故而直接就称呼为机器学习算法, 其重点是原理和过程了(算法本身就是一个过程, 计算的过程), 这与传统计算机算法的最大区别在于, 传统计算机算法是在数据结构上的求解, 而机器学习算法是在模型上的求解.

猜你喜欢

转载自blog.csdn.net/qq_24834541/article/details/79318152
今日推荐