神经网络及深度学习-前言(1)

神经网络是有史以来最漂亮的编程范式之一。在传统的编程模式中,我们告诉计算机去做什么,将大的问题分解成各个单独的,精确定义的问题,这样计算机就可以较为容易地实现。与此相反,在神经网络模型中,我们不会告诉计算机怎么去解决我们的问题。取而代之的是它从观测的数据中进行学习,直接指出我们未知问题的答案。
从数据中进行自动学习听起来很吸引人。但是,截止到2006年,除了一些特定的问题,我们不知道如何去训练神经网络,超越传统的机器学习方法。2006年出现了深度神经网络技术使情况发生了改变。这个技术目前也被称为深度学习。在计算机视觉,语音识别和自然语言处理等重要方面,神经网络和深度学习得到了杰出的成绩。它们在谷歌,微软及Facebook等公司进行大规模的部署及应用。
本书的目的是帮助你掌握神经网络的基本概念,包括现代深度学习技术。在阅读和学习这本书后,你可以编写代码利用神经网络和深度学习解决复杂的模式识别问题。并且打下理论基础,利用神经网络和深度学习解决自己的问题。
注重理论
本书的基本理念是,最好能深入学习和理解神经网络和深度学习的核心原理,而不是对冗长名词和理念的模糊理解。如果你已经理解了核心思想,你可以快速理解其他知识。就像学习编程语言一样,掌握了核心语法,库及数据结构,虽然你仍然只是了解了整个语言的一小部分。许多语言拥有大量的标准库,但是新的库和数据结构可以被快速轻松的理解。
很明显,本书不是一个教程教你如何使用一些特定神经网络库。如果你主要想学习怎么使用一个神经网络的库,那么请你不要在读这本书了。寻找你希望学习的库,并且利用教程和文档去学习。但是要警惕,虽然这是直接解决了你的问题,但是如果你想了解神经网络中究竟发生了什么,如果你想以后能对神经网络发表自己的见解,仅仅去学习相关的库是远远不够的。你需要长久,持续的的理解神经网络是如何工作的。技术路线来来去去,但是你对技术的洞察力是永远不会变的。
注重实践
我们通过解决一个具体的问题来学习神经网络和深度学习的核心原理。这个具体问题是教计算机学会识别手写的数字。利用传统的方法编程,这个问题很难得到解决。然而,正如我们看到的。使用一个简单的神经网络模型就可以很好地解决问题。只需要几十行代码,并且不需要特定的库。更重要的是,我们通过多次迭代来完善程序,逐渐融入更多关于神经网络和深度学习的核心思想。
需要动手的方法意味着你需要一些编程经验来阅读本书。不过这不意味着需要是专业的程序员。我已经利用Python 2.7编写了相关代码。即使你不使用Python编程,也应该很容易理解相关内容。通过此书的学习,我们将会开发一个小型的神经网络库,你可以使用它来进行实验和加深理解。所有源代码都是可以在这下载的。一旦你完成阅读此书,或者正在阅读时,你可以轻松的获取一个功能完备的神经网络库用于实际生产中。
阅读本书需要一定的数学基础,大多数章节需要数学描述,但是只是一些基本的代数及函数,我想大部分的读者都可以轻松应对。我偶尔会用到一些较为复杂的数学,即使你不太熟悉相关部分,但是我也会提供相关的材料。第二章的数学较为复杂,这涉及到一些多元微积分和线性代数的计算。如果你发现这部分对你的确有困难,你可以直接跳到本章的主要结果及总结部分。无论如何,没有必要一开始就担心。
对于一本书来说,同事重视理论及实践是非常罕见的。但是一旦你掌握了神经网络的基本思想,我相信你会学得非常好。我们开发有鲜活的代码,而不仅仅是抽象理论。这些代码你可以进一步探索和开发。这样你理解理论和实践的基本原理,并且可以进一步扩展你的知识。
请多多点赞和评论,谢谢~

你可能感兴趣的:(人工智能,深度学习,图像处理)