Comments 2
Я бы предложил расширить описанную вами модель. В чем суть вашей. Допусти у нас архитектура состоит из:
Блок 1 -> блок 2 -> блок 3 -> конечный результат
При стандартном подходе мы учитываем в конечном результате только выход блока 3.
В описанном подходе каждый блок передаёт свои данные в конечный результат. Так как в некоторых случаях скрытые блоки могут содержать в себе уже выявленные признаки, которые другие блоки могут проигнорировать.
Данный подход схож с реальной работой мозга, когда отдельные зоны не только могут передать свои данные в следующий блок, но и через блок или блоки. Например, слух , кохлеарное ядро может не только передать свои данные в следующую область, но и напрямую и в слуховые зоны (например в А1).
Это чем то напоминает residual связи внутри блока и другие подходы.
Моё предложение, добавление более расширенного блока вроде FFN или даже с добавлением свёрток, которые смогут обобщить корреляцию между признаками из разных блоков (областей мозга) при учёте конечного результата. Этот подход будет более биологичным и поможет модели найти корреляцию на разных этапах.
Позволяет избежать проблемы, когда глубокие слои перезаписывают важную информацию из ранних слоёв.
Как в мозге (например, слуховые пути с прямыми связями в кору, минуя промежуточные ядра), модель сохраняет "короткие пути" для информации, чтобы избежать потери критически важных низкоуровневых или средних признаков. Это позволяет сохранить признаки, которые могут "затухнуть" при прохождении через последующие слои.
Здесь главным является именно правильное обобщение, которое должно включать в себя не просто выходы из разных блоков, но и поиск корреляций между ними.
Дополню, на самом деле схожий подход уже используется, хотя и более ограниченно.
К примеру:
Модель DenseNet + Self-Attention Aggregator:
Если добавить к DenseNet механизм внимания для объединения выходов слоёв, это будет похоже на данную идею.
Transformer с Cross-Layer Attention:
Например, Universal Transformer рекурренно обрабатывает выходы слоёв, но без явной агрегации в финальный слой.
Deep Averaging Networks (DAN):
В NLP выходы слоёв усредняются, но без учёта их иерархии.
Так то, стоит обратить внимание и попробовать добавить обобщение в конце, прежде чем использовать softmax. Так как таким образом мы сможем учесть разные признаки. А ещё лучше добавить ещё механизм внимания при их обобщении, чтобы мы не просто обобщили важные признаки из всех блоков, но и сфокусировались на наиболее важных из них.
Logit Lens & ViT model: туториал