Category: технологии

Category was added automatically. Read all entries about "технологии".

def

Tabula rasa - 3


Искусственный интеллект на нейронных сетях умеет все больше гитик. Среди прочего, понравился 3D-рендеринг от компании DeepMind (приобретена Google): алгоритму показывают плоский вид из некоторой точки (или виды из нескольких точек) на неизвестную компьютеру объемную сцену. После этого он должен построить трехмерную модель и, как бы, побегать там внутри с камерой. И предъявить результат.

анимированный gif
Слева — плоский вид (или несколько таких видов), справа — трехмерная реконструкция от ИИ.
Источник: Блог компании DeepMind, обнаружено в твиттере.


При этом, алгоритм рендеринга, в основном, самообучается с чистого листа, подобно AlphaGo Zero и Alpha Zero. Тренировка данной сети не требует больших наборов заранее разобранных людьми изображений. Алгоритм «сам с собой играет в DOOM»: конструирует себе новые задания и решает их, постепенно улучшая результаты. В итоге ИИ научается разбирать сцены с разными телами, цветами, с разным расположением источника света, вычислять неизвестные части сцены — не уместившиеся на заданных кадрах либо закрытые на них препятствиями, отрисовывать тени. Всё сам, всё сам (видео). Альтернативное название этого поста: «С “лейкой” и бэкпропом».

UPD: Продолжение темы.



def

Tabula rasa


В феврале 2011 компьютерная программа «Ватсон» компании IBM переиграла в телевизионном шоу Jeopardy! двух людей-чемпионов этого интеллектуального спорта (локализован в РФ под названием «Своя игра»). Я тогда написал восторженный пост по горячим следам. Комментарии к посту, как водится, оказались интереснее самого поста. В частности, в этом диалоге был поставлен правильный вопрос — научится ли в обозримом будущем искусственный интеллект (ИИ) побеждать людей в играх, правила которых ему только что объяснили: «Легко отличаю [программу от живого игрока]: роботы не умеют понять предложение поиграть в новую игру. Вот когда создадут коробку, которая на предложение поиграть хотя бы в “города”, после объяснения правил скажет “ес, ес, андерстенд!”, и проиграв первые две-три партии, начнет драть всех подряд — вот это будет круто». Я тогда ответил, что мы, вероятно, дождемся появления такой коробки: «По крайней мере, Ватсон, скорее всего, после небольшой доработки будет в состоянии понимать правила нехитрых новых игр вроде городов. Мне так кажется. Во всяком случае, я думаю, что мне представится повод написать у себя в блоге о чем-то подобном. Почти уверен — всё к тому идёт».

Прошло без малого семь лет. IBM занимается практическими приложениями и коммерциализацией «Ватсона». Не знаю, насколько успешен этот бизнес IBM, но новых зрелищных интеллектуальных высот Ватсон с тех пор вроде бы не брал. Зато индустрия ИИ в целом шагнула вперед в том числе и по части выразительных достижений. Компьютеры научились переигрывать людей в новых областях: видеоигры, распознавание изображений, восприятие человеческой речи и проч. Более того, ИИ стал обыгрывать людей в покер (с блефом). И, еще более того, искусственный интеллект преуспел в абстрактной живописи: оригинальные картины, сгенерированные алгоритмом, в ходе (скромного по масштабам) онлайнового опроса получили более высокие оценки зрителей, чем картины художников-людей с флагманской выставки жанра (в том числе и при углубленном оценивании «творческих характеристик»).

Но самым ярким новым достижением ИИ я считаю серию программ AlphaGo, которые уверенно обыгрывают чемпионов игры го. В отличие от шахмат, для го не существует простого аналитического способа приблизительной оценки позиции. Го также значительно богаче шахмат в комбинаторном отношении. Грубо говоря, разумную шахматную программу можно написать, объединив три модуля: 1) аналитической оценки позиции (очко за пешку, три очка с за легкую фигуру, четыре или пять за тяжелую, плюс еще столько-то за контроль центра и т. д.); 2) полного перебора вариантов, например, на три хода вперед; и 3) хотя бы небольшой дебютной библиотеки. После некоторой настройки и доводки, программа сможет обыгрывать средней руки игроков-людей. Причем такая шахматная программа будет способна относительно ясным и кратким образом объяснить любой свой ход. Это в шахматах. Изготовить аналогичным способом разумного компьютерного игрока в го, насколько я понимаю, не получится: аналитические методы оценки позиции слишком расплывчаты и недостаточно развиты, неглубокий просчет вариантов мало что дает, а на глубокий просчет не хватит ресурсов — дерево игры слишком обширно для полного глубокого перебора. Искусство успешной игры в го «более интуитивно», чем шахматное. Сильному игроку в го существенно сложнее, чем шахматисту, объяснить, почему на таком-то ходу он сыграл так-то. Ну, вот просто по опыту, интуитивно так сыграл.

Интуицию часто признают прерогативой людей, характерной «фирменной» чертой именно человеческого мышления — в противоположность «формальным» и «нетворческим» компьютерным вычислениям. И вот, появилась программа, обыгрывающая чемпионов-людей в «интуитивную» игру го. Причем недавно была опубликована статья о радикальном усовершенствовании этой программы — по существу, о создании нового алгоритма игры, который всухую расправляется с предыдущей версией алгоритма (уже игравшей на сверхчеловеческом уровне). Новый алгоритм изначально ничего не знает о го, кроме правил игры. Он самообучается с нуля, с состояния чистого листа (tabula rasa) и без внешнего руководства. Воспроизведу собственный пост в ФБ на этот счет, где цитирование аннотации ключевой статьи предваряется кратким (и немного вольным) изложением по-русски:
    AlphaGo Zero: программа игры в го, которая самообучается с нуля до сверхчеловеческого уровня за несколько дней без базы данных образцов игр.
    Предыдущая версия программы AlphaGo научилась побеждать чемпионов-людей, комбинируя тренировку на большой базе данных сыгранных людьми партий с внутренним самообучением (без руководства, за счет игр сама с собой). Новая программа AlphaGo Zero не нуждается ни в чем, кроме правил игры го. Базу данных игр ей не показывали, тактики и стратегии не объясняли. За несколько дней, интенсивно играя сама с собой, AlphaGo Zero вышла на уровень равной игры с предыдущей AlphaGo, а затем обошла ее и, в конечном счете, выиграла у своей предшественницы со счетом 100:0.

    A long-standing goal of artificial intelligence is an algorithm that learns, tabula rasa, superhuman proficiency in challenging domains. Recently, AlphaGo became the first program to defeat a world champion in the game of Go. The tree search in AlphaGo evaluated positions and selected moves using deep neural networks. These neural networks were trained by supervised learning from human expert moves, and by reinforcement learning from self-play. Here we introduce an algorithm based solely on reinforcement learning, without human data, guidance or domain knowledge beyond game rules. AlphaGo becomes its own teacher: a neural network is trained to predict AlphaGo’s own move selections and also the winner of AlphaGo’s games. This neural network improves the strength of the tree search, resulting in higher quality move selection and stronger self-play in the next iteration. Starting tabula rasa, our new program AlphaGo Zero achieved superhuman performance, winning 100–0 against the previously published, champion-defeating AlphaGo.
    Mastering the game of Go without human knowledge, pdf.
Резюме из всех этих новостей я бы вывел на данный момент такое: за прошедшие семь лет ИИ не взял высокую планку, которая была задана в комментариях к посту 2011 г, но процесс идет. Определенно, разработчиков ИИ можно поздравить с новым го!

UPD: Продолжение темы, Tabula rasa - 2.

def

Задачка: взлом имперского кода


Создавая подстановочный шифр «СМЕРД» («смерть джедаям») для имперского флота, криптоаналитики Дарта Вейдера позаботились о том, чтобы закодированный образ буквы зависел от ее позиции в сообщении. Например, первая буква А сообщения могла бы кодироваться в Д, вторая А в Н, третья в К, четвертая снова в Н, пятая в Е и так далее. Ключ, определяющий таблицу преобразования пары (исходная буква, позиция) в закодированную букву, часто менялся, чтобы еще более затруднить расшифровку.

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

Сначала робот C-3PO обнаружил, что имперский код «антирефлексивен»: зашифрованный образ буквы никогда не совпадает с ней самой. Скажем, буква А ни при каком ключе и ни в какой позиции не будет преобразована в букву А. C-3PO привел такой пример: слово СИЛА может зашифроваться, например, в МОЩЬ, но не может превратиться в СВЕТ (С в С) или в ТЬМА (А в А).

Вскоре пришел черед отличиться роботу R2-D2. Анализируя свежий перехват имперского сообщения, он обнаружил, что зашифрованный текст именно этого сообщения обладает одним специальным свойством. Исходя из данного свойства, R2-D2 предположил возможный вариант расшифровки. Правда, коллега C-3PO подверг результат R2-D2 резкой критике за его поверхностность, бездоказательность и нестрогость. Но после того, как Люк Скайуокер перенастроил мотиватор C-3PO на увеличение значимости эвристик и правдоподобных догадок, второй робот согласился, что предположение первого, пусть и не обязательно верное, все же имеет право на существование, хотя бы в качестве смелой гипотезы. Действительно, если исходное сообщение представляет из себя ровно то, о чем подумал R2-D2, то его зашифрованный образ должен был бы обладать тем самым специальным свойством, которому удовлетворял анализируемый перехват.

Позднее среди обломков «Звезды смерти» были обнаружены накопители с архивом всех исходных имперских сообщений и их шифровок. В частности, нашлось и то сообщение, которое расшифровал R2-D2, — оказалось, что робот абсолютно правильно понял это сообщение.

Задача. Проанализируйте сообщение и расшифруйте его, как это сделал R2-D2. Для удобства восприятия, текст сообщения разбит на группы по пять букв в каждой. Империя пользовалась русским алфавитом из 32 букв (без Ё). Сообщение содержит только заглавные буквы, в нем нет цифр, пробелов и иных символов. В качестве ответа следует сдать первую и последнюю пятибуквенные группы расшифрованного сообщения, разделенные многоточием, например: АБВГД...ЕЖЗИЙ. Подлежащий расшифровке текст (UPD: добавил три строки к трем исходным):
ГШЫУС МЕРТЕ ЕЩЕЩИ СЭУХР ВШЦЪТ НДУХС ШЭРКЦ ГОАВЛ ЗСЮЬЧ ЦСЭЦК 
ДКДЩХ КЯЬЫЬ ЬЩХРЭ СЛТОП КЩКЛЫ СРЯЦЩ ВСПОК ХАГЛТ ХЭЪЩЗ НЗЗЫФ 
ЛМЖБД ЭРЛФС БОГНЖ ЪЛТНХ ЩИУРЪ ВЕПРЬ ГАЬЧЦ ЫГСВЦ СУТВЕ ГЛБСФ
ЖЕМЗУ ЪЕЕЭВ ИИЬЦК ЖЦЧАЛ БЦБДШ НШТЩУ ЭЪОФР ЪРДГО ЯЭЧГЬ НЭЖФТ 
ЬЗЩРЦ ЕЫЩАН НЗКХЫ АЖЮКФ МЭЪМР КБРЫЪ ЮХБЯА ЛГЖВЬ ЩКЕЦМ ЯОХШЭ 
ТШБФН СПЪЩА ЮШЫХЧ НВЮЛГ ФЦШЪФ ЛДОЮМ ЕШЩЕЪ ЪЩЖЧШ УТПЮР НДСБУ
Прием ответов закончен, комментарии раскрыты.

Collapse )

Правильно ответили: fiviol, madam_y и ditour.


def

Роботы с инстинктами


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

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

Алгоритм адаптации поведения не привязан жестко к какому-то одному механическому устройству и может использоваться с роботами разных типов. Авторы алгоритма демонстрируют его успехи на примере двух устройств — робота-шестиножки и многосекционной механической руки. Для шестиножки алгоритму удается подобрать походку, позволяющую роботу достаточно быстро перемещаться при нескольких вариантах поломок, в том числе при удалении двух ног. Для механической руки алгоритм подбирает поведение, позволяющее точно опустить деталь в корзину при выходе из строя разных узлов, в том числе при одновременной поломке двух моторчиков. Важно, что авторы алгоритма не программируют сами библиотеку аварийных поведений под конкретные ожидаемые повреждения. Предварительное вычисление карты поведений является не ручным программированием реакций на возможные проблемы, а наработкой разнообразных поведенческих схем посредством программного моделирования (как бы, симулированием «жизненного опыта» робота). Авторы называют предварительно вычисленную карту поведений «инстинктом» машины. Подбор поведения, подходящего для решения возникшей проблемы, происходит путем приложения «инстинкта» к конкретным обстоятельствам методом проб и ошибок. Выработка нового эффективного поведения после поломки занимает от нескольких секунд до пары минут. Такая высокая скорость адаптации в реальном времени обеспечивается значительным объемом предварительных вычислений, формирующих «инстинкт» робота, то есть карту потенциально полезных поведений.



Видеозапись: восстановление функциональности робота-шестиножки после повреждения, ссылка на видео.
Новая эффективная походка подбирается методом проб и ошибок
с помощью предварительно вычисленной карты походок.
Источник: Nature News, ‘Instinctive’ robot recovers from injury fast, анонс статьи;
см. также саму статью в Nature, Robots that can adapt like animals,
и доп. видео к статье.