0

minΣ(||xi-X ci||^2+ λ ||ci||),

stcii = 0、

ここで、X は形状 d * n の行列であり、C は形状 n * n です。xi と ci は、X と C の列を個別に意味します。

X はここで既知であり、X に基づいて C を見つけたいと考えています。

4

1 に答える 1

2

通常、そのような損失がある場合は、列を操作する代わりにベクトル化する必要があります。

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
于 2016-07-15T01:33:19.210 に答える