我正在使用Pythons numpy开发自己的架构搜索算法。目前,我正在尝试确定如何开发可以查看X和Y或两个矩阵之间距离的成本函数。我想将两者之间的差异减小到有意义的标量值。
理想情况下,介于0和1之间,因此,如果矩阵内的两组元素在数字和位置上都相同,则返回0。
在下面的示例中,我具有算法X的输出。X和Y都具有相同的形状。我想对两个矩阵之间的差求和。但是我不确定使用求和是否可以在所有条件下使用。我也尝试返回均值。我认为这两种方法都不行。除了循环遍历两个矩阵并直接比较元素之外,还有没有办法捕获标量中的差异程度?
Y = np.arange(25).reshape(5, 5)
for i in range(1000):
X = algorithm(Y)
# I try to reduce the difference between the two matrices to a scalar value
cost = np.sum(X-Y)
有很多方法可以计算两个矩阵之间的标量“差”。这只是两个例子。
均方误差:
((m1 - m2) ** 2).mean() ** 0.5
最大绝对误差:
np.abs(m1 - m2).max()
指标的选择取决于你的问题。
我知道这有点晚了...但是第一个例子被认为是L2规范吗?
是的,这是L2规范。