Небольшое предисловие

Эта статья была написана как часть заявления о приеме на работу. Задача состоит в том, чтобы написать технический документ о том, как использовать машинное обучение, чтобы определить, несет ли дрон полезную нагрузку или нет. Я не продвинулся в процессе подачи заявки, однако я горжусь бумагой и ненавижу, что она пропадает зря. Итак, теперь он перед вами. Если вы ищете технического аналитика или специалиста по данным, не стесняйтесь обращаться ко мне по адресу [email protected].

Введение

Цель этой статьи — набросать решение для машинного обучения, позволяющее определить, несет ли дрон полезную нагрузку. Обратите внимание, что эта статья основана на коротком абзаце, опубликованном в канале Slack, и никоим образом не является исчерпывающей. Вместо этого это грубый набросок упрощенной проблемы, в которой предположения экстраполируются на основе ограниченной информации. В лучшем случае в этой статье будут предложены жизнеспособные обобщенные решения проблемы. По крайней мере, он должен проиллюстрировать процесс решения проблемы писателем для читателя.

Предположения

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

  1. Дроны в наборе данных имеют схожие базовые характеристики. Например, дроны одной модели имеют одинаковый базовый вес, записанный в наборе данных.
  2. Набор данных относительно чистый. Из-за этого предположения в этой статье нет споров или очистки данных.
  3. В наборе данных есть как дроны с полезной нагрузкой, так и без нее, и это каким-то образом записывается.

Проектирование инфраструктуры решения

Создание и идентификация цели

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

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

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

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

Использование модели машинного обучения

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

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

Затем обучение данных на подмножествах набора данных и их тестирование на других подмножествах предоставит метрики, которые можно использовать для оценки каждой модели. Модели бинарной классификации можно оценивать по-разному, и каждая из них имеет неизбежные компромиссы. К сожалению, алгоритмы прогнозирования и машинное обучение не достигли 100% точности прогнозирования. Однако, поскольку статус полезной нагрузки дрона может иметь значение для жизни или смерти, есть компромиссы, которым следует уделять первоочередное внимание. По сути, модель должна быть выбрана и настроена таким образом, чтобы ее «предвзятость» заключалась в том, чтобы предсказать, что дрон без полезной нагрузки действительно имеет ее, а не дрон с полезной нагрузкой не должен иметь ее.

Это подводит итог грубому наброску реализации решения машинного обучения для поставленной проблемы. Основная структура начинается с определения цели для прогнозирования, тестирования различных моделей, а затем определения наиболее подходящей модели на основе контекста предлагаемой проблемы.

Заключение

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