Search 人工搜索

Search 人工搜索,search,machine-learning,pattern-matching,artificial-intelligence,bayesian,Search,Machine Learning,Pattern Matching,Artificial Intelligence,Bayesian,对于所有学习机器的人 我想知道的是如何通过用户偏好/点击的形式输入来搜索高维数据 假设我有一个从特征向量生成图像的程序。该程序随机抽取N个矢量,生成相应的图像,并在计算机屏幕上以网格形式显示图像。接下来,用户单击他认为“最好”的图像(在显示的N个图像中,根据某些给定的标准)。该程序现在生成另一个图像样本,向用户显示这些图像,并重复该过程 如果有这样一个系统,您会使用什么算法来找到“最佳”特征向量(以及相应的图像)。。。在我正在研究的例子中,特征向量是长度为512的二进制值,网格是3x3(每次迭代

对于所有学习机器的人

我想知道的是如何通过用户偏好/点击的形式输入来搜索高维数据

假设我有一个从特征向量生成图像的程序。该程序随机抽取N个矢量,生成相应的图像,并在计算机屏幕上以网格形式显示图像。接下来,用户单击他认为“最好”的图像(在显示的N个图像中,根据某些给定的标准)。该程序现在生成另一个图像样本,向用户显示这些图像,并重复该过程


如果有这样一个系统,您会使用什么算法来找到“最佳”特征向量(以及相应的图像)。。。在我正在研究的例子中,特征向量是长度为512的二进制值,网格是3x3(每次迭代选取9个向量)。此外,用户偏好或“最佳”是一个非常主观的衡量标准。

我可能无法正确理解您的问题。我在这里看到了对你的问题的两种解释,或者你试图在每个3x3网格中,或者从所有图像中找到最好的特征向量(图像)。我将尝试提出在这两种情况下都有效的建议

这似乎很难,因为维度很高,而且训练集可能很小。使用较小的向量会容易得多,您可以尝试应用降维算法(如PCA、自动编码器)

我想到的一种方法是进行ELO评分,即使这不是最终答案,您也可以使用它(例如,作为特征向量的另一个条目)

如果可能的话,我会首先降低维度。然后将用户单击转换为形式为
(v_1,v_2),y
,其中y表示v_1图像或v_2图像更好(因此为1或0)。然后我们可以尝试为此训练分类器。它假设在每个3x3中,最好的特征向量获胜,而其他示例不会影响决策,这只是“成对”进行的,这是非常明智的

为了找到最好的,我们可以比较所有
n^2
对,看看哪个功能向量存储得分最好。对于完全学习的模型,应该有一个比其他模型更好的模型(传递关系)



另一个想法是训练神经网络模型,将实数分配给每个特征向量。现在,对于每个训练示例(从3x3中选择最佳),我们可以得到8个比较,并查看预测的特征向量“得分”是否符合用户的偏好。对于训练错误:我们可以天真地要求神经网络使它们只相差一个。或者我们可以利用ELO,通过ELO的差异来衡量差异。这使用了整个培训集中的知识,应该会得到更好的结果

这是我目前的方法:

基本上,我目前正在做的是构建一个(它在编写时可能看起来很复杂,但实现起来相当简单)。对于每个特征的每个可能状态(512个特征*2个状态=1024),我分配一个先验值,它估计这个特定特征状态将导致用户“点击”的概率。当用户单击图像时,我会更新优先级

现在的问题是,如何生成9个样本向量的新列表以显示给用户?我意识到这是个问题。因此,这是一种易于使用的方法。对于每个向量和每个特征,我选择概率为p的状态(0或1),其中p与所选状态最佳的概率成正比(即,导致朴素贝叶斯分类器的最大可能性)。要做到这一点,我只需从Beta发行版中为状态0的该功能以及状态1的该功能取样。然后,我根据哪个样本最大来设置特性

这在某种程度上是可行的

大警告:

我现在做的主要问题是,我假设自己的特征是独立的。更重要的是,部分原因是这些特性不是独立的,随着我的迭代,分布会发生变化(部分使以前的数据无效)。最后,我使用汤普森抽样的方式可能不是最好的

现在在哪里?

我的大问题是,一旦我有了一个朴素的贝叶斯分类器,我如何消除独立性的假设?有了这个更新后的模型,我还能做汤普森取样吗

勘探与开发


汤普森取样有助于平衡勘探与开发。但由于我有9张图片可供选择,其中一些肯定会更具剥削性。这里有一个想法,我必须保留我当前的模型,但要让它更具开发性。如果我们知道一个特征被设置的概率(基于汤普森抽样),我们可以通过指数加权该概率使算法更具开发性。即:Pnew=p^w/(p^w+(1-p)^w)。。。因为我正在显示9个图像,所以我可以选择w=[1..9]。。。我们必须估计p(一个贝塔随机变量大于另一个贝塔随机变量的概率)。为此,我可以使用矩匹配来估计正态分布,并由此确定概率。这是描述的。为了进一步增强这一点,我可能会保留上一次迭代中选择的图像(仅提供8个新图像)。

因为问题空间很大,而且训练集的大小很小(正如kudkudak也指出的那样),我认为您需要利用到目前为止发现的知识。Thomson采样将平衡探索和开发,但我担心您需要多次迭代才能使其工作

代替汤姆森采样,你可以尝试翻转所选向量的n个随机位,然后在下一轮翻转n-1个位,等等。这将是一个非常贪婪的算法,很可能最终达到局部极小值,但瞄准其他任何东西似乎是牵强的(我认为)

在这个问题上与遗传算法有明显的相似之处,其中交叉