«Разъединенная» сеть обратной связи (все плотные слои) возможна в Керасе? - PullRequest
0 голосов
/ 07 июня 2019

Я пытаюсь создать довольно необычную модель для реализации собственного алгоритма обучения.

Структура, на которой основана модель, представляет собой сеть, состоящую из всех плотных слоев. Для конкретности: я имею в виду сеть, которая принимает вектор формы (784,) в качестве входного (сглаженные данные MNIST), передает его через ряд простых слоев Dense с функциями активации Relu, а затем, наконец, Dense слой с активацией Softmax в качестве выхода, дающий вероятность 10 категорий.

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

То, что я хочу, чтобы модель фактически вычисляла: примените то, что мы обычно называем функцией «Вызова» в плотном слое (Activations.Relu (K.bias_add (K.dot (тензор1, тензор2))), к входной оценке параметр (вместо обучающей партии), а затем возвращает разницу между оценкой входных данных и оценкой выходных данных. После этого вычисляют разницу между выходной оценкой текущего слоя и оценкой входных данных для следующего слоя (если существует следующий слой) Мне нужна модель для возврата всех этих различий в виде списка (который, я думаю, я мог бы затем использовать в некоторых сложных функциях стоимости).

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

Извините, если это немного многословно, но я некоторое время боролся и удивляюсь, является ли API пользовательских слоев Keras правильным инструментом для этой задачи, или мне лучше использовать сам TensorFlow.

(Если вам удалось следовать тому, что я сказал, и вам интересно, как будут использоваться «данные обучения» из пакета: описанные выше «отличия» будут оштрафованы, а одно из различий, о которых я не упомянул в явном виде) является то, что входная оценка для первого слоя модели будет сравниваться со средним входным вектором. Я не упомянул это выше, потому что я не думаю, что это трудно вычислить).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...