第1章 初识神经网络
本章介绍神经网络及其用途,主要讲解神经网络的基本概念,为后续章节打下基础。其主要内容包含以下几个部分:
- 人工神经元
- 权值和偏置
- 激活函数
- 神经元层
- 用Java实现神经网络
1.1 探索神经网络
首先,“神经网络”这个词会在我们脑海里创建出一种模拟人脑的景象,特别是刚刚接触到神经网络的人可能产生这样的想法。实际上,这也是正确的,大脑就是一个巨大的自然神经网络。然而,人工神经网络又是什么呢?其实“人工”是相对于自然神经网络中的“自然”而言的,一提到“人工”一词,首先映入脑海的往往是一张人工大脑或机器人的图片。我们受人脑结构的启发创造了与人脑相似的神经网络结构,所以这也可以被叫作人工智能。读到这里,之前对人工神经网络没有什么经验的读者可能认为这本书是教大家怎么创造智能系统的,例如人造大脑就可以用Java代码模拟人类大脑思考的过程,不是吗?当然,我们不会涉及像黑客帝国里人工智能机器人那样的产物,但是,我们会谈到神经网络可以实现很多不可思议的功能。充分利用Java编程语言框架的优势,为读者提供定义和创建神经网络结构的完整Java代码。
1.2 为什么要用人工神经网络
在不清楚人工神经网络的起源,包括一些人工神经网络的专业术语时,我们不宜马上展开讨论。在本书中,我们认为神经网络(neural network,NN)和人工神经网络(artificial neural network,ANN)是同一个概念,尽管神经网络的概念更加宽泛,它还包括自然神经网络。那么,到底什么是ANN?让我们来简单探索这个术语的历史。
20世纪40年代,神经生理学家Warren McCulloch和数学家Walter Pits设计了第一个包含神经系统学基础和数学操作的人工神经元的数学实现模型。在那时,很多研究的方向是弄清楚人类大脑的结构和它是否可以被模拟以及如何模拟,但是这些研究都只停留在神经系统学科领域内。McCulloch和Pits的想法是非常创新的,因为他们引入了数学的元素。另外,想想我们的大脑由数十亿计的神经元组成,每个神经元又和其他数百万神经元相连接,最终得到数万亿计的神经元连接,这是一个多么巨大的神经网络。然而,每个神经元单元是非常简单的,仅仅是作为一个能够汇总求和以及传递信号的处理器。 ...
Get 神经网络算法与Java编程 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.