Автор: Жензи

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

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

1. Ключевой вопрос интеллектуального мышления

Какой ключевой вопрос?

Ключевой вопрос: Вы или модель машинного обучения сделаете это? Если вы будете что-то делать, вы должны четко обдумать проблему. Если модель будет выполнять задачу, вы должны четко определить проблему. В чем разница между четким рассмотрением проблемы и четким определением проблемы? Это многих смущает. Проще говоря, четкое определение проблемы означает указание проблемы, которую вы хотите решить, и области, в которой возникает проблема. Четкое рассмотрение проблемы - это указать проблему, которую вы хотите решить, область, в которой возникает проблема, и способ решения проблемы. В этом случае у вас могут возникнуть два вопроса: можно ли решить проблему, и если да, то как я могу решить эту проблему?

Можно ли решить проблему?

Этот вопрос не является научным, поскольку конкретная проблема и степень ее решения неизвестны. Это приводит к множеству производных вопросов. Во-первых, давайте рассмотрим их с точки зрения макроса. Мое понимание интеллекта основано на моем анализе и рассмотрении болевых точек в области интерфейса и программирования. Когда я приехал в Ханчжоу в сентябре 2018 года, DaVinci, предшественник imgcook.com, разрабатывался два года. Чтобы дополнить способность DaVinci генерировать код из проектов, мы установили стандарты данных и унифицированную систему доставки на нижележащем уровне и создали бизнес-платформы, такие как Ark и Mingyunshi, на верхнем уровне. Однако DaVinci не смог решить все проблемы. Решать простые проблемы можно было только при строгом соблюдении стандартных проектных документов.

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

Независимо от того, как мы настраиваем пороги в OpenCV, мы не можем избавиться от плохих случаев. Как показано на предыдущем рисунке, даже при постоянных усилиях мы не могли управлять бесконечными комбинациями и неограниченными возможностями проектной документации и разнообразными личными привычками дизайнеров.

Что мы можем сделать? Мы можем использовать модели и алгоритмы машинного зрения. Я изучил много таких моделей и алгоритмов.

Эти исследования меня постепенно вдохновляли. После постоянных поисков я наконец добился хороших результатов в моделях MaskRCNN и Yolo V3.

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

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

Это трудно?

Как говорится, Отношение - это все. Теперь я расскажу, как моя команда и я достигли правильного отношения. Первый вопрос: сложно ли машинное обучение? Вы должны уметь угадывать ответ: нет! Сегодня в машинном обучении легко использовать многие зрелые фреймворки и модели. Вы можете щелкнуть следующие URL-адреса, чтобы найти такие инструменты.

Установите инструмент командной строки для управления проектами Pipcook:

$ npm install -g @pipcook/pipcook-cli

Инициализировать проект:

$ mkdir pipcook-example && cd pipcook-example
$ pipcook init

Детская площадка:

Если вам интересно, что вы можете делать в Pipcook и где можно проверить свои журналы тренировок и модели, вы можете начать с Pipboard:

$ pipcook board

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

  • Pipeline-Mnist-Image-Classification: конвейер для задачи классификации изображений Mnist
  • Конвейер-привязка-привязка-изображение-классификация: пример конвейера для обучения задаче классификации изображений, которая заключается в классификации изображений привязки данных imgcook
  • Pipeline-object-detection: пример конвейера для обучения задачи обнаружения объектов, которая используется imgcook для распознавания компонентов.
  • Python-keras: пример использования библиотеки Python Keras для обучения сети глубокого обучения синтаксису и среде выполнения js

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

$ node examples/pipeline/pipeline-mnist-image-classification.js



Как это работает

Загрузчик: Это все, что можно сказать о внешнем интеллекте.

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

Возвращаясь к ключевому вопросу: в чем разница между четким определением проблемы и четким рассмотрением проблемы? Когда используется OpenCV, определение проблемы означает указание того, как извлекать изображения, текст и контроллеры с помощью алгоритма OpenCV. Во-первых, мы должны понять, что такое изображение, что такое текст и что такое контроллер.

Однако, когда мы применяем интеллектуальные методы, нам нужно только сказать модели: это изображение, это текст, это контроллер и это данные метки; так же, как я сказал своему старшему сыну: «неправильно бросать блоки в вашего младшего брата». В следующий раз, когда он убедился, что это резиновый мяч, он бросил в своего брата. (# -_-). Признаюсь, я не смог внятно это объяснить. Мне следовало сказать старшему сыну, что нельзя бросать что-либо в другого человека. То же самое верно и при использовании OpenCV для извлечения изображений, текста и контроллеров. Эти элементы сложно использовать в проектных документах, основанных на стандартных правилах. Команда DaVinci рассматривала эту проблему более двух лет.

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

Как найти правильные ответы? Мы разработали платформу SimpleCook для сбора, организации и маркировки наборов данных. Чтобы собрать данные, нам нужно найти необработанные данные. Чтобы идентифицировать контроллеры в проектах imgcook, мы используем интерфейсные технологии для создания контроллеров на платформе SimpleCook. Кукловод - ключевая технология, используемая для этого. Для рендеринга страниц используется безголовый браузер, а затем области изображений, соответствующие imgcook, тексту и контроллерам, маркируются на основе правил программирования или ручной маркировки. Затем мы генерируем набор данных о правильных ответах.

Как мы обучаем модель? Вы помните платформу машинного обучения для внешнего интерфейса Pipcook, упомянутую ранее? Нужна только командная строка:

Вы можете проверить полный список здесь. Эти примеры легко и быстро запустить. Например, чтобы выполнить классификацию изображений MNIST, запустите следующий запрос, чтобы запустить конвейер:

$ node examples/pipeline/pipeline-mnist-image-classification.js

Вам нужно только заменить образцы данных в руководстве по Pipcook своим набором данных. Весь процесс прост. Подводя итог, можно сказать, что ключом к интеллектуальному подходу является систематизация правильных ответов, выбор модели и обучение модели. Тогда все готово!

2. Ценность решения проблем с помощью интеллектуального мышления

Уверенность

Процесс решения проблемы с помощью интеллектуального мышления прост, поскольку всегда есть ответ. Это похоже на трудный выбор в нашей жизни. У каждого есть свой ответ. Даже если мы сообщим модели «так называемый» правильный ответ, обученная модель может дать неожиданный ответ на неизвестный вопрос, но модель всегда даст ответ.

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

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

Надежность

С умным мышлением легко решить проблему. После того, как мы предоставим модели с правильными ответами, модель тренирует свои параметры и веса на основе этих выборочных данных, чтобы получить алгоритм, который определяет решение. Это надежно. Вернемся к проблеме, с которой столкнулся DaVinci при использовании OpenCV: неправильные пороговые значения. Сложно суммировать и извлекать характеристики изображений, текста и контроллеров. Однако, если в качестве выборки данных для модели предоставляется достаточно правильных ответов, она может извлекать надежные ответы.

Если вам интересно, вы можете поискать генетические алгоритмы и алгоритмы муравьиной колонии в Google. Вы обнаружите, что любой алгоритм с высокой надежностью будет работать лучше, чем мы ожидали. Сложно обобщить и выделить модели и идеи, лежащие в основе этих алгоритмов. Тем не менее, мы все еще можем писать генетические алгоритмы и алгоритмы муравьиных колоний для обучения этих надежных моделей и алгоритмов в смоделированных или реальных средах. Такой подход к программированию сам по себе надежен. Раньше мы всегда начинали писать код только тогда, когда у нас была четкая идея. Сегодня, если мы будем использовать интеллектуальное мышление, мы можем начать писать код, даже если у нас нет четкого представления. Этот подход к разработке программного обеспечения также является надежным.

Эволюция

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

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

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

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

3. Тренировка интеллектуального мышления

Знание: мышление определяет действия

Независимо от того, сколько я говорю, это бесполезно, если вы не принимаете это во внимание. Что вам нужно делать, чтобы по-настоящему слушать и понимать? Я думаю, вы должны отказаться от старого образа мышления. Прежде всего, признаю, что как программист я горжусь и самоуверен. С тех пор как я написал свою первую функцию на Basic в Dos 6.22 в 1990 году и напечатал на экране ромбы, круги и квадраты, состоящие из звездочек, я был уверен, что могу программировать мир.

Позже в том же году мой отец купил компьютер 486 DX-100. С тех пор я начал путешествовать по программированию всего мира. С тех пор я принимал каждое решение в своей жизни самостоятельно. Я пошел в среднюю техническую школу, бросил учебу всего через один семестр, работал официантом в конференц-зале, открыл магазин по продаже видеокассет и компакт-дисков, закрыл магазин, чтобы сдать вступительный экзамен в колледж для взрослых, перешел с младшего колледжа на закончил университет со специализацией в области права, а после окончания учебы работал продавцом в ERP Software. Попутно ни к каким мнениям не прислушивался. В конце концов, я тот, кто может запрограммировать весь мир.

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

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

Действия: действия определяют привычки

Слова «невозможно» нет в моем словаре. Я могу чему угодно научиться, если буду тренироваться. Как я могу тренироваться? Прежде всего, я должен научиться контролировать себя. Я знаю, что могу решать более сложные и ценные проблемы с помощью моделей. Как только я полностью решу проблему, разработав модель, я могу продвигаться к своей следующей цели. Сдержать свое желание контролировать и выражать действительно сложно. Я тренировался почти десять лет, но я все еще в самом начале.

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

Что я могу сделать? Я сделал для себя три правила:

  1. Самостоятельно с нуля не решать ни одной задачи. Вместо этого ищите решение на основе зрелых моделей.
  2. Заставляю себя замедлиться перед написанием кода и подумать, смогу ли я полностью рассмотреть и решить проблему. Если да, я начну писать код. Если ответ отрицательный, я попробую другое разумное решение.
  3. Постоянно представляйте проблемы в области внешнего интерфейса и пытайтесь решать их с помощью интеллектуального мышления, чтобы выработать привычку использовать интеллектуальное мышление.

Интеграция знаний и действий

Теперь, когда я так много болтала, вы, наверное, захотите ответить. Я приглашаю вас присоединиться к команде Frontend D2C Intelligence в технологическом отделе Taobao. Мы отвечаем за интеллектуальное развитие в Комитете по технологиям интерфейса Alibaba. Независимо от того, с какими проблемами вы столкнетесь в развитии навыков интеллектуального мышления, у нас есть решения.

Первоисточник:



Получите доступ к экспертному обзору - Подпишитесь на DDI Intel