One shot learning что это
Американские инженеры создали алгоритм для роботов, позволяющий им повторять простые действия человека после одного примера. Алгоритм был обучен на парах данных, в которых подобные действия выполнял человек или управляемый вручную робот, рассказывают разработчики в статье, представленной на конференции RSS 2018.
Успехи в машинном обучении позволяют роботам сегодня выполнять довольно сложные задачи, но, как правило, для того, чтобы научить робота даже простым задачам, требуется компетентный специалист и долгий процесс обучения. В качестве альтернативы ресурсоемким и долгим методам вроде обучения с подкреплением, при котором робот учится путем проб и ошибок и получает от обучающей среды оценку своих действий, существует метод имитационного обучения. При этом робот запоминает, как человек двигает его манипуляторы или смотрит на видеозапись движений робота, а затем воспроизводит это движение. Это хорошо работает в идеальных условиях, например, на производстве, но если, например, захватываемый предмет чуть сдвинуть, результаты сразу станут хуже. Пока роботы не могут учиться настолько легко и эффективно, как люди — смотря на то, как человек выполняет требуемое действие. Разработки в этой области существуют, но для приемлемого качества выполнения требуется несколько сотен повторений.
Группа исследователей из Калифорнийского университета в Беркли под руководством Сергея Левина (Sergey Levine) создала алгоритм, которому для того же самого достаточно всего лишь одного примера. Для робота одно и то же действие, к примеру, перемещение кружки из одного края стола в другой, выполненное роботом и человеком, является двумя разными действиями, поскольку он не может без предварительного обучения сопоставить движения человеческой руки с требуемыми перемещениями своего манипулятора. Авторы решили упростить проблему и выбрали двухстадийный подход, при котором робот сначала учится сопоставлять движения человека и робоманипулятора, а затем обучается конкретному навыку, используя для этого опыт, накопленный в первой стадии, и видеозапись выполнения задачи человеком.
Схема выбранного авторами подхода
Tianhe Yu et al. / RSS 2018
Изначально инженеры обучили сверточную нейросеть на примерах, полученных с помощью управляемого вручную робота. Алгоритм получал на входе изображения с камеры робота и сопоставленные каждому кадру данные о положении и скорости частей роборуки, а на выходе предсказывал параметры движения захвата. После этого алгоритм обучали на датасете, состоящем из пар записей, на которых люди и управляемый вручную робот выполняет одну и ту же задачу. За счет этого алгоритм научился «понимать» выполненное на примере действие, независимо от того, кто именно выполнил это действие, в какой окружающей среде, а также от того, с какого ракурса была сделана видеозапись примера.Разработчики протестировали работу алгоритма на двух роботах, оснащенных робоманипуляторами — Willow Garage PR2 и Sawyer. Несмотря на то, что ракурс камеры при записи человеческих действий отличался от ракурса камеры роботы, а предметы и фон могли отличаться меду тренировочным и тестовым набором данных, робот успешно научился понимать требуемые от него простые действия, опираясь на один пример.
Недавно другая группа американских исследователей научила роботов ловко хватать даже двигающиеся предметы. Тесты показали, что робот успешно справляется с захватом двигающихся бытовых предметов в 88 процентах случаев, что выше, чем у предыдущих подобных разработок.
Обучающий набор:
Учебный набор должен содержатьнесколько фотографий одного и того же человекачтобы получить пары A и P, то после обучения модели мы сможем узнать человека только с одним изображением.
Распознавание лица
В системах распознавания лиц мы хотим, чтобы мы могли распознать личность человека, просто вставив одну фотографию лица этого человека в систему. И в случае, если он не может распознать изображение, это означает, что изображение этого человека не сохраняется в базе данных системы.
Чтобы решить эту проблему, мы не можем использовать толькосверточная нейронная сетьпо двум причинам: 1) CNN не работает на небольшом тренировочном наборе. 2) Не удобно переучивать модель каждый раз, когда мы добавляем в систему фотографию нового человека. Тем не менее, мы можем использовать сиамскую нейронную сеть для распознавания лиц.
Итак, как мы можем узнать параметры, чтобы получить хорошее кодирование для входного изображения?
Мы можем применить градиентный спуск нафункция потери триплетакоторая является просто функцией потерь, используятриimages: якорное изображение A, положительное изображение P (тот же человек, что и якорь), а также отрицательное изображение N (другой человек, чем якорь). Итак, мы хотим расстояние d (A, P) между кодированием якоря и кодированием положительного примерабыть меньше или равнорасстояние d (A, N) между кодированием якоря и кодированием отрицательного примера. Другими словами, мы хотим, чтобы изображения одного и того же человека находились близко друг к другу, а изображения разных людей были бы далеко друг от друга.
Проблема здесь в том, что модель может научиться создавать одинаковое кодирование для разных изображений, что означает, что расстояния будут равны нулю, и, к сожалению, она будет удовлетворять функции потери триплета. По этой причине мы добавляем поле альфа (гиперпараметр), чтобы этого не происходило, и чтобы всегда был разрыв между A и P по сравнению с A и N.
Функция потери триплета:
Макс означает, что если d (A, P) - d (A, N) + альфа меньше или равно нулю, потеря L (A, P, N) равна нулю, но если она больше нуля, потеря будет положительной, и функция попытается свести ее к нулю или меньше нуля
Функция стоимостиэто сумма всех индивидуальных потерь на разных триплетах из всего тренировочного набора.
Обучение одним выстрелом: распознавание лица с использованием сиамской нейронной сети
Эта статья посвящена изучению One-shot, особенно сиамской нейронной сети, на примере распознавания лиц. Я поделюсь с вами тем, что узнал об этом из статьи FaceNet: Унифицированное встраивание для распознавания лиц и кластеризации, а также из deeplearning.ai. Таким образом, вы можете сэкономить больше времени, чтобы углубиться в эту тему, если вас это больше интересует. Итак, начнем!
2. Тип обучения
(1) Нулевое обучение (обучение нулевого выстрела)
Концентрация обученияНет образцов для категорииНо если мы сможем выучить карту сопоставления, это отображение хорошее, мы не видели этот класс даже при обучении, но мы все еще можем быть в состоянииПолучите этот новый класс этим сопоставлениемОтказ Это:Обучающий наборСерединаНет внешнего видаКатегория, модель автоматически создает соответствующее отображение: XX -> YY.
Примечание: необходимо запустить, но иНе позволятьЛошадь пасет.
(2) Один выстрел обучение
One-shot learning is an object categorization problem in computer vision. Whereas most machine learning based object categorization algorithms require training on hundreds or thousands of images and very large datasets, one-shot learning aims to learn information about object categories from one, or only a few, training images.
Концентрация обучения,Каждая категорияЕсть образцы, но они простоНебольшое количество образцов(Только один или несколько). На данный момент мы можем изучить обобщенное отображение на более крупном наборе данных или использования графика знаний, доменных знаний и т. Д., А затем обновлять отображение обновления на небольшом наборе данных.
ПРИМЕЧАНИЕ. Необходимо запустить, чтобы не позволить лошадимногиеПасусь
(3) Несколько выстрелов
Эквивалентно изучениюOne-shot LearningОтказ Ключ такогоИзучать хорошее сопоставлениеЭто может быть применено к проблеме, которая не была замечена.
(4) традиционное обучение
Традиционное глубокое обучениеМассивные данные + повторное обучениеРежим алхимии.
Примечание: прерия дома, Merger MarsНебрежно есть。
Интеллектуальная рекомендация
[AtCoder-4242] в бесконечность (мышление)
Стебель вопроса: Problem Statement Mr. Infinity has a string S consisting of digits from 1 to 9. Each time the date changes, this string changes as follows: Each occurrence of.
перейти на веб-сайт третьего дня примечания к изучению - mysql
Отчет о тенденциях цифрового маркетинга в Китае за 2015 год
Стандарты набора персонала Unicorn Enterprise Heavy для Python-инженеров 2019 >>> [Отчет о тенденциях цифрового маркетинга в Китае, 2015 г.] Отчет о тенденциях цифрового маркетинга в Китае за.
7-3 три цифры в обратном порядке (язык C)
Это тот, который я начал практиковать в кратчайшие сроки и сдал тест? Продолжай ↖ (^ ω ^) ↗ Прикрепите код: .
Игра головоломки (передний конец)
Обмен каждым элементом приведет к этому изменению массивов, в соответствии с этим, для завершения рендеринга страницы «Exchange» эффект, MOE анимации HTML раздел CSS Style Part. ЧАСТЬ ЧАСТ.
Вам также может понравиться
В виртуальной машине-клоне сеть не может нормально загрузиться после загрузки
Описание проблемы: При клонировании виртуальной машины сетевая карта запускается ненормально. Содержание ошибки и явление Решение первое: Измените mac-адрес eth0 на mac-адрес eth1, измените имя устрой.
Linux BlaceSing команда
Основа командной строки Некоторое существительное "Графический интерфейс" "Командная строка" "Терминал" 「shell」 「bash」 Монтаж Windws: Установите Git, Открыть Gitbash Linu.
Шаблон Angular ссылается на переменные для привязки данных. Значение данных страницы не изменяется и не обновляется.
описание проблемы Эта статья посвящена привязке данных ссылочных переменных шаблона angular При использовании шаблона angular для ссылки на переменные значение привязки страницы не обновляется после в.
Об использовании SimpleAdapter
ArrayAdapterВ основном используется в случае, когда каждая строка списка отображает только текст, иSimpleAdapterВы также можете добавить значки в список, что позволит отображать несколько элементов уп.
org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 1 i
Причина в том, что Maven имеет встроенную версию 1.6 Tomcat Не могу скомпилировать jsp Поэтому измените версию Tomcat на более позднюю версию 1.7 или 1.8. Просто измените номер после tomcat в теге art.
Организация Илона Маска OpenAI обучает роботов в виртуальной реальности
Некоммерческая исследовательская организация OpenAI из Сан-Франциско, занимающаяся искусственным интеллектом при поддержке Илона Маска, сделала очередной важный шаг в развитии робототехники. Был разработан новый алгоритм, который позволяет человеку обучать ИИ выполнению задач через демонстрацию действий в виртуальной реальности. Такой метод основан на обучении через повторение действий человека и получил название «one-shot-imitation learning».
Суть работы алгоритма
На демонстрации специалисты OpenAI пытаются научить робота складывать разноцветные кубики. Сначала человек в VR-шлеме сам выполняет это задание в виртуальном пространстве. Весь процесс наблюдается программой с помощью нейронной сети, которая была обучена на основе сотен тысяч моделированных изображений. Эта часть основана на более ранних разработках OpenAI, касающихся обучения ИИ с помощью моделированных данных с изменяемыми параметрами. Такой подход быстрее и эффективнее по сравнению с отбором реальных изображений. Вместо этого специалисты OpenAI использовали виртуальные изображения стола и кубиков, меняя стили фона, освещение и текстуры. Всё это позволяет алгоритму при анализе данных с камеры, установленной на роботе, воспринимать объекты, даже не имея их предварительного изображения.
После этого алгоритм анализирует информацию с видеосенсоров и передаёт её на вторую нейронную сеть (имитационную сеть), которая управляет конечностью робота. Нейронная сеть пытается определить намерение, с которым выполняется действие, и имитирует действия человека, которые он бы совершил в подобной ситуации. Загвоздка в том, что кубики цветные и располагаются по-разному. Но программа уже умеет составлять по два кубика, независимо от первоначальных настроек:
Джош Тобин, один из инженеров OpenAI, объясняет:
Наш робот научился выполнять задачу, даже с условием того, что его действия должны отличаться от изначальной демонстрации. Однократно продемонстрировав выполнение задачи, мы можем повторять процесс, меняя условия. А чтобы научить робота выстраивать из кубиков другую фигуру, достаточно лишь раз продемонстрировать действия.
Каково будущее подобных алгоритмов?
В перспективе искусственный интеллект будет способен перенимать модели поведения гораздо быстрее, а затем использовать навыки, адаптируясь к непредсказуемым изменениям среды. Тобин отметил:
Младенцы рождаются со способностью имитировать действия других людей. Имитация — один иp инструментов, позволяющих человеку быстро учиться новым навыкам. И мы стремимся к тому, чтобы наши роботы могли делать то же самое.
One Shot обучения
Чтобы понять причину, по которой мы получаем однократное обучение, нам нужно поговорить о глубоком обучении и данных. Обычно при глубоком обучении нам требуется большой объем данных, и чем больше у нас есть, тем лучше результаты. Тем не менее, будет удобнее учиться только на нескольких данных, потому что не все из нас богаты с точки зрения того, сколько у нас данных.
Кроме того, мозгу не нужны тысячи изображений одного и того же объекта, чтобы его можно было распознать. Но давайте не будем говорить об аналогии с мозгом, потому что она намного сложнее и мощнее, и в нашем процессе обучения и запоминания участвуют многие вещи, такие как чувства, предшествующее знание, взаимодействия и т. Д.
Идея заключается в том, что нам нужно выучить объектный класс только из нескольких данных, и это то, что представляет собой алгоритм обучения One-shot.
Русские Блоги
Сиамская нейронная сеть
Сиамская нейронная сеть имеет целью выяснить, насколько похожи две сопоставимые вещи (например, проверка подписи, распознавание лица . ). Эта сеть имеет две идентичные подсети, которые имеют одинаковые параметры и веса.
Изображение выше - хороший пример распознавания лиц с использованием сиамской сетевой архитектуры из deeplearning.ai. Как вы можете видеть, вход первой подсети представляет собой изображение, за которым следует последовательность сверточных, объединяющих, полностью связанных слоев и, наконец, вектор объектов (мы не собираемся использовать функцию softmax для классификации). Последний вектор f (x1) является кодировкой входа x1. Затем мы делаем то же самое для изображения x2, передавая его во вторую подсеть, которая полностью идентична первой, чтобы получить другую кодировку f (x2) входа x2.
Чтобы сравнить два изображения x1 и x2, мы вычислим расстояние d между их кодировкой f (x1) и f (x2). Если оно меньше порогового значения (гиперпараметр), это означает, что две картинки - это одно и то же лицо, если нет, то это два разных человека.
И это работает для любых двух изображенийXIа такжеXj.
1. Introduction
ВМиграция ОбучениеСредний из-за традиционной глубины обученияСлабая способность обученияЧасто нужноМассивные данные с участием Повторное обучениеМожет восстановитьИнтенсивноОтказ Для того, чтобы «насколько быстро, хорошие провинции» к дороге в алхимию, алхимики начали изучать обучение с нулевым выстрелом / обучением одним выстрелом / немногим обучением.
Влюбиться в дикую лошадь (обобщение способности), но в моем доме нет луга (массивные данные).
Как мы выбираем тройки для тренировки модели?
Если мы выберем их случайным образом, будет очень легко удовлетворить ограничение функции потерь, поскольку в большинстве случаев расстояние будет таким большим. И градиентный спуск не многому научит на тренировочном наборе. По этой причине нам нужно найти A, P и N так, чтобы A и P были так близки к N. Наша цель - усложнить обучение модели толканию градиентного спуска, чтобы узнать больше.
Читайте также: