В этой небольшой обзорной статье я хочу поделиться с вами своим проектом, посвящённый дизайну биосенсоров при помощи ИИ. У меня практически нулевой опыт в работе с данными, да и работа в этой сфере для меня в новинку. В ходе своей работы я смог разобраться в основах проектирования баз данных, чем и хочу поделиться.
Данный материал будет помощником, кратким справочником для тех, кто, как и я – ничего не смыслит в данных, их сборе, анализе и работе с ними; не знает с чего необходимо начинать, но хочет приобщиться к тематике.
Что же такое биосенсор?
Биосенсоры широко используются в различных областях: биохимии, электрохимии, сельском хозяйстве, биомедицине и пищевой промышленности. Их можно использовать для оказания медицинской помощи, для контроля и оценки качества в пищевой и смежных отраслях.
Биосенсор — аналитическое устройство, которое обнаруживает изменения в биологических процессах. Обычно биосенсоры состоят из трех компонентов: детектора, который идентифицирует стимул; преобразователь, который преобразует этот стимул в полезный результат и система обработки сигналов, которая включает в себя усиление и отображение выходного сигнала в соответствующем формате (на дисплее).
Грубо говоря, такой сенсор — это комбинация биологического чувствительного элемента и преобразователя данных в электрические сигналы.
Они используются для обнаружения различного рода частиц даже в небольших концентрациях образцов благодаря их взаимодействию с биорецепторами в сенсоре.
Среди многих разработанных методик проектирования биосенсора есть малоизученная методика, основанная на использовании алгоритмов искусственного интеллекта и машинного обучения.
В настоящее время процесс разработки полноценного и качественного коммерческого устройства требует огромного количества времени, денег и ресурсов. Таким образом, этот процесс сложно автоматизировать и тем самым удешевить конечный продукт для потребителя.
В этой работе будет акцентировано внимание именно на принципах сбора и анализа данных, которые я применяю для этого проекта. Впоследствии полученные данные будут применены для разработки модели искусственного интеллекта с целью последующего дизайна биорецептора, т.к. именно его разработка затрачивает большее кол-во времени.
А почему выбор пал именно на пищевую индустрию?
А всё довольно просто, все мы с вами потребляем пищу и оправдано желание употреблять проверенные продукты. Рост публикаций на тему состава и качества продукции растёт из-за заинтересованности потребителей, а значит есть разнообразная база данных.
Для разработки конкретного биосенсора для определения конкретного вещества в продукте необходимо провести много экспериментальной работы, которые не всегда приводят к успешному завершению проекта и вводу сенсора в работу. После получения неудовлетворительного результата эксперимента (проверки) нас отбрасывает обратно на шаг назад - процесс разработки, и всё начинается по новой. Этот процесс можно вести до бесконечности. Cроки увеличиваются, значительно удорожает процесс разработки, а в следствии и цена на конечный продукт для потребителя растёт.
В чём я вижу решение проблемы
Гипотеза заключается в том, что необходимо создать модель ИИ, которая будет предсказывать состав биорецептора, основываясь на собранных данных из статей и сборников о составе уже существующих биосенсоров. Далее же будет предлагаться подходящая подложка под предсказанный биорецептор из уже готовых решений так как подложка, состоящая из преобразователя, передатчика и дисплея (не всегда) является стандартной и зависит от типа сигнала, который происходит при взаимодействии биорецептора с детектируемой частицей. Эти подложки стандартизированы и их можно подобрать из уже существующих решений. Для удобства пользования это всё будет реализовано в формате веб-сервиса.
Работа над данными
Для начала надо определится с тем какие данные необходимо собирать, как с ними работать и что делать если что-то пойдёт не по плану. Этой методикой я буду пользоваться при построении базы данных.
Как будут собираться и храниться данные?
Так как объём собранных данных для анализа не будет превышать примерно более 500 строк (предположение составлено на основе схожих баз данных), то хранение будет в виде csv-файлов (таблицы Excel), на данный момент для простоты визуализации и работы с данными используется платформа Google таблицы, для возможности предоставления доступа к просмотру данных.
Тип хранимых данных в базе – категориальные (словесные значения параметра) и количественные (числовые значения параметра). Данные собираются из статей в вручную из-за невозможности их автоматического парсинга (использование алгоритмов для извлечения данных из текста) так как статьи не стандартизированы по данной тематике и не имеют единого паттерна.
Критерии качественных данных, плохих данных и что с ними делать, как избежать, способы увеличения объема данных и их качества.
Если кратко, то качественными данными будут считаться те, что: будут заполнять максимальное количество параметров (дескрипторов системы), а также будут схожи с данными взятые из похожих статей. Если таковое проверить невозможно, то после составления базы данных, провести сравнение с имеющимися данными, для выявления аномалий (слишком высокое или низкое значение, не соответствие типу данных). Также будут использоваться статьи из хорошо рецензируемых журналов, так как такие работы будут использовать и другие учёные для написания своих научных трудов.
Актуальность данных: В этом проекте будут использоваться статьи, выпущенные после 2007 года, так как частицы для биосенсоринга получили распространение в этот год и после.
Также стоит отметить некоторые характеристики для извлекаемых из статей данных:
Точность – диапазоны значений по возможности буду приравнены к среднему значению
Полнота – все дескрипторы (параметры) заполнены данными из статьи
Согласованность – параметры, взятые из одной статьи, совпадают, с или без несоответствий форматирования между различными источниками или хранилищами данных
Своевременность – данные извлечённые из статей не должны быть устаревшими или использовать не точные методики исследования
Правдоподобность – использование платных, общедоступных, с высокой репутацией и оценкой ресурсов, с последующим добавлением их в систему Mendeley
Интерпретируемость – данные должны соответствовать тому типу данных, который принят первоначально (если же таких данных много, то необходимо пересмотреть тип данных)
Плохими данными будут считаться те, что: не будут заполнять максимальное количество параметров, будут не схожи с данными взятые из похожих статей, данные будут иметь аномалии при итоговом анализе собранных данных, а также будут не соответствовать списку и описанию, приведённому выше.
Далее предполагается чистка данных, удаление тех строк, которые не удовлетворяют большинству дескрипторов, классификация полученных данных на: мастер-данные (master-data), разделяемые справочники (reference data) и оперативные данные (transactional data), перевод химических формул в формат SMILES.
При работе с пустыми значениями предполагается указать в диапазоне уже существующих данных, присвоение значения null или выведения значения если таковое возможно, путём расчётов. Далее проводится предпроцессинг:
Создание векторного пространства признаков, где будут существовать примеры обучающей выборки.
Нормализация данных. Собранные данные сильно различаются между собой по абсолютным величинам, т.к. и физический смысл они несут разный. Работа аналитических моделей машинного обучения (нейронных сетей, карт Кохонена и т.д.) с такими показателями окажется некорректной: дисбаланс между значениями признаков может вызвать неустойчивость работы модели, ухудшить результаты обучения и замедлить процесс моделирования. В частности, параметрические методы машинного обучения (нейронные сети, растущие деревья) обычно требуют симметричного и унимодального распределения данных. Для этого необходимо привести произвести процесс приведения всех данных в единую двоичную числовую форму, для удобства работы МО.
Обработка пропущенных значений
Если количество пропущенных значений превышает 20-ти процентный рубеж, то для начала можно произвести поиск данных в статьях из схожих сфер, если не получится добыть информацию, то придётся удалить всю строку данных из базы для модели ИИ, но можно будет их оставить для анализа данных и проверки на различные зависимости;
Если количество пропущенных значений меньше 20%, то будет использоваться метод ближних соседей kNN;
Присвоение константы всем пропущенным значениям;
Замена пропущенного значения наиболее вероятным значением может быть выполнена с использованием формулы Байеса, дерева решений и т. д.;
Если вышеперечисленные методы бессильны, то будет применено: игнорирование кортежа - просто удалю кортежи с недостающей информацией (для больших наборов данных, где игнорирование небольшой доли кортежей не окажет существенного влияния на дальнейший анализ).
Идентификация выбросов и сглаживание зашумленных данных (случайная ошибка в измеряемой переменной):
Группирование — сортировка числовых значений по некоторым ячейкам. Это можно сделать, используя ячейки одинаковой ширины, в результате чего получается однородная сетка;
Регрессия - в этом методе сглаживание достигается путем подгонки данных к функциям регрессии.
Пару слов об увеличении качества данных. Объём данных зависит от количества обработанных статей вручную. Данное число конечно и нет возможности в его увеличении, так как нам нужны данные проведённых исследований, а не синтетические расчёты.
Визуализация в работе с данными.
Теперь поговорим о том, как визуализировать данные. Вообще любые данные и метрики, извлечённые из статей, можно использовать для анализа тех или иных взаимодействий между собой, но не все параметры будут использованы для обучения модели ML, так как возрастает ложность предсказания.
Отмечу, что необходимо разделить имеющуюся у нас собранную и обработанную базу данных на две: первая – представляет собой собранную и обработанную базу, а вот вторая – это будет база данных, которая будет использоваться для машинного обучения. Их отличие будет в количестве заполненных данных, для анализа можно использовать все данные, но для машинного обучения нельзя использовать базы данных с пропусками.
Для анализа извлечённых данных можно воспользоваться построением корреляционной матрицы. Это позволит произвести анализ зависимостей между параметрами и предоставит возможность (но это не значит, что так будет) синтезировать новый признак.
Также при построении базы данных для модели ИИ нужно стараться снизить корреляции между параметрами.
Если коэффициент зависимости между параметрами неудовлетворительно высок, то: удаляем схожие параметры системы (если они описывают схожие параметры системы или выводятся друг из друга); проводим пересчёт в новые величины и значения, на основании предыдущих, тем самым создаём новые дескрипторы.
Также визуализация данных мне понадобиться при выявлении «аномальных» значений и для просмотра пропущенных значений. Для этого можно воспользоваться бокс-плотами (ящик с усами) и графиками распределения параметров. Они точно и наглядно покажут качество собранных данных и нестыковки (если таковые имеются).
И напоследок можно использовать точечные графики для визуализации распределения параметров в системе. Тем самым можно увидеть на какие кластеры разделена система и какие параметры в них входят.
Что уже сделано?
Теперь можно перейти к составлению первичных дескрипторов системы, благодаря которым станет возможным описывать различные системы и типы биосенсоров. Основой для составления такой системы являются научные статьи и сборники, посвященные теме биосенсоров.
Мои первичные дескрипторы системы для биосенсора:
DOI (id of a paperwork)
Biosensor Target
Type of food detected in (meat / fish / juice / milk / fruit and etc.)
Target aggregation (liquid / solid)
Sensing Type (binding / other)
Physical contact (contact / non-contact)
Biosensor Method
Bioreceptor Name (short)
Bioreceptor Name (long)
Dynamic range / linearity (concentration range over which the sensitivity of the sensor is good)
Response time (time required for the sensor to indicate 63% of its final response due to a step change in analyte concentration)
Detection limit (lowest concentration of the analyte to which there is a measurable response)
Life time / Stability (time period over which the sensor can be used without significant deterioration in performance characteristics)
Reversible or irreversible (regeneration)
Sensitivity (minimum amount of analyte that can be correctly detected/identified in a minimum number of steps and in low concentrations (ng/mL or fg/mL) to verify the existence of analyte traces in the sample)
Reproducibility (precision of the similar output when the sample is measured more than once)
Accuracy (capability of a sensor to generate a mean value closer to the actual value when the sample is measured every time)
Сейчас производиться сбор и анализ данных в соответствии с методикой, описанной выше. В следующих статьях я постараюсь опубликовать итоги проведённой работы и то, как будет продвигаться мой проект.