Конструктор на искусственном интеллекте
Одним из направлений робототехники стали интеллектуальные игрушки для обучения детей творчеству, основам наук и программированию. Порой такие детские роботы уже обладают элементами искусственного интеллекта (ИИ) и способны самообучаться в процессе общения. Воплотить в жизнь самые оригинальные идеи из детской игровой робототехники помогают небольшим стартапам платформы Кикстартер и Индигого. Из представленных на этих краудфандинговых платформах проектов мы сформировали подборку наиболее востребованных идей, получивших финансирование для дальнейшего развития проекта.
Clicbot – обучающий робот-игрушка
Clicbot – универсальный программируемый робот-игрушка. Благодаря модульной конструкции робот можно собрать в виде гуманоида, двух и четырех колесной тележки, манипулятора, напоминающего формой и движениями промышленные роботы-автоматы. Имеется 50 предварительно запрограммированных забавных конструкций и множество других вариантов для самостоятельного творчества.
Интерактивный Clicbot способен слушать собеседника и реагировать на его действия. Хотя, он и не предназначен для использования в качестве полностью автономного робота-компаньона, но его поведение может легко программироваться. У Clicbot более 1000 настроек и каждая имеет свои под варианты. Он может ходить, ползать, танцевать, ездить, участвовать в гонках или даже подавать утренний кофе, увлекая детей занятиями по робототехнике и программированию.
Головной блок управления включает акселерометр, гироскоп, датчик расстояния, микрофон, динамик, модуль Wi-Fi. Видеокамера позволяет распознавать лица и образы, команды управления, поддерживает технологию FPV (First-Person View) для телеприсутствия и удаленного наблюдения. Для программирования Clicbot можно использовать графический редактор Google Blockly или язык Python
Bittle – программируемый роботизированный кот
Bittle – это игрушечный аналог роботов от Boston Dynamic. Он чем-то напоминает и другого робота-собаку – Sony Aibo. Но при этом Bittle продается по цене роботизированной игрушки в виде конструктора для самостоятельной сборки.
Bittle умеет ловко преодолевать препятствия, двигаясь на четырех лапах как настоящие животные. Он может запоминать десятки шаблонных движений, выполнять причудливые трюки по командам с пульта управления. А в случае потери равновесия и опрокидывания робот способен вернуться в исходное положение и продолжить движение к цели.
Bittle создан на основе доработанной платы Arduino, для сложных движений использует различные датчики и внешние устройства. Плата управления включает процессор Atmega328P/16 МГц, 2 КБ памяти SRAM и 32 КБ флэш-памяти. Кроме того есть инерциальный измерительный модуль, блок ШИМ для 12 сервоприводов, инфракрасный приемник и зуммер. Есть 4 разъема для модулей расширения.
Bittle – это открытая платформа, позволяющая объединить гаджеты разных производителей в единую систему. Добавить роботу возможности ИИ можно подключением микрокомпьютера Raspberry Pi. Написанная на Python программа может запускаться на Raspberry Pi и других поддерживаемых процессорах, управляя Bittle через проводное или беспроводное соединение.
Для упрощенного программирования есть фреймворк OpenCat. Он определяет минимальную структуру данных и алгоритмы движений для четвероногих роботов. Вы сможете научить Bittle новым навыкам и трюкам, чтобы выигрывать призы в соревнованиях международного сообщества OpenCat.
MOSS – универсальный инструмент для обучения программированию
Комплекты MOSS от компании Modular Robotics – это оригинальный конструктор для создания роботов. Разнообразные по назначению, программируемые кубики (Cubelets) легко комбинируются и позволяют собирать сотни разнообразных роботов.
Подбор кубиков в процессе сборки робота имитирует процесс простейшего программирования. Программирование с помощью графического редактора Blockly и MOSS Scratch задает алгоритмы контроля датчиков и управления исполнительными механизмами для движения, поворотов, подачи световых и звуковых сигналов.
Программировать и управлять роботом можно через Bluetooth с помощью смартфона или планшета с клавиатуры или пульта дистанционного управления.
При первоначальной цели на Кикстартер в $100 000 для финансирования проекта удалось собрать $361 293.
Makeblock Neuron – платформа электронных строительных блоков
Makeblock Neuron – это удобная для сборки программируемая платформа с использованием электронных строительных блоков. Более 30 типов блоков в виде кнопок, джойстиков, сенсоров и датчиков звука, освещенности, температуры, влажности и других параметров позволяют создавать множество оригинальных гаджетов.
Для соединения блоков между собой предусмотрены подпружиненные разъемы с магнитами. Помогает при этом интуитивно понятная система программирования. Каждый блок уже имеет предварительно запрограммированную функцию. Программировать новые функции можно в приложении Neuron или в редакторе mBlock 5. Для беспроводной передачи сигналов управления используются технологии Bluetooth и Wi-Fi.
Проект Neuron от китайской компании Makeblock получил на Кикстартер одобрение 1464 спонсоров, вложивших в развитие этой идеи $367 129.
Thimble: новая электронная игрушка каждый месяц
Электронные наборы компании Thimble предназначены для любознательных детей и взрослых. Они помогают в увлекательной форме изучать основы электроники, робототехники, мехатроники и программного обеспечения. Новые наборы деталей для создания высылаются по подписке ежемесячно.
Среди наборов Thimble представлены комплекты для сборки игровых контроллеров, музыкальных синтезаторов, устройств для Умного дома. Можно заняться сборкой более сложных программируемых роботов на микроконтроллере Arduino с управлением через Wi-Fi.
Для начинающих предназначены более простые наборы: различные световые и музыкальные игрушки, термометры, таймеры, дверные звонки. Приложение Thimble включает пошаговые руководства по сборке и позволяет обмениваться опытом и знаниями с другими сборщиками каждой игрушки.
Для развития проекта Thimble через Кикстартер собрано $295 760 от 1776 заинтересованных заказчиков.
thimble.io
MarsCat – домашний робот-кот
Полностью автономный, интерактивный MarsCat – идеальный робот-игрушка с программируемыми возможностями. Он может выражать эмоции мяуканьем, движениями тела и глаз. Сделать поведение MarsCat натуральным и выразительным помогают 16 серводвигателей.
Программируемый микроконтроллер ATMega2560 позволяет реализовать 6 программируемых шаблонов поведения, MarsCat может быть восторженным или задумчивым, энергичным или ленивым, общительным или застенчивым.
Моделировать поведение настоящего животного помогают алгоритмы ИИ, реализуемые миникомпьютером Raspberry PI. Приобретенные одним роботом навыки и шаблоны поведения хранятся в отдельном модуле памяти и могут быть легко воспроизведены в другом роботе простой заменой памяти. Программировать поведение робота MarsCat помогает специальный комплект разработчика.
Реализовать проект MarsCat в жизнь помогли 227 спонсоров, вложивших в эту идею через Кикстартер $213 198.
Робот-автомобиль Zumi
Роботизированный автомобиль Zumi помогает детям изучать основы сложных наук, писать программы с использованием блочного кодирования и языка Python. Более опытные программисты смогут создавать программы для уникальных экспериментов с беспилотными автомобилями, научатся проектировать собственные нейронные сети, чтобы обучить Zumi классифицировать объекты и распознавать лица и жесты людей.
В процессе передвижения по трассе Zumi использует Tensor Flow и Open CV – это те же самые программные инструменты, что есть и у настоящих беспилотных автомобилей.
Прототип Zumi был удостоен награды «Лучшая инновация» в категории «Роботы и дроны» на выставке CES 2019
Реализовать проект Zumi в жизнь помогли 888 спонсоров, вложивших в эту идею через $150 091
ROYBI – портативный робот-компаньон с ИИ
ROYBI взаимодействует с повсеместно доступной онлайн-платформой для обучения детей и взрослых. Контролировать и оценивать занятия помогают формируемые роботом отчеты с рекомендациями по улучшению процесса обучения.
ROYBI был включен в США по версии CNBC в список 100 наиболее перспективных стартапов в 2019 году.
Запущенный на платформе Индигого проект ROYBI привлек $120 538
Заботливый Kiki
Kiki – это робот-компаньон для детей и взрослых. Он распознает эмоции и действия собеседника, способен реагировать на них. Робот развивает свои уникальные способности в зависимости от особенностей взаимодействия с окружающим миром, при этом меняется и его поведение.
Высокопроизводительный встроенный процессор позволяет Kiki запускать модели глубокого обучения, чтобы распознавать лицо и адекватно воспринимать реакции собеседника. Несколько сенсорных датчиков в разных частях корпуса помогают воспринимать поглаживания, а всенаправленные микрофоны позволяют искать человека даже вне поля обзора камеры.
Реалистичное поведение этого робота базируется на исследованиях ведущих психологов о личностных особенностях человека. Действия в соответствии с заложенными моделями поведения и обучения обеспечивают некую осмысленность и логичность поступков Kiki.
Самообучающийся робот Kiki собрал на платформе Кикстартер $105 611.
kiki.ai
Smartipresence – простой робот телеприсутствия
Конструктор Smartipresence поможет создавать собственных недорогих роботов телеприсутствия на основе любого смартфона.
Запущенное на смартфоне приложение поддерживает режим ИИ и позволяет распознавать образы с помощью облачного сервиса. По команде пользователя Smartipresence в сеансе видеосвязи будет сопровождать человека или даже домашнее животное, чтобы его лучше видел удаленный собеседник. Режим действий Smartipresence задается через приложение на смартфоне. Smartipresence можно визуально программировать в среде Scratch, либо с помощью Espruino на основе языка JavaScript.
Этот проект английского инженера Росса Аткина уже поддержали на Кикстартер 186 спонсоров, собравших для запуска проекта $17329.
В этой подборке мы собрали наиболее интересные и перспективные модели детских роботов-игрушек, включающие технологии телеприсутствия, распознавания речи и голоса, автономность действий и поведения на основе ИИ и машинного обучения, которые еще недавно были доступны лишь «взрослым роботам».
Напишите в комментарии, а какие на ваш взгляд наиболее перспективные роботы-игрушки есть на рынке или уже у вас дома?
Нам было интересно сделать такой обзор, чтобы проанализировать какие технологии внедряются в роботов для детей, как решаются задачи human interaction для самой маленькой по возрасту аудитории. Мы в Dragon Tree Labs работаем над системами взаимодействия роботов и людей, интерфейсами в широком смысле, создавая интуитивно-понятные принципы коммуникаций. Это откроет новые возможности для работы, обучения, развлечений и общения, без оглядки на возраст, расстояние, мобильность и физические ограничения пользователей. Читай наш блог и следи за нашими разработками и достижениями.
Конспект материала Фреда О'Брайена о будущем веб-дизайна.
Современные технологии позволяют проектировать искусственный интеллект для дизайна. С помощью машинного обучения ИИ (точнее, Artificial Design Intelligence — ADI) «понимает» правила, по которым работает творчество, и применяет их.
Люди постепенно осознают потенциал новых технологий. Разговоры об автоматизации могут пугать, но лучше перебороть свой страх и принять новое. Возможно, мы стоим на пороге появления идеального дизайн-помощника в лице ADI, считает автор Фред О'Брайен.
В начале материала даётся определение ADI.
Искусственный дизайн-интеллект — это ИИ, который использует машинное обучение для выявления и реализации тенденций веб-дизайна. Это технология, которая может создавать сайты самостоятельно. Пользователи указывают свои пожелания, и ADI генерирует персонализированный дизайн.
В последние несколько лет появились специализированные платформы, такие как Bookmark и Grid, со встроенной опцией виртуального дизайн-помощника. Причём Grid привлекла $4,6 млн инвестиций в 2014 году. Однако продукты стартапа так и не стали популярными.
Другие крупные компании, специализирующиеся на создании сайтов, предприняли аналогичные шаги.
Автор приводит список платформ, использующих искусственный дизайн-интеллект:
- Wix;
- GoDaddy;
- Bookmark;
- Adobe Sensai;
- Firedrop;
- The Grid.
Чтобы создать сайт, сейчас можно воспользоваться конструкторами или помощью разработчиков. Первый путь требует времени, терпения и навыков. Второй, как правило, требует больших денежных вложений.
Есть и третий путь — использовать искусственный дизайн-интеллект. Ницан Ахсаф, руководитель проекта Adi Wix, объясняет принцип его работы: «Мы пытаемся заставить машину думать как дизайнер».
Это работает с помощью программ, способных понять принципы дизайна, а затем «наблюдать» за тем, что происходит с существующими веб-страницами. Сопоставив две страницы, они способны представить универсальный средний дизайн.
Теоретически это исключает даже потребность в шаблонах. ADI может сам создавать функциональные и привлекательные сайты.
По мнению автора, чтобы извлечь максимальную выгоду из ADI, нужно чётко понимать его сильные стороны и ограничения.
Дизайнеры станут арт-директорами для своих новых учеников — компьютеров.
Большую часть дизайна составляют правила и методы, то есть вещи, которым можно научить, запрограммировать. Плохих дизайнеров это может беспокоить, потому что их способны заменить машины, но хороших не должен страшить ADI — в конечном счёте именно они будут диктовать, как ADI себя вести и развиваться.
В большинстве случаев ИИ влияет только на часть работы, которую выполняет человек, и только в редких случаях на весь процесс работы.
Если вы освободите работников от выполнения более простых задач, оставив их искусственному интеллекту, сотрудники смогут сконцентрироваться на творческих задачах. Ваша организация будет процветать.
Автор приводит Webflow и Bookmark как примеры платформ, посвятивших себя работе над виртуальными помощниками по дизайну. По его мнению, Влаг Магдалин, генеральный директор Webflow, двигается в верном направлении: тот считает, что лучшее программное обеспечение для проектирования позволяет не автоматизировать его, а «автоматизировать как можно больше повторяющихся этапов программирования».
Что насчёт обычных людей, не дизайнеров? Всё, что нужно подавляющему большинству, — базовая компетентность. Многие люди неспособны создать качественный дизайн, в то время как ADI обеспечивает полупрофессиональный результат. Дизайн, созданный ИИ, может быть неуникальным, но это не всегда необходимо. Многие сайты должны просто работать.
Сейчас так работает платформа Bookmark. Её виртуальный помощник по дизайну AiDA находится в самом конструкторе сайтов. Когда пользователям нужна помощь или совет касаемо стилизации или поисковой оптимизации, AiDA сопровождает и предлагает возможные варианты.
Что будет, если виртуальный помощник по дизайну окажется в тупике? Суждено ли ему всегда быть «человекоподобной» силой или есть возможность того, что он создаст собственную форму творчества?
По этому поводу автор приводит большой комментарий генерального директора Bookmark Дэвида Космайера.
Он говорит, что это как раз тот случай, когда технология может показать свои сильные стороны. ИИ способен отслеживать взаимодействие пользователей с сайтами, поэтому ADI использует возможности дизайна, которые люди могли не заметить.
С этой целью Bookmark работает над двухэтапным планом.
- Отслеживание и корректировка разделов сайта, с которыми больше всего взаимодействуют пользователи.
- Владельцы могут отслеживать входящих посетителей, чтобы лучше подстроить под них контент на сайте.
Сайты будут выглядеть по-разному для отдельных пользователей. Например, Космайер отмечает, что мужчины в возрасте 18–24 лет находят изображения и видео более привлекательными, чем женщины в возрасте 25–35 лет.
Кроме того, интересы человека, который живёт в Северной Америке, могут отличаться от интересов посетителя сайта из Европы. Для Bookmark окончательный результат будет достигнут после того, как сервис получит разрешение от владельца сайта, чтобы изменить дизайн под конкретный демографический слой.
Способность делать подобные творческие скачки — вершина ADI.
Дизайн-интеллект не должен пытаться искусственно делать ошибки, чтобы быть похожим на человека. Он может использовать свою способность отслеживать взаимодействия с сайтом, чтобы устранить ошибки и подстроиться под разных пользователей.
Генеральный директор Adobe Шантану Нараен утверждает: «Ни одна машина не сможет сымитировать творческие способности человеческого разума».
Автор Фред О'Брайен отмечает, что ADI находится на пороге новых открытий. Создать что-то, что применяет запрограммированные правила, — одно, создать что-то, что может учиться и применять новые правила в реальном времени, — совсем другое.
Этот принцип в 1950 году изложил ученый Алан Тьюринг, широко известный как основатель теории искусственного интеллекта.
Вместо того чтобы пытаться создать программу, имитирующую ум взрослого, почему бы не попробовать создать программу, которая имитирует ум ребёнка?
Если «детскому» ИИ подобрать правильный образовательный курс, то на выходе можно было бы получить «взрослый» ИИ.
Как отмечает гуру WordPress Крис Лема, обучение в реальном времени имеет большое значение. Каждый новый сайт — это возможность для ADI узнать, что нравится людям, чего они (по их мнению) хотят и чего хотят на самом деле.
Что мешает ИИ распознавать, применять разные правила и давать пользователям возможность переключаться? Есть сайты, разработанные брутальным ADI, минималистичным ADI и странным ADI. Сфера применения огромна.
Сайт, который может адаптироваться к различным демографическим данным и регионам, используя данные о входящих пользователях, — увлекательная перспектива, считает Фред О'Брайен.
Однако автор призывает не спешить, говоря о потенциальной технологии. ADI чрезвычайно сложен и представляет угрозу для интернета.
Дэвид Космайер отмечает, что не все заинтересованы в том, чтобы ADI стал слишком сложным: «Шаблоны по-прежнему правят бал в большинстве отраслей, а новое поколение сайтов сделает конструкторы ненужными».
Клиентов обучают использовать шаблоны и другие бюджетные способы создания сайтов. Попытка продвинуть «интеллектуальную» вёрстку не является приоритетом для крупнейших компаний.
Видимо, поэтому крупные платформы вроде Wix работают, используя ADI параллельно с их основным продуктом, а GoDaddy использует его в своей продукции частично.
Веб-дизайнеры никогда не устареют, но большая часть работы, которую они делают, вероятно, будет автоматизирована, считает автор материала. ADI становится сложнее, сейчас он может выполнять работу базового уровня, им могут пользоваться профессионалы и обычные люди. Но со временем он станет «умнее» — и ситуация будет всё более интересной.
2000 г - дримвивер открыл путь для домашних умельцев, все думали что станут делать супер сайты, что получили.
2010 г - начали появляться конструкторы виксы и прочие шмиксы, еще больше домашних умельцев полчили грозное оружие, теперь викс - это как самое ужасное ругательство для девелоперов.
2019 г - прочат ИИ-дизайн, даже боюсь подумать что будет .
дизайн справляется со своими задачами. К тому же с их аудиторией, критично что-то менять и ломать
Раньше и кнопочные телефоны справлялись с своими функциями, но смартфон с ними стал справляться лучше , так же как есть что то что будет справляться с этим лучше смартфона . Эволюция важна. Даже просто ради самой эволюции.
Аудитория всегда плохо воспринимает редизайн на первых порах.
Тут еще проблема усугбляется тем, что мыло - вещь интимная, что ли. Это инструмент, к которому твоя рука привыкает. И если он немного меняется - это доставляет прям дискомфорт, поэтому крупные сервисы так неохотно и долго редизайнятся
чему всё равно придётся некоторое время обучаться. Сам факт изменения раздражает множество людей.
я думал мы про сайты) ну вот на себя примерь - ты был бы рад тому, что твои любимые веб-сервисы и ресурсы постоянно меняли бы дизайн?
Ммм. Ну давай, начнём.
Что не так? Что хотелось бы поменять?
лет через 10 дизайн вообще будет не нужен, по крайней мере в интернете, все потихоньку вернуться к текстовым браузерам и фото/видео (привет телеграм), не нужны будут эти ваши дизайнеры с отличиями в скруглениях углов и оттенками цветов, все эти уникальные компоновки страниц, "просто покажи мне статью бл**ть без этих твоих мудацких шрифтов!"
уже сейчас дизайнеры по большей части не нужны, именно поэтому я вижу жесткое разделение суперпрофи которым пофиг на лендинги, которые все двигают незаметно и миллиард бесполезных "дизайнеров" которые делают "продающие" лендинги и "уникальный" дизайн . (тут вставить что угодно) вот эти лендингеры скоро пойдут на заводы где еще нет роботов (oh wait. )
Вы забываете, что хороший дизайн не заметен, и текст, тоже часть дизайна) В статье правильные вещи сказаны. ИИ лишь упростит и ускорит создание чего-либо. Но все равно нужен человек, чтобы оценить результат работы программы.
можно мои минусы на 10 лет хотя бы растянуть?
да да дизайн, уникальность, красота и прочая муть. Скорость поглощения информации меняется в мире вот прямо сейчас, раньше были домашние странички, теперь вк, раньше были сайты компаний, теперь яндекс.маркет и прочие аггрегаторы
дизайн только отвлекает от информации, конечно он останется для игр, промоакций и других эмоциональных штук, но дженерал будет унифицирован, аггрегирован, сжат до уровня поисковика.
через пару лет будут сервисы одной кнопки для создания крутых продающих лендингов, основанные не на эгоистичном чсв дизайнера, который поскорее хочет новый фантик в дрибблер засунуть, с криками на весь интернет ах какой я ох***нный и никто никогда меня не заменит, а тупо на статистике и основа сайтиков и приложений будет лишь качество индексации и парсинга
"Но все равно нужен человек, чтобы оценить результат работы программы."
да, просто сейчас их миллионы, а будет 500, остальные пройдут все наши любимые стадии, гнев, отторжение, смирение вот это все
Материал подготовили эксперты компании Hey Machine Learning.
Машинное обучение и искусственный интеллект определённо являются технологическим прорывом. Приложения для подстановки лиц и их состаривания. Голосовые помощники, способные забронировать столик или заказать билет.
Решения, распознающие мерцательную аритмию и сердечный приступ. И это лишь то, что произошло буквально недавно. Популярность ИИ-технологий растёт, а значит, растёт и спрос на них. Это приводит к увеличению всего сообщества разработчиков и к появлению фреймворков ИИ, упрощающих обучение и работу.
Давайте разберёмся, что такое фреймворк. Фреймворк — это набор инструментов и стандартных реализаций для обеспечения более быстрой разработки какого-либо программного продукта. Его часто путают с библиотекой, которая же, в свою очередь, является набором стандартных реализаций, функций и структур данных, облегчающих решение какой-либо задачи.
Если перейти во вселенную метафор, то фреймворк — это как мастерская, в которой вы можете сесть и, например, собрать автомобиль или стул. Тогда с этой точки зрения библиотека — молоток.
Мы в Hey Machine Learning работаем с ИИ-фреймворками ежедневно, поэтому решили написать для вас статью о десяти самых известных из них. На основе собственного использования выделили их положительные и отрицательные стороны, а также добавили информацию о самом эффективном их применении. В первую часть обзора вошли Tensorflow, PyTorch, Keras, Darknet и XGBoost.
TensorFlow — это комплексная платформа для машинного обучения с открытым исходным кодом. Она была разработана командой Google Brain как продолжение закрытой системы машинного обучения DistBelief, однако в ноябре 2015 года компания передумала и открыла фреймворк для свободного доступа.
Как и большинство фреймворков глубокого обучения, TensorFlow имеет API на Python поверх механизма C и C ++, что ускоряет его работу.
TensorFlow имеет гибкую экосистему инструментов, библиотек и ресурсов сообщества. Это позволяет исследователям использовать самые современные МО-технологии, а разработчикам — создавать и развёртывать приложения на базе машинного обучения.
Платформа предоставляет интуитивно понятные высокоуровневые API-интерфейсы, например Keras, с быстрым выполнением, что обеспечивает немедленную итерацию модели и простую отладку. За счёт мультиплатформенности решение позволяет обучать и разворачивать модели в облаке и локально, независимо от используемого пользователем языка.
Если вам необходимо запустить модель машинного обучения на смартфоне или IoT-устройстве, то вам пригодится среда глубокого обучения с открытым исходным кодом TensorFlow Lite. Когда нужно создать и обучить МО-модель на JavaScript, а после развернуть её в браузере или на Node.js, то можно воспользоваться библиотекой TensorFlow.js.
Стоит отметить, что фреймворк постоянно развивается за счёт открытого исходного кода и огромного сообщества энтузиастов. Также за счёт его популярности есть множество уже решённых задач, что существенно упрощает жизнь новоиспечённым разработчикам.
Однако фреймворк не лишён недостатков. Компания Google известна своей любовью к созданию собственных стандартов, что коснулось и фреймворка. Например, если во время работы с TensorFlow в коде вылетает ошибка, то фреймворк не покажет пользователю конкретную строчку, спровоцировавшую её.
Почему так? Это связано с особенностью API TensorFlow, где все операции выполняются через класс tf.Session. В программировании есть две основные парадигмы — императивная и декларативная. В TensorFlow используется второй подход.
Рассмотрим очень грубый пример:
Если думаете, что c = 6, то спешу вас огорчить. На самом деле оно равно:
Это значит, что из-за декларативного подхода, вы не умножаете 2 * 3, а объявляете операцию, которая умножает 2 * 3.
Чтоб получить 6, необходимо выполнить операцию умножения чисел через сессию:
Теперь рассмотрим пример посложнее: сделаем вход не константным и будем использовать поэлементное умножение матриц.
Возьмём матрицы разных размеров, что должно привести к ошибке, потому что нельзя поэлементно умножить две матрицы разной формы.
Теперь даём на вход вектор из двух элементов и из трёх.
validArgumentError (see above for traceback): Incompatible shapes: [2] vs. [3] [[node mul_3 (defined at
Ничего непонятно, но очень интересно.
Всё потому, что ошибка — внутри сессии.
Конечно, есть способы обезопасить себя от подобного, однако, например, в PyTorch такое вообще не возможно.
Ещё одна проблема TensorFlow, которую следует выделить, — фреймворк всегда забирает всю видеопамять. Если вы хотите его ограничить, то необходимо создавать файл конфигурации и явно указывать, что можно брать. Также фреймворк можно ограничить напрямую, например, позволить взять не больше 50% видеопамяти.
Из-за подобного поведения с памятью могут возникнуть проблемы в работе. Предположим, что в одном проекте множество различных моделей, одни из которых написаны на PyTorch, а другие — на TensorFlow. Если изначально мы создадим TensorFlow-модель и не ограничим её, то она использует всю видеопамять при том, что ей необходимо всего 0,5 ГБ, и в итоге на PyTorch-модели попросту не хватит места.
- Отличный фреймворк для создания нейронных сетей, которые будут работать в продакшене.
- Берёт на себя оптимизацию ресурсов для вычислений.
- Огромное комьюнити.
- За счёт популярности выше вероятность, что проблему, подобную вашей, уже решили.
- Сложен в использовании и освоении.
- Недружелюбный.
- Необходимо постоянно контролировать используемую видеопамять.
- Имеет свои стандарты.
- Плохая документация.
- У вас всегда есть пять способов решить задачу, но три из них deprecated, один не работает, а тот, который работает, — не задокументирован.
Проекты, которые используют фреймворк TensorFlow:
-
— система распознавания речи. — модель, которая генерирует ограничительные рамки и маски сегментации для каждого объекта на изображении. — предобученная нейронная сеть, используемая для решения задач обработки естественного языка.
PyTorch — это среда машинного обучения на языке Python с открытым исходным кодом, обеспечивающая тензорные вычисления с GPU-ускорением. Она была разработана компанией Facebook и представлена в октябре 2016 года, а открыта для сторонних разработчиков — в январе 2017 года. Фреймворк подходит для быстрого прототипирования в исследованиях, а также для любителей и небольших проектов.
Фреймворк предлагает динамические графы вычислений, которые позволяют обрабатывать ввод и вывод переменной длины, что полезно, например, при работе с рекуррентными нейронными сетями. Если коротко, то за счёт этого инженеры и исследователи могут менять поведение сети «налету».
За счёт глубокой интеграции фреймворка с кодом C++ разработчики могут программировать на C и C++ с помощью API-расширения на основе FFI для Python.
В отличие от TensorFlow, PyTorch менее гибок в поддержке различных платформ. Также в нём нет родных инструментов для визуализации данных, но есть сторонний аналог, называемый tensorboardX.
Однако, снова же, в отличие от TensorFlow, если при работе с PyTorch вылетает ошибка, то это конкретная недоработка в коде и система выделит вам именно ту строчку, которая её спровоцировала.
Также при развёртке сетей на GPU PyTorch самостоятельно займёт только необходимую видеопамять.
- Имеет множество модульных элементов, которые легко комбинировать.
- Легко писать собственные типы слоев и работать на GPU.
- Имеет широкий выбор предварительно обученных моделей.
- Вам придётся самостоятельно писать тренировочный код.
- Плохая документация, то и дело будут попадаться функции и методы, документация которых существует исключительно на форумах сообщества и получена эмпирическим путём.
Проекты, которые используют фреймворк PyTorch:
-
— библиотека для обработки устной и письменной речи. — генеративная нейросеть для подмены деталей и свойств видеопотока. — алгоритм, который превращает пользовательские наброски в фотографии.
Keras — открытая среда глубокого обучения, написанная на Python. Она была разработана инженером из Google Франсуа Шолле и представлена в марте 2015 года.
Фреймворк нацелен на оперативную работу с нейросетями и является компактным, модульным и расширяемым. Подходит для небольших проектов, так как создать что-то масштабное на нём сложно и он явно будет проигрывать в производительности нейросетей тому же TensorFlow.
Keras работает поверх TensorFlow, CNTK и Theano и предоставляет интуитивно понятный API, который, по мнению наших инженеров, пока что является лучшим в своём роде.
Фреймворк содержит многочисленные реализации широко применяемых строительных блоков нейронных сетей, таких как слои, целевые и передаточные функции, оптимизаторы, а также множество инструментов для упрощения работы с изображениями и текстом.
Deeplearning4j использует Keras в качестве своего Python API и позволяет импортировать модели из Keras, а также через Keras из Theano и TensorFlow.
- Удобен в использовании.
- Лёгок в освоении.
- Быстроразвивающийся фреймворк.
- Хорошая документация.
- Встроен в TF.
Проекты, которые используют фреймворк Keras:
-
— модель, которая генерирует ограничительные рамки и маски сегментации для каждого объекта на изображении — алгоритм для распознавания лиц в режиме реального времени и классификации эмоций и пола. — нейронная сеть для обнаружения объектов в режиме реального времени.
Darknet — это фреймворк с открытым исходным кодом, написанный на языке C с использованием программно-аппаратной архитектуры параллельных вычислений CUDA. Он быстрый, лёгкий и удобный в использовании. Также Darknet поддерживает вычисления на базе CPU и GPU.
Обученные веса Darknet хранит в формате, который может быть распознан с помощью разных методов на различных платформах. Однако это может стать проблемой, если вы решите натренировать модель на одном сверхмощном оборудовании, а затем использовать её на другом.
Так как фреймворк написан на C и не имеет другого API, то в случае, когда требования платформы или собственные предпочтения заставят обратиться к другому языку программирования, вам придётся дополнительно заморочиться над его интеграцией. К тому же он распространяется только в формате исходного кода, и процесс компиляции на некоторых платформах может быть несколько проблематичным.
Фреймворк не рекомендуется использовать для сложных проектов, разве что вам необходимо создать сверхбыстрый детектор объектов.
- Кроме задач с обнаружением больше нигде не используется.
- Не рекомендуется для больших проектов.
- Плохая документация.
Проекты, которые используют фреймворк Darknet:
-
— нейронная сеть для обнаружения объектов в режиме реального времени. — компактная нейронная сеть для обнаружения объектов.
XGBoost — это фреймворк с открытым исходным кодом, который предлагает систему градиентного бустинга для C++, Java, Python, R, Julia. Он разработан для обеспечения высокой эффективности, гибкости и портативности.
Этот фреймворк относится не к глубокому обучению, как все вышепредставленные, а к классическому.
Изначально это был исследовательский проект Тяньцзи Чена и Карлоса Гестрина в составе Distributed [Deep] Machine Learning Community, но позже он был расширен и представлен публике на конференции SIGKDD в 2016 году, где произвёл фурор.
После своей презентации фреймворк лидировал в соревнованиях Kaggle и до сих пор остаётся фаворитом для решения большинства задач на платформе.
XGBoost фокусируется на скорости вычислений и производительности модели и подходит для решения задач регрессии, классификации и упорядочивания. Если данные можно представить в виде таблицы, то точность и производительность будут существенно выше, чем у DeepLearning-решений. Любимый инструмент Data Scientist-ов.
Фреймворк совместим с операционными системами Windows, Linux и OS X, а также поддерживает кластеры AWS, Azure и Yarn, хорошо работает с Flink, Spark.
- Очень быстрый и удобный инструмент для тренировки моделей типа «дерево решений».
- Точный.
- Отлично подходит для проверки гипотез.
Так всё же, какой фреймворк к какой задаче лучше всего применить?
TensorFlow хорош для продвинутых проектов, таких как создание многослойных нейронных сетей. Может использоваться для распознавания речи, лиц, объектов и изображений, а также для работы с текстом.
PyTorch подойдёт в случае, когда вам необходимо обучить модели быстро и эффективно. Удобный для быстрого прототипирования в исследованиях, а также для любителей и небольших проектов.
Keras подходит для быстрого прототипирования. Хорош в кейсах, связанных с переводом, распознаванием изображений и речи.
Darknet подходит для небольших проектов. Хорошо работает в задачах обнаружения.
XGBoost может использоваться для решения задач регрессии, классификации, упорядочивания и пользовательских задач на предсказание.
Мы надеемся, что наша статья о топ-10 фреймворках для искусственного интеллекта расскажет вам что-то новое и полезное, а также поможет подобрать наиболее подходящее решение для вашего проекта.
Поверхностно, keras это надстройка над tf. А не отдельный фреймворк. Это как jquery для js.
только js это не фреймворк
Полностью согласен. Тока хотел тоже самое написать:)
Теоретически вы правы, однако на практике дела обстоят немного иначе.
Термин «фреймворк» является достаточно расплывчатым и может означать много разных вещей в зависимости от контекста. Фреймворком может называться всё, что используется при разработке приложений: библиотека, набор из множества библиотек, набор сценариев или любое программное обеспечение, необходимое для создания приложения.
Например, в Mac OS X фреймворк - это просто библиотеки, упакованные в пакет.
Keras действительно является надстройкой и, кстати, не толькоTensorFlow, но и CNTK и Theano. Он может считаться фреймворком, так как используется для создания полноценных решений типа Mask R-CNN и face_classification.
Также, когда дело касается решения задач распознавания изображений и машинного перевода, Keras всегда рассматривают как альтернативу TensorFlow и PyTorch, так как он удобен в использовании, лёгок в освоении и имеет хорошую документацию.
Наш технический директор* верит, что искусственный интеллект будет создан ориентировочно к середине этого века, и лет через пятьдесят с большой вероятностью будет достигнута около-сингулярность с виртуализацией, ИИ и вот этим всем.
Но чтобы светлое завтра наступило, уже сегодня нужно решать связанные с ним практические задачи. Так что мы занялись технологией, которая будет делать сайты за людей. Нет, не за специалистов, создающих сложные и высоконагруженные системы. А за ребят с “сайтом-визиткой за 3000” — потому что ИИ, как минимум, не пропадет на месяц после предоплаты.
Прелесть вот в чем: запуск конструктора сайтов с нейросетью и алгоритмическим дизайном** — дело не пятидесяти, а всего пары лет. Это будущее, которое можно пощупать уже сегодня.
Так как задача у нас прикладная, в первых двух главках рассмотрим, кто и как будет применять ее на практике, а дальше перейдем к техническим аспектам ее решения.
Люди хотят не сайт, а профит
Год назад мы запустили простой конструктор сайтов uKit. Его пользователи — часто те, кому не очень понятно “как”, а иногда и некогда собирать себе страничку даже в простой системе. Они чинят авто, ремонтируют квартиры, делают стрижки, учат детей тхэквондо, кормят людей борщом и выпечкой и так далее.
Они хотят клиентов. В поиске клиентов оффлайновые бизнесы пришли в интернет. Им не нужен сайт, соцсеть, сервис рекламы или любая другая платформа как таковые. Им нужно, чтобы их находили и к ним обращались.
Они хотят попроще. Чтоб быстро, красиво и работало. По сути, люди все так же хотят волшебную кнопку: “контекст — настройся”, “сайт — создайся” и так далее.
Но нужна ли миру волшебная кнопка “сделать красиво”?
Понятно, чем алгоритмический дизайн выгоден обычному интернет-пользователю, открывшему условную пекарню. Он часто не до конца знает, чего хочет от сайта. Точнее, идея в голове есть. А вот перенести мысленный образ на веб-страницу — это уже сложнее. Конечно, эта проблема частично решается руками фрилансеров.
Но те же конструкторы не теряют популярность не потому, что люди хотят все делать сами (это редко) и без навыков программирования (теплее, но не главное). Конструктор выбирают, чтобы сэкономить. И не отдавать свои деньги и нервы тому же фрилансеру.
Мы не одни во Вселенной, или текущее состояние подобных разработок
За последние пару лет были анонсированы как минимум две “первые в мире ИИ-системы, собирающие сайты за вас на основе знаний о вашей профессии (“я повар”) и предпочтениях в цветовых схемах (“красно-синий лучше черно-белого”).
Два года назад вышел ролик от The Grid — и пока, по сути, кроме видео мы ничего не видели:
Этой весной свои разработки приоткрыл более известный игрок в сайтостроении — Wix:
Технологию от Wix можно протестировать — но пока она едва ли отличается от нашего конвертера Facebook-страниц в сайты, где алгоритм просто откалиброван консилиумом разработчиков.
Это, скорее, smart-технология: умные визарды. Хотя они и созданы как экспертные системы, но не накапливают собственный опыт и действуют полностью детерменированно и прозрачно для программиста. Для сравнения и терминологической сверки, вот что мы понимаем под ИИ в онлайн-сервисе:
Тот самый движок, на котором собраны Prisma и другие
ИИ начинается тогда, когда есть нейросети, либо другой механизм с обучением и синтезом. Из того, что показывают обе команды, пока неочевидно, где и как применяются нейросети или аналогичная технология, которую можно было бы назвать «ИИ».
Как это работает сейчас: калиброванные алгоритмы
Наверняка при чтении или просмотре видео вы вспомнили эту картинку:
Машина, пожалуйста, сделай сайт. Адаптивный. С большими картинками. Используй мои любимые шрифты. С классным меню, которое делает “вжжжж”. И чтоб сайт грузился быстро.
Спасибо, твой человек.
P.S. И чтоб без багов :)
Однако. Не менее интересной, а практически даже более полезной задачей будет не “сайт с нуля”, а импорт информации с уже существующего, но устаревшего сайта, — на новый, современный шаблон. Этим мы и занялись в первую очередь.
Причин, чтобы пользователь обратился к сервису “сделать новый сайт из старого”, может быть масса. Например, старый сайт сделан на устаревшей платформе или вообще без оной, владелец недоволен качеством вёрстки, дизайном, конверсией, сложной CMS или отсутствием адаптивности.
Мотивация “чтоб не хуже, чем у конкурента” и “что люди подумают” — очень сильный двигатель прогресса для малого предпринимателя. Вот вам пример. Человек жил-жил с таким сайтом своих столовых:
А потом, когда о нем написали в СМИ, экстренно заказал переделку в нашем “убере для сайтов” — сервисе, где тот самый фрилансер за 3К и 10 дней собирает человеку сайт, а мы гарантируем срок и результат.
Теперь мы хотим добиться аналогичного превращения силами машины.
Ведь когда строитель, автомеханик или владелец точки общепита думает о новом сайте, в голове обычно всплывает: “дорого”, “а как и на чем?”, “я не могу”, “я не умею”, “я не доверяю”, “нет времени”, “опять все эти круги ада! за что?”.
При этом у него с большой вероятностью (особенно, если бизнес успешен) накопилось достаточное количество информации, на базе которой мы могли бы предложить один или несколько вариантов сайта. А в перспективе — и другого контента.
Технически, нам необходимо перенести информацию из любого возможного представления в формат, наиболее соответствующий структурным элементам (виджетам) нашего конструктора. Проще говоря, если мы видим изображение, мы оформляем его в качестве виджета “картинка”, если мы видим большой блок текста, мы используем виджет “текст” и так далее.
Любой сайт, грубо говоря, можно представить как перечень вложенных и частично пересекающихся в пространстве прямоугольников, содержащих текстовую, графическую и, в некоторых случаях, специализированную (карты, видео и т.п.) информацию.
Пример эксперимента с веб-архивом, детали которого вы найдете в заключительной части поста
Далее — нужно смотреть на сайт одновременно и как бы глазами пользователя (браузером), и понимать его структуру (DOM-дерево) с учетом выполняемого кода. То есть, разделять аспекты: “то, как это свёрстано” и “то, как это выглядит”. А главное — “то, какую смысловую нагрузку это несет”.
Что в итоге. Мы можем выделить уникальный контент для каждой страницы и перекомпоновать его с учетом современных требований к дизайну. Можем распознать повторяемые элементы — и сформировать меню. Подобрать шаблон нужной тематики и комбинацию цветов и шрифтов. Вынести на видное место контактную информацию (график работы, адрес организации), сделать телефон кликабельным и т.п.
Звучит понятно. Но не все так просто
Вот несколько проблем, с которыми мы столкнулись после написания первой версии сервиса. Думаю, мы опять же не одиноки во Вселенной.
Меню слева и боковые панели
Каждый, кто разрабатывал сайты-визитки в 2000-х, наверняка хоть раз пробовал сделать сайт с боковым меню — чтобы разместить больше пунктов и выпадашек. Также можно встретить сайты, где доступ к определенным страницам есть только из боковых панелей.
Сегодня — в том числе, в угоду мобильным пользователям — мы делаем только горизонтальное или свертываемое (“гамбургер”) меню наверху. Перед нами встал вопрос, как не потерять информацию в случае, когда у старого сайта есть боковая панель.
В более сложных ситуациях (ну и в идеале) — мы должны провести “умную” перекомпоновку страниц и отдельных контентных элементов в более презентабельную структуру. Для этого и нужно хотя бы по-минимуму применять те алгоритмы, которые составляют ядро эвристической системы для перекомпоновки контента. Этот же шаг позволит нам сохранить ссылочную ценность.
Обеспечение ссылочной целостности
В системе все должно быть подчинено правилу — нужно постараться сделать результат не хуже, чем оригинал даже в отдельных деталях. Иначе это вызвать отторжение у пользователя, который решил поэкспериментировать с системой. Это относится не только к визуальной составляющей.
Когда мы делали свои социальные кнопки, то научились считать число репостов за всю историю сайта — чтобы, меняя одни кнопки на другие, владелец сайта не боялся обнулить счетчики репостов. Сейчас нам предстояло проделать аналогичное с SEO-настройками.
Решение делится на две части. В uKit есть модуль поискового продвижения для каждой страницы, куда мы можем перенести метаданные: title, ключевые слова и так далее.
Вторая часть — вопрос про внутреннюю оптимизацию сайта. Параллельно с распознаванием мы импортируем граф перелинковки страниц друг с другом. В системе прописана ситуация, когда некоторые, но не все страницы импортируемого сайта содержат общую информацию — и на основе релевантности этих блоков она может судить о родстве страниц.
Заглянем в недалекое будущее: как это будет работать с нейросетью
Давайте поговорим о тех этапах, к которым мы собираемся приступать.
Машинное обучение
Мы создадим обучающуюся модель и гибридную систему оценки, а также сформируем базу сайтов для обучения. Это будут и старые страницы с наших uCoz и «Народа», а также новые — с uKit. И еще одна фишка — выборка из Web.Archive, где можно посмотреть изменения сайта по годам. На этом добре и будет учиться нейросеть.
Сначала учителем будет человек. Затем нейросеть пробует выразить «что такое хороший сайт», и мы позволим системе экспериментировать самой с собой — в том числе, на каком-то этапе дадим ей делать A/B-тесты редизайнов, показывая их реальным людям.
Data mining
Сайты часто содержат ссылки на социальные сети, видеохостинги и так далее. И это дает нам дополнительном поле для экспериментов — в случае, если контента на старом сайте мало или он плох, можно попытаться добрать недостающую информацию из внешних источников.
Современные возможности data mining, теоретически, дают возможность собирать информацию об объекте из нескольких источников и интеллектуально группировать ее в рамках сайта. То есть, мы можем снабдить сервис системой мульти-импорта контента — из Instagram, папки на жестком диске компьютера, Youtube-канала и так далее.
Один из существующих калиброванных прото-примеров
Системы, собирающие сайт из нескольких источников в соцмедиа, также существуют в зачаточном состоянии: частично они описаны тут. Однако, о применении ИИ в них речи пока не идет.
Спасибо!
С удовольствием ответим на ваши вопросы и подискутируем о сайтах, которые собирают себя сами.
* CTO uKit AI — это pavel_kudinov. В профиле на Хабре можно посмотреть его сайд-проекты, связанные с нейросетями. Задавайте вопросы в комментариях. (наверх)
** Рекомендуемые ссылки и видео по теме алгоритмического дизайна (наверх):
Облачная среда для быстрой разработки ИИ на основе нейронных сетей без написания кода.
Подойдет для решения сложных научно-технических задач, проведения масштабных исследований в крупных и малых организациях. Может быть использован в образовательных целях
находится в разработке.
Программный комплекс для анализа данных и проведения исследований в области машинного обучения.
Бесплатное программное обеспечение.
П одойдет для небольших научных групп и отдельных исследователей (студентов, аспирантов). Может быть использован в образовательных целях
Библиотека функций автоматического машинного обучения и защиты ИИ от компьютерных атак в собственных приложениях.
Может применяться как отдельно, так и в качестве дополнения к существующим библиотекам глубокого обучения
находится на стадии тестирования.
AIConstructor в любом исполнении значительно ускоряет и упрощает процесс научного поиска при разработке проектов, связанных с созданием искусственного интеллекта и анализом данных
23—25 июня 2021 состоялось одно из главных событий российской цифровой экономики. Цифровая индустрия промышленной России (ЦИПР)
ЦИПР - первая в России конференция для глобального диалога и кооперации государства и бизнеса по вопросам развития цифровой экономики, цифровой трансформации промышленности, реализации национальной программы «Цифровая экономика Российской Федерации», развития российского высокотехнологичного экспорта, кибербезопасности.
Читайте также: