神经网络能否学习功能?以及如何为模式识别选择更好的特征描述符?

时间:2014-08-08 20:14:08

标签: matlab image-processing neural-network feature-extraction webots

我正在开发webots,这是一个用于建模,编程和模拟移动机器人的环境。基本上我有一个带VGA摄像头的小型机器人,它在小乐高迷宫的白色墙壁上寻找简单的蓝色图案并相应地移动

我在这里使用的方法是

  • 从网站获取图案的图像并将其保存在某个位置 在PC。
  • 检测蓝色图案,形成包围图案的正方形 至少有2个边缘的图案是边界的一部分 广场。
  • 将其大小调整为7x7矩阵(使用最近邻居 插值算法)

  • 网络的输入只是每个7x7图像的红色像素强度(当我通过红色滤镜看蓝色像素时,它看起来是黑色的)。提取每个像素的强度,然后将7×7矩阵转换为1D向量,即1x49,这是我对神经网络的输入。 (我选择这个特性作为我的输入,因为使用C和webots访问这些信息的难度相对较小。)

我使用MATLAB进行这种离线训练方法,我使用较慢的学习率(0.06)来确保参数收敛并在大型和小型数据集上分别进行测试(分别为1189和346)。在我尝试过的无数次中,网络无法对模式进行分类。(它表示该模式属于所有4个类!!!!)。程序没有任何问题,因为我在matlab的simpleclass_dataset上测试它并且它几乎完美地工作

由于数据真的很差,神经网络是否有可能无法学习该功能? (由于数据不佳,我的意思是对应于一个类的一个样本的数据点非常接近属于不同类或另一类的另一个样本)。或者由于非常差的特征描述符,神经网络会失败吗?

任何人都可以提出一种更简单的方法从图像中提取特征(我现在转向MATLAB,因为我现在只关注网络中的模拟而不是真正的机器人)。我可以选择哪种功能?图案非常简单(L,倒L,其反射版本是4种模式)

1 个答案:

答案 0 :(得分:0)

神经网络 CAN 无法学习功能;这通常是由于使用太简单的网络拓扑来模拟必要的功能。这种情况的一个典型例子是尝试学习XOR function using a perceptron classifier,尽管它有时甚至可能发生在多层神经网络中;尤其适用于图像识别等复杂任务。请参阅我的previous answer以获取有关如何选择神经网络参数的粗略指南(如果需要,请忽略卷积内容,但如果您仍有问题,我会强烈建议您查看convolutional neural networks。)

这是一个 possiblity ,类之间的可分离性太小,尽管我怀疑这是你的当前功能的情况。您的网络是否需要允许图像同时进行四种分类?如果没有,那么也许您可以将输入分类为最高激活而非全部具有高激活率的输出。