Доктор Жоэль Анри, старший инженер по ИИ в Монолит ИИ
Одна из причин популярности ИИ заключается в том, что знания, полученные в ходе обучения, можно «перенести» на решение аналогичной задачи. Возможно, вы не сможете предсказать характеристики ракеты, основываясь на характеристиках вашего велосипеда, но физика старого самолета может помочь вам изучить конструкцию нового самолета. Чтобы сделать это успешно, нужно сделать паузу и тщательно подумать о том, как настроить алгоритмы машинного обучения и данные.
1. Подумай о следующем
При настройке модели ML (машинного обучения) подумайте о следующих итерациях дизайна и о том, чем они будут отличаться от вашей текущей. Чтобы помочь, вы также можете оглянуться назад и посмотреть, чем ваш текущий дизайн отличается от предыдущих.
Вот несколько рекомендаций, которые помогут убедиться, что входные и выходные данные для вашего текущего проекта актуальны для будущих проектов. Это можно применить к чему угодно, но давайте возьмем в качестве примера крыло самолета.
Попробуйте подумать о:
- Что изменится в новом дизайне? Например, у самолета изменится размер или форма крыла. На крыле могут быть дополнительные или разные функции, такие как количество элеронов, закрылков или предкрылков, наличие винглета для уменьшения лобового сопротивления. Для автомобиля это может быть материал, используемый для бампера, наличие спойлера в задней части автомобиля.
- Что останется неизменным в любом новом дизайне? Например, вы можете знать, что у вашего самолета всегда будет два крыла, что они будут содержать два топливных бака или что у вашего автомобиля всегда будет четыре колеса.
- Какую единицу использовать? Должны ли вы использовать абсолютную единицу измерения (например, метры, тонны и т. д.) или что-то относительно самолета (например, процент размаха крыла, соотношение и т. д.).
Те же соображения важны для данных, которые вы хотите использовать в качестве выходных данных для вашей модели машинного обучения. Какие результаты вас интересуют и в каком формате их следует хранить, чтобы их можно было повторно использовать в модели машинного обучения в новых проектах?
Трудно думать о том, «Как я могу отслеживать, как отличить следующий дизайн от текущего?», но это очень полезно! Это сложная задача, потому что она требует предусмотрительности того, чем будут отличаться следующие продукты. Иногда невозможно знать, что будет изменено в будущих конструкциях, особенно для компонентов, которые сильно отличаются от одного поколения к другому. Но всегда есть возможность подумать о том, что можно изменить в текущем дизайне.
Старайтесь избегать классификаторов ярлыков и предпочитайте непрерывные числовые значения.
Некоторая информация в настоящее время может храниться в формате, который имеет смысл только для текущего самолета. Некоторые местоположения или другие входные данные могут быть закодированы таким образом, что это ограничивает вашу способность расширять обучение новым проектам. Эти категориальные переменные почти всегда скрывают другие более полезные числовые значения. Если вы можете перевести метки в числовые значения, описывающие, чем ваш дизайн отличается от других, различия будут выражены более четко. Более того, если вы придумаете новый дизайн, требующий класса, которого ваша модель никогда раньше не видела, ваша модель не сможет делать прогнозы.
«Категориальные переменные почти всегда скрывают другие более полезные числовые значения».
Например, вместо того, чтобы хранить расположение двигателя самолета на крыле как LOC_ENG = ABC.123.D (выдуманная категория), лучше хранить расстояние между корнем крыла и двигателем как явное расстояние например, d=9,50 м. Таким образом, ИИ получит гораздо больше информации о связи между расстоянием и производительностью, а также сможет прогнозировать результаты для новых невидимых категорий местоположения двигателя. Вот еще один пример свойств материала. Вместо того, чтобы определять материал компонента автомобиля как AA6061 (обозначающий алюминиевый сплав 6061), вы бы узнали больше о свойствах материала, таких как жесткость E = 69 ГПа и прочность S = 200 МПа этого алюминия.
Стандартизация и параметризация ваших проектов (и соответствующих результатов) также потребуют определенных усилий и размышлений, но в долгосрочной перспективе они будут иметь огромную ценность. Это значительно упростит использование ваших данных не только для целей машинного обучения, но и для любой другой обработки данных, которую вы, возможно, захотите выполнить!
2. Пример: крыло самолета
Представьте, что в прошлом мы спроектировали крыло самолета. Мы провели много дорогостоящих симуляций и экспериментов, чтобы узнать, как ведет себя напряжение вдоль конструкции крыла. Собранные данные представляют собой напряжение в различных местах сенсорных станций вдоль крыла. Мы знаем, что хотим обучить модель, которая может делать новые прогнозы для одного и того же самолета, но мы также хотим повторно использовать эту обученную модель для нового самолета в будущем. Давайте рассмотрим два разных способа подготовки ваших данных и то, как они влияют на возможность трансферного обучения.
а. Без какой-либо подготовки данных
В этом первом случае данные, собранные после проектирования первого самолета (выделены синим цветом), никак не трансформируются. Могут быть некоторые «общие параметры», которые также будут применяться к новой конструкции самолета (например, скорость, высота над уровнем моря и вес), но могут возникнуть как минимум две проблемы:
- Могут быть «неразделяемые параметры», которые слишком специфичны для данного дизайна и не могут быть хорошо обобщены для нового дизайна (например, номера станций или номер станции, ближайший к движку).
- Могут отсутствовать «параметры дифференциации», которые могут количественно определить разницу между вашими конструкциями, например полные размеры и форма крыла.
В результате маловероятно, что модель, разработанная для первого самолета (обозначена синим), будет полезна для прогнозирования результатов второго самолета (обозначена красным). Во-первых, ваша обученная модель просто имеет разное количество входов и выходов. Какие входные значения вы используете для отсутствующих или дополнительных параметров? И какие значения вы прогнозируете для новых выходов? Во-вторых, модель может делать прогнозы, которые будут иметь смысл только для первого самолета. Например, поскольку нагрузка на законцовку крыла всегда близка к нулю, модель научится предсказывать нагрузку, близкую к нулю, на точке 30 для первого самолета, а для второго самолета нагрузка на точке 30 будет далека от нуля. нуль!
б. С подготовкой данных для машинного обучения
В идеальном случае все параметры являются общими для двух конструкций. Для этого необходимо обработать данные:
- Номера станций и позиции преобразуются в длины и соотношения вместо того, чтобы быть «жестко запрограммированными» значениями.
- Добавлены «параметры дифференциации», чтобы убедиться, что разница между разными проектами может быть зафиксирована.
Выходы также преобразуются, чтобы быть полезными. Вместо прогнозирования напряжения по номеру станции можно использовать относительное расположение вдоль крыла. Другим решением было бы разделить прогнозы между напряжением между фюзеляжем и двигателем, а также между двигателем и законцовкой крыла.
Обучение одному дизайну очень редко дает достаточно хорошую модель, чтобы предсказать результаты для второго дизайна. Влияние длины крыла невозможно изучить, если модель видела данные только для одного значения длины. Но теперь модель сможет изучить влияние этого параметра по мере сбора данных из большего количества проектов.
3. Заключение. Обеспечьте будущее своих моделей
Настройка ИИ-решения для вашей текущей проблемы поможет вам лучше понять ее. Но если вы подумаете о том, как она может отразить эволюцию продукта в течение многих итераций с самого начала, ваша модель будет гораздо более ценной. Это упражнение требует времени и усилий, чтобы правильно мыслить, но в конце концов оно принесет большую пользу.