1 of 27

Экспертная система для распознания ИК спектров на основе свёрточной нейронной сети с мультиклассовой классификацией

Работа асп. 3 г/о ФНМ МГУ

Кошелева Даниила Сергеевича

Курс «Нейронные сети и их применение в научных исследованиях»

2 of 27

ИК спектроскопия

Это неразрушающий метод анализа, получающий данные о поглощении веществом ИК излучения с энергией в диапазоне 4000-400 см-1. , характерной для определённых колебаний.

Экспертная система для распознания ИК спектров на основе свёрточной нейронной сети с мультиклассовой классификацией

Колебания молекулы воды

ИК излучение

ИК излучение

3 of 27

Цель работы

Разработка модели для мультиклассовой классификации ИК спектров на 17 и 72 классов.

Экспертная система для распознания ИК спектров на основе свёрточной нейронной сети с мультиклассовой классификацией

Примеры классов-функциональных групп

https://en.wikipedia.org/wiki/Infrared_spectroscopy_correlation_table

Примеры классов – полос колебаний

4 of 27

Сбор датасета: 1.

Список соединений NIST (CAS-номер)

Сканирование по web-запросу:

Скачано 14668 спектров (6 часов)

Добавление InChi и SMILES по web-запросу:

  • 'http://cactus.nci.nih.gov/chemical/structure/' + cas + '/stdinchi‘
  • 'http://cactus.nci.nih.gov/chemical/structure/' + cas + '/smiles'
  • Набрано 12223 ключей (24 часа)

Экспертная система для распознания ИК спектров на основе свёрточной нейронной сети с мультиклассовой классификацией

5 of 27

Сбор датасета: 2. Интерполяция и padding

Приведение к одному размеру

  • Padding до нужного диапазона

(500-4100 1/см)

  • Интерполяция до шага 2 (1/см)
  • (выделение и сохранение максимумов)

Экспертная система для распознания ИК спектров на основе свёрточной нейронной сети с мультиклассовой классификацией

6 of 27

Сбор датасета: 3. Подпись классов

Словарь подструктур в терминологии SMARTS:

func_grp_smarts = {'alkane‘: '[CX4;H0,H1,H2,H4]',

                   'methyl': '[CH3]',

                   'alkene': '[CX3]=[CX3]',

                   'alkyne': '[CX2]#C',

                   'alcohols': '[#6][OX2H]',

                   'amines': '[NX3;H2,H1;!$(NC=O)]',

                   'nitriles': '[NX1]#[CX2]', 

                   'aromatics': '[$([cX3](:*):*),$([cX2+](:*):*)]',

                   'alkyl halides': '[#6][F,Cl,Br,I]', 

                   'esters': '[#6][CX3](=O)[OX2H0][#6]',

                   'ketones': '[#6][CX3](=O)[#6]',

                   'aldehydes': '[CX3H1](=O)[#6]', 

                   'carboxylic acids': '[CX3](=O)[OX2H1]',

                   'ether':  '[OD2]([#6])[#6]',

                   'acyl halides': '[CX3](=[OX1])[F,Cl,Br,I]',

                   'amides': '[NX3][CX3](=[OX1])[#6]',

                   'nitro': '[$([NX3](=O)=O),$([NX3+](=O)[O-])][!#8]'}

Функциональные группы

Экспертная система для распознания ИК спектров на основе свёрточной нейронной сети с мультиклассовой классификацией

7 of 27

Сбор датасета: 4. (Не)баланс классов

Сильный дисбаланс классов

Малочисленные классы <25% от численности

Наименьшее количество – 119 спектров

Экспертная система для распознания ИК спектров на основе свёрточной нейронной сети с мультиклассовой классификацией

8 of 27

Сбор датасета: 3. Подпись классов

Словарь подструктур в терминологии SMARTS:

all_bonds_types_strs_short = {

'C─H alkyl methyl 1260 strong/1380 weak/2870 medium to strong/2960 medium to strong': '[CH3]',

'C─H alkyl methylene 1470 strong/2850 medium to strong/2925 medium to strong': '[CX4;H2]',

'C─H alkyl methine 2890 weak': '[CX4;H1]',

'C─H vinyl C═CH2 900 strong/2975 medium/3080 medium': '[CX3]=[CH2]',

'C─H vinyl C═CH 3020 medium': '[CX3]=[CX3;H1]',

'C─H vinyl monosubstituted alkenes 900 strong/990 strong': '[CX3;H2]=[CX3;H1]',

…..

Полосы колебаний

Экспертная система для распознания ИК спектров на основе свёрточной нейронной сети с мультиклассовой классификацией

72 класса

9 of 27

Сбор датасета: 4. (Не)баланс классов

Сильный дисбаланс классов

Малочисленные классы <100 спектров

Экспертная система для распознания ИК спектров на основе свёрточной нейронной сети с мультиклассовой классификацией

Наименьшее количество – 33 спектра

10 of 27

Обучение

  • Разбиение на train/test/val в соотношении 7/2/1 случайным образом
  • Функция потерь - бинарная кросс-энтропия с расчётом вероятностей (BCELossWithLogits)
  • Для train загрузчика WeightedRandomSampler

Экспертная система для распознания ИК спектров на основе свёрточной нейронной сети с мультиклассовой классификацией

Планировщик обучения:

  • 200 эпох со скоростью 0.00001
  • Снижение скорости в 5 раз каждые 75 эпох

Метрики

  • label_ranking_average_precision_score
  • precision, recall и f1
  • AUC ROC

11 of 27

Дизайн модели: 1. v0.1

Вход: (2, 1800)

8 сверточных слоёв

3 линейных

18 млн параметров (n=10)

Тестовая модель:

Низкая точность

Не учится на малочисленные классы

Экспертная система для распознания ИК спектров на основе свёрточной нейронной сети с мультиклассовой классификацией

12 of 27

Дизайн модели: 3. v0.3

Вход: (2, 1800)

21-41 сверточных слоёв

2 линейных

2 dropout

4 млн параметров

Label ranking precision score – 0,7

Низкая точность

Не учится на малые классы

Экспертная система для распознания ИК спектров на основе свёрточной нейронной сети с мультиклассовой классификацией

13 of 27

Дизайн модели: 4. v0.4

Вход: (2, 1800)

21 сверточных слоёв

3 макспулинга

2 линейных

2 dropout

0,5 млн параметров

Label ranking precision score – 0,8

Точность улучшилась

Не учится на малые классы

Экспертная система для распознания ИК спектров на основе свёрточной нейронной сети с мультиклассовой классификацией

14 of 27

Дизайн модели: 4. v0.4raw

Вход: (2, 1800)

21 сверточных слоёв

3 макспулинга

2 линейных

1 адаптивный макспул

2 dropout

0,5 млн параметров

Label ranking precision score – 0,65

Точность ухудшилась

Не учится на средние классы

Экспертная система для распознания ИК спектров на основе свёрточной нейронной сети с мультиклассовой классификацией

15 of 27

Дизайн модели: 5. �v0.5+ слой максимумов

Вход: (2, 1800) или (3, 1800)

21 сверточных слоёв

1 макспулинг

2 линейных

2 dropout

5 млн параметров

Label ranking precision score – 0,9

Точность улучшилась

Не учится на средние классы

Экспертная система для распознания ИК спектров на основе свёрточной нейронной сети с мультиклассовой классификацией

16 of 27

Сравнение с 1NN алгоритмом

1NN алгоритм:

1)Поиск максимума

2) Определение 1 ближайшего соседа по значению положения пика

3) Определение метки класса

Экспертная система для распознания ИК спектров на основе свёрточной нейронной сети с мультиклассовой классификацией

17 of 27

Дизайн модели: 6. v0.6+слой внимания

Вход: (3, 1800)

21 сверточных слоёв

1 макспулинг

2 внимания

2 линейных

2 dropout

5 млн параметров

wF1 – 0,7

Точность ухудшилась

Не учится на средние классы

Экспертная система для распознания ИК спектров на основе свёрточной нейронной сети с мультиклассовой классификацией

18 of 27

Дизайн модели: 7. v0.7+внимание на вход

Вход: (75, 1800) или (4, 1800)

21 сверточных слоёв

1 макспулинг

2 линейных

2 dropout

5 млн параметров

wF1 – 0,53

Точность ухудшилась

Не учится на средние классы

Экспертная система для распознания ИК спектров на основе свёрточной нейронной сети с мультиклассовой классификацией

Слой суммы максимумов всех 72 полос колебаний

19 of 27

72 класса:�v1.5.1

Вход: (3, 1800)

21 сверточных слоёв

1 макспулинг

2 линейных

2 dropout

5 млн параметров

wF1 – 0.88

Точность улучшилась

Не учится на мелкие классы

Экспертная система для распознания ИК спектров на основе свёрточной нейронной сети с мультиклассовой классификацией

V1.5.1.72 превосходит все аналоги значительно!

Определяет 56/72 классов

20 of 27

SHAP/GradCAM:�Объясняемость 17 классов

Внимание модели:

  • Максимумы поглощения
  • Низкие и высокие волновые числа

Экспертная система для распознания ИК спектров на основе свёрточной нейронной сети с мультиклассовой классификацией

21 of 27

SHAP/GradCAM:�Объясняемость 72 классов

Внимание модели:

  • Максимумы поглощения
  • Совпадение с предполагаемыми положениями

Экспертная система для распознания ИК спектров на основе свёрточной нейронной сети с мультиклассовой классификацией

22 of 27

AUC ROC: �Порог сработки

Высокий AUC ROC при отсутствии f1???

Экспертная система для распознания ИК спектров на основе свёрточной нейронной сети с мультиклассовой классификацией

23 of 27

AUC ROC: �Порог сработки

Подбор порога срабатывания для каждого отдельного класса

Экспертная система для распознания ИК спектров на основе свёрточной нейронной сети с мультиклассовой классификацией

24 of 27

AUC ROC: �Порог сработки

Появление f1 для отсутствовавшего класса

Экспертная система для распознания ИК спектров на основе свёрточной нейронной сети с мультиклассовой классификацией

25 of 27

  • Собран датасет из 12300 ИК спектров, пригодных для обучения;
  • Разработаны инструменты и подходы к мультиклассовой классификации на основе CNN на 17 и 72 класса;
  • Получены модели, демонстрирующие wF1:
    • 0.93 для 17 классов
    • 0.87 для 72 классов
    • Показано, что наблюдается совпадение областей внимания модели с предполагаемыми областями проявления полос поглощения!

Результаты и выводы

Экспертная система для распознания ИК спектров на основе свёрточной нейронной сети с мультиклассовой классификацией

26 of 27

Спасибо за внимание!

27 of 27

AUC ROC: �Порог сработки

Появление f1 для отсутствовавшего класса

Экспертная система для распознания ИК спектров на основе свёрточной нейронной сети с мультиклассовой классификацией