神经网络与深度学习(序)

来源:互联网 发布:tensorflow读音 编辑:程序博客网 时间:2024/06/05 15:44

这一系列是翻译和备注在线书籍: http://neuralnetworksanddeeplearning.com/

Neural Networks and Deep Learning is a free online book. The book will teach you about:
《神经网络与深度学习》是一本免费的在线书籍,这本书将告诉你:

  • Neural networks, a beautiful biologically-inspired programming paradigm which enables a computer to learn from observational data
  • 神经网络, 一种优美的深受生物学启发的编程范式。它允许计算机从观测数据中进行学习。
  • Deep learning, a powerful set of techniques for learning in neural networks
  • 深度学习,神经网络机器学习中的一个强有力的集合。

Neural networks and deep learning currently provide the best solutions to many problems in image recognition, speech recognition, and natural language processing. This book will teach you many of the core concepts behind neural networks and deep learning.
神经网络与深度学习现在为解决许多问题提供了最佳解决方案,例如图像识别、语音识别和自然语言分析。这本书将告诉你许多神经网络与深度学习后面的核心概念。

About 序言

Neural networks are one of the most beautiful programming paradigms ever invented. In the conventional approach to programming, we tell the computer what to do, breaking big problems up into many small, precisely defined tasks that the computer can easily perform. By contrast, in a neural network we don’t tell the computer how to solve our problem. Instead, it learns from observational data, figuring out its own solution to the problem at hand.
神经网络是已发明的最优美的编程范式之一。在传统的编程中,我们告诉计算机如何去工作,例如将大的问题分解成许多小问题,精确的定义计算机能轻易执行的任务。相比之下,在神经网络中我们并不告诉计算机如何去解决我们的问题。相反,计算机从观测数据中自己学习,逐渐得出它自己对问题的解决方案。

Automatically learning from data sounds promising. However, until 2006 we didn’t know how to train neural networks to surpass more traditional approaches, except for a few specialized problems. What changed in 2006 was the discovery of techniques for learning in so-called deep neural networks. These techniques are now known as deep learning. They’ve been developed further, and today deep neural networks and deep learning achieve outstanding performance on many important problems in computer vision, speech recognition, and natural language processing. They’re being deployed on a large scale by companies such as Google, Microsoft, and Facebook.
自动从数据中学习听起来很有前途。但是,直到2006年我们在很少特殊问题之外并不知道如何去训练神经网络来超过许多传统方法。2006年一件事情改变这种状况,那就是我们发现一种名为深度神经网络的机器学习技术。这就是现在广为流行的深度学习。他们还在向前发展,现在深度神经网络与深度学习在许多重要领域内取得了引人注目的效果,例如机器视觉,语音识别和自然语言处理。大量的公司例如谷歌,微软和Facebook,在使用它们。

The purpose of this book is to help you master the core concepts of neural networks, including modern techniques for deep learning. After working through the book you will have written code that uses neural networks and deep learning to solve complex pattern recognition problems. And you will have a foundation to use neural networks and deep learning to attack problems of your own devising.
这本书的目标是帮助你掌握神经网络的核心概念,包括深度学习的前沿技术。在完成本书的学习后,你将可以编写代码来使用神经网络和深度学习来解决复杂的模式识别问题。并且你将拥有使用神经网络和深度学习来解决你自己发现的问题的基础。

A principle-oriented approach 原理方面

One conviction underlying the book is that it’s better to obtain a solid understanding of the core principles of neural networks and deep learning, rather than a hazy understanding of a long laundry list of ideas. If you’ve understood the core ideas well, you can rapidly understand other new material. In programming language terms, think of it as mastering the core syntax, libraries and data structures of a new language. You may still only “know” a tiny fraction of the total language - many languages have enormous standard libraries - but new libraries and data structures can be understood quickly and easily.
本书的一个基本的认定是获得一个对神经网络和深度学习核心原则一致的理解好过对一长串概念的模糊理解。如果你很好的理解了核心概念,你就可以很快的理解其他新发展。就像编程语言方面,掌握新语言的核心语法、依赖库和数据结构。你也许只“了解”整个语言的一点点——许多语言拥有庞大的标准库——但是你可以很快很容易的掌握新的依赖库和数据结构。

This means the book is emphatically not a tutorial in how to use some particular neural network library. If you mostly want to learn your way around a library, don’t read this book! Find the library you wish to learn, and work through the tutorials and documentation. But be warned. While this has an immediate problem-solving payoff, if you want to understand what’s really going on in neural networks, if you want insights that will still be relevant years from now, then it’s not enough just to learn some hot library. You need to understand the durable, lasting insights underlying how neural networks work. Technologies come and technologies go, but insight is forever.
这就意味着本书明显不是一本介绍如何使用某些特定神经网络库的指南。如果你就是想围绕特定的库来学习,请不要阅读这本书!找到你想学的库,围绕它的指南和文档去工作吧。但是要强调的是,尽管这么做有直接的解决问题的收益,但是如果你想了解神经网络中是如何运算,如果你想洞察从现在开始什么是依然重要的,你就必须拥有对此长期的持续的洞察,这依赖于理解神经网络是如何工作的。技术是不断变化的,但洞察是永恒的。

A hands-on approach 实操方面

We’ll learn the core principles behind neural networks and deep learning by attacking a concrete problem: the problem of teaching a computer to recognize handwritten digits. This problem is extremely difficult to solve using the conventional approach to programming. And yet, as we’ll see, it can be solved pretty well using a simple neural network, with just a few tens of lines of code, and no special libraries. What’s more, we’ll improve the program through many iterations, gradually incorporating more and more of the core ideas about neural networks and deep learning.
我们通过解决一个具体的问题:交计算机识别手写数字,来学习神经网络与深度学习后面的核心理念。这个问题用传统方法来解决是非常难的。可是,我们可以看见使用简单神经网络可以是否漂亮的解决它,只需要小几十行代码而且无需特殊的依赖库。更进一步,我们将通过多次迭代来提升这个程序的效果,逐渐触及越来越多神经网络与深度学习的核心概念。

This hands-on approach means that you’ll need some programming experience to read the book. But you don’t need to be a professional programmer. I’ve written the code in Python (version 2.7), which, even if you don’t program in Python, should be easy to understand with just a little effort. Through the course of the book we will develop a little neural network library, which you can use to experiment and to build understanding. All the code is available for download here. Once you’ve finished the book, or as you read it, you can easily pick up one of the more feature-complete neural network libraries intended for use in production.
这个动手实践的方法意味着你需要一些编程经验来阅读本书。不过你不需要是一个专业的程序员。我用Python(version 2.7)编写的代码,即使你不会用Python编程,通过小小的努力你也应该很容易理解。通过本书的课程我们将开发一个小的神经网络库,你可以使用它来做实验和更好理解课程。所有的代码都可以在这里下载。一旦你读完本书,或者正在阅读本书,你可以很容易的从众多版本的神经网络库中为生产选择一个。

On a related note, the mathematical requirements to read the book are modest. There is some mathematics in most chapters, but it’s usually just elementary algebra and plots of functions, which I expect most readers will be okay with. I occasionally use more advanced mathematics, but have structured the material so you can follow even if some mathematical details elude you. The one chapter which uses heavier mathematics extensively is Chapter 2, which requires a little multivariable calculus and linear algebra. If those aren’t familiar, I begin Chapter 2 with a discussion of how to navigate the mathematics. If you’re finding it really heavy going, you can simply skip to the summary of the chapter’s main results. In any case, there’s no need to worry about this at the outset.
相关的要求,阅读本书对数学的要求是适度的。在大多数章节有数学要求,不过通常只是初等代数和函数图象,我希望大多数读者对这些要求没有问题。我偶尔会用到更高等的数学,不过也组织好了资料,这样即使你记不起来某些数学细节也可以跟得上。第二章大规模的使用了更高等的数学,它需要多变量微积分和线性代数。如果对这些不熟悉,在第二章的开始我讨论了如何操纵数学。如果你发现它真的很难,你可以简单的忽略它们,只看对章节结论的汇总。不论怎样,在开始的时候没必要担心这个。

It’s rare for a book to aim to be both principle-oriented and hands-on. But I believe you’ll learn best if we build out the fundamental ideas of neural networks. We’ll develop living code, not just abstract theory, code which you can explore and extend. This way you’ll understand the fundamentals, both in theory and practice, and be well set to add further to your knowledge.
很少有书能兼顾原理方面和实操方面。不过我相信如果我们吃透了神经网络的基本概念你可以学习的很好。我们将开发实际代码,你可以分发和扩展它们,而不仅仅是抽象的理论。这意味着你将理解基本原则,不论是理论上的还是实践上的,同时可以很好的加入你自己的知识。

0 0