机器学习 VS.经典统计的一点思考

机器学习经典课程Andrew NG的入门课,跟了三周了,来记录下。具体的学习笔记在这里就不详细写了,网上有很多笔记都很好,这里记录一些个人思考和总结:

听到目前一个比较明显的感觉是,机器学习中很多参数的选择,都是不需要太精确的(待考证,因为还没有听到后面比较复杂的部分),比如对特征X进行标准化的时候标准化到(0,1)还是(0,2)其实没什么大关系的,差的不太多就行了;选择用Normal equation(翻译为正规/标准方程?,就是损失函数直接令导数/所有偏导数为0求得参数的方法)还是梯度下降算法求解,特征数到达多少以上选择梯度下降也是需要根据经验和实际情况来决定的。Andrew老师说他自己一般在特征数到10000的时候可能就需要衡量一下,梯度下降还是normal equation求解更合适,更大量级的features用normal equation对矩阵求逆就很慢了,会推荐梯度下降求解。

只是个人感觉,经典统计还是比较偏数学的,很严密的推导,机器学习会针对实现一个目标有一些小变通,一切以实现损失函数最小为目标,有什么手段都尽管来。

经典统计思想和机器学习算法处理起问题的方向感觉是不太一样的。

经典统计往往会先假设数据的分布,服从特定分布的情况下就会满足一些数学特征,根据这些特征通过推倒和变换你就可以对所提出模型的参数进行估计(点估计常用方法是最小二乘估计和极大似然估计),你想用这些估计方法,数据必须得服从相应分布才行,否则估计的无偏性、有效性都没办法保证,可以说估计出的模型也没什么用。

而机器学习的方法,往往是目标导向,手段暴力(相对经典统计),我假定一个模型,构造出一个损失函数,然后我计算能力强,就用可用的方法去不断的计算、迭代,直到我的损失函数最小,即估计值最大限度的逼近实际值了,那模型参数也就随之出来了。

坦白说,第一次听Andrew NG用梯度下降来求解一元线性回归,我还是觉得挺冲击的。。原来简单的一元线性回归还能这么搞。

两种思考方式的不同也可以理解,经典统计学家们推导出种种估计算法的时候,计算机还没有那么强的算力,统计学家们用自己智慧的大脑和勤奋的双手生生推导出在现在看来直接、严密又优雅的算法;而计算机科学的先驱们在发明机器学习的算法时,我想他们的思维跟统计学家天然是不一样的,而会自然地以计算机思维去想解决办法。他们会借鉴统计学的思想来构建损失函数(比如线性回归,机器学习的损失函数参考的是经典统计里的离差平方和。写到这我突然觉得好像也谈不上谁借鉴谁,因为本质上就是一个预测值和真实值的偏差,是符合人的基本认知的),但如何最小化损失函数,此处计算机学家就跟统计学家分道扬镳了,他们会用不断迭代等方式去逼近最后的结果。这种方式在以前即使研究出来,也难以推广,毕竟大家都没有这么强的计算能力。

两种思维模式的不同以及计算机算力的不断提升条件下,分化出两种解决方案也就不足为奇了。

注1:上文提到的“优雅”和“暴力”无任何褒贬意图,所谓不管黑猫白猫,抓到老鼠就是好猫,哪种方法更直接我觉得从不同角度上去理解都可以得出不同答案。

注2:这门课中构建的模型用h(x)表示,Andrew NG讲到这里,为了照顾没有相关基础的初学者,说由于一些历史原因,搞不懂没关系,记住约定俗成这样就可以了。其实我理解这里h(x)就是统计学里假设检验提出的假设概念。经典统计两个思想:参数估计和假设检验,我们整个建模的过程就是一个假设检验过程,提出一个模型,原假设H是模型无效,然后用样本数据去估计参数,判断显著性,显著的话就拒绝原假设,也就是说模型有效。在这个角度上,机器学习建模和统计学其实是交织在一起的,思想上相互借鉴,实现工具上各施所能。

注3:以上均为个人想法,有任何不同意见欢迎同学师长指正,谢谢

课程链接:https://www.coursera.org/learn/machine-learning/

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180103G0ULMT00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券