• Алгоритм машинного обучения Flappy Bird

    • Translation
    Я познакомлю вас с полным туториалом на HTML5 с демо по алгоритму машинного обучения видеоигре Flappy Bird. Цель этого эксперимента — написать игровой контроллер искусственного интеллекта на основе нейросетей и генетического алгоритма.

    То есть мы хотим создать ИИ-робота, который сможет учиться оптимальной игре во Flappy Bird. В результате наша маленькая птица сможет спокойно пролетать через препятствия. В наилучшем сценарии она не умрёт никогда.

    Прочитав теорию, лежащую в основе этого проекта, можно скачать исходный код в конце этого туториала. Весь код написан на HTML5 с использованием фреймворка Phaser. Кроме того, мы использовали библиотеку Synaptic Neural Network для реализации нейросети, чтобы не создавать её с нуля.

    Демо


    Для начала посмотрите демо, чтобы оценить алгоритм в действии:



    Запустить в полноэкранном режиме
    Читать дальше →
  • Строящиеся города будущего: энергия, переработка, безотходная среда


      Country Garden’s Forest City — город в Малайзии для 700 000 человек, строящийся на четырех искусственных островах. Все его офисные башни, гостиницы, торговые центры и школы будут утопать в зелени.

      «Города будущего» перестали быть просто проектами на бумаге. Уже сейчас облик мегаполисов быстро меняется под влиянием успехов в области разработки 3D-печати, интернета вещей и композитных материалов. На облик города также влияет транспортная система. Всё больше компаний начинают эксперименты с пассажирскими беспилотниками. Вслед за транспортной инфраструктурой изменится и сам город.

      Город будущего — это не только «рай на Земле», но и новый класс сопутствующих проблем. В современных прогрессивных агломерациях не исчезает бедность и преступность. Так каким должным быть населенный пункт завтрашнего дня, чтобы побороть здоровый пессимизм?
      Читать дальше →
    • Один видеоролик похоронил компанию Kanoa


        Такую фотографию наушников Kanoa потенциальные покупатели получили в прошлом году

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

        Сбор денег осуществлялся через Indiegogo.
        Читать дальше →
      • Dagger 2 Multibindings

        • Tutorial

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


        Для данной статьи необходимы базовые знания по Dagger 2. В примерах использовался Dagger версии 2.11


        Dagger 2 позволяет забайндить несколько объектов в коллекцию, даже в тех случаях, когда байндинг этих объектов происходит в разных модулях. Dagger 2 поддерживает Set и Map мультибайндинг.

        Читать дальше →
        • +7
        • 10.6k
        • 1
      • Интересные приложения для Android с открытым исходным кодом

        • Translation
        image


        Используя и изучая приложения с открытым исходным кодом, вы можете научиться, как создавать хорошие приложения самостоятельно.


        Ниже перечислены лучшие проекты под Android с открытым исходным кодом. Благодаря им вы сможете узнать массу отличных практик для разработки под Android.

        Читать дальше →
      • Покоряем Поднебесную: как вывести приложение на рынок Китая

        Израильская компания по мобильной аттрибуции AppsFlyer опубликовала 60-страничный гид по вхождению на китайский рынок мобильных приложений в 2017 году. Вот самое интересное из него:

        • Главное отличие китайского рынка мобильных приложений в том, что в 2010 году Google покинул страну, а вместе с ним исчез и Google Play. В результате в Китае свыше 300 магазинов приложений для Android, для каждого из которых необходимо переупаковывать APK. Магазины делятся на две группы: созданные операторами (пр. Tencent, Baidu, 360) и созданные производителями смартфонов (пр. Huawei, Xiaomi).
        • Зачем же заморачиваться с выходом на рынок Поднебесной? Интернетом в Китае пользуется 751 млн человек, это почти всё население Европы. С мобильных устройств в сеть выходит 724 млн пользователей, а это 96,3% всех интернет-пользователей в стране.
        • Как следствие, каждый третий владелец смартфона пользуется им как кошельком, т.е. оплачивает с помощью телефона покупки в магазинах, такси, билеты в кино и прочее. В среднем на одного клиента WeChat приходится по 55 мобильных транзакций в месяц.
        • Затраты на мобильную рекламу между первым кварталом 2016 и первым кварталом 2017 выросли на 90% (!) — это абсолютный мировой рекорд. К 2020 году прогнозируется, что к 2020 году объём затрат на mobile ads составит 70 с половиной миллиардов долларов.

        Как же правильно запустить своё приложение или игру на китайском рынке?
        Читать дальше →
        • +11
        • 6.7k
        • 2
      • Retrofit на Android с Kotlin

        • Tutorial

        image


        Одним из самых захватывающих объявлений на Google I/O в этом году стала официальная поддержка Kotlin для разработки под Android.


        Котлин на самом деле не новый язык, ему уже >5 лет и он довольно зрелый. Здесь вы можете получить более подробную информацию о языке


        Я планирую поделиться некоторыми «практиками» использования Kotlin в разработке Android.

        Читать дальше →
        • +4
        • 29.8k
        • 2
      • Dagger 2.11 & Android

        В данной статье рассматривается использование специализированного модуля Dagger 2 под android и подразумевается, что у вас есть наличие базовых знаний по Dagger 2.


        В Dagger 2.10 был представлен новый модуль специально для Android. Данный модуль поставляется как дополнение, состоящий из дополнительной библиотеки и компилятора.
        В версии 2.11 были некоторые небольшие изменения, в частности некоторые классы, были переименованы, поэтому будет использоваться именно эта версия.

        Читать дальше →
      • Секвенирование ДНК в домашних условиях: как на коленке собрать прибор за 10 миллионов

        Всем привет, меня зовут Александр Соколов, и я хочу рассказать, как сделал дома секвенатор – прибор для расшифровки ДНК. Рыночная цена такого прибора составляет около 10 миллионов рублей.

        image
        Читать дальше →
      • Яндекс открывает технологию машинного обучения CatBoost

          Сегодня Яндекс выложил в open source собственную библиотеку CatBoost, разработанную с учетом многолетнего опыта компании в области машинного обучения. С ее помощью можно эффективно обучать модели на разнородных данных, в том числе таких, которые трудно представить в виде чисел (например, виды облаков или категории товаров). Исходный код, документация, бенчмарки и необходимые инструменты уже опубликованы на GitHub под лицензией Apache 2.0.



          CatBoost – это новый метод машинного обучения, основанный на градиентном бустинге. Он внедряется в Яндексе для решения задач ранжирования, предсказания и построения рекомендаций. Более того, он уже применяется в рамках сотрудничества с Европейской организацией по ядерным исследованиям (CERN) и промышленными клиентами Yandex Data Factory. Так чем же CatBoost отличается от других открытых аналогов? Почему бустинг, а не метод нейронных сетей? Как эта технология связана с уже известным Матрикснетом? И причем здесь котики? Сегодня мы ответим на все эти вопросы.

          Читать дальше →
        • Копируем человеческий мозг: операция «Свертка»

          • Translation

          Чему уже научились сверточные искусственные нейронные сети (ИНС) и как они устроены?


          1. Предисловие


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


          2. Прорыв


          Что же такого произошло в последние годы, что вызвало бурное развитие ИНС? Ответ очевиден — это технический прогресс и доступность вычислительных мощностей.


          Приведу простой и очень наглядный пример:

          Читать дальше →
        • Старение — программа

            “Выживает сильнейший,” — иногда пафосно заявляют всякие “хозяева жизни”, перевирая исходное значение мысли Дарвина.

            “Выживает наиболее приспособленный,” — имел в виду Дарвин, разъясняют нам эволюционные биологи.

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

            А что такое “максимальное выживание”? По какому параметру будем максимизировать? “Это уже на ваш вкус,” — говорит нам Теория игр. Хотите локальный максимум ваших копий в отдельный момент времени? Получите, распишитесь. Только не жалуйтесь, что ах, как счастье быстротечно, после того как вымрете от исчерпания ресурсов.

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

            Но самый шик — отрастить им интеллект, чтобы они сами за вас начали контролировать свою популяцию, планировать потребление своих ресурсов, да ещё и придумывали более и более эффективные способы эти ресурсы добывать. Такие репликаторы могут наплодить целых 7,5 миллиардов ваших генных кооперативов по 30–40 триллионов копий каждый. Для бактерий это, конечно, смехотворные цифры, но для эукариотов вполне себе показатель.

            Правда, интеллект растить долго, да и есть шанс не дорастить, говорят нам неандертальцы. Всё так: если ты как молодой, дерзкий стартап-кооператив решаешь методом “триллион макак на печатных машинках” закодить в своих репликаторов умение думать, то до тех пор, пока твой код не готов к продакшн релизу, приходится
            Читать дальше →
          • Как Angry Birds 2 за год увеличила доход в несколько раз

            • Translation

            После выпуска Angry Birds 2 в конце июля 2015 года игра получила смешанные отзывы. И Pocket Gamer, и IGN хвалили игру за превосходную графику и значительно улучшенный дизайн уровней, но корили Rovio за механику жизней в стиле Candy Crush и случайные уровни.

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

            — Из обзора Angry Birds 2 на IGN

            Если посмотреть на загрузки, то выпуск Angry Birds 2 стал огромным успехом. К концу 2015 года игра почти достигла рубежа в 50 миллионов загрузок. Однако с точки зрения доходов всё выглядело гораздо мрачнее: игра заработала «всего» около 10 миллионов долларов.



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

            Вместо того, чтобы брать курс на простое добавление уровней, стокгольмский разработчик Angry Birds 2 принялся за работу. Обновления 2016 года добавили в игру несколько базовых механик, такие как повышение уровня птиц и рогатки, ежедневные задания и PvP-арена. В то же время стабильно и постепенно добавлялся новый контент уровней.
            Читать дальше →
            • +9
            • 12.9k
            • 9
          • Neuralink — Будущее, которое сложно себе представить. Вы будете его частью

              Вольный (очень краткий) пересказ статьи Тима Урбана «Neuralink and the Brain’s Magical Future»

              Нейролинк – самый амбициозный и важный проект Илона Маска. Его главная цель – создание эффективного интерфейса «Мозг-Компьютер».

              image

              Для полного осознания значимости сего предприятия рекомендую ознакомиться с переводом статьи Тима Урбана об искусственном интеллекте – Революция Искусственного интеллекта — путь к Супер-интеллекту.

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

              По мнению большинства экспертов, создание машины, которая в итоге окажется умнее человека по всем статьям – вопрос времени. Особенно стоит отметить, что превосходство это может быть настолько подавляющим и настолько быстро будет реализовано, что мы даже будем неспособны его осознать. Именно этот аргумент является главным в арсенале ученых, инженеров и мыслителей, которые высказывают свои опасения по поводу продолжения разработок в области искусственного интеллекта (ИИ) – мы рискуем вырастить нечто, чем не сможем управлять.
              Читать дальше →
            • Использование BSP-деревьев для создания игровых карт

              • Translation
              image

              При заполнении области объектами (например, комнатами в подземелье) в случайном порядке вы рискуете тем, что всё будет слишком случайным. Результат может оказаться абсолютно бесполезным хаосом. В этом туториале я покажу, как использовать для решения этой проблемы двоичное разбиение пространства (Binary Space Partitioning, BSP).

              Я подробно и по этапам расскажу об использовании BSP для создания простой двухмерной карты, к примеру, схемы подземелья. Я покажу, как создать простой объект Leaf, который мы используем для разделения области на маленькие сегменты. Затем мы займёмся генерированием в каждом Leaf случайной комнаты. И, наконец, узнаем, как соединить все комнаты коридорами.

              Примечание: хоть код примеров и написан на AS3, концепцию можно использовать практически в любом другом языке.
              Читать дальше →
              • +20
              • 12.2k
              • 5
            • 30+ онлайн ресурсов для изучения программирования в 2017

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



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

                • Translation

                Основные задачи художников визуальных эффектов


                Если говорить только о визуальных эффектах, то их можно разделить на два основных типа задач: геймплейные эффекты и природные эффекты (или эффекты окружений). Принцип их разделения зависит от конкретного проекта. Например в такой игре, как Castlevania (жанра hack'n'slash), 90% визуальных эффектов состояло в умениях персонажа и магии, сильно влиявших на геймплей. Такие задачи требуют серьёзного понимания механик игры и постоянного общения с командой дизайнеров, с которой нужно постоянно договариваться. Для примера давайте возьмём огнемёт. Дизайнеры геймплея подбирают область урона атаки, а затем вам необходимо создать эффект поверх отладочного цилиндра. Постепенно уменьшающийся огонь не полностью соответствует области урона, и дизайнеры начинают на это жаловаться. Вот один из примеров «конфликтов» между двумя дисциплинами, потому что если придерживаться строгих правил, огонь не будет похож на огонь. Поэтому приходится искать альтернативы и убеждать дизайнеров, что игрок не заметит, что небольшой исчезающий огонь не нанёс никакого урона.

                Среди прочих жанров, геймплейные эффекты более «важны» в файтингах и RPG.

                Существуют и другие игровые жанры, например, шутеры (в особенности это касается реалистичных), в которых природные эффекты так же важны, как и геймплейные. В этом случае художник, ответственный за природные эффекты, становится практически художником по окружениям и в основном сотрудничает с этой командой. Примерами природных эффектов являются водопады, туман, дождь и т.д. Больше всего природных эффектов я создал в Gears of War 4, где мы работали над многопользовательскими картами и должны были заботиться о влиянии эффектов на производительность, потому что от игры требовалось работать в 1080p при 60 fps.
                Читать дальше →
                • +43
                • 26.2k
                • 7
              • Вы — не Google

                • Translation
                Мы, программисты, иногда почему-то сходим с ума. Причём по каким-то совершенно нелепым причинам. Нам нравится думать о себе, как о супер-рациональных людях, но когда дело доходит до выбора ключевой технологии нового продукта, мы погружаемся в какое-то безумие. Вдруг оказывается, что кто-то слышал что-то об одной классной вещи, а его коллега читал комментарий о другой на Хабре, а третий человек видел пост в блоге о ещё чём-то похожем… и вот мы уже пребываем в полнейшем ступоре, беспомощно барахтаясь в попытках выбора между совершенно противоположными по своей сути системами, уже и забыв, что мы вообще пытаемся выбрать и почему.

                Рациональные люди не принимают решения таким образом. Но именно так программисты часто решают использовать что-то вроде MapReduce.

                Вот как комментировал этот выбор Joe Hellerstein своим студентам (на 54-той минуте):

                Дело в том, что в мире сейчас есть где-то 5 компаний, обрабатывающие данные подобных объёмов. Все остальные гоняют все эти данные туда-сюда, добиваясь отказоустойчивости, которая им на самом деле не нужна. Люди страдают гигантоманией и гугломанией где-то с середины 2000-ых годов: «мы сделаем всё так, как делает Google, ведь мы же строим один из крупнейших (в будущем) сервисов по обработке данных в мире!»

                image

                Сколько этажей в вашем датацентре? Google сейчас строит четырёхэтажные, как вот этот в Оклахоме.
                Читать дальше →
              • Обзор исследований в области глубокого обучения: обработка естественных языков

                • Translation


                Это третья статья из серии “Обзор исследований в области глубокого обучения” (Deep Learning Research Review) студента Калифорнийского университета в Лос-Анджелесе Адита Дешпанда (Adit Deshpande). Каждые две недели Адит публикует обзор и толкование исследований в определенной области глубинного обучения. В этот раз он сосредоточил свое внимание на применении глубокого обучения для обработки текстов на естественном языке.
                Читать дальше →
                • +23
                • 20.2k
                • 2