«Искусственный интеллект» или машинное обучение (которое на самом деле является сегодня) очень мощное и имеет большой потенциал, но также слишком много шумихи вокруг того, что он может сделать. Да, очень мощный, но это не волшебная пыльца пикси.

Чтобы понять машинный интеллект сегодня, поймите, что компьютеры очень мощные, но в то же время очень глупые. По сути, они могут выполнять только самые простые математические вычисления. Компьютеры понимают только числа и математические операции. НО они могут сделать миллиарды из них очень быстро и последовательно¹. Именно так сегодня работает машинное обучение (или любой другой алгоритм). Конечно, в будущем все может измениться, но сегодня мы именно такие.

Если и существует «магия», то это та часть, которая заключается в том, чтобы делать что-то миллиарды раз, быстро и последовательно — так, как ни один человек не смог бы это сделать. Например. попросите человека сложить миллион 2 чисел, и этот человек, вероятно, сгорит, сделает ошибки, объединится в профсоюз или подаст в суд за бесчеловечное обращение задолго до того, как приблизится к миллиону, в то время как компьютер правильно вычислит числа (при условии, что ваш код правильно) в секундах. И они никогда не жалуются и не устают.

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

Кстати, именно так работают и сегодня такие вещи, как распознавание изображений и обработка естественного языка (NLP). например

  • Распознавание изображений является примером использования более широкой концепции нейронных сетей, которая, опять же, по сути включает в себя многократное вычисление тысяч или миллионов значений. Вот серия видеороликов, которые объясняют, как работают нейронные сети таким образом, что IMO отлично справляется с балансировкой, давая интуитивное концептуальное понимание с достаточным количеством деталей, чтобы показать, что происходит на самом деле. Опять же, не волшебство, а просто множество умных математических операций, повторяемых снова и снова, снова и снова, буквально снова и снова.
  • На самом деле, распознавание изображений работает на удивление хорошо, потому что то, что мы видим как «картинки», для компьютера представляет собой набор чисел, то есть «пикселей». Таким образом, у вас уже есть числовое представление, которое можно ввести, а выходные данные могут быть хорошо связаны, например. классифицировать как «кошка» или «собака». Обратите внимание, что компьютер не «знает» кошку и собаку, все, что он «знает», основано на выводе множества вычислений, результат помещается в ведро, которое мы, люди, называем «кошка» или ведро «собака»². .
  • Большинство популярных алгоритмов НЛП работают, превращая лингвистический анализ в статистические задачи — преобразовывая текст в числа, и ТОЛЬКО ТОГДА он может выполнять статистический анализ. Например, тематическое моделирование, при котором документы — статьи, электронные письма, твиты и т. д. — объединяются в темы. В Интернете есть много источников о том, как это работает (вот один), в двух словах, это делает миллионы или миллиарды отупляющих, относительно простых вычислений снова и снова. Более сложные модели, такие как word2vec и BERT, делают такие вещи, как векторы чисел, которые сохраняют (до некоторой степени) семантическое значение — они в основном получаются таким же образом.
  • Это в широком смысле применимо ко всем методам машинного обучения — регрессии, кластеризации, нейронным сетям и т. д. Гений компьютерных наук и разработки алгоритмов заключается в том, чтобы выяснить, как превратить сложные проблемы реального мира в краткие математические задачи, которые вы можете дать компьютеру. К счастью, многие из них упакованы в библиотеки, которые абстрагируют низкоуровневое мышление.

Итак, повторюсь, «ИИ», «машинное обучение» и т. д. — это не волшебная пыльца, которая может решить ваши проблемы, это просто множество маленьких шагов, выполняемых в масштабе и быстро. Это не для того, чтобы подорвать великолепие современных компьютерных наук, разработки алгоритмов и машинного обучения, просто удивительно, как далеко мы продвинулись. Например, встраивание слов (word2vec, BERT и т. д.) стоит проверить, как очень умные люди выяснили, как представлять язык с помощью чисел таким образом, чтобы при этом сохранялось семантическое значение.

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

  1. ВО-ПЕРВЫХ, НЕ ДУМАЙТЕ, что если что-то выглядит простым для человека, это будет просто и для компьютера. Серьезно, нет.
  2. Как вы можете разбить свою проблему на простые, осязаемые шаги, которые имеют четкие входы и выходы, представляют все проблемное пространство, к которому вы обращаетесь, и сделано в масштабе
  3. Как вы можете четко и хорошо структурировать свои входы и выходы для компьютера, или, с технической точки зрения, можете ли вы определить четкие функции цели и потерь. Например. классифицировать изображение животного — отлично, это уже куча пронумерованных пикселей, и вы можете иметь четкие ярлыки — кошка, собака, тигр и т. д. Читаете финансовое регулирование и рекомендуете изменения во внутренних процессах и политиках? Не так много
  4. У вас есть теория/гипотеза о том, как вы переходите от входных данных к желаемым результатам? Это очень важно, чтобы определить, какой метод вы будете использовать. Например. Методы НЛП, такие как тематическое моделирование и встраивание слов, во многом опираются на лингвистику — идею о том, что значение слова может быть получено из его контекста.
  5. Можете ли вы получить достаточно репрезентативных данных, чтобы представить все различные типы входных и выходных данных для обучения вашей модели? Модели машинного обучения будут понимать только то, что видели. Хуже того, современные модели не всегда знают, что они не знают, и выдают ложные или бессмысленные результаты. Например. если обучить модель на картинках кошек и собак и дать ей лошадь, она не скажет «не знаю», она попытается классифицировать лошадь либо как кошку, либо как собаку, а то и то и другое³
    Более наглядный пример: если вы обучаете свою модель классификации юридических контрактов, но обучаете ее только на контрактах от одной конкретной компании или юридической фирмы, она может некорректно работать с контрактами от разных юридических фирм.

¹ Интересен вопрос о «непротиворечивости» при выполнении кода на компьютере. Люди часто спрашивают об ошибках и непредвиденных результатах. Реальность такова, что компьютер будет делать ТОЧНО то, что вы ему скажете, как написано в коде. Другой вопрос, действительно ли написанный вами код делает то, что вы от него хотите во всех возможных условиях. Или, наоборот, забавные вещи могут происходить, когда вы достигаете пределов, таких как память, хотя современные системы, как правило, достаточно умны, чтобы улавливать такие вещи.

²Чтобы быть точным, классификаторы обычно выводят вероятности, а не абсолютные классификации, я не упомянул это для простоты.

³В настоящее время ведутся исследования по разработке моделей машинного обучения с выводом «Я не знаю».