我应该在 "better of two" 比较中使用哪种机器学习模型
Which machine learning model should I use on "better of two" comparisons
我的问题的数学描述可以表达如下:
给定函数 Y = f(X),其中 X 是输入,Y 是输出。
X的总共N个点被采样,记为X[0], X[1], X[2] ... X[N-1 ] 和对应的 Y[0], Y[1], ... Y[N-1]。问题是,我们不知道每个 X 的 Y 的确切值,但是某些 之间的比较Y。已知一个大的二进制NxN矩阵:
[[a00, a01, a02, ...]
[a10, a11, a12, ...]
...
]
a[i,j] = 1 表示 Y[i]>Y[j], a[i, j] = 0表示Y[i]和Y[j]不做比较。
我应该在矩阵上拟合什么机器学习模型,以便它可以给出两个任意输入的比较结果X。
或者我可以给出一个更具体的问题:函数的形式Y = f(X, a)已经知道了,其中a 是要优化的系数。怎样才能找到最优的a,从而满足尽可能多的矩阵比较关系
现实世界的问题是这样的:
我正在开发一个用于科学激光设备的焦点分析仪(它只是一个专用相机)的图像分析程序。激光由离轴抛物面镜(您可以将其视为凸透镜)聚焦,这需要进行大量微调才能获得更好的焦点。反射镜的位置和转动可由步进电机控制(共6轴),焦斑可在焦斑分析仪上观察。目前所有的调校都需要手动完成,最终目标是开发一个自动闭环调校程序。
我的程序目前的问题是确定焦斑的质量。相机给出焦点的 2d 图像,但定义质量函数并不简单,因为要考虑焦点的方面太多(腰部半径、峰值强度、椭圆度等)。通常手动的工作流程是稍微改变镜子的一个轴,看看焦斑是否比前一个有所改善。这几天要重复很多次,所以做了很多比较。这些比较是由人完成的,我想训练我的程序能够像人一样进行比较。调谐程序也有望像人一样进行调谐:它尝试改变镜子的一个轴,将新焦点与前一个焦点进行比较,如果更好,则继续改变同一轴,如果更差,则反转改变或切换到另一个轴。
作为备用手段,我开发了一些数学模型来确定基于腰部半径(r)、峰值强度(I)、椭圆率(e)等。例如一个简单的模型是三者的线性组合:
y = w1*r + w2*I + w3*e
但w1,w2,w3的最优值还需确定。利用人为比较的结果,想找到最优的w1,w2,w3,满足尽可能多的比较关系
我研究了 scikit-learn 和其他一些库提供的算法,但看起来回归对 Y 的精确值起作用,而不是它们之间的比较关系。那么是否有适用于我的问题的机器学习模型?
这篇 paper 展示了如何 "to design full-reference image quality assessment algorithm" 使用机器学习,它可能会帮助您弄清楚如何使用您的数据以及如何定义哪些特征使您的图像比其他图像更好一个(在这种情况下,他们使用 SVM)。
我认为 Convolutional Neural Networks 也可以适应您的目的,因为 CNN 特别适合处理图像(检测特征、分类...)。所以我建议你读一读。
您拥有和可以拥有的数据量(通过数据扩充)可以作为最适合您的选项的标准。
希望这对您有所帮助,希望您的项目取得成功。
我的问题的数学描述可以表达如下:
给定函数 Y = f(X),其中 X 是输入,Y 是输出。 X的总共N个点被采样,记为X[0], X[1], X[2] ... X[N-1 ] 和对应的 Y[0], Y[1], ... Y[N-1]。问题是,我们不知道每个 X 的 Y 的确切值,但是某些 之间的比较Y。已知一个大的二进制NxN矩阵:
[[a00, a01, a02, ...]
[a10, a11, a12, ...]
...
]
a[i,j] = 1 表示 Y[i]>Y[j], a[i, j] = 0表示Y[i]和Y[j]不做比较。
我应该在矩阵上拟合什么机器学习模型,以便它可以给出两个任意输入的比较结果X。
或者我可以给出一个更具体的问题:函数的形式Y = f(X, a)已经知道了,其中a 是要优化的系数。怎样才能找到最优的a,从而满足尽可能多的矩阵比较关系
现实世界的问题是这样的:
我正在开发一个用于科学激光设备的焦点分析仪(它只是一个专用相机)的图像分析程序。激光由离轴抛物面镜(您可以将其视为凸透镜)聚焦,这需要进行大量微调才能获得更好的焦点。反射镜的位置和转动可由步进电机控制(共6轴),焦斑可在焦斑分析仪上观察。目前所有的调校都需要手动完成,最终目标是开发一个自动闭环调校程序。
我的程序目前的问题是确定焦斑的质量。相机给出焦点的 2d 图像,但定义质量函数并不简单,因为要考虑焦点的方面太多(腰部半径、峰值强度、椭圆度等)。通常手动的工作流程是稍微改变镜子的一个轴,看看焦斑是否比前一个有所改善。这几天要重复很多次,所以做了很多比较。这些比较是由人完成的,我想训练我的程序能够像人一样进行比较。调谐程序也有望像人一样进行调谐:它尝试改变镜子的一个轴,将新焦点与前一个焦点进行比较,如果更好,则继续改变同一轴,如果更差,则反转改变或切换到另一个轴。
作为备用手段,我开发了一些数学模型来确定基于腰部半径(r)、峰值强度(I)、椭圆率(e)等。例如一个简单的模型是三者的线性组合:
y = w1*r + w2*I + w3*e
但w1,w2,w3的最优值还需确定。利用人为比较的结果,想找到最优的w1,w2,w3,满足尽可能多的比较关系
我研究了 scikit-learn 和其他一些库提供的算法,但看起来回归对 Y 的精确值起作用,而不是它们之间的比较关系。那么是否有适用于我的问题的机器学习模型?
这篇 paper 展示了如何 "to design full-reference image quality assessment algorithm" 使用机器学习,它可能会帮助您弄清楚如何使用您的数据以及如何定义哪些特征使您的图像比其他图像更好一个(在这种情况下,他们使用 SVM)。
我认为 Convolutional Neural Networks 也可以适应您的目的,因为 CNN 特别适合处理图像(检测特征、分类...)。所以我建议你读一读。
您拥有和可以拥有的数据量(通过数据扩充)可以作为最适合您的选项的标准。
希望这对您有所帮助,希望您的项目取得成功。