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.
До следующего раза.