Skip to main content

Posts

Showing posts from May, 2020

大家理解的机器学习

贝叶斯网络之父 Judea Pearl: 尽管现有的机器学习模型已经取得了巨大的进步,但遗憾的是,所有的模型不过是对数据的精确曲线拟合。 Jay McClelland: Is Deep Learning Statistical Learning?

关于正则化解决过拟合问题

过拟合有两个解决办法,其一为增加训练数据,其二为正则化。我是这样理解的: 神经网络的学习方式在某些程度上与人类学习方式相似。 比如,需要经验的行业--医学。专家诊断疾病的过程首先要搜集信息:性别、性别、疾病史、症状发生的规律等等。然后根据这些信息在脑海中已知的疾病中进行筛选比对。诊断的过程类似于神经网络的推理过程,大脑里的知识库就是训练好参数的神经网络。而医学的知识库是如何得到的呢?这当然离不开统计。比如人类只见过一两个乳腺癌的病人,很难总结出这疾病有什么特点,甚至会形成"偏见",诸如:个子矮的女人得乳腺癌、乳腺癌只有女性才有。需要经历几十个病例(甚至更多)之后才能总结出来规律,医学教材上的知识大都这样得来。    更多的病例,也就是增加训练数据;正则化就是惩罚过于具体的特征。 由此,我想到: - "通用型"神经网络应该从简单的事情开始,就像教小孩子一样,先学习什么是直线、角、多边形、曲线,学习光、影,再逐步递进,而不是 CNN 那样直接构建出许多层。这之间的区别是,后者只能根据特定的任务优化超参数,做出适合那个任务的模型,比如识别车牌,但是这样的网络很难少量改动用于识别猫;而前者可能更具有灵活性,学习到的基础知识应该可以很容易放到更复杂的问题中,猫眼睛的圆和太阳的圆本来就是同一种形状。相当于让神经网络分成不同级别的"层"和"模块",解偶联。 - 当训练量少的情况,就不应将问题过度具体,比如现有的资源就不应该直接学习翻译的问题,因为人类的语言太过于复杂,而直接让神经网络做具体的翻译工作似乎有点太急于求成。当前应用神经网络的翻译产品确实也有很多不太灵光的笑话。我觉得这结果在某种程度上算是过拟合,神经网络记住了某些场景的含义,而语言的大师能够说出你从未听过却一下子就能理解的话语。我一直认为神经网络的学习之路逃不出人脑的学习方法,踏实地从基础到高级才能扎实进步,否则可能到了某种程度就遭遇瓶颈无法再进步了。

人脑中的残差网络

我偶然翻看研究生时买的一本《神经科学扩展》时,看到了人脑中也存在 shortcut 结构,对比起来好有趣。 当人眼看到危险或恐怖的景象时,大脑存在下图的两条途径产生恐惧感: - (快速)视神经->丘脑->杏仁核 - (精确)视神经->丘脑->视觉皮质->杏仁核 快速通路产生恐惧感仅需12ms,也就是通常人们感觉到的"吓一跳",这个时候往往大脑还没有搞清楚具体是什么让自己恐惧,因为没有经过视觉的高级中枢分析,只是快速地一个反映让机体"紧急戒备"。我认为这条快速通路可能是通过人的进化/演化而来(没有科学依据支持的分析),比如看见黄黑相间的类似于马蜂肚子样的警戒色人会下意识害怕,这不需要大脑皮层分析具体会有什么危险。 精确通路会慢一些,但是经过了视觉皮质的分析,能够得到具体的危险信息。 这两条途径看起来跟残差网络 ResNet 似乎有相似之处,丘脑看起来起到了初步的电信号处理,然后一部分信息直接交给 output layer 先输出个粗略而快速的结果,另一部分交给枕叶视觉中枢来精确地分析。 对于 YOLO 不能很好地识别小目标这个问题上,我试图分析人脑是如何看清小物体的原理,由此也对残差网络有许多臆想。这也使我一直存在疑问,为什么残差网络仅仅是跳过两三层,而不是直指 output layer?  

阿拉伯谚语

我们不能随便生气。生气的时候,你会使出真本领。这样,别人就会知道你的真本领很烂。