文科生如何理解卷积神经网络?
不愿意看那一堆公式符号,却想知道卷积神经网络(Convolutional Neural Network)如何做图像分辨?分享一段我给自己研究生的讲解答疑视频,希望对你有帮助。
(由于微信公众号外部链接的限制,文中的部分链接可能无法正确打开。如有需要,请点击文末的“阅读原文”按钮,访问可以正常显示外链的版本。)
茫然
常有朋友问,我的Python和数据科学课程开在哪个学期,他们想过来蹭课。
不好意思,这个真没有。
我写了一系列的数据科学教程。但原本只是给我自己的研究生赋能,并非课程讲义。
他们有的人,本科学的专业,与技术毫不沾边。
但是情报学是个交叉学科。尤其是近几年,与数据科学融合愈发深入。
往周围看看,其他社会科学专业,例如新闻学、心理学、社会学、政治学等,都在利用开放互联网数据集,做以往无法想象的大规模信息分析。
在这种情况下,你一个情报学研究生,处在原本就有数据分析优势的学科,却一点儿也不掌握数据科学技能,出门好意思跟其他同学打招呼吗?
于是我给他们写教程,写尽量让文科生能看懂的教程。
事实证明,他们能跟着教程,做出来结果。
但是,我在《Python编程遇问题,文科生怎么办?》中说过,“照葫芦画葫芦”,只是你入门数据科学的第一步。
你需要理解技术应用的前提和方法,这样才能应对自己的研究问题,利用适当工具,加以解决。
本周的组会上,我听一年级研究生论文翻译展示,明显感觉他们对于卷积神经网络结构与原理,依然不清楚。
我很奇怪。
因为我专门为他们写过至少2篇文章,都是讲如何利用卷积神经网络做图像处理的。
而且,他们还用自己的数据集,重新做过训练与测试。
在文章里,我还给他们介绍了深度学习模型的基本原理,并且在文末详细列出了参考资料,供延伸阅读。
这么长时间过去了,怎么还是懵懵懂懂?
倘在从前,我肯定要训人了。
因为怎么看,这都是学习态度不端正的问题。
但是,有了同理心训练基础,我突然能够理解他们的茫然与苦恼了。
同理
他们看到的延伸阅读材料,像一个黑洞。
这个黑洞吸收他们的时间和工作量,却看不到任何正反馈。
因为他们缺乏基础。
要学好深度神经网络,并不需要多么高人一等的智慧。但是一些基础要件却很重要。这些基础包括:
编程
数学
英语
如果有这3个基础,你根本无需导师帮助。自修 Coursera 上 Andrew Ng 《深度学习》这样的精品MOOC课程,就会让你成长迅速,大呼过瘾。
可是对国内的文科生来说,上面列出的几个基础要件,可谓是“三座大山”,能压得他们寸步难行。
编程没学过,数学早忘了,英语不过关。
你让他们一点一滴从头学起,全部补齐?
即便真补完整了,也该毕业了。
还做什么研究?
诚然,老师可以帮助他们精简学习模块。
编程不好,没关系。
不要去碰 Tensorflow 的神经网络结构搭建细节语句,只要会用最简单的 TuriCreate 调用迁移学习工具,几行代码搞定图像识别。
英语不好,没事儿。
我把教程给你用中文写出来。你直接照着做,就能出结果。
但是数学不好,理解不了神经网络模型的原理,怎么办?
从前我也是束手无策。
要么把整个工具当作黑箱,只知道输入输出,就能做出结果来。
但这是用户的态度,不是研究者的态度。
这种低水准认知,可能让你有机会充分实践什么叫“垃圾进,垃圾出”。
很多对统计学一无所知的学生,不就是这么玩儿SPSS的吗?
想到这里,我突然灵光一闪。
借鉴
统计学对很多文科生,也很难学。
他们是通过什么途径学会的呢?
是一种“有限度拆解”。
只学会导入数据,点按钮出图表,显然不够用。
但是从头推各种分布的公式,讲解阈值设定(例如那个神奇的0.7)的原理……人早就跑掉了。
怎么办?
我想起来了李连江教授的这本书。
李老师的态度,是原理要讲清楚,不能让学生随便“拷打”数据。
但是又不能深入到底层数学原理,那样很多文科生根本就看不懂,甚至会很快丧失掉兴趣。
他的办法,简单而实际。
就是举例子和打比方。
用一个SPSS自带的雇员例子,他解释了好几章的内容。从数据的类型,一直到多元回归。
因为有了实际样例,学生充分代入,就好理解。
讲到因子分析,做旋转。这个怎么讲?
他用了两个比喻。
一个是三大男高音,代表3个因子。
三大男高音同台的演唱会,观众如潮。
有的观众爱听多明哥,有的爱听卡雷拉斯,有的是冲着帕瓦罗蒂来的。
但是观众们都坐在一起,你分不清哪个观众究竟是哪位歌唱家的粉丝。
怎么办?
让男高音们分开唱,唱对台戏。
这是第二个比喻。
一旦有对台戏,观众选择的座位,就明确代表了态度。
某个问项,归属于哪个因子,也同样可以通过因子唱对台戏(旋转)来分辨。
读了《戏说统计》,我觉得讲得真好。
但是我后来看了李老师的课程视频,觉得收获更大。
因为视频的信息传播更加丰富。
同样是刚才的例子,因为有了图像化解读,学生可以理解得更加透彻而深刻。

尤其是,每当讲到研究中统计结果出来,需要一些“不足为外人道”、“社会科学界有共识”的操作手法,李老师的笑容,总能让人跟着忍俊不禁。
讲解
有了李连江老师的例子做参考,我用组会的剩余时间,以板书的形式,一步步为研究生们讲解了以下内容:
深度神经网络的基本结构;
神经元的计算功能实现;
如何对深度神经网络做训练;
如何选择最优的模型(超参数调整);
卷积神经网络基本原理;
迁移学习的实现;
疑问解答。
我没有追求最大化的严谨,也没有对例子的通用性和实用性做更多的要求,只是从头到尾,把一个简化到极致的图像识别模型,与客户流失预判模型进行了对比讲解。
同样的,我用了样例,也用了打比方,尽力把听讲的认知负荷,降到最低。
过程中,我要求学生随时提问。因此交互很密切。
讲解完毕后,他们几个表示,这下终于弄懂了卷积神经网络的基础知识。
由于最近阎教练的工作坊训练了视觉记录行为,我讲了几分钟后,突然觉察到这一段可以录下来,分享给更多人。
于是我让坐在前排的杨文同学,帮我录制了视频。
视频中没有能包含最初的几分钟内容,即刚才列表的前两个部分。颇为遗憾。
不过没关系,过一段时间后,我准备组会时让研究生上讲台,把这一段复述一遍,作为学习效果检查。
如果他们做得好,我会录下来,分享给大家。
他们还不知道我的打算。
所以你看见后,别告诉他们。嘘!
这段视频时长接近30分钟,不算短。
如果你和他们一样,读过了我的《如何用Python和深度神经网络锁定即将流失的客户?》、《如何用Python和深度神经网络识别图像?》和《如何用Python和深度神经网络寻找近似图片?》这几篇文章,但是对于深度神经网络的原理构造还是迷茫,建议你从头看到尾,可能会有一些收获。
https://v.qq.com/txp/iframe/player.html?vid=i0644wf0dsg&width=500&height=375&auto=0
有言在先,因为是即兴讲解,没有任何准备。内容如有疏漏,在所难免。
欢迎各位高手帮助指出纰漏,我会在将来的讲解中,迭代改进。
提前谢过!
讨论
你是如何学会卷积神经网络工作原理的?对于研究中遇到的数学公式,你有没有什么更好的办法理解和掌握呢?欢迎留言,把你的经验和思考分享给大家,我们一起交流讨论。
如果你对我的文章感兴趣,欢迎点赞,并且微信关注和置顶我的公众号“玉树芝兰”(nkwangshuyi)。
如果本文可能对你身边的亲友有帮助,也欢迎你把本文通过微博或朋友圈分享给他们。让他们一起参与到我们的讨论中来。
延伸阅读
创作不易,感谢打赏!
如果喜欢我的文章,请微信扫描下方二维码,关注并置顶我的公众号“玉树芝兰”。
欢迎微信扫码加入我的“知识星球”第二季。第一时间分享我的发现和思考,优先解答你的疑问。