Построение модели стэкинга с помощью ИНС

(перенаправлено с «RNAInSpace/Эксперимент №3»)

Это описание эксперимента: его планирование и полученные результаты.

Автор: Сергей Яковлев


Эта статья — часть материалов: проекта RNAInSpace

Введение

править

Точных данных для описания стэкинга нету, поэтому встает задача на основании частных (табличных) данных построить модель. Для этого можно использовать искусственную нейронную сеть - перцептрон. Но так как величина обучающей выборки слишком велика, ее нужно уменьшить с помощью кластеризации данных. Кластеризацию данных удобно реализовать методом 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. 1 модальность: 18 байтовых выходов (18*8=144). С каждых 2 выходов получаем один угол поворота, если он от -180 до 0, то на первый, а если от 0 до 180, то на второй.
  2. 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 вариантов, и уже их использовать в переборе. Это позволит учесть стэкиговое взаимодействие во время поиска водородных связей, и существенно оптимизирует перебор. Другими словами, целенаправленно уменьшит число рассматриваемых комбинаций поворотов и уберет необходимость делать поправки на стэкинг.


...