使用多层感知器(MLP)对图像及其性能进行分类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用多层感知器(MLP)对图像及其性能进行分类相关的知识,希望对你有一定的参考价值。
我是机器/深度学习领域的新手!
如果我理解正确,当我使用图像作为输入时,
输入层的神经元数量=像素数(即分辨率)
通过反向传播更新权重和偏差,以实现尽可能低的错误率。
问题1。
因此,即使单个图像数据也会调整权重和偏差值(通过反向传播算法),那么如何在此MLP中添加更多相似图像可以提高性能? (我必须遗漏一些大的东西..然而对我来说,它似乎只会针对给定的单个图像进行优化,如果我输入下一个(类似的img),它将只针对下一个进行优化)
问题2。
如果我想训练我的MLP识别某些类型的图像(比如衣服/动物),每个标签(即衣服,动物)的训练集数量是多少?我知道更多的训练集会产生更好的结果,但是多少数量对于足够好的性能来说是理想的?
问题3.(继续)
有点不同的角度问题,有一个谷歌云视觉API,它将图像作为输入,并产生标签/概率作为输出。所以这个API会给我100个(比如说)标签的输出和每个标签的概率。
这种类型的数据可以用作MLP的输入来分类某些类型的图像吗? (假设我知道Google API生成的所有可能类型的标签,并将它们全部用作输入神经元)
像素值表示图像。但是,我认为这种类型的API输出结果可以表示不同角度的图像。
如果是这样,性能差异会是什么?例如,当分类10种不同类型的图像时,(像素训练模型)vs(输出标签训练模型)
我可以用“直观”的图片来帮助你。
首先,可能值得研究卷积神经网络和深度学习,并了解如何处理图像作为输入以减少权重数量。它不是每像素1重量。
另外,你对“表演”究竟是什么意思?这不是一个定义明确的问题。如果你使用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 gate,你可能会以比权重更少的输入方式逃脱,但这有点长的讨论)
注意:
使用1张图像,您可以旋转它,拉伸它,将其与其他图像混合...以创建另一个图像并增加您的输入设置。
如果你有像xor gate这样的简单输入,你可以创建像(0.3,0.7)(0.3,0.6)(0.2,0.8)......这样的输入来扩展你的训练集。
问题3:
这相当于将谷歌网络链接到您连续创建的网络,但分别培训每个部分。
基本上:您有图片 - > 10个标签输入到您的网络 - >您的分类
我看到的问题是,你可能不知道google分类的所有可能输出。但是说它们是一致的,
您的标签是否与10个标签中的一个相同?如果是这样,请使用给定的标签。如果它是不同类型的标签,您可以使用该API来简化您的网络。结果是什么或表现是什么?
这超出了我的范围。在神经网络中,虽然他们有很好的数学理论来告诉我们他们能做些什么,但许多人提出的问题,例如你所要求的问题,要么需要特殊的数学分析(或许可以获得与该类问题有关的一些见解的博士学位),或者最做的,显示实证结果。
以上是关于使用多层感知器(MLP)对图像及其性能进行分类的主要内容,如果未能解决你的问题,请参考以下文章
翻译: 4.2. 从零开始实现多层感知器MLP pytorch