minΣ(||xi-X ci||^2+ λ ||ci||),
stcii = 0、
ここで、X は形状 d * n の行列であり、C は形状 n * n です。xi と ci は、X と C の列を個別に意味します。
X はここで既知であり、X に基づいて C を見つけたいと考えています。
minΣ(||xi-X ci||^2+ λ ||ci||),
stcii = 0、
ここで、X は形状 d * n の行列であり、C は形状 n * n です。xi と ci は、X と C の列を個別に意味します。
X はここで既知であり、X に基づいて C を見つけたいと考えています。
通常、そのような損失がある場合は、列を操作する代わりにベクトル化する必要があります。
loss = X - tf.matmul(X, C)
loss = tf.reduce_sum(tf.square(loss))
reg_loss = tf.reduce_sum(tf.square(C), 0) # L2 loss for each column
reg_loss = tf.reduce_sum(tf.sqrt(reg_loss))
total_loss = loss + lambd * reg_loss
C の対角線にゼロ制約を実装するには、別の定数を使用して損失に追加するのが最善の方法ですlambd2
。
reg_loss2 = tf.trace(tf.square(C))
total_loss = total_loss + lambd2 * reg_loss2