Функция потерь, заставляющая ортогональность для кодирования автоэнкодера (NPCA)

#keras #autoencoder #loss #orthogonal

#keras #автоэнкодер #потеря #ортогональный

Вопрос:

Я реализовал автоэнкодер, который должен реализовывать нелинейную версию анализа основных компонентов. Ввод и вывод модели представляют собой один и тот же набор данных с n функциями, и меня интересует кодировка, размерность которой d<n. Чтобы обобщить анализ основных компонентов, я хотел бы иметь кодировку, состоящую из d почти линейно независимых векторов, но если я использую функцию потерь «mse», я получаю, например, для d = 2 два вектора, которые выглядят почти одинаково.

Теоретически я мог бы использовать функцию потерь, включающую штрафной термин для вектора, которые похожи и далеки от независимости. Но это означало бы иметь функцию потерь, которая использует информацию всего пакета, а не только один образец, и не из выходных данных, а из промежуточного уровня.

Поскольку я работаю с Keras: может кто-нибудь дать мне подсказку или ссылку, как я могу подойти к этой проблеме в Keras?

Комментарии:

1. Ты решила проблему, Энн?

2. Эта ссылка решила мою проблему.

3. Спасибо, но это не накладывает ортогональность на функции, а на веса.