您正在使用较旧版本的浏览器。为了获得最佳 MSN 中文网体验,请使用受支持的版本

微软ATP带你了解 | 自学“深度学习”的痛点及解决办法

Microsoft 徽标 Microsoft 2023/1/20 微软(亚洲)互联网工程院 · AI智汇学院

快来跟微软ATP看看如何自学人工智能知识!特此分享《智能之门》总结出的6大“深度学习”的痛点及解决办法。

现在市面上的很多关于深度学习与神经网络的书,大致可以分为两类:或偏重“理论”,或偏重“实践”。

偏重理论类的书籍

从知识的难度看,可以分为四个等级:

  • Factual Knowledge 事实知识
  • Conceptual Knowledge 概念知识
  • Procedural Knowledge 过程知识
  • Meta-cognitive Knowledge 元认知知识

偏理论类的书,大多是罗列公式和概念,没有推导,没有解释,所以作者们是把深度学习的知识当作事实知识来写的。

但实际上,要想彻底理解深度学习的知识,至少需要上升到第二等级(概念知识)甚至第三等级(过程知识)。那么我们如何才能把深度学习的知识上得到高的等级来讲解呢?

偏重实践类的书籍

这类类书的作者们大多是绑定在一个深度学习框架上,比如 Tensor Flow,PyTorch,MXNet 等等。

读者能学习到的是如何使用这些框架工具来搭建一个正确的神经网络模型,然后训练并推理。

这种学习的结果是知其然不知其所以然,比如:读者们只知道在两个线性层之间要有一个激活层,那么为什么这样就可以解决非线性问题呢?

《智能之门》一书的作者们,带着上面这些问题,深入高校,通过与高校老师和学生面对面的交流后,总结出了学习“深度学习”知识的六大痛点,并提出了解决办法。这些写作思想贯彻于全书之中。

痛点一

基础不牢,开篇就讲 DNN、CNN、RNN,导致入门的门槛过高,学生不易理解。

解决办法:循序渐进,从一个神经元开始。

《智能之门》中循序渐进的讲解,从简到到复杂,符合绝大多数人的学习习惯。

痛点二

缺乏案例,使用工业数据集训练模型,导致不知道什么是最佳结果,失去学习目标。

解决办法:自力更生,自己创建训练数据集。

例如:工业数据里面的噪音太大了,导致用神经网络训练了很长时间也不能得到理想的分类效果。

所以关键的是,在创建这些数据集时要明确目的——我想让神经网络达到什么效果。

如果它没达到,说明我的想法是错误的;如果达到了,证明我理解对了。这对学习理解有巨大的帮助来建立自信心。

痛点三

跳过原理,直接使用已有深度学习框架,导致培养出来的只是调参工程师。

解决办法:庖丁解牛,动手实现 mini 框架。

痛点四

公式堆砌,没有推导过程,导致知其然不知其所以然。

解决办法:化繁为简,把理论公式用实例化推导。

我们先看看一般书籍上的关于反向传播的四大公式:

My God! 这是啥?符号怪怪的,那么多上标下标,还有多层括号,如何理解?

再看看《智能之门》书中的公式推导:

正如上图,正向计算和反向传播都清清楚楚地画在那里,便于读者顺藤摸瓜。

痛点五

资源紧缺,要求必须有GPU,导致给读者自学和上机实验带来困难。

解决办法:以小见大,使用 CPU 也可学习神经网络知识。

很多人没有搞清楚,一味地被那些框架带跑了节奏:你是要学习原理,不是要训练一个大模型,那么你要 GPU 干什么?

前面说了,自己创建的样本很干净,特征维度都很少(不大于 5),数据量也不大(小于2000),那么用一个 CPU 就足够了。而且为了原理讲解,模型也很简单,宽度和深度都不大。

稍微有些慢的地方就是后面要学习的 CNN、RNN,由于计算繁琐,所以训练要求时间较长,但是可以用算法优化、运行时编译等办法来提高速度。

痛点六

没有代码,无法理解工作过程,导致神经网络被说成是黑匣子,不可解释。

解决办法:抽丝剥茧,以可视化手段让神经网络变得可以解释。

所有的基本概念和工作原理,在《智能之门》所对应的 GitHub 上都有真实的 Python 代码来做示例。

读者可以自行运行代码得到图像,也可以根据自己的理解改动代码,看看结果是否符合预期。而这些代码,无论是前向计算还是反向传播,都是通过公式推导的结果来实现的,这样读者可以对公式有更深刻的理解。

--END--

image beaconimage beaconimage beacon