第2章 神经网络是如何学习的

本章将展示神经网络从数据中获取知识而执行的学习过程。我们将介绍训练、测试和验证等概念,并且展示如何用Java实现它们。本章还会演示一些方法,这些方法用来评估某个神经网络在学习方面的表现以及学习算法的参数。本章涉及以下概念:

  • 学习过程
  • 学习算法
  • 学习类型
    • 监督
    • 无监督
  • 训练、测试和验证
  • 误差测量
  • 泛化

神经网络真正令人惊叹的是其从周围环境中学习的能力,就像那些有天赋的人能做的一样。我们人类通过观察和重复练习来体验学习过程,直到某些任务或者概念被完全掌握。从生理学的角度来说,在人脑中的学习过程是对节点(神经元)之间的神经连接进行重新设置,这个过程导致了一个新思维定式的产生。

神经网络的连接特性使得神经网络将学习过程分布到整个结构,这个特性使得这种结构可以足够灵活来学习各种各样的知识。与那些只能执行预先设定好模式的任务的数字计算机相反,神经系统能够根据预设的期望标准来提升和执行新任务。换句话说,神经网络不需要预先设定模式;它们能自己学习模式。

考虑到每个需要解决的任务可能有很多理论上可行的解,神经网络的学习过程旨在寻找一种能够生成满意结果的最优解。像人工神经网络这样的结构被鼓励使用,这是由于它们可以严格从输入刺激中获取任意类型的知识,也就是说,和数据相关的任务或问题。首先,人工神经网络会生成一个随机结果和误差,然后根据这个误差,其参数会进行调整。

提示

我们可以认为人工神经网络的参数(权值)是解的一部分。假设单个解表示在解的多维空间中的一个点。每个解产生一个误差度量,它告诉我们这个解与最优解的差距。在每次迭代中,学习算法都会寻找一个解,这个解产生的误差更小并且由此更加接近于最优解。 ...

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.