Сообщения

Цепи Маркова простыми словами. Пишем пирожки.

Изображение
В прошлой заметке  было описано как обучить нейтронную сеть так, чтобы она играла в Марио или управляла роботом. Но может ли нейронная сеть генерировать текст? В этом вполне могут помочь цепи Маркова. Вот за что я 'люблю' русскоязычную википедию, так это за то, что любое простое явление/уравнение/правило, особенно из математики описывается сходу настолько обобщенно, настолько зубодробительными формулами, что без пол литра не разберешься. Притом составители статей не утруждают себя дать описание (хотя-бы на пару предложений) простым человеческим языком, а сразу переходят к формулам. Если кто-то захочет узнать что такое цепи Маркова, то в первом переложении он узнает, что: "Це́пь Ма́ркова — последовательность случайных событий с конечным или счётным числом исходов, характеризующаяся тем свойством, что, говоря нестрого, при фиксированном настоящем будущее независимо от прошлого. Названа в честь А. А. Маркова (старшего)." Может быть дальше станет понятно? Как бы

Алгоритм NEAT. Эволюционирующие нейронные сети возрастающих топологий.

Изображение
Нейронные сети как правило используются на задачах кластеризации и распознавания образов. И там они показывают действительно впечатляющие результаты. Но в задачах распознавания образов структура нейронной сети (ее топология) как правило задается заранее. Обучением же такой сети является настройка весов между заранее определенными слоями. Сам выбор топологии сети является очень нетривиальной задачей, которая возникает еще задолго до обучения самой сети. Поэтому возникла задача, чтобы сеть могла не только обучаться, но и сама настраивать свою топологию, создавать/удалять узлы и связи. Одним из таких алгоритмов является алгоритм NEAT. Именно с помощью этого алгоритма была создана и обучена нейронная сеть  Mar/IO, играющая в Супер Марио на видео ниже:

Gazebo - симулятор для роботов. Создаем модель простейшего робота

Изображение
Газибо представляет собой один из многих симуляторов роботов. Развивается Open Source Robotic Foundation  и довольно тесно взаимодействует с Операционной системой для роботов (ROS)

OpenCL ? CUDA ? Используем GPU на полную мощь с VexCL

Изображение
Когда нужны вычисления на GPU То стоит Выбор - какой SDK использовать. Среди реальных альтернатив CUDA и OpenCL . И выбор этот не простой - либо использовать открытое решение, которое запуститься практически на любой видеокарте, либо иметь выигрыш по скорости, ведь согласно исследованию на данный момент CUDA быстрее OpenCL на 16/67%. Оба SDK между собой не совместимы, но их можно использовать на заднем фоне, но иметь один высокоуровневый интерфейс, написаный на языке высокого уровня и подменять реализацию по мере необходимости. Это и есть библиотека VexCL

Фейк или реальная новость?

Изображение
1 апреля, пора подвести итог небольшого эксперимента. Иногда заголовки новостей настолько сюрреалистичны, что даже поражаешься, как такое может быть, кто автор этих заголовков и что он курил. В очередной раз охренев от шизоидного заголовка из российской ленты новостей, захотелось узнать, верят ли люди в то, о чем эти заголовки. И могут-ли они отличить выдуманные заголовки от реальных. Так появился на свет  сайт  на Heroku. Заодно это было мое одно из первых знакомств в реальности с Node.JS и фреймворком Express и MongoDB. Статистика далее

Настройка OpenMP на LLVM для Xcode

Изображение
Начиная с Релиза 3.8.1 Clang/LLVM  поддерживает  нативно OpenMP 3.1 OpenMP  - это открытый стандарт для распараллеливания для языков C/C++/Fortran и open source библиотека. На данный момент сборка clang - основного компилятора для Xcode от эплов не поддерживает OpenMP из коробки. Но такую поддержку легко можно добавить: