Вы когда-нибудь задумывались, как вы зашли на YouTube, чтобы посмотреть всего 5 минут видео, но оказались там в течение 3 часов? Или увидели на какой-то странице рекламу именно той вещи, которую вы планировали купить последние 15 дней и в итоге наконец-то купили! Разве не здорово, что ваш компьютер знает, чего вы желаете? Ну, это не ваш компьютер, а боты, алгоритмические боты, которые следят за вами все время. Даже сейчас! Да, это абсолютно верно. Итак, возникает вопрос, как создаются эти боты и как здесь играют роль концепции тестирования программного обеспечения.

Не так давно люди создавали алгоритмические блоги, которые вели себя как настоящий искусственный интеллект. Простой и длинный код, который в основном говорил: «Сделай это, если это… или сделай то, если это…» какое-то время работало отлично, и во многих повседневных действиях он все еще работает. Однако по мере того, как все больше и больше людей приходили в Интернет, создавая все большие и большие наборы данных, этот подход просто не работал везде. Потому что некоторые проблемы достаточно велики, чтобы их могли обучить люди.

Давайте рассмотрим пример, когда вам показывают две картинки, на одной из которых изображена собака, а на другой — номер 5, и вас спрашивают, что есть что? Будучи человеком, вы просто знаете, что да, это собака, а это номер 5, но как машина или боты узнают?

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

Знаете ли вы, что CSS Shapes Level 1 позволяет создавать фигуры с помощью CSS, например закругленные углы и круги. Область определена, и текст может обтекать эту фигуру.

Как они учатся?

Программисты-люди создают бота-учителя и бота-строителя с более простыми мозгами. Бот Builder создает студенческих ботов, сохраняет и отбрасывает их на основе их тестовых оценок.

Бот-учитель сам не может отличить собаку от пятерки, но он может проверять ботов-учеников, правильно ли они определяют или нет. Теперь вы понимаете, почему автоматизированное тестирование так важно.

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

Бот-учитель продолжает тестирование, и, основываясь на оценках ботов-учеников, бот-строитель сохраняет лучших ботов и безжалостно отбрасывает остальные.

Цикл тест, сборка, тест продолжает повторяться в цикле, и их оценки оцениваются, и однажды бот с точностью приблизительно 99,9 % (или назовем их оценками) построен цикл остановлен.

Теперь нам приходит в голову вопрос: «Сколько раз повторяется автоматизированный цикл тестирования, сборки и тестирования?». Что ж, это повторяется столько раз, сколько необходимо, пока не будет построен бот с лучшими оценками. Лучший бот — лучший алгоритм, чтобы отличить собаку от 5.

Посмотрите на это CSS position:sticky: упрощенный полифилл, который использует нативные API-интерфейсы CSS, чтобы ваши фиксированные и относительные элементы оставались в нужном положении при прокрутке страницы.

Так в чем проблема?

Теперь мы подобрали лучший алгоритм, чтобы отличить собаку от числа 5, тогда какая проблема может возникнуть? Если мы дадим боту видео с собакой, или 5 перевернутых, или букву «S» вместо 5, сможет ли бот это понять? Нет.

Как это решить?

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

Поскольку существует не один бот и не десять-двадцать вопросов, а миллионы ботов и миллионы вопросов, то как повторяется цикл «тестирование, сборка, тестирование»? В этом случае вы должны автоматизировать процесс и продолжать тестировать то же самое.

Когда окончательный бот построен, он работает, и он единственный, кто выживает среди всех, поскольку только у него алгоритм был на 0,01% лучше, чем у другого бота. Алгоритм, который построил бот-ученик, не известен ни бот-учителю, ни надзирателю-человеку, ни даже самому бот-ученику! Это. Только. Работает!

Как бот думает или работает, что он думает, на самом деле неизвестно.

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

Эй! Знаете ли вы, что CSS-Table — это библиотека, используемая для более гибкого представления элементов в виде таблиц, строк и ячеек.

Вы уже сталкивались с примером машинного обучения?

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

Какой лучший пример ботов машинного обучения вы могли бы придумать? Дайте нам знать об этом в комментариях.

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