大家好啊,我是董董灿。
昨天回答了一个问题,收到了200+的赞,有点小惊喜。
不少人可能都有类似的问题。对于神经网络,到底是会用就行,还是需要搞明白其中的原理?
一个例子
记得最开始学驾照的时候,教练问我,你是大学生啊,你学什么专业的? 我说我学机械的。
教练一脸的轻松,说,那你应该很快就能学会。
我问为什么呢?
教练说,你肯定很懂离合的原理,以及轴承、齿轮、加速比这些概念啊。
这样踩离合挂挡,踩到什么程度,什么时候加油门,加到什么程度,挂几档你肯定就会有感觉。
我当时:。。。
后来学车的经历告诉我,在学校里学的那些齿轮啮合原理确实有帮助,但远没教练吹嘘的这么厉害。
那么神经网络的原理又是指什么呢
如果说搞懂了某种卷积算法、某个激活函数,那相当于我们学会了齿轮的相关知识。
如果说搞懂了怎么调参,如何设置学习率能让网络收敛的更快,那相当于我们学会了如何挂挡,踩油门,踩刹车。
很显然,会这些,足够开动神经网络这辆车了。
再往深了讲,如果说想要真正搞懂神经网络为什么能实现图片分类,或者说为什么神经网络学到的参数能在分割任务中表现的特别抢眼。相当于要搞清楚为什么一踩油门,汽车就一下子能跑的特别快?
相当于要搞清楚,汽车的加速度与轮子受到的摩擦力以及汽车质量的关系等式F=ma。
相当于要搞清楚,汽车并没有一加速就飞到天上去,而是在路面上跑,是因为有万有引力定律的存在。
相当于要搞清楚,汽油燃烧,热能转化成动能,推动发动机的转子转动,然后轴承带动车轮转动,而轮子与地面的摩擦力让汽车往前冲。
还要搞清楚,汽车行驶过程中,还受到了空气的阻力,所以它实际能跑的速度还需要考虑风阻。
....
等等等等这些基础知识。
而这些基础知识,几乎每一项都是由牛顿这样的伟人发现的。神经网络为什么可以完成图像分割,相信很多科学家也没有真正搞清楚。
神经网络的工作原理目前来看,还是一个黑盒,即使有很多手段可以做神经网络的可视化,但我们依然无法完全窥视到里面的原理。
就好像万有引力和力的三定律一直都在那,只不过我们还没有发现。
但这一点都不影响我们开车。
所以,对于这个问题“神经网络,到底是会用就行,还是需要搞明白其中的原理?”,我想说的是。
如果想当牛顿那种伟人,开学立派,是需要真正搞清楚神经网络的基础原理的。
如果你就想开个车,学会神经网络的基础算法,基本就够了。
神经网络的可解释性
其实这个问题想要问的,应该是神经网络的可解释性。所谓可解释性,指的是从原理上解释某个神经网络为什么可行。
可解释性在工业界、医疗界有时候非常重要,比如想要给医院推销某个AI产品,总得让医生确信这种AI的决策和评估的依据,不然很难让专家信服进而采纳该产品。(via Vincentius)
AI的可解释性,也一直是人们研究的重点,比如使用可视化方法来查看某些CNN网络学到的特征等,但个人感觉离真正有重大突破还有段距离。
关于可解释性,可以这么理解,人工智能模拟的是人的大脑。科学家一直在试图解释人脑的记忆,但却始终无法突破。
如果说哪一天,科学家真的把AI的可解释性搞清楚了,那么AI就不再是AI,而变成了一堆计算机程序。即使现在的AI也是大数据+大算力+计算机程序的产物。