了解感知器

莎拉

我刚开始学习机器学习课程,然后我们学习了Perceptrons。对于家庭作业,我们应该:“选择适当的二维(平面)训练和测试数据集。使用10个数据点进行训练,使用5个数据点进行测试。”然后,我们应该编写一个将使用感知器算法并输出的程序:

  • 关于训练数据点是否可线性分离的评论
  • 关于测试点是否可线性分离的评论
  • 您最初对权重和常数的选择
  • 最终解方程(决策边界)
  • 您的算法进行的权重更新总数
  • 训练集上进行的迭代总数
  • 训练数据和测试数据上的最终错误分类错误(如果有)

我已经读过我的书的第一章了好几次,但是我仍然无法完全理解感知器。

我知道如果一个点被错误分类,您会更改权重,直到不再错误分类为止,我想我很难理解的是

  1. 我将测试数据用于什么?它与培训数据有何关系?
  2. 我如何知道某个点是否被错误分类?
  3. 如何选择测试点,训练点,阈值或偏差?

如果我的书没有提供很好的例子,我很难知道如何组成其中的一个。如您所知,我很迷路,我们将不胜感激。

运行DOS

我将测试数据用于什么?它与培训数据有何关系?

想想一个感知器,还是个小孩子。您想教一个孩子如何区分苹果和橙子。您向它展示5个不同的苹果(全都是红色/黄色)和5个橙子(各有不同的形状),同时告诉它每次旋转时看到的内容(“这是一个苹果。这是一个橙色)。假设孩子有完美的记忆力,如果您向他展示足够的示例,它将学会了解是什么使一个苹果变成了一个苹果,一个橙色变成了一个橙色。他最终将开始使用元特征(例如形状),而无需您实际告诉他。您向他展示了所有示例,您从头开始,这被称为新纪元

当您想测试孩子的知识时会发生什么?你给它展示一些新东西一个绿色的苹果(不仅是黄色/红色),一个葡萄柚,也许是一个西瓜。为什么不向孩子显示与训练期间完全相同的数据?因为孩子有完美的记忆力,所以只会告诉您您告诉他的内容。你不会看到它有多好推广从已知看不见的数据,除非你有不同的训练数据,你从来没有在训练中表现出了他。如果孩子在测试数据上的表现很糟糕,但在训练数据上的表现却是100%,那么您会知道他没有学到任何东西-只是重复他在训练中被告知的内容-您训练了他的时间太长了,他只记得您的例子不知道是什么使得苹果变成苹果,因为您给了他太多的细节-这被称为过拟合为了防止您的感知器仅(!)识别训练数据,您必须在合理的时间停止训练,并在训练和测试集的大小之间找到良好的平衡。

我如何知道某个点是否被错误分类?

如果与实际情况有所不同。假设一个苹果的类别为0,橙色的类别为1(在这里您应该开始阅读“单层/多层感知器”以及多个感知器的神经网络是如何工作的)。网络将接受您的输入。它的编码方式与此无关,假设输入是字符串“ apple”。然后,您的训练集为{(apple1,0),(apple2,0),(apple3,0),(orange1,1),(orange2,1).....}。由于您事先知道该类,因此网络将为输入“ apple1”输出1或0。如果输出为1,则执行(targetValue-actualValue)=(1-0)=1。在这种情况下,1表示网络给出了错误的输出。将其与增量规则进行比较,您将了解到,这个小方程式是较大更新方程式的一部分。如果您得到1,则将执行权重更新。

如何选择测试点,训练点,阈值或偏差?

实际上,偏差和阈值本身并不是“选择”的。像使用其他任何单元一样,使用简单的“技巧”来训练偏差,即使用偏差作为值为1的附加输入单元-这意味着实际偏差值将以该附加单元的权重进行编码,我们使用的算法将确保该偏差自动为我们学习偏见。

阈值是预先确定的,具体取决于您的激活功能。对于简单的感知器,分类将如下所示:

感知器

由于我们使用二进制输出(介于0和1之间),因此将阈值设置为0.5是一个很好的开始,因为它正好在[0,1]范围的中间。

现在是关于选择训练和测试点的最后一个问题:这非常困难,您需要凭经验来做到这一点。在这里,您将从实现简单的逻辑功能(如AND,OR,XOR等)开始。这很简单。您将所有内容放入训练集中,并使用与训练集中相同的值进行测试(由于x XOR y等,因此只有4种可能的输入00、10、01、11)。对于图像,音频等复杂的数据,您必须尝试调整数据和功能,直到您觉得网络可以按需使用它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章