Я просматриваю... Молекулярный автоэнкодер позволяет нам интерполировать и оптимизировать соединения на основе градиента https://arxiv.org/pdf/1610.02415.pdf
Документ берет входную строку Smiles (текстовое представление молекулы), а затем отображает ее с помощью вариационного кодировщика в двумерное скрытое пространство.
Пример строки Smiles для гексан-3-ола «CCCC(O)CC»
В статье они дополняют короткие строки до 120 символов пробелами.
В документе строка закодирована с помощью стека одномерных сверточных сетей в скрытое представление строки смайлов.
Затем он использует рекуррентные единицы GRU с 3 воротами, чтобы затем отображать позиции в скрытом пространстве обратно в строку улыбок.
Проблема, с которой я столкнулся при понимании этой статьи, заключается в том, чтобы определить, как выглядят входные и выходные структуры.
В документе немного расплывчата структура ввода и вывода. Из-за использования одномерных сетей я подозреваю, что входные данные представляют собой векторизованное представление, похожее на
'C' = 1
'O' = 2
'(' = 3
')' =4
' ' = 0 #for padding
#so the hexan-3-ol smiles above would be
[1,1,1,1,3,2,4,1,1,0...padding to fixed length]
На выходе бумага говорит
Последний уровень декодера RNN определяет распределение вероятностей по всем возможным символам в каждой позиции строки SMILES.
Итак, для максимальной длины смайлов 120, используемой в статье с 35 возможными символами смайлов, означает ли это, что вывод представляет собой массив [120x35]?
перенос этой логики вперед предполагает, что ввод вместо этого представляет собой сглаженный массив [120 * 35] - имея в виду, что это автоэнкодер.
Моя проблема с этим заключается в 1dConv, который использует максимальную длину 9, что было бы недостаточно для покрытия следующего атома в последовательности, если это сглаженный массив [120 * 35]
Спасибо за вашу помощь...