Machine learning 利用多层感知器(MLP)对图像进行分类及其性能

Machine learning 利用多层感知器(MLP)对图像进行分类及其性能,machine-learning,neural-network,deep-learning,artificial-intelligence,Machine Learning,Neural Network,Deep Learning,Artificial Intelligence,我是机器/深度学习领域的新手 如果我理解正确,当我使用图像作为输入时 输入层的神经元数量=像素数量(即分辨率) 通过反向传播更新权重和偏差,以获得尽可能低的错误率 问题1. 因此,即使是一个图像数据也会调整权重和偏差的值(通过反向传播算法),那么将更多类似图像添加到此MLP中如何提高性能? (我一定错过了一些重要的东西。然而,对我来说,它似乎只会针对给定的单个图像进行优化,如果我输入下一个图像(类似img),它将只针对下一个图像进行优化) 问题2. 如果我想训练我的MLP识别某些类型的图像(比如

我是机器/深度学习领域的新手

如果我理解正确,当我使用图像作为输入时

输入层的神经元数量=像素数量(即分辨率)

通过反向传播更新权重和偏差,以获得尽可能低的错误率

问题1.

因此,即使是一个图像数据也会调整权重和偏差的值(通过反向传播算法),那么将更多类似图像添加到此MLP中如何提高性能? (我一定错过了一些重要的东西。然而,对我来说,它似乎只会针对给定的单个图像进行优化,如果我输入下一个图像(类似img),它将只针对下一个图像进行优化)

问题2.

如果我想训练我的MLP识别某些类型的图像(比如衣服/动物),那么每个标签(如衣服、动物)的训练集数量是多少?我知道更多的训练集将产生更好的结果,但有多少数字将是理想的足够好的表现

问题3。(继续)

一个有点不同角度的问题, 有一个google cloud vision API,它将图像作为输入,并生成标签/概率作为输出。这个API会给我100个标签的输出和每个标签的概率

(例如,当我放置一个在线游戏截图时,它将产生如下结果,)

这种类型的数据可以用作MLP的输入,以对特定类型的图像进行分类吗? (假设我知道Google API生成的所有可能类型的标签,并将它们全部用作输入神经元)

像素值表示图像。而且,我认为这种类型的API输出结果可以以不同的角度表示图像

如果是这样的话,性能上会有什么不同? e、 g)对10种不同类型的图像进行分类时, (像素训练模型)与(输出标签训练模型)

我可以帮助您获得“直观”图片

首先,值得一看卷积神经网络和深度学习,看看如何处理图像作为输入,以减少权重的数量。它不会是每像素1个权重

还有,你所说的“表现”到底是什么意思?这不是一个明确的问题。如果你使用一张图片,比如一只猫,你的意思是说你可以在其他图片中识别猫,还是说你能很好地接近你的猫

假设您有一个包含3个权重、1个输入和1个输出的表,并将您的网络训练为误差<0.01,期望的输出为0.5

W1    |  W2    | W3   | Output

0.1     0.2      0.05   0.5006
如果你重新训练网络,你可能会得到不同的结果

W1    |  W2    | W3   | Output

0.3     0.2      0.08   0.49983
由于权重是不同的,可以想象有几种解决方案

然后,如果您添加另一个输入,您可以想象对第一个解决方案有效的一些权重将对第二个解决方案有效

然后添加另一个输入。然后,具有2个输入的解的子集将适用于3个输入。等等

当您有足够多的不相关或有噪声的输入时,您将找不到满足错误标准的权重子集。您需要添加权重(更多自由度)或增加误差目标,或两者兼而有之

现在,当你训练一个网络时,你有了一个学习率。假设您正在进行在线培训(针对每个输入更新权重),而不是批量培训(您找到了输入批次(子集)的错误向量,并根据该错误向量更新权重,批量更新1次)

现在,假设您的学习率为0.01,权重为0.1。直觉上:

如果对于第一次输入,第一个权重的导数为5,则权重的新值为0.1-0.01*5=0.05

如果你输入下一个输入,假设导数是-5。这意味着第二个输入与第一个更改“不一致”,并尝试返回到0.01

如果第二个输入的导数为5,则表示第二个权重与第一个权重“一致”

如果您有20个输入,有些将向上拉值,有些将向下推值。在训练过程中不断循环,然后该值将接近大多数输入都同意的值,从而将权重引起的误差降至最低

关于问题2:

我的数学直觉告诉我,你肯定需要至少2*个重量数字才能对训练有任何意义,但你应该至少使重量数字增加10倍,以最少的数量,甚至可以对你的人际网络做出结论,除非你不想猜测新的东西(例如,对于xor门,您可能会得到比权重少的输入,但这是一个有点长的讨论)

注:

对于一个图像,您可以旋转、拉伸、与其他图像混合…以创建另一个图像并增加输入集

如果你有一个简单的输入,比如xor门,你可以创建(0.3,0.7)(0.3,0.6)(0.2,0.8)…来扩展你的训练集

关于问题3:

这相当于将谷歌的网络与您连续创建的网络相链接,但对每个部分分别进行培训

基本上:您有图片-->10个标签输入到您的网络-->您的分类

我看到的问题是,你可能不知道谷歌分类的所有可能结果。但是说它们是一致的

您的标签是否与10个标签中的一个相同?如果是,请使用给定的标签。如果它是不同类型的标签,您可以使用该API简化您的网络。结果如何或性能如何

这是我无法理解的。在神经网络中,虽然它们有很好的数学理论来告诉我们它们能做什么,但许多被提出的问题,比如你问的问题,要么需要进行特殊的数学分析(也许需要获得与这类问题相关的一些见解的博士学位),要么像大多数人一样,显示实证结果<