Что нужно знать, чтобы начать свой стартап с использованием технологий искусственного интеллекта? Какие процессы вам нужно учитывать, как вам нужно подготовить и обработать данные для обучения нейронной сети и на что обращать внимание, когда дело доходит до набора и тестирования? Все это нужно изучить, прежде чем браться за работу.
Понимание потребностей бизнеса и источников данных имеет решающее значение. Бывает, что хорошее решение появляется без использования технологий искусственного интеллекта.
На чем вам нужно сосредоточиться, чтобы принять правильное решение, исходя из потребностей пользователей или используемых технологий? Считается, что такой продукт с использованием ИИ, который призван помочь людям получить доступ к информации или напрямую обрабатывать такую информацию, чтобы принимать правильные решения, является успешным.
1. Определение цели и постановка задачи
Первый и самый главный вопрос для команды разработчиков - это правильная постановка задачи, решение которой с помощью искусственного интеллекта будет бизнес-потребностью. В результате решения этой задачи будет получен окончательный ожидаемый результат, и результат необходимо проверить для обеспечения максимальной точности.
2. Сбор и подготовка исходных данных.
Следующий шаг - определиться с источниками данных. Необходимо убедиться, насколько они верны, как можно интегрировать эти данные в разрабатываемую систему и как команда разработчиков может использовать их для достижения бизнес-целей. Проще говоря, при работе с данными их нужно обрабатывать максимально эффективно, несмотря на сложные преобразования и низкую скорость обработки, чтобы на выходе получить правильный результат. Качество первичных данных значения не имеет, главное правильно подготовить обучающую выборку. Если принцип выборки обучающих данных выбран правильно, то задачу можно масштабировать, используя более полный набор данных.
Обобщая сказанное, можно подготовить список вопросов:
• Какие источники данных доступны?
• Что это за данные?
• Достаточно ли у нас данных?
• Откуда берутся данные, как они собираются и обрабатываются?
В дальнейшем также стоит задать несколько вопросов, поскольку, если этого не сделать, то данный факт может существенно усложнить разработку проекта.
Дополнительный вопрос:
✓ Является ли образец данных, который мы используем для обучения модели, репрезентативным?
✓ Есть ли препятствия, которые мы не учли?
✓ Содержит ли образец личные данные и имеем ли мы право их использовать?
Следующий шаг, который необходимо сделать перед созданием самого алгоритма, - это обработка. Это подразумевает под собой (подготовку, кластеризацию) и нормализацию данных. Этот шаг нужен для подготовки образца для корректной интерпретации математической моделью искусственного интеллекта. Например, для числового выбора могут выполняться такие операции, как возведение переменных в степень или умножение на константу. Это позволит линейным моделям моделировать нелинейные отношения для выявления общих закономерностей.
Иногда необходимо выполнить преобразование для правильной интерпретации частотных характеристик при обработке звука или использовать алгоритм SIFT при решении задачи сопоставления изображений. Вы должны понимать, что нормализация и подготовка данных имеют решающее значение для традиционного машинного обучения. Этот процесс существенно влияет на выбор архитектуры используемых нейронных сетей, особенно при так называемом глубоком обучении, когда необходимо правильно определить количество скрытых слоев в нейронной сети и количество искусственных нейронов в них. Одним из основных преимуществ многослойных нейронных сетей является моделирование работы определенной сложной математической зависимости.
3. Разработка модели искусственного интеллекта, программирование и обучение нейронной сети.
Теперь, когда есть четкая бизнес-цель, правильный набор исходных данных для образца и сам образец, вы можете приступить к разработке моделей нейронных сетей, программированию и дальнейшему обучению нейронной сети. Новый этап будет включать выбор алгоритма обучения, применение алгоритма обучения, его визуализацию и оценку качества обучения.
Обучение нейронной сети можно сравнить с обучением собаки команде, выполняемой миллионы раз. Как бы банально это ни звучало, процесс обучения довольно прост. У вас есть обучающая выборка, содержащая входы и выходы. Вы подаете исходные данные на вход нейронной сети и на выходе получаете определенный результат обработки нейронной сетью. Затем вы сравниваете результат с окончательным результатом из приведенного выше примера, указывая степень сходства. Этот процесс может показаться простым, но его эффективное и правильное выполнение на больших наборах данных далеко не так просто. Необходимо выбрать правильный алгоритм обучения нейронной сети, иначе созданный искусственный интеллект может научиться неверно интерпретировать входящий поток данных, что приведет к нежелательным ошибкам.
Один из таких случаев произошел с Google, когда фотография семьи афроамериканцев была загружена в ее программное обеспечение для распознавания лиц, и программа пометила изображение как семейство обезьян. Связан ли в данном случае результат работы ИИ с расизмом? В результате получается, что окончательное поведение созданного искусственного интеллекта следует из набора исходных данных, процедур их обработки и нормализации, используемого алгоритма обучения и критерия проверки результата обучения. Именно на этом этапе сочетание нескольких подходов дает возможность правильно обучить нейронную сеть, чтобы взаимодействия с разработанной математической моделью были максимально эффективными.
4. Проверка полученных результатов.
Выборка для тестирования также должна быть репрезентативной, как и набор данных для обучения. Раньше практическое правило заключалось в использовании исходного обучающего набора в соотношении 80 на 20, при этом большая часть данных использовалась для обучения нейронной сети. Теперь осталось определиться с составом команды и ролью каждого участника. Команда разработчиков должна взять на себя работу по обучению нейронной сети, в частности разработку и тестирование алгоритмов машинного обучения. Одна часть команды проведет обучение, а другая протестирует алгоритм, проверив, насколько точно ИИ решает проблему. Одна из распространенных ошибок, с которой сталкиваются многие команды разработчиков, - это использование одного и того же набора данных для обучения и тестирования нейронной сети.
Команда разработчиков, попавшая в эту ловушку, будет склонна сказать, что в результате проведенного машинного обучения нейронная сеть дает правильный результат на выходе. Затем команда разработчиков должна оценить производительность модели нейронной сети с точки зрения чувствительности и стоимости. Идеальных моделей не бывает, но не все ошибки сами по себе одинаковы. Модель может давать так называемый ложноположительный или ложноотрицательный результат. Конечно, ложное срабатывание лучше. Это дает возможность немного перестраховаться при принятии решения.
В случае решений для розничной торговли завышение прогнозов может увеличить затраты на оборотный капитал, в то время как недооценка может привести к более значительным затратам из-за резкого падения продаж клиентов. Решение о том, как правильно обучить нейронную сеть для решения конкретной задачи, всегда является компромиссом.
Как ответить на вопрос, сколько нужно тренировочных циклов?
Является ли работа ИИ просто запоминанием массива данных и его извлечением, или приоритетом будет определение определенных шаблонов для данных в этом массиве?
Уравновешивание переобучения и обобщения нейронной сети - еще одна сложная наука. На протяжении всего процесса обучения основная проблема часто остается как бы скрытой, исчезает из поля зрения. Например, как измерить успех, ценность, предпочтения? Соответствует ли эта мера требованиям бизнеса? Это технически полезно? На эти вопросы часто нужно сразу отвечать. У всех наборов данных есть недостатки и подводные камни, и не все они математически полезны для обучения.
Как только команда разработчиков будет уверена в правильном решении проблемы, они могут работать над преобразованием результатов нейронной сети в идеи, элементы действий, прогнозы или просто использовать их в результате обработки данных.