1

我有一个任意大小的文本文件来模拟我们称之为雷达的二维输出。在这个输出中,我希望能够识别已知的模式。我们称之为目标检测。

目标可能看起来像这样,每个 X 是一个点亮的像素,这意味着雷达检测到可能是敌人一部分的东西,每个空白都是一个关闭的像素。

样本图

并且雷达数据以引入“干扰”的形式出现,即图形不会将所有像素都打开。所以我正在考虑在检测中也包含某种概率。

我从来没有做过类似的事情,我正在寻找一般建议。我正在尝试不同的方法,我相信我会以某种方式解决它,但我真的很想有一些关于这种模式匹配的指南、阅读资源或类似的东西,因为我认为它非常有趣但没有以前有机会解决这样的问题。

有任何想法吗?

4

1 回答 1

1

感知器采用一组输入的加权线性组合,并输出 1 或 0,具体取决于结果是正数还是负数。可以说,人工智能是通过权重来实现的,这些权重决定了数据的分割。一侧结果为阳性,另一侧为阴性。这种分割可以被认为是图上的一条线。例如,如果权重给出一条线 y=x,则输入 x = 2, y = 4 为正,输入 x = -1, y = 1 为负。通过向系统提供正负输入集并调整权重直到训练集的输出与所需的输出匹配,来训练权重。

输入的数量由像素数给出,每个像素都有自己的输入和相关的权重,因此权重是一个与图像大小相同的数组。

对于您的示例,您将需要一组带有预期噪声的敌人目标的图像。这些所需的输出将是正的,因此将所有图像呈现给感知器并检查输出。如果输出不是 1,则调整权重。接下来显示一个非敌人图像并检查输出是否为 0。如果没有调整权重。继续显示正图像并检查输出 1,负图像检查 0,调整权重直到得到输出。

最初,权重被设置为小的随机数。如果实际输出与期望的输出不匹配,它不会开始,请通过以下等式调整每个权重:

w(t+1) = w(t) + a(dy)x

因此,新权重是旧权重加上 alpha 乘以所需输出减去实际结果乘以输入,(对于该像素)

Alpha可以随着训练的进行而改变。一开始它很大,所以收敛很快。随着时间的推移,最好减少数量以减慢收敛速度,使其更加准确。Alpha,学习率应该是0

所以在Java中:

创建一个权重数组并将它们初始化为小的随机数。

创建一组输入图像和相应的所需输出。

选择一个随机图像并将其呈现给系统。- 将输入乘以权重,将它们相加并找到符号。

根据期望输出检查输出。如果它们相同,请选择另一个输入图像。如果存在差异,则通过方程式调整权重,然后选择另一个输入图像。

继续显示输入,直到总误差低于某个阈值。

当系统被训练时,可以将看不见的图像呈现给系统。如果它是敌方目标,它将输出 1,如果不是 0。

所有细节都可以在网上找到,维基页面,有更多的解释,但希望它有所帮助。

于 2012-09-30T20:07:18.467 回答