基于C#的机器学习--深层信念网络 (3)

为了展示深度信念网络和RBMs,我们将使用Mattia Fagerlund编写的出色的开源软件SharpRBM。这个软件对开源社区做出了不可思议的贡献,我毫不怀疑您将花费数小时甚至数天的时间来使用它。这个软件附带了一些令人难以置信的演示。在本章中,我们将使用字母分类演示。

下面的截图是我们的深度信念测试应用程序。有没有想过电脑睡觉时会梦到什么?

基于C#的机器学习--深层信念网络

 程序的左上角是我们指定要训练的图层的区域。我们有三个隐藏层,它们都需要在测试之前进行适当的训练。我们可以一次训练一层,从第一层开始。训练得越多,你的系统就会越好:

基于C#的机器学习--深层信念网络

训练选项之后的下一部分是我们的进展。当我们在训练时,所有相关的信息,如生成,重构误差,检测器误差,学习率,都显示在这里:

基于C#的机器学习--深层信念网络

下一个是我们的特性检测器的绘图,如果选中Draw复选框,它将在整个训练过程中更新自己:

基于C#的机器学习--深层信念网络

当开始训练一个层时,我们将注意到重构和特征检测器基本上是空的。他们会随着我们的训练不断完善自己。记住,我们正在重建我们已经知道是真实的东西!随着训练的继续,重构的数字变得越来越清晰,我们的特征检测器也越来越清晰:

基于C#的机器学习--深层信念网络

下面是训练期间应用程序的快照。如图所示,这是在第31代,重建的数字是非常明确的。

它们仍然不完整或不正确,但可以看到我们取得了多大的进步:

基于C#的机器学习--深层信念网络

电脑在做梦?

电脑做梦时会梦到什么?对我们来说,直觉是一个特征,它允许我们看到计算机在重构阶段在想什么。当程序试图重建我们的数字时,特征检测器本身将在整个过程中以各种形式出现。我们在dream window中显示的就是这些形式(红色圆圈表示):

基于C#的机器学习--深层信念网络

我们花了很多时间查看应用程序的屏幕截图。我想是时候看看代码了。让我们先看看如何创建DeepBeliefNetwork对象本身:

DeepBeliefNetwork = new DeepBeliefNetwork(28 * 29, 500, 500, 1000);

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zygffz.html