Построение модели стэкинга с помощью ИНС
Это описание эксперимента: его планирование и полученные результаты. Автор: Сергей Яковлев |
Введение
правитьТочных данных для описания стэкинга нету, поэтому встает задача на основании частных (табличных) данных построить модель. Для этого можно использовать искусственную нейронную сеть - перцептрон. Но так как величина обучающей выборки слишком велика, ее нужно уменьшить с помощью кластеризации данных. Кластеризацию данных удобно реализовать методом k-means.
Входные данные
правитьДля получения обучающей выборки достаточно рассматривать повороты двух нуклеотидов. Учитывая 9 углов в каждом повороте получаем размерность одной записи в 18 элементов (углов), которые округлим до целых градусов. Ранее выполненная дискретизация углов нуклеотидов дает для G - 829 вариаций углов, для C - 680, A - 697, U - 491. Комбинируя по два имеем:
g | c | a | u | |
---|---|---|---|---|
g | 687241 | 563720 | 577813 | 407039 |
c | 563720 | 462400 | 473960 | 333880 |
a | 577813 | 473960 | 485809 | 342227 |
u | 407039 | 333880 | 342227 | 241081 |
Всего 7273809 комбинаций. Как видим это слишком огромная выборка, и ее нужно уменьшить. Чтобы первоначально оценить наличие стэкинга используется грубая экспертная оценка. Принципы этой оценки изложены на слайде. Разброс значений этой оценки для разных комбинаций находится на отрезке от 1 до 12. Для обучения были отобраны наиболее близкие к наличию стэкинга комбинации, у которых экспертная оценка была менее 5. Это позволило сократить рассматриваемые комбинации до 2028338 вариантов.
Но для обучения на перцептроне это еще слишком большая выборка и её нужно сократить на несколько порядков ориентировочно до 50000 вариантов. Для этого был использован кластерный анализ.
Кластеризация
правитьВ результате кластеризации получено 46072 примеров, являющимися центрами кластеров, для обучающей выборки.
Обучение перцептрона
правитьНа входы подаются 9 углов первого нуклеотида, на выходе получаем 9 углов второго искомого положения нуклеотида, который образует с первым стэкинг взаимодействие с определенной силой взаимодействия, согласно экспертной оценке. Более детально:
- Входы: 18 байтовых входов (18*8=144). На каждых 2 входа подается один угол поворота, если он от -180 до 0, то на первый, а если от 0 до 180 то на второй.
- Выходы:
- 1 модальность: 18 байтовых выходов (18*8=144). С каждых 2 выходов получаем один угол поворота, если он от -180 до 0, то на первый, а если от 0 до 180, то на второй.
- 2 модальность: 16 байтовых выходов (16*8=128). На каждый выход экспертная оценка силы взаимодействия стэкинга в зависимости от комбинации видов нуклеотидов (aa, ac, ... uu). Величина оценки умножается на 10, и отбрасывается оставшаяся дробная часть. Если такое положение углов невозможно из-за наличия недопустимых ковалентных связей, то получаем 255 (т.е. все единицы на 8 битовых выходах).
Из 46072 примеров, полученных в результате кластеризации, только 22733 примера уникальны по входному вектору. Остальные же различаются по выходу. Таким образом, это создает некоторую неоднозначность при обучении.
Применялся перцептрон Розенблатта с оптимизацией активации первого и второго слоя (см. Возможности рефрактерного перцептрона). Число А-элементов =25000. Время потраченное на обучение приблизительно 7-8 суток, и осуществлено ~1500 итераций. При этом оптимизация второго слоя была минимальна: только 28 из 272 R-элементов обучились после 2 итерации, а далее до остановки обучения окончательно не обучился не один R-элемент. Это указывает да достаточную сложность обобщения данной задачи. Число ошибок оставшиеся после остановки обучения ~400.
Важное дополнение. Оказывается если останавливать обучение ранее достижения числа ошибок = 0 (не полное обучение), то возможна следующая ситуация. После обучения число ошибок показывает ~400, но на самом деле их может быть на порядок больше ~16000 (в нашем случае). Дело в том, что как правило обучающая выборка показывается перцептрону в определенном порядке, часто по порядку от 1 примера до последнего. Если в процессе идет подстройка весов (обучение) - число ошибок может казаться малым ~400, если же обучение полностью прекратить то число ошибок станет ~16000. Поэтому более правильным является во время обучения показывать перцептрону примеры из обучающей выборки в случайном порядке, чтобы он не смог выработать "обманывающую" подпоследовательность.
Было проведено обучение еще на 3-е суток, с показом примеров в случайном порядке. Это позволило уменьшить число ошибок до ~6400.
Анализ необходимости перцептрона и возможность упрощения
правитьЕсли бы мы осуществляли повороты только двух нуклеотидов от перцептрона, как от вероятностно-статистической модели прогнозирования можно было бы отказаться и перейти к точным расчетам, используя перебор. А так мы вынужденны использовать модель прогнозирования, несмотря на далеко не идеальные ее результаты.
Для упрощения можно убрать выходы второй модальности, так как они несут только дополнительную информацию.
В итоге модель будет прогнозировать положение второго нуклеотида по отношению к первому, дающие наиболее стэкинговое взаимодейстиве. При этом вид нуклеотида не будет учитываться, точнее будет усреднен. Также не будет учитываться положение рассматриваемых двух нуклеотидов в цепи РНК. Это даст достаточно упрощенную модель, но инвариантную к деталям. Это позволит обобщить данные и выработать возможный принцип.
Конечно, при тестировании в реальных поисках третичной структуры РНК, модель должна уточнятся, т.е. перцептрон переучиваться.
Использование перцептрона
правитьДля минимизации ошибок выход даваемый перцептроном будет обратно дискритизирован на имеющиеся множество с выбор наиболее близкого рекомендуемого положения. Таких близких положений можно выбрать до 100 вариантов, и уже их использовать в переборе. Это позволит учесть стэкиговое взаимодействие во время поиска водородных связей, и существенно оптимизирует перебор. Другими словами, целенаправленно уменьшит число рассматриваемых комбинаций поворотов и уберет необходимость делать поправки на стэкинг.
...