Построение модели стэкинга с помощью ИНС
Это описание эксперимента: его планирование и полученные результаты. Автор: Сергей Яковлев |
Введение
[править]Точных данных для описания стэкинга нету, поэтому встает задача на основании частных (табличных) данных построить модель. Для этого можно использовать искусственную нейронную сеть - перцептрон. Но так как величина обучающей выборки слишком велика, ее нужно уменьшить с помощью кластеризации данных. Кластеризацию данных удобно реализовать методом 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 вариантов, и уже их использовать в переборе. Это позволит учесть стэкиговое взаимодействие во время поиска водородных связей, и существенно оптимизирует перебор. Другими словами, целенаправленно уменьшит число рассматриваемых комбинаций поворотов и уберет необходимость делать поправки на стэкинг.
...