У меня есть набор двумерных входных массивов m x n
, а именно A,B,C
, и я должен предсказать два двумерных выходных массива, а именно d,e
, для которых у меня есть ожидаемые значения.Вы можете думать о входах / выходах как о серых изображениях, если хотите.
Поскольку пространственная информация является релевантной (на самом деле это двумерные физические области), я хочу использовать сверточную нейронную сеть для прогнозирования d
иe
.Мой дизайн (еще не проверенный) выглядит следующим образом:
Поскольку у меня есть несколько входов, я думаю, что я должен использовать несколько столбцов (или ветвей) длянайти различные функции для каждого из входов (они выглядят довольно по-разному).Каждый из этих столбцов соответствует архитектуре кодирования-декодирования, используемой в сегментации (см. SegNet): блок Conv2D включает в себя свертку + пакетную нормализацию + уровень ReLU.Deconv2D включает в себя деконволюцию + пакетную нормализацию + ReLU.
Затем я могу объединить выходные данные каждого столбца путем конкатенации, усреднения или взятия максимума, например.Чтобы получить исходную форму m x n
для каждого из выходов, которые я видел, я мог бы сделать это с помощью свертки ядра 1 x 1
.
Я хочу предсказать два выхода из этого одного слоя.Это нормально с точки зрения структуры сети?Наконец, моя функция потерь зависит от самих результатов по сравнению с целью плюс другое отношение, которое я хочу навязать.
A хотел бы получить некоторое экспертное мнение по этому вопросу, так как это мой первый дизайн CNN, и я неконечно, если это имеет смысл, как сейчас, и / или если есть более подходящие подходы (или сетевые архитектуры) к этой проблеме.
Первоначально я опубликовал это в datascience , но я не получилмного отзывов.Сейчас я размещаю его здесь, так как по этим темам существует более широкое сообщество, и я был бы очень признателен за советы по реализации, помимо сетевых архитектурных.Спасибо.