心中有数

刘雪峰
推荐序 花时间认真阅读雪峰这本书后,我学到很多,领悟不少。算法与人生都是艺术,算法相当于计算机程序的灵魂,而人生则更深邃。成功的设计需要逻辑思维、经验和认知等,其中创意尤其不可或缺。读了雪峰这本书,你对此一定会有更深的感受。 计算机科学和生活的关系之密切,体现为计算思维为我们解决生活中的种种问题提供了思考途径与解决方法,同时计算思维也从生活的智慧中借鉴了很多有益的思想和启示。所以,算法与人生可以互相借鉴。在这本书中,雪峰用他丰富的研究经验和对生活的深刻理解,将算法与生活联系起来,让我们既可以用生活中的知识和经验理解算法,也可以用算法解释人生。 一方面,我们会感觉到,积累的生活经验越多,我们想学习计算机知识就越容易。平时我在给学生上课或进行指导时,喜欢用课题背后人与物在生活中的故事引出进而发展出的知识和技术。学生听了这些故事,便会了解相关知识的创意与演化,或者技术发明的背景和动机,从而加深相应的理解,而在雪峰的书中,有很多这样的故事。 另一方面,算法的奇妙之处在于其可以帮助我们认识与解决生活中的问题。雪峰的书给我们很多这样的启示,也会使我们产生更多联想,比如机器学习和生活的关联。人工神经网络其实也是一种算法,它从信息处理角度对人脑神经元网络进行抽象处理。人工神经网络的运算模型对生活的提示也反映在方方面面。其一,在神经网络训练中,为节点间的连接赋予权重并改变加权连接,可以改变网络的输出。在生活中,如果我们要对某件事有更强的掌控力,就要对其给予更高的权重。其二,与反向传播神经网络训练算法类似,即我们要想改变或养成一个新习惯,就要改变环境,消除或加强对习惯行为的提示,以抑制或刺激大脑中的反馈回路。其三,就像我们登上山峰后,想要以最快的速度回到山脚下的目的地,深度学习中的梯度下降法会告诉我们,在事先无法看清所有路径时,如何持续评估并找出哪条路连着最陡的下坡,使我们在最短时间内到达山…