Распространенная дилемма для всех, кто занимается искусственным интеллектом / наукой о данных, состоит в том, сосредоточиться ли в первую очередь на математике и понять, как работает реальный алгоритм, или получить работающее интуитивное представление об алгоритме и сосредоточиться на его применении. Чаще всего ответ на эту дилемму для большинства людей находится где-то где-то посередине.

Внутренние чувства и машины

«Не пытайтесь постичь своим умом. Ваш разум очень ограничен. Используйте свою интуицию »- Мадлен Л'Энгль,« Ветер в дверь ».

Для младших специалистов по обработке данных / разработчиков-самоучок каждый раз, когда встречается новая исследовательская работа, с первого взгляда кажется, что нужно покорить новую гору. Большая грозная гора, наполненная вещами, которых вы, возможно, никогда не видели в своей жизни. Это чувство страха перед неизвестным ослабевает, когда мы начинаем копаться в бумаге, но оно также внезапно прекращается, как только мы сталкиваемся с ошеломляющим уравнением и некоторыми графиками, которые не имеют абсолютно никакого смысла для неопытного глаза. Теперь, на этом этапе разработчик подошел к вопросу на миллион долларов: либо придерживаться того, что он знает, и развивать его до тех пор, пока не останется ничего, что можно было бы сделать ИЛИ вернуться к чертежной доске и получить термос, полный кофе, потому что это будет долгая ночь перебора чисел и математических выводов. У обоих этих маршрутов есть свои достоинства и недостатки. Первый путь может лежать слишком глубоко в зоне комфорта, и после того, как вы уже обучили свою модель сто раз и натренировали каждый гиперпараметр в выбранном вами гиперпространстве, вы действительно должны задать себе вопрос «Как долго я Я правда собираюсь доить эту корову? » Недостатком другого пути является чистая неопределенность и время, необходимое для совершенствования понимания алгоритма, который МОЖЕТ работать. Даже если вы, возможно, выучили новый алгоритм и могли стать абсолютным мастером математики, окружающей его; от этого будет мало пользы, если вы не сможете применить его к набору данных проблемы (также ваш босс может быть очень недоволен).

Золотая середина:

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

Позвольте мне немного пояснить, что я имею в виду. Такие компании, как Microsoft, Google, Fast.Ai, ежедневно разрабатывают новые технологии и фреймворки (TensorFlow, PROPHET и т. чем теоретические концепции и машины, которые работают над «МАГИЕЙ». Цель игры - получить результаты и максимально автоматизировать поставленную задачу, а не сосредотачиваться на том, как алгоритм работает в целом.

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

Следует помнить, что этот подход работает в большинстве случаев, и ваша работа может быть выполнена, но пробелы в ваших знаниях необходимо заполнить постоянной практикой и чтением. По опыту я убедился, что этот подход работает намного лучше, если вы напутались со своим алгоритмом, а затем начинаете вникать в сложности, потому что тогда вы точно знаете, с какими проблемами вы столкнулись в своих экспериментах и ​​с какой настройкой вы бы предпочли получить лучший результат. В каком-то смысле эксперименты были вовсе не бесполезными, потому что теперь у вас есть лучшее, что может получить заблудший разработчик - НАПРАВЛЕНИЕ !!!

Заключение (TL; DR)

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

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

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