Не ограничивайтесь простыми модными словечками — вот что вам нужно, чтобы получить глубокое понимание того, что происходит с когнитивными системами.
Кажется, что у всех и их мам есть какая-то новая тенденция в области искусственного интеллекта, на которой они хотят заработать в эти дни. Фразы, наполненные жаргоном, летают вокруг, например, обработка естественного языка, обучение с подкреплением, нейронные сети, большие данные и машинное обучение. В них легко заблудиться, особенно потому, что многие из них — просто вариации одного и того же. Недавно мой друг проходил процесс подачи заявки в компанию, специализирующуюся на «когнитивном ИИ». Вот разбивка того, что такое когнитивный ИИ, как о нем говорить и какие вопросы задавать работодателю на собеседовании.
Основная краткосрочная ценность ИИ для частного сектора лучше всего подходит для того, чтобы помочь компаниям свести к минимуму недостатки их текущей рабочей нагрузки за счет автоматической способности действовать на основе почти идеальной информации (т. е. наблюдений из больших данных) без особого участия человека. Большинство компаний, занимающихся добычей ресурсов или производством, страдают от перепроизводства или недопроизводства. Если у них слишком много определенного продукта, они не могут заработать на нем деньги. Если у них слишком мало продукта, это упущенная выгода. Большинство компаний также не могут быстро переключить уровень производства с высокого на низкий — это решения, которые принимаются задолго до того, что руководители производства считают долгосрочными тенденциями. Это лучшая стратегия этих компаний, но можно ли ее улучшить? Звучит как идеальный рецепт для исправления ИИ.
Главное, о чем вы захотите поговорить в любом интервью, связанном с ИИ, — это данные. Сбор данных, организация, размещение и обработка — четыре основных атрибута, которые вас заинтересуют. Очень жаль, что большинство компаний реагируют на проблемы с большими данными, а не превентивно — это часто задним числом — но это идеально подходит для вас, чтобы воспользоваться. Большинство компаний игнорируют эти проблемы, потому что не понимают их или наняли инженеров по машинному обучению, думая, что смогут адаптироваться (плохая стратегия). Данные необходимы для понимания основ вашего продукта. Отсутствие полного понимания данных похоже на архитектора, не знающего, из каких строительных материалов он работает. Спросите своего потенциального работодателя, какова его стратегия сбора данных. Как это поддерживается? Как он обрабатывается для использования в алгоритмах машинного обучения? Это большие вопросы, и если они не знают правильного ответа — будьте готовы и используйте это как возможность покрасоваться.
Теперь о том, почему вы нажали на эту статью. Как на самом деле работает глубокое обучение с подкреплением (также известное как когнитивный ИИ)? Что вам нужно знать, чтобы звучать осведомлённым об этом? Начнем с того, для чего он используется. Используя DRL, вы можете разрабатывать функции автоматического управления для роботов, создавать теоретические миры и наполнять их потенциальными факторами для моделирования будущих ситуаций, позволять машинам принимать решения на основе окружающего их мира и осваивать игровой ИИ. Шесть основных областей DRL:
- Автоматическое управление и имитационное обучение
- Обучение с подкреплением
- Глубокие сети прямой связи
- Обучение с подкреплением в больших пространствах состояний
- Градиенты политики и функция Q
- Подкрепление в пространстве непрерывного действия.
Каждый из этих шести предметов достаточно обширен, чтобы заслужить отдельный пост (или несколько) сам по себе. Вы можете прочитать о них в любом месте в Интернете, если у вас есть время. Мы хотим сосредоточиться на том, как рассказать о каждом из них. Если вы действительно хотите разобраться в технических аспектах глубокого обучения с подкреплением, я рекомендую вам иметь опыт работы с глубоким обучением, машинным обучением и хорошее понимание программирования на Python со стандартными библиотеками, такими как Numpy, Pandas и Matplotlib.
Если вы чувствуете себя немного потерянным — не паникуйте! Все так делают, когда доходят до этого. Хороший способ описать информатику — это как единый инструмент, который каждый и их брат сумели настроить по-своему, и который отчаянно пытается заставить вас изучить его. Никто не знает всего этого сразу, и даже самые опытные инженеры по машинному обучению постоянно обращаются к основам. Лучше всего обобщать — и давайте начнем с ДХО. Хорошей концепцией для понимания является идея динамических систем. Динамические системы помечены как таковые, потому что они постоянно меняются. Вот почему они полезны — они могут принимать постоянно меняющиеся данные и делать с ними что-то! Второе общее понятие – это память. Память важна, потому что это вся информация, которую ваша система может использовать для принятия решений. Теперь — машины обрабатывают память немного иначе, чем вы или я. Для нас это не то же самое, что кратковременная память против долговременной. Вместо этого метрика, которую машины используют в качестве источника данных, ограничена по сравнению с неограниченной памятью. Каждый из них имеет различные причины для его использования. Вам нужна динамическая система с ограниченной памятью, если вы не хотите, чтобы информация из огромного таймфрейма мешала действиям системы (например, прошлым летом была рекордная жара, но вы не хотите, чтобы ваша система думала, что каждый раз лето будет таким!) Иногда вам понадобится динамическая система с неограниченной памятью, чтобы обрабатывать большие промежутки времени и производить выходные данные. Все зависит от вашего варианта использования — но помните! У компьютеров тоже есть свои ограничения. Если вы попытаетесь сохранить все, вы потратите вычислительные ресурсы впустую. Причина, по которой инженерам по машинному обучению так много платят, заключается в том, что они должны определить, какие функции стоит хранить в памяти. Google Cloud дорожает! Почему я ввел эти два понятия вместо всех остальных? Динамические системы действительно подчеркивают суть глубокого обучения с подкреплением, которое заключается в использовании стимулов вокруг машины, чтобы заставить ее принять решение. Вы хотите, чтобы машина воспринимала все вокруг, анализировала все данные и принимала решение (т. е. результат).
Следующей большой общей концепцией являются проблемы обучения с прогнозированием. Существуют две основные проблемы предиктивного обучения — регрессия и классификация. Эти термины знакомы любому статистику или специалисту по данным. Как бы вы подошли к решению проблемы регрессии? Возьмем «прогнозирование цены акций компании, готовящейся стать публичной». Вам нужно получить обучающий набор данных с известными ценами на акции и попробовать разработать функции, которые, как считается, имеют отношение к вашей цели. Это могут быть такие вещи, как текущий доход компании (т. е. чем выше доход, тем выше цена акций). Чтобы связать потенциальную цену акции с доходом, вы будете использовать линейную модель или линию регрессии. Именно для таких решений идеально подходят ДХО. Использование ML для классификации аналогично — но вместо того, чтобы предсказывать будущее вывода, вы пытаетесь предсказать класс (или метку). Этот тип решения проблем можно найти в распознавании объектов, где модели машинного обучения необходимо отличать объект от его окружения и идентифицировать его. Математически классификация выполняется путем нахождения гиперплоскости (т. е. разделительной линии), которая как можно лучше отделяет два класса данных от обучающего набора.
Я собираюсь осветить только еще одну общую концепцию, прежде чем перейти к некоторым обобщениям и идеальным вопросам, чтобы задать общие ответы, которые вам не нужно знать все, чтобы это выглядело так, как будто у вас есть это в сумке. Последней концепцией является проектирование функций — определение тех определяющих характеристик данного набора данных, которые обеспечивают оптимальное обучение. Чем больше вы понимаете процесс генерации имеющихся у вас данных, тем лучше вы сможете самостоятельно проектировать функции или, что еще лучше, научить компьютер создавать их самостоятельно. Одна из забавных конечных целей машинного обучения — разработать адекватные инструменты для понимания нашей собственной вселенной — как найти закономерности в произвольных данных и как определить лучшие из них для использования в важных наблюдениях.
Одна вещь, которую вы, вероятно, захотите обсудить, — это то, как на самом деле работает машинное обучение. Выше я только что перечислил инструменты для начинающих, чтобы понять ML, но вы, вероятно, хотите знать, как они объединяются и на самом деле решают проблему — верно? Каждая проблема машинного обучения в конечном итоге сводится к поиску минимума соответствующей функции стоимости. Если это звучит сложно, так оно и есть! Хороший способ подумать об этом — это то, что в мозгу есть хребты, вроде каньона в очень маленьком масштабе. Вот тут и происходит забавная вещь — мы выяснили, что если мы сможем правильно сформировать каньон, то ответ, который нам нужен, всегда будет внизу! Я практически слышу, как все математики коллективно стенают по этому объяснению, но, честно говоря, это действительно хороший предварительный способ понять «магию», которая происходит в системах машинного обучения. Реальный ответ больше похож на упражнения, которые вам приходилось выполнять в исчислении, когда вам давали пропущенное значение в серии линейных уравнений (то есть матрице) и просили найти пропущенное значение. В данном случае недостающее значение — это дно каньона, а каньон — это представление линейных уравнений! Если вы все еще не понимаете абстракцию, не беспокойтесь — это действительно странная концепция для человеческого мозга.
Хотите хороших новостей? На собеседовании очень легко говорить о машинном обучении, если оно больше теоретическое, чем техническое. Хороший способ придерживаться сценария — честно сказать, что интересного в подобных технологических прорывах — потенциал машинного обучения действительно крут! Вся эта концепция использования компьютеров для поиска и использования закономерностей в хаотической вселенной должна быть увлекательной для всех. Вы в значительной степени разрабатываете виртуального «менеджера» с идеальной информацией о продукте, если вы работаете с ним в промышленном производстве. Что лучше этого? Я рассказал об идее функций выше — вы знаете, какие у вас есть функции? Это производственная информация — количество работающих людей, количество акров работающего оборудования, количество используемой энергии, входы и выходы. Это ситуационная осведомленность — знание рынка, знание окружающего пространства, знание того, что позволяет осуществлять входы и выходы. И то, и другое объединено, чтобы обеспечить идеальную координацию. Это все один мозг в значительной степени анализирует все и принимает решения. Круто, да? Если вам нужен ключ к разговору о машинном обучении, просто придерживайтесь того, что позитивно во всем процессе. Возможности безграничны.
Обязательно спросите о следующих трех областях, когда идете на собеседование. В зависимости от того, насколько вы уверены в своих знаниях в каждой области, изменяйте и редактируйте вопросы в соответствии со своими потребностями.
- Сосредоточьтесь на сборе данных. Спросите, как компания разрабатывает статистически значимые функции.
- Спросите, как эти функции записываются, а затем обрабатываются, чтобы их можно было оптимально использовать для целей компании. Отсутствие данных в правильном формате — самая большая проблема. Единственный лучший вопрос, который вы можете задать, — это то, как они обозначают свои точки данных. Это немедленно подскажет вашему боссу, что вы знаете, в чем заключаются основные проблемы машинного обучения. Неразмеченные данные — бич всех инженеров по машинному обучению.
- Спросите об использовании ими облачного хранилища. Есть ли у них достаточный персонал, чтобы справиться со сложностями управления облачной платформой данных и конвейером для своих сервисов? Простой попытки стажера запустить модель на графическом процессоре недостаточно.
- Спросите, включали ли их динамические системы долговременную память, кратковременную память или их сочетание. Это подскажет вам, насколько интенсивно компания думает о своих методах сбора данных и о том, как они их используют. Хорошее продолжение — в каких ситуациях вы бы использовали оба типа памяти.
Напишите мне по электронной почте, если вы хотите узнать больше потенциальных вопросов или узнать что-то о глубоком обучении с подкреплением. Это растущая область, и трудно найти простые ответы в Интернете. Ознакомьтесь со следующими вариантами чтения, которые у меня есть ниже, для получения дополнительной информации. Я даже не рассматривал неявный и явный ИИ (способность понимать, что происходит в вашей системе) или системы с участием человека (реагирование на человеческий ввод и принятие решений). Это ваши лучшие следующие шаги к сборке ДХО.