文科生如何理解卷积神经网络?

  1. 云栖社区>
  2. 博客>
  3. 正文

文科生如何理解卷积神经网络?

王树义 2018-05-04 14:44:00 浏览567
展开阅读全文
img_6b754c754930e215728855c515593896.png

不愿意看那一堆公式符号,却想知道卷积神经网络(Convolutional Neural Network)如何做图像分辨?分享一段我给自己研究生的讲解答疑视频,希望对你有帮助。

茫然

常有朋友问,我的Python和数据科学课程开在哪个学期,他们想过来蹭课。

不好意思,这个真没有。

我写了一系列的数据科学教程。但原本只是给我自己的研究生赋能,并非课程讲义。

img_6a280584c32c9f32f0c5154f016c3d85.png

他们有的人,本科学的专业,与技术毫不沾边。

但是情报学是个交叉学科。尤其是近几年,与数据科学融合愈发深入。

往周围看看,其他社会科学专业,例如新闻学、心理学、社会学、政治学等,都在利用开放互联网数据集,做以往无法想象的大规模信息分析。

在这种情况下,你一个情报学研究生,处在原本就有数据分析优势的学科,却一点儿也不掌握数据科学技能,出门好意思跟其他同学打招呼吗?

于是我给他们写教程,写尽量让文科生能看懂的教程。

事实证明,他们能跟着教程,做出来结果。

img_cc682b39003d39f86ee423b8187e4e55.png

但是,我在《Python编程遇问题,文科生怎么办?》中说过,“照葫芦画葫芦”,只是你入门数据科学的第一步。

你需要理解技术应用的前提和方法,这样才能应对自己的研究问题,利用适当工具,加以解决。

本周的组会上,我听一年级研究生论文翻译展示,明显感觉他们对于卷积神经网络结构与原理,依然不清楚。

img_9e9b0fe5a7c2180c744d2d9864c2edca.png

我很奇怪。

因为我专门为他们写过至少2篇文章,都是讲如何利用卷积神经网络做图像处理的。

而且,他们还用自己的数据集,重新做过训练与测试。

在文章里,我还给他们介绍了深度学习模型的基本原理,并且在文末详细列出了参考资料,供延伸阅读。

这么长时间过去了,怎么还是懵懵懂懂?

倘在从前,我肯定要训人了。

因为怎么看,这都是学习态度不端正的问题。

但是,有了同理心训练基础,我突然能够理解他们的茫然与苦恼了。

同理

他们看到的延伸阅读材料,像一个黑洞。

这个黑洞吸收他们的时间和工作量,却看不到任何正反馈。

因为他们缺乏基础。

要学好深度神经网络,并不需要多么高人一等的智慧。但是一些基础要件却很重要。这些基础包括:

  • 编程
  • 数学
  • 英语

如果有这3个基础,你根本无需导师帮助。自修 Coursera 上 Andrew Ng 《深度学习》这样的精品MOOC课程,就会让你成长迅速,大呼过瘾。

img_018a8d7a41b831b7e198fbe083249402.png

可是对国内的文科生来说,上面列出的几个基础要件,可谓是“三座大山”,能压得他们寸步难行。

编程没学过,数学早忘了,英语不过关。

你让他们一点一滴从头学起,全部补齐?

即便真补完整了,也该毕业了。

还做什么研究?

诚然,老师可以帮助他们精简学习模块。

编程不好,没关系。

不要去碰 Tensorflow 的神经网络结构搭建细节语句�,只要会用最简单的 TuriCreate 调用迁移学习工具,几行代码搞定图像识别。

英语不好,没事儿。

我把教程给你用中文写出来。你直接照着做,就能出结果。

但是数学不好,理解不了神经网络模型的原理,怎么办?

从前我也是束手无策。

要么把整个工具当作黑箱,只知道输入输出,就能做出结果来。

img_52d808336de75f346d8766180656ba8b.png

但这是用户的态度,不是研究者的态度。

这种低水准认知,可能让你有机会充分实践什么叫“垃圾进,垃圾出”。

很多对统计学一无所知的学生,不就是这么玩儿SPSS的吗?

想到这里,我突然灵光一闪。

借鉴

统计学对很多文科生,也很难学。

他们是通过什么途径学会的呢?

是一种“有限度拆解”。

只学会导入数据,点按钮出图表,显然不够用。

但是从头推各种分布的公式,讲解阈值设定(例如那个神奇的0.7)的原理……人早就跑掉了。

怎么办?

我想起来了李连江教授的这本书。

img_2a5b172377aca1bf068a5bbeeccfe232.png

李老师的态度,是原理要讲清楚,不能让学生随便“拷打”数据。

但是又不能深入到底层数学原理,那样很多文科生根本就看不懂,甚至会很快丧失掉兴趣。

他的办法,简单而实际。

就是举例子和打比方。

用一个SPSS自带的雇员例子,他解释了好几章的内容。从数据的类型,一直到多元回归。

因为有了实际样例,学生充分代入,就好理解。

讲到因子分析,做旋转。这个怎么讲?

他用了两个比喻。

一个是三大男高音,代表3个因子。

三大男高音同台的演唱会,观众如潮。

img_1c43b5bf6eb0c97a9b06196983a518e7.png

有的观众爱听多明哥,有的爱听卡雷拉斯,有的是冲着帕瓦罗蒂来的。

但是观众们都坐在一起,你分不清哪个观众究竟是哪位歌唱家的粉丝。

怎么办?

让男高音们分开唱,唱对台戏

这是第二个比喻。

一旦有对台戏,观众选择的座位,就明确代表了态度。

某个问项,归属于哪个因子,也同样可以通过因子唱对台戏(旋转)来分辨。

读了《戏说统计》,我觉得讲得真好。

但是我后来看了李老师的课程视频,觉得收获更大。

因为视频的信息传播更加丰富。

同样是刚才的例子,因为有了图像化解读,学生可以理解得更加透彻而深刻。

img_003870b820aaf11098ca5b3ac92e8bbc.png

尤其是,每当讲到研究中统计结果出来,需要一些“不足为外人道”、“社会科学界有共识”的操作手法,李老师的笑容,总能让人跟着忍俊不禁。

讲解

有了李连江老师的例子做参考,我用组会的剩余时间,以板书的形式,一步步为研究生们讲解了以下内容:

  • 深度神经网络的基本结构;
  • 神经元的计算功能实现;
  • 如何对深度神经网络做训练;
  • 如何选择最优的模型(超参数调整);
  • 卷积神经网络基本原理;
  • 迁移学习的实现;
  • 疑问解答。

我没有追求最大化的严谨,也没有对例子的通用性和实用性做更多的要求,只是从头到尾,把一个简化到极致的图像识别模型,与客户流失预判模型进行了对比讲解。

同样的,我用了样例,也用了打比方,尽力把听讲的认知负荷,降到最低。

过程中,我要求学生随时提问。因此交互很密切。

讲解完毕后,他们几个表示,这下终于弄懂了卷积神经网络的基础知识。

img_2204d6b9f3152f8de9015a3bd260851f.png

由于最近阎教练的工作坊训练了视觉记录行为,我讲了几分钟后,突然觉察到这一段可以录下来,分享给更多人。

于是我让坐在前排的杨文同学,帮我录制了视频。

视频中没有能包含最初的几分钟内容,即刚才列表的前两个部分。颇为遗憾。

不过没关系,过一段时间后,我准备组会时让研究生上讲台,把这一段复述一遍,作为学习效果检查。

如果他们做得好,我会录下来,分享给大家。

他们还不知道我的打算。

所以你看见后,别告诉他们。嘘!

这段视频时长接近30分钟,不算短。

如果你和他们一样,读过了我的《如何用Python和深度神经网络锁定即将流失的客户?》、《如何用Python和深度神经网络识别图像?》和《如何用Python和深度神经网络寻找近似图片?》这几篇文章,但是对于深度神经网络的原理构造还是迷茫,建议你从头看到尾,可能会有一些收获。

欢迎点击这个链接,观看视频。

有言在先,因为是即兴讲解,没有任何准备。内容如有疏漏,在所难免。

欢迎各位高手帮助指出纰漏,我会在将来的讲解中,迭代改进。

提前谢过!

讨论

你是如何学会卷积神经网络工作原理的?对于研究中遇到的数学公式,你有没有什么更好的办法理解和掌握呢?欢迎留言,把你的经验和思考分享给大家,我们一起交流讨论。

喜欢请点赞。还可以微信关注和置顶我的公众号“玉树芝兰”(nkwangshuyi)

如果你对数据科学感兴趣,不妨阅读我的系列教程索引贴《如何高效入门数据科学?》,里面还有更多的有趣问题及解法。

网友评论

登录后评论
0/500
评论
王树义
+ 关注