本博客将教你:

1. 神经网络,一个美丽的生物启发编程范式,使计算机能够从观测数据中学习。

2. 深度学习,一套强大的神经网络学习技术。

    目前,神经网络和深度学习为图像识别、语音识别和自然语言处理中的许多问题提供了最好的解决方案。这本书将教你神经网络和深度学习背后的许多核心概念。

     神经网络是有史以来最美丽的编程范例之一。在传统的编程方法中,我们告诉计算机该做什么,将大问题分解成许多小的、精确定义的任务,计算机可以轻松地执行这些任务。相比之下,在神经网络中,我们不告诉计算机如何解决我们的问题。相反,它从观测数据中学习,找出自己解决手头问题的方法。

     从数据中自动学习听起来很有希望。然而,直到2006年我们才知道如何训练神经网络来超越更传统的方法,除了一些特殊的问题。2006年发生变化的是在所谓的深层神经网络中发现了学习技术。这些技术现在被称为深度学习。它们得到了进一步的发展,如今深度神经网络和深度学习在计算机视觉、语音识别和自然语言处理的许多重要问题上取得了突出的成绩。谷歌、微软、Facebook等公司正在大规模部署它们。

       本专栏系列博客的目的是帮助你掌握神经网络的核心概念,包括用于深度学习的现代技术。在读完之后,你将编写使用神经网络和深度学习来解决复杂模式识别问题的代码。你将有一个基础使用神经网络和深度学习来测试你自己设计的问题。

一、以原则为导向的方法

   最好是对神经网络和深度学习的核心原理有一个坚实的理解,而不是对一长串杂乱无章的想法有一个模糊的理解。如果你已经很好地理解了核心思想,你就能很快地理解其他新材料。用编程语言的术语来说,可以认为它掌握了一种新语言的核心语法、库和数据结构。您可能仍然只“知道”整个语言的一小部分—许多语言都有大量的标准库—但新的库和数据结构可以快速而轻松地理解。

    如果你只是想如何使用某些特定的神经网络库的教程。那就别读这文章!你只需找到您想要学习的库,并完成教程和文档就行了。虽然这可以解决问题,直接看到回报,但如果你想了解神经网络中到底发生了什么,如果你想获得几年后仍然相关的见解,那么仅仅学习一些热门的库是不够的。你需要了解神经网络工作原理背后持久的洞察力。技术来了技术去了,但万变不离其宗。

二、一种亲自动手的方法

      我将学习神经网络和深度学习背后的核心原理,通过解决一个具体问题:教计算机识别手写数字的问题。用传统的编程方法很难解决这个问题。然而,使用一个简单的神经网络,只有几十行代码,没有特殊的库可以很好地解决。更重要的是,我们可以通过多次迭代来改进程序,逐步融入越来越多关于神经网络和深度学习的核心思想。

     这种实践方法意味着您需要一些编程经验来阅读这本书。但是你不需要成为一个专业的程序员。我已经用Python(版本2.7)编写了代码,即使不使用Python编程,也应该很容易理解。通过本书的课程,我们将开发一个小的神经网络库,你可以用它来进行实验和建立理解。所有的代码都可以下载。一旦你完成了这本书,或者当你阅读它的时候,你可以很容易地拿起一个功能更完整的神经网络库,用于生产应用。

     另一方面,阅读这本博客的数学要求并不高。大多数章节都有一些数学知识,但通常只是初等代数和函数图,我希望大多数读者都能接受。我偶尔会用到更多的高等数学,但我已经组织了材料,以便你可以遵循,即使一些数学细节你逃避。第二章是广泛使用重数学的一章,它需要一些多元微积分和线性代数。如果这些不熟悉,我将在第二章开始讨论如何驾驭数学。如果你觉得它很沉重,你可以直接跳到本章主要结果的摘要。无论如何,一开始就不必担心这个问题。

      我们的目标是原则导向和动手,这是罕见的。但我相信,如果我们建立起神经网络的基本思想,你会学到最好的东西。我们将开发活的代码,而不仅仅是抽象的理论,您可以探索和扩展的代码。通过这种方式,你将了解基础知识,包括理论和实践,并准备好进一步增加你的知识!

 

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐