CNN, RNN, LSTM и GRU для предсказания генов во фрагментах метагеномики.

В этом заключительном разделе о применении глубокого обучения для прогнозирования генов мы реализуем 4 различных алгоритма и делаем вывод о том, что вредитель подходит для прогнозирования генов в метагеномной ДНК.

Предварительная обработка такая же, как и в моем последнем посте, вы можете найти ее здесь.

предварительная обработка данных.

Предварительная обработка одинакова для всех алгоритмов, мы используем данные, предоставленные в этой статье, которая содержит около 4 миллионов ORF, я извлек 200000 ORF для обучения и тестирования.

Данные доступны на моем диске.

Как обычно, загружаем наши данные в google colab.

После загрузки данных в список мы собираемся преобразовать их в фрейм данных с помощью панд.

Теперь мы собираемся рассматривать ORF как язык, разбивая ДНК на перекрывающиеся по длине k-мер слова, более подробное объяснение см. В этом сообщении.

после первоначального извлечения «слов» мы преобразуем списки k-мер для каждого гена в строковые предложения.

Наши данные состоят из 100000 кодирующих ORF и 100000 некодирующих.

Здесь мы будем использовать класс Tokenizer от Kears для преобразования слов / K-мер в целые числа, а затем применить заполнение для обработки стандартизации длины входных данных.

Последний шаг перед созданием моделей - разделение данных на обучение и тестирование, а также определение размера словаря.

RNN + слой встраивания

Лично я не ожидаю многого от RNN, потому что он страдает проблемой исчезающих градиентов, что затрудняет изучение длинных последовательностей данных в нашем случае длинных ORF. Градиенты несут информацию, используемую при обновлении параметра RNN, и когда градиент становится все меньше и меньше, обновления параметров становятся несущественными, что означает, что реальное обучение не выполняется.

RNN была вычислительно дороже, чем CNN, LSTM и GRU. таким образом, как и ожидалось, модели не смогли обучиться.

с точностью всего 55%. RNN показала худшие результаты среди всех реализованных алгоритмов.

LSTM + слой встраивания

LSTM решает проблему исчезающих градиентов, я рекомендую этот пост здесь, если вы хотите больше узнать, как сети LSTM решают проблему исчезающих градиентов.

LSTM значительно повышает точность и может классифицировать ORF на кодирующие и некодирующие.

Точность повысилась почти до 90%.

GRU + слой встраивания

Архитектура GRU похожа на LSTM, но с некоторыми важными отличиями, которые вы можете прочитать здесь и здесь.

Производительность ГРУ аналогична LSTM.

общая производительность GRU аналогична LSTM, что дает ему преимущество перед LSTM за счет меньших вычислительных ресурсов.

CNN + слой встраивания

Модель на основе CNN всегда показывает многообещающие результаты во многих областях. с точностью 88% это меньше, чем у LSTM и GRU, но, с другой стороны, это алгоритмы, которые используют меньше вычислительных ресурсов, чем все реализованные.

Обсуждение результатов

мы можем ясно видеть, что GRU и LSTM имеют почти одинаковую производительность, что дало GRU преимущество перед LSTM, потому что он использует меньше вычислительных ресурсов и требует меньше времени для выполнения.

в то время как CNN занимает третье место, это далеко не все алгоритмы, которые занимают меньше времени, и о RNN упоминать не стоит.

Очень рекомендую этот пост Падение RNN / LSTM, в котором автор представляет CNN как альтернативу LSTM и RNN.

Проверь мне мой LinkedIn.

До следующего раза.