我正面临这种形式的非二进制分类问题:
我用来对它们进行分类的程序想要模拟一个4量子位的量子电路,这意味着我从一个16维矢量开始,其中第一个输入为1,其他位置为0,然后应用一系列旋转成矩阵乘积的形状。
稍微改一下:我从所述16维向量开始,然后将其乘以一个16x16矩阵,该矩阵取决于该点的第一个分量“ x”,从而呈现了一个新的16维向量。 接下来,我将此新矢量乘以另一个矩阵,现在将“ y”作为参数。 我将此过程称为数据的“编码”。
一旦编码,我将使用一组矩阵,具体取决于每个参数。 这些参数的明智选择是为我带来了所需的分类。
因此,在计算完每个乘积之后,我得到一个新的16维向量,该向量取决于所提到的每个参数,我们将其称为a(x,y)。
从这里我设计目标函数f(x,y)=(p_0,p_1,p_2,p_3)。 每个p_i将是a(x,y)的某些分量的总和。
现在,f(x,y)是我为输入(x,y)获得的实际输出。 让我将d(x,y)称为所需的输出。 我的目标是找到一组参数值,以使f(x,y)在输入数据量较大时尽可能接近d(x,y)。
d(x,y)只能采用四个可能值之一:
我为此选择的成本函数是二次成本函数。 为了最小化成本函数,我使用了梯度下降算法。 我用中心有限差分法计算偏导数。
所以,既然已经描述了程序,我的真正问题是: 通过这种配置,我获得了很高的“成本(损失)”值,范围从1.5到大约4。
为了获得这些结果,我运行了Gradient Descent程序30次(历元),学习率为1。
我曾经有非常小的损失值(对于一个非常类似的问题,过去的0.25是非常糟糕的结果),但是我仍然对数字背后的实际情况没有足够的把握知道我是否应该为此而担心。
对于1000个训练点和1000个评估点,我的程序在最好的情况下(尝试几种不同的矩阵集)可达到约40%的准确性。
我认为较高的损失值可能意味着我的程序不足以执行此分类,但是我不知道我可以在多大程度上获得更好的结果。
我在做任何事情是完全错误的,还是仅仅是这种结构不足以进行分类?
非常感谢您提前提供任何反馈意见。