У машинного обучения и иммунной системы есть кое-что общее: они оба учатся на собственном опыте, чтобы делать прогнозы на будущее.

Машинное обучение повсюду, и биомедицинская наука не исключение. От крупномасштабного анализа геномных данных, продвигающих персонализированную медицину до решения проблемы биологии 50-летней давности путем предсказания сворачивания белка по аминокислотным последовательностям, нет никаких сомнений в том, что машинное обучение делает возможными прорывы, которые формируют будущее биомедицинские исследования. Но что такое машинное обучение?

Машинное обучение (ML), по определению Артура Сэмюэля, - это область обучения, которая дает компьютерам возможность учиться без явного программирования. Алгоритм машинного обучения может учиться на основе данных. Но как определить обучение для машины? Формально компьютерная программа, как говорят, учится на собственном опыте E в отношении некоторого класса задач T и показателя эффективности P, если ее производительность при выполнении задач в T, измеряемый P, улучшается с опытом E . [1].

Чтобы представить это в привычном контексте для ученых-биомедиков, давайте подумаем об иммунной системе. Наша иммунная система защищает наши тела от внешних захватчиков, таких как бактерии, вирусы, грибки и токсины. Когда врожденного иммунного ответа недостаточно для борьбы с инфекцией, активируется адаптивный или приобретенный иммунный ответ, опосредованный Т-клетками и В-клетками. Давайте рассмотрим пример.

Когда антиген попадает в наш организм, антигенпрезентирующие клетки (APC) обнаруживают и поглощают их. Они образуют множество различных фрагментов антигена и транспортируют их к своей мембранной поверхности. Некоторые Т-клетки отвечают на APC, стимулируя B-клетки для подготовки своего ответа. Затем B-клетки производят белки, называемые антителами, которые специфичны для вторгающегося патогена и связываются с поверхностью вторгающегося патогена, чтобы пометить его для разрушения. После заражения сохраняется популяция патоген-специфичных B-клеток, поэтому иммунный ответ более быстрый и эффективный в случае повторного заражения.

Это означает, что наша иммунная система научилась распознавать антиген как патогенный и использовать эту информацию в случае повторного заражения. Или, другими словами, наша иммунная система учится на опыте, чтобы лучше справляться с задачей - в данном случае - уничтожением патогенов. Это в значительной степени то, что делает машинное обучение.

Учитывая формальное определение машинного обучения, мы можем определить 4 основных компонента любого алгоритма машинного обучения: набор данных (опыт), модель ( алгоритм для решения задачи), стоимость или функцию потерь (измерение того, насколько хорошо модель решает задачу) и оптимизацию алгоритм (который калибрует модель для повышения ее производительности).

Давайте рассмотрим каждый из них более подробно:

Набор данных (опыт)

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

Неконтролируемые алгоритмы обрабатывают набор данных, содержащий множество функций, а затем изучают полезные свойства структуры этого набора данных. Как правило, они нацелены на изучение всего распределения вероятностей, которое сгенерировало набор данных, или на разбиение или кластеризацию набора данных на однородные группы (т. Е. Группы, в которых образцы похожи).

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

Задача (T)

ML позволяет нам решать задачи, которые слишком сложно решить, с помощью фиксированных программ, написанных и разработанных людьми [1]. Сам процесс обучения не является задачей. Обучение - это наше средство достижения способности выполнять задачу. Задача и набор данных сильно взаимосвязаны. Можно утверждать, что тип задачи, которую мы можем настроить, будет зависеть от набора данных или, наоборот, вид задачи, которую мы хотим решить, будет определять набор данных, который нам нужно использовать или собирать.

Например, если нашей отправной точкой является задача прогнозирования, будут ли пациенты с раком груди хорошо реагировать на химиотерапевтическое лечение на основе мутационного статуса гена BRCA, нам понадобится набор данных пациентов с диким типом и мутировавший ген BRCA (называемый функцией), и их результаты при химиотерапевтическом лечении (называемые целью / меткой). Но если нашей отправной точкой является набор данных о пациентах с раком груди с характеристиками (такими как мутационный статус BRCA, возраст, этническая принадлежность, стадия и т. Д.) И ответом на химиотерапию меткой, мы могли бы использовать контролируемый подход (аналогичный тому, который мы представили ранее), или мы могли бы использовать неконтролируемый подход, анализируя только особенности пациента, чтобы найти функциональные кластеры (группы). С помощью последнего подхода машина могла бы обнаружить, например, что все пациенты BRCA дикого типа моложе 50 лет (гипотетически).

Первая задача соответствует классификации (определение того, к какому классу k принадлежит вход), а вторая - кластеризации (выявлению групп похожих примеров в набор данных) . Примеры других задач:

  • Регрессия. Алгоритму предлагается предсказать числовое значение на основе входных данных. Например, прогнозирование реакции клеточной линии на лечение лекарствами.
  • Машинный перевод для преобразования последовательности символов на одном языке в последовательность символов на другом языке. Например, перевод с английского на испанский.
  • Обнаружение аномалий. Обнаружение аномальных примеров в заданном наборе данных. Например, обнаружение мошеннических банковских операций.

Показатель эффективности (P)

Чтобы оценить нашу модель, мы должны разработать количественный показатель ее производительности (который мы называем функцией затрат или потерь). Производительность часто измеряется с использованием точности (пропорции правильных выходных значений) или ее эквивалента, коэффициента ошибок (доли примеров, для которых модель дает неверные выходные данные). Функцию потерь иногда называют потерями 0–1 (в моделях классификации значение функции потерь составляет 0, если ответ правильный, и 1, если он неправильный). .

Алгоритм оптимизации

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

Как убедиться, что алгоритм машинного обучения будет работать хорошо в будущем?

Когда мы создаем алгоритм машинного обучения, наша цель состоит в том, чтобы он мог делать прогнозы для новых или невидимых данных. Возвращаясь к примеру с иммунной системой, мы заинтересованы в том, чтобы иммунная система могла различать, является ли данный антиген ранее обнаруженным патогеном, чтобы В-клетки были готовы вырабатывать антитела против них. Или, например, если мы создадим алгоритм для прогнозирования ответа на химиотерапевтическое лечение пациентов с раком груди, мы хотим, чтобы он мог делать правильные прогнозы для новых пациентов, а не только для тех, которые мы использовали для обучения модели. Это свойство называется обобщением, т. Е. способностью эффективно работать с ранее ненаблюдаемыми данными.

Давайте подумаем об этом на секунду. Когда мы обучаем модель с помощью набора данных, как мы узнаем, обучается ли она с хорошим обобщением или просто запоминает набор данных? Чтобы ответить на этот вопрос, мы, вероятно, сначала должны ответить на другой вопрос: способны ли алгоритмы машинного обучения запоминать набор данных? В большинстве случаев да, это так: любой алгоритм машинного обучения с достаточной мощностью способен запоминать или изучать набор данных. Давайте посмотрим на пример на рисунке ниже. При попытке разделить 2 набора образцов по цвету задача невозможна с моделью с малой вместимостью. Однако в модели с высокой пропускной способностью можно легко создать произвольные границы для разделения набора точек.

Теперь, когда мы ответили на этот вопрос, мы можем вернуться к следующему: как узнать, обучается ли модель машинного обучения с хорошим обобщением или просто запоминает набор данных? Мы уже знаем, что любая достаточно мощная модель способна запоминать набор данных, поэтому как мы можем убедиться, что модель будет хорошо работать с невидимыми данными? Есть два основных метода, используемых для займитесь этим.

Первый состоит в разработке процедуры обучения модели, имитирующей реальный сценарий. Это означает разделение (т. Е. Разделение / разделение) набора данных на наборы для обучения, проверки и тест. Алгоритм имеет доступ к наборам обучение и проверка во время обучения, а итоговая производительность модели в наборе test используется в качестве прокси для производительность в невидимых новых данных.

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

Обычно мы повторяем этот процесс много раз, присваивая образцы различным наборам, чтобы получить более надежную оценку производительности модели. Наиболее типичный способ сделать это - k-кратная перекрестная проверка, при которой набор данных делится на k групп (называемых свернутыми), и процесс повторяется k раз, каждый раз сохраняя одну кратность в качестве тестового набора, а остальные данные - в качестве набора для обучения и проверки (см. рисунок ниже). Существует множество вариантов этого параметра, например, можно выполнять перекрестную проверку для каждого из наборов train + val в свертке перекрестной проверки, что приводит к вложенной перекрестной проверке. также возможно исключить уникальный набор тестов и выполнить k-кратную перекрестную проверку набора поезд + значение.

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

TL; DR

У машинного обучения и иммунной системы есть кое-что общее: они оба учатся на собственном опыте, чтобы делать будущие прогнозы. Любой алгоритм машинного обучения состоит из 4 основных элементов: набор данных, модель, показатель эффективности и алгоритм оптимизации. Набор данных - это опыт, который модель использует для обучения. Выбор модели будет зависеть от решаемой задачи (регрессия, классификация и т. д.). Во время обучения показатель производительности показывает, насколько хорошо модель решает задачу. Чтобы алгоритм машинного обучения мог обучаться, он должен иметь правильную емкость, а план эксперимента должен быть таким, чтобы его окончательная производительность проверялась на невидимые данные (данные, которые не просматриваются во время обучения).

Не стесняйтесь задавать любые вопросы в разделе комментариев

Я благодарен доктору Андреа Гонсалес Пигорини за ее вклад в медицинскую часть этого сообщения и Матиасу Микколе за вычитку и предложения.

использованная литература

[1] Ян Гудфеллоу, Йошуа Бенжио и Аарон Курвиль. 2016. Глубокое обучение. MIT Press.

[2] Примечания по иммунной системе из: OpenStax, Biology. OpenStax CNX. 18 сентября 2021 г. https://opentextbc.ca/biology/chapter/23-2-adaptive-immune-response/

[3] Примечания по машинному обучению и глубокому обучению от: [1]