计算社会科学讲习班 机器学习:理论与实践模块Day1
随着大数据时代的到来,现实已然允许我们对每个异质性群体做局部研究。然而面对这高维空间,单纯靠理论,有些独木难支,此时须诉诸于机器计算。通过它来计算因果结构、进行子群分解、探索选元问题,实现数据对理论思考的驱动。
如今,直面计算机科学技术的“渗入”,社会科学就成了明日黄花吗?答案是否定的。社会科学可以为机器学习的过程注入“学科理论”,从而大大减少计算量,降低对算力的要求,在有监督的机器学习中贡献我们专属的理论驱动力。
无论是钟情数据,还是喜爱理论,机器学习都值得静下心学一学。未来,希望我们都可以比自己的数据更聪明一点~
以下是按梁老师讲义的框架,结合网络资料做的学习笔记
过度拟合是机器学习需首要解决的问题。
什么是过拟合?
过拟合就是“你想太多了”
过拟合就是“太自负了”
过拟合就是“平时课后题做的都对,考试一考很多不会。”
......
正经地说,过拟合是指机器在学习的时候,既学习了全局特征又学习了局部特征,还把局部特征学的过头了,这就造成了其“泛化性”差(郑昆,2017)。
通俗地介绍,可以举个追妹子的例子(当然,你也可以脑补出追汉子的场景)。
当追妹子时,假设你先找表妹问喜欢什么,表妹说她喜欢干净帅气的男生,还说她喜欢周杰伦,喜欢火锅,喜欢酸菜鱼.......合计一百条规矩。你规规矩矩地按照要求学习,终于符合表妹的一切要求,此时训练完成,零误差。然后自己超级自信准备出去试试追个妹子。可是换了个妹子,发现学到的似乎没想象中有用。第二个妹子只要你干净帅气。后面的九十八条她都不care,她甚至讨厌吃火锅,那后面98条只会增加误差。这就过拟合了(刘文博,2016)。
如何消除过拟合?
四字奥义:交叉验证(cross validation)
这就是我们平时常常切分训练集的缘由。即大部分数据训练得出模型,然后用剩下的一小撮数据来做验证,看看自己的模型怎么样,其出发点就是为了防止“过拟合”的影响。如果我们取10%的数据做验证,那么一份数据就可以做10次这样的对比。
通俗地讲,还可以沿袭上面追妹子的例子。
你在你表妹那儿学到的东西,在你表姐那儿测试一下对不对。在你表姐那儿学到的,在你二姐那测试一下。来来回回用不同的测试对象和训练对象做交叉比对。这样学到规律就不会过拟合啦(刘文博,2016)。
具体做时,可以用两分法、K折交叉验证。
除此以外,还可以通过正则化(Regularization),即限制机器的学习来防止过拟合。
先说通俗版本,在学习追妹子,要有男人的尊严! 有底线!不能妹子说啥就是啥!不能无限量增加要学的规矩的数量!学三条规矩我就忍了,但学一百条规矩肯定不能干(刘文博,2016)。像Lasso回归、Ridge回归就是限制学习规矩数量的不同方法。
再用学术语言聊一遍,正则化可以用下面的数学语言来表述(以下多为陶轻松的知乎回答)。
其中,
正则化即是将结构风险最小化的过程。
为了便于理解,可以将上面的目标函数改写为
其中,
高等数学中的泰勒展开式告诉我们任何函数都可以用多项式的方式去趋近。
为了防止过拟合,我们要控制w的个数,即N的数值,让N最小化,而让N最小化,其实就是让W向量中项的个数最小化。
让W向量中项的个数最小化,即0范数的概念。
- 0范数,向量中非零元素的个数
- 1范数,向量中各个元素绝对值之和
- 2范数,向量各元素的平方和然后求平方根,就是通常意义上的模。
即有:
但在实际的求解过程中,0范数很难优化求解,求解难度是个NP完全问题。后来一些聪明的前辈们提出用1范数来解决,并给出如下关系:
以上,1范数和0范数可以实现稀疏,L1因具有比L0更好的优化求解特性而被广泛应用。这里,“稀疏”的意思是说“W的大部分元素都是0”。除了L0和L1外,L2也广受青睐。仅含L1的被称为Lasso回归,仅含L2被称为Ridge回归,既有L1又有L2的被称为Elastic Net模型。
无论是两分法,还是正则化,交叉验证的思维都贯穿始终,也可以说是机器学习的灵魂。而灵魂的宿主就是我们常说的训练样本和测试验证样本。面对它们,我们特希望自己的模型能通过测试样本的“考验”,用数学语言表述就是测试样本所得结果的误差率小。
如何实现这个愿望呢?只要把我们的测试样本分到最有可能的分类就好啦。这样的分类方法有:贝叶斯分类,KNN分类、LDA、决策树、支持向量机、集成学习、神经网络、随机森林等等。
参考资料
1.用简单易懂的语言描述「过拟合 overfitting」?
2.什么是过拟合 (Overfitting)
3.机器学习中常常提到的正则化到底是什么意思?
4.L1范数与L2范数的区别
5.AI从零开始之分类器介绍
6.机器学习中常见分类器的应用场景