- PyBrain 教程
- PyBrain - 主页
- PyBrain - 概述
- PyBrain - 环境设置
- PyBrain - PyBrain 网络简介
- PyBrain - 使用网络
- PyBrain - 使用数据集
- PyBrain - 数据集类型
- PyBrain - 导入数据集的数据
- PyBrain - 网络训练数据集
- PyBrain - 测试网络
- 使用前馈网络
- PyBrain - 使用循环网络
- 使用优化算法训练网络
- PyBrain - 层
- PyBrain - 连接
- PyBrain - 强化学习模块
- PyBrain - API 和工具
- PyBrain - 示例
- PyBrain 有用资源
- PyBrain - 快速指南
- PyBrain - 有用的资源
- PyBrain - 讨论
PyBrain - 概述
Pybrain 是一个使用 python 实现的机器学习开源库。该库为您提供了一些易于使用的网络训练算法、数据集、训练器来训练和测试网络。
Pybrain 官方文档的定义如下 -
PyBrain 是 Python 的模块化机器学习库。其目标是为机器学习任务提供灵活、易于使用且功能强大的算法,以及用于测试和比较算法的各种预定义环境。
PyBrain 是基于 Python 的强化学习、人工智能和神经网络库的缩写。事实上,我们首先想出了这个名字,然后对这个具有描述性的“Backronym”进行了逆向工程。
Pybrain的特点
以下是 Pybrain 的功能 -
网络
网络由模块组成,它们通过连接进行连接。Pybrain 支持前馈网络、循环网络等神经网络。
前馈网络是一种神经网络,节点之间的信息向前移动,永远不会向后传播。前馈网络是人工神经网络中第一个也是最简单的网络。
信息从输入节点传递到隐藏节点,然后传递到输出节点。
循环网络与前馈网络类似;唯一的区别是它必须记住每一步的数据。每个步骤的历史记录都必须保存。
数据集
数据集是用于在网络上进行测试、验证和训练的数据。要使用的数据集类型取决于我们要使用机器学习执行的任务。Pybrain 支持的最常用的数据集是SupervisedDataSet和ClassificationDataSet。
SupervisedDataSet - 它由input和target字段组成。它是最简单的数据集形式,主要用于监督学习任务。
ClassificationDataSet - 主要用于处理分类问题。它接受输入、目标字段以及一个称为“类”的额外字段,它是给定目标的自动备份。例如,输出将为 1 或 0,或者输出将与基于给定输入的值分组在一起,即,它将属于一个特定类别。
训练师
当我们创建一个网络(即神经网络)时,它将根据给定的训练数据进行训练。现在网络是否训练正确将取决于在该网络上测试的测试数据的预测。Pybrain Training 中最重要的概念是 BackpropTrainer 和 TrainUntilConvergence 的使用。
BackpropTrainer - 它是一个训练器,通过反向传播错误(随时间)根据监督或 ClassificationDataSet 数据集(可能是顺序的)来训练模块的参数。
TrainUntilConvergence - 用于在数据集上训练模块直到收敛。
工具
Pybrain 提供了工具模块,可以通过导入包来帮助构建网络:pybrain.tools.shortcuts.buildNetwork
可视化
测试数据无法使用 pybrain 可视化。但 Pybrain 可以与 Mathplotlib、pyplot 等其他框架一起使用来可视化数据。
Pybrain的优点
Pybrain 的优点是 -
Pybrain 是一个用于学习机器学习的开源免费库。对于任何对机器学习感兴趣的新手来说,这都是一个良好的开始。
Pybrain 使用 python 来实现它,与 Java/C++ 等语言相比,它的开发速度更快。
Pybrain 可以轻松地与其他 Python 库配合使用来可视化数据。
Pybrain 为前馈网络、循环网络、神经网络等流行网络提供支持。
在 Pybrain 中使用 .csv 加载数据集非常简单。它还允许使用来自另一个库的数据集。
使用 Pybrain 训练器可以轻松进行数据训练和测试。
Pybrain 的局限性
Pybrain 对于所面临的任何问题提供的帮助较少。stackoverflow和Google Group上有一些疑问没有得到解答。
Pybrain的工作流程
根据 Pybrain 文档,机器学习的流程如下图所示 -
一开始,我们有原始数据,经过预处理后可以在 Pybrain 中使用。
Pybrain 的流程从数据集开始,数据集分为训练数据和测试数据。
创建网络,并将数据集和网络提供给训练器。
训练器在网络上训练数据,并将输出分类为可可视化的训练误差和验证误差。
可以验证测试数据以查看输出是否与训练数据匹配。
术语
使用 Pybrain 进行机器学习时需要考虑一些重要术语。它们如下 -
总误差- 指网络训练后显示的误差。如果误差在每次迭代中不断变化,则意味着它仍然需要时间来稳定,直到它开始在迭代之间显示恒定的误差。一旦开始显示恒定的错误数,就意味着网络已经收敛,并且无论应用任何额外的训练,网络都将保持不变。
训练数据- 用于训练 Pybrain 网络的数据。
测试数据- 用于测试经过训练的 Pybrain 网络的数据。
训练器- 当我们创建一个网络(即神经网络)时,它将根据给定的训练数据进行训练。现在网络是否训练正确将取决于在该网络上测试的测试数据的预测。Pybrain Training 中最重要的概念是 BackpropTrainer 和 TrainUntilConvergence 的使用。
BackpropTrainer - 它是一个训练器,通过反向传播错误(随时间)根据监督或 ClassificationDataSet 数据集(可能是顺序的)来训练模块的参数。
TrainUntilConvergence - 用于在数据集上训练模块直到收敛。
层- 层基本上是一组用于网络隐藏层的函数。
连接- 连接的工作原理类似于层;唯一的区别是它将数据从网络中的一个节点转移到另一个节点。
模块- 模块是由输入和输出缓冲区组成的网络。
监督学习- 在这种情况下,我们有输入和输出,我们可以利用算法将输入与输出映射。该算法根据给定的训练数据进行学习并对其进行迭代,当算法预测正确的数据时,迭代过程停止。
无监督- 在这种情况下,我们有输入但不知道输出。无监督学习的作用是利用给定的数据尽可能多地进行训练。