Дано нейронну мережу яка приймає за вхід точок даних: . Ми кажемо, що є перестановка інваріантним , якщо
Чи може хтось порекомендувати вихідну точку (статтю, приклад чи інший документ) для перестановки інваріантних нейронних мереж?
Дано нейронну мережу яка приймає за вхід точок даних: . Ми кажемо, що є перестановка інваріантним , якщо
Чи може хтось порекомендувати вихідну точку (статтю, приклад чи інший документ) для перестановки інваріантних нейронних мереж?
Відповіді:
Наскільки мені відомо, ніхто не пробував цього, через спосіб структури мережі. Кожен вхід має набір ваг, підключених до більшої кількості входів. Якщо входи перемикаються, вихід також .
Однак ви можете побудувати мережу, яка наближається до такої поведінки. У своєму навчальному наборі використовуйте пакетне навчання та для кожного зразка тренінгу надайте всі можливі перестановки мережі, щоб вона навчилася перестановці перестановки. Це ніколи не буде абсолютно інваріантним, воно просто може бути близьким .
Ще один спосіб зробити це - повторити ваги для всіх даних. Наприклад, припустимо, що у вас є 3 входи (i0, i1, i2), а наступний прихований шар має 2 вузли (hl0, hl1) та функцію активації F. Якщо припустити повністю пов'язаний шар, у вас є 2 ваги w0 та w1. Вузли прихованого шару hl0 та hl1 задаються відповідно
hl0 = F (i0w0 + i1w0 + i2w0)
hl1 = F (i0w1 + i1w1 + i2w1)
Таким чином, ви отримуєте прихований шар, значення якого перестановки інваріантні від вхідних даних. Відтепер ви можете вивчати та будувати решту мережі так, як вважаєте за потрібне. Це підхід, отриманий із згорткових шарів.
Поза темою, це здається крутим проектом. Якщо ви хочете співпрацювати в якомусь дослідницькому проекті, зв’яжіться зі мною (перевірте мій профіль)
Ось кілька з цих питань, які ви можете шукати:
Я реалізував тут перестановний шар за допомогою Keras: https://github.com/off99555/superkeras/blob/master/permutational_layer.py
Ви можете зателефонувати на PermutationalModule
функцію для її використання.
Реалізовано після цього документу: https://arxiv.org/pdf/1612.04530.pdf
Ідея полягає в тому, щоб порівняти всі пари N ^ 2 пар з N входів, використовувати модель із загальними вагами, а потім використовувати функцію об'єднання N разів на N входів. Вихід, який ви можете використовувати знову об'єднати, але в папері, вони не згадують про інше об'єднання.