1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/nameLacker-RNA_Prediction

Клонировать/Скачать
README.md 8.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 01.12.2024 14:26 be007f5

Проект Unpaired Probability Prediction: структура проекта

Участники: Шуй Тао, Яо Чжичао, Чжу Маньцинь, Цю Кай, Е Юнчжи и другие.

Содержание требует разработки, впереди — светлое будущее.

Революция ещё не удалась, товарищи должны продолжать прилагать усилия.

Вперёд, к победе!

Структура проекта

├── config.py // конфигурационный файл ├── data │ ├── data_explanation.txt // файл с объяснением данных │ ├── dev.txt // набор данных для проверки │ ├── README.md // объяснение данных в формате .md │ ├── test_nolabel.txt // данные для тестирования A-ранга │ └── train.txt // набор тренировочных данных ├── demo.py // демонстрационный скрипт ├── inference_model │ ├── ... │ ├── ... │ ├── ... │ └── ├── ... // параметры модели обучения ├── logs │ └── train_1612239291.log // файл журнала ├── max_models // каталог с оптимальными моделями │ │ ├── ... │ │ ├── ... │ │ ├── ... │ └── 4.635 // оптимальная модель ├── net │ ├── network.py // код сетевой модели │ └── bilm.py // структура Elmo ├── README.md // описание проекта ├── requestments.txt // библиотека конфигурации ├── result │ ├── prediction // путь сохранения результатов прогнозирования │ | ├── 1.predict.txt // результат прогнозирования 1 │ | ├── 2.predict.txt // результат прогнозирования 2 │ | ├── ... │ | ├── n.predict.txt // результат прогнозирования n │ ├── model.svg // схема модели │ ├── predict.file.zip // сжатый файл для отправки └── utils ├── process.py // создание словаря ├── reader.py // программа чтения данных ├── utils.py // предварительная обработка данных └── vocabulary.py // класс форматирования данных ├── test.py // тестовая программа ├── train.py // обучающая программа

Зависимости проекта, обучение и тестирование модели

  • Запустите pip install -r requestments -i https://pypi.douban.com/simple, чтобы установить необходимые зависимости.
  • Запустите python train.py, чтобы начать обучение. Параметры обучения будут сохранены в каталоге ./inference_model.
  • Запустите visualdl --logdir ./log post 8040, затем откройте http://localhost:8040/ в браузере, чтобы отслеживать процесс обучения.
  • Запустите python test.py, чтобы получить результаты тестирования (можно задать каталог параметров модели с помощью --param_path=параметры каталога). Результаты тестирования сохраняются в каталоге ./result/prediction, а также генерируется файл predict.files.zip для отправки.

Модель

Основная структура модели основана на двунаправленной LSTM (двунаправленная сеть LSTM) и так далее. Можно попробовать оптимизировать модель по следующим направлениям:

  • Предварительная обработка входных данных, извлечение дополнительных признаков.
  • Использование других программ для предсказания вторичной структуры РНК (например, Vienna RNAfold, RNAstructure, CONTRAfold) для создания новых признаков вторичной структуры.
  • Более сложные формы встраивания.
  • Применение предварительно обученных моделей, таких как Elmo или Bert, во встраивающем слое.
  • Оптимизация структуры сети и параметров.
    • Выбор размера скрытого слоя и количества слоёв.
    • Построение более сложных сетей.
    • Использование регуляризации, отсева и других методов для предотвращения переобучения.
    • Подбор оптимальной скорости обучения и других гиперпараметров.
    • Выбор подходящей функции потерь.
    • Проба различных оптимизаторов. ## Обзор процесса обучения модели

  • В отношении глубокого улучшения модели было обнаружено, что увеличение количества слоёв LSTM в базовой (Baseline) модели приводит к резкому увеличению потерь. Поэтому было решено уменьшить параметры модели. После многочисленных экспериментов было обнаружено, что наилучший результат на A-таблице достигается при LSTM layers=6.
  • Изменение размера данных (embedding) на входе модели также влияет на изменение потерь. Наилучший результат тестирования на A-таблице также достигается при размере 256.
  • Для улучшения модели на уровне embedding мы попытались внедрить структуры сетей Elem и GRU. Во время практического обучения потери в конечном итоге стабилизировались примерно на том же значении, что и без этого улучшения. Однако после отправки прогноза этой модели на A-таблицу произошло резкое снижение баллов. Поэтому в последующих экспериментах по обучению это улучшение не использовалось.
  • При предварительной обработке данных мы попытались использовать официальный инструмент PaddleHelix для создания новой вторичной структуры для базовых последовательностей набора данных. Это улучшение помогло нам достичь наилучшего результата на A-таблице, но результаты на B-таблице оказались неудовлетворительными. Затем мы использовали метод обработки данных с использованием исходных последовательностей. Это позволило нам достичь наилучшего результата на B-таблице.
  • Улучшение гиперпараметров модели: скорость обучения (learning_rate) была снижена ступенчато. Из всех оптимизаторов наилучшие результаты были достигнуты с помощью оптимизатора Baseline. Увеличение размера пакета обучения (Batch size) также не дало хороших результатов.
  • Кроме того, поскольку официальная информация о расчёте RMSD_STD отсутствует, мы разработали собственный метод расчёта RMST_STD, который применялся для проверки во время обучения.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/nameLacker-RNA_Prediction.git
git@api.gitlife.ru:oschina-mirror/nameLacker-RNA_Prediction.git
oschina-mirror
nameLacker-RNA_Prediction
nameLacker-RNA_Prediction
master