Компьютеры учатся не так, как учатся люди. С самого начала современных вычислений люди изо всех сил пытались заставить компьютеры распознавать закономерности и интуитивно «учиться» на входных данных. Введите машинное обучение.

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

В приведенном выше примере показан ряд входных нейронов, выделенных синим цветом, которые работают для определения того, существует ли какой-либо параметр во входном файле. Результаты этого передаются на слой A, который затем подается на полностью реализованный уровень F. Это довольно простой пример, и на самом деле гораздо больше входных нейронов будут передаваться в большее количество слоев. Однако концепция остается прежней. Результатом этого метода машинного обучения является вывод, который пытается точно измерить, был ли достигнут какой-либо параметр.

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

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

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

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

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

Эти два варианта использования нейронных сетей дают совершенно разные конечные результаты, но методы, лежащие в их основе, очень похожи. Методы машинного обучения совершенствуются каждый день, и не исключено, что кто-то сможет нарисовать сложный шаблон CSS и увидеть, как он отображается без написания кода. Точно так же человек с ослабленным зрением может ходить и понимать окружающий мир на слух с помощью компьютера, который видит объекты и точно классифицирует их в реальном времени со 100% точностью.