• Неожиданная полнота по Тьюрингу повсюду

    • Перевод
    Каталог программных конструкций, языков и API, которые неожиданно являются полными по Тьюрингу; последствия этого для безопасности и надёжности. Приложение: сколько компьютеров в вашем компьютере?

    Любая достаточно сложная программа на Си или Фортране содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Common Lisp. — Десятое правило Гринспена

    Полнота по Тьюрингу (Turing-completeness, TC) — это свойство системы при некотором простом представлении ввода и вывода реализовать любую вычислимую функцию.

    Тьюринг-полнота — фундаментальное понятие в информатике. Она помогает ответить на многие ключевые вопросы, например, почему невозможно создание идеальной антивирусной программы. Но в то же время она является поразительно распространённым явлением. Казалось бы, компьютерной системе трудно достичь такой универсальности, чтобы выполнять любую программу, но получается наоборот: трудно написать полезную систему, которая немедленно не обратится в полную по Тьюрингу. Оказывается, что даже небольшой контроль над входными данными и преобразованием их в результат, как правило, позволяет создать тьюринг-полную систему. Это может быть забавным, полезным (хотя обычно нет), вредным или чрезвычайно небезопасным и настоящим подарком для хакера (см. о «теоретико-языковой безопасности», которая изучает методы взлома «странных машин»1). Удивительные примеры такого поведения напоминают нам о том, что полнота по Тьюрингу таится повсюду, а защитить систему чрезвычайно сложно.
    Читать дальше →
  • Как создать игровой ИИ: гайд для начинающих

    • Перевод


    Наткнулся на интересный материал об искусственном интеллекте в играх. С объяснением базовых вещей про ИИ на простых примерах, а еще внутри много полезных инструментов и методов для его удобной разработки и проектирования. Как, где и когда их использовать — тоже есть.

    Большинство примеров написаны в псевдокоде, поэтому глубокие знания программирования не потребуются. Под катом 35 листов текста с картинками и гифками, так что приготовьтесь.

    UPD. Извиняюсь, но собственный перевод этой статьи на Хабре уже делал PatientZero. Прочитать его вариант можно здесь, но почему-то статья прошла мимо меня (поиском пользовался, но что-то пошло не так). А так как пишу в блог, посвященный геймдеву, решил оставить свой вариант перевода для подписчиков (некоторые моменты у меня оформлены по-другому, некоторые — намеренно пропущены по совету разработчиков).
    Читать дальше →
  • Нейронные сети против цензуры хентая

    • Перевод


    От переводчика: Этот забавный репозиторий уже с неделю находится в трендах гитхаба, и сейчас у него фееричное количество из 5000 звёздочек и 400 форков — поэтому я подумал, что было бы интересно перевести про него статью, хотя она короткая, да и тематика для хабра не очень стандартная.
    Если интересно, в оригинале статьи (ссылка около заголовка) есть ссылки на примеры работы программы.
    Читать дальше →
  • Может ли искусственный интеллект оставить букмекеров без работы?

      «Победа искусственного интеллекта над футбольными экспертами» – таким мог стать заголовок этой статьи про результаты футбольного соревнования. Мог бы, но, увы, не стал.

      Во время Чемпионата мира по футболу у нас в компании "НОРБИТ" проходил конкурс на лучший прогноз матчей по футболу. Я слишком поверхностно разбираюсь в футболе, чтобы на что-то претендовать, но желание принять участие в конкурсе все-таки победило мою лень. Под катом – история о том, как благодаря машинному обучению мне удалось добиться неплохих результатов среди знатоков футбольных команд. Правда, сорвать куш мне не удалось, зато открыл для себя новый увлекательный мир Data Science.

      Читать дальше →
    • Как Яндекс создал глобальный прогноз осадков с использованием радаров и спутников

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

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


        Снимки спутника Meteosat-8 из космоса (источник: EUMETSAT)
        Читать дальше →
      • Как поступить на PhD программу по машинному обучению

        • Tutorial

        1. Введение


        Этот текст — небольшое обобщение моего опыта подачи заявок на Computer Science PhD с уклоном в machine learning в Северной Америке. Я постарался собрать в этом гайде свои просчеты (учиться лучше на чужих ошибках) и более-менее универсальные вещи, полезные всем. Но все равно нужно понимать, что это довольно индивидуальный опыт, поэтому ваша личная стратегия может отличаться. Например, в случае выбора вузов/научных руководителей или в написании statement of purpose. Ну или вы находитесь в других стартовых условиях по сравнению со мной (оценки, статьи, рекомендации).


        Имейте в виду, что основная часть гайда писалась до получения результатов, потому что мне хотелось избежать «ошибки выживших» (survivorship bias) и проанализировать свой опыт безотносительно того, поступил я или нет. В конце руководства есть мои результаты: я поступил в 2 из 11 вузов, в которые подавался. На мой взгляд, все равно стоит избегать ошибок, которые я здесь буду описывать. Ну и нужно понимать, что в процессе подачи на ML PhD очень много шума, поэтому можно сделать все хорошо и пролететь и наверное даже наоборот.


        image
        Читать дальше →
      • Как Яндекс применил компьютерное зрение для повышения качества видеотрансляций. Технология DeepHD

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

          Сегодня мы расскажем читателям Хабра о том, как с помощью нейронных сетей нам удается повышать разрешение видео в режиме реального времени. Вы также узнаете, чем отличается теоретический подход к решению этой задачи от практического. Если вам не интересны технические детали, то можно смело пролистать пост – в конце вас ждут примеры нашей работы.



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

          Читать дальше →
        • Определяем спелость арбуза с помощью Keras: полный цикл, от идеи до программы на Google Play

          С чего все началось


          Все началось с Эппл Маркета — я обнаружил, что у них есть программа, позволяющая определить спелость арбуза. Программа… странная. Чего стоит, хотя бы, предложение постучать по арбузу не костяшками пальцев, а… телефоном! Тем не менее, мне захотелось повторить это достижение на более привычной платформе Андроид.
          Читать дальше →
        • Почему не стоит выкидывать Radeon, если ты увлекся машинным обучением?

            image


            Свою рабочую станцию мне выдалось собирать, будучи студентом. Достаточно логично, что я отдавал предпочтение вычислительным решениям AMD. потому что это дешево выгодно по соотношению цена/качество. Я долго подбирал компоненты, в итоге уложился в 40к с комплектом из FX-8320 и RX-460 2GB. Сначала этот комплект казался идеальным! Мы с соседом по комнате слегка майнили Monero и мой набор показывал 650h/s против 550h/s на наборе из i5-85xx и Nvidia 1050Ti. Правда, от моего набора в комнате бывало слегка жарковато по ночам, но это решилось, когда я приобрел башенный кулер к CPU.

            Читать дальше →
          • Обзор техник реализации игрового ИИ

            • Перевод
            image

            Введение


            Эта статья познакомит вас с широким диапазоном концепций искусственного интеллекта в играх («игрового ИИ»), чтобы вы понимали, какие инструменты можно использовать для решения задач ИИ, как они работают совместно и с чего можно начать их реализацию в выбранном движке.

            Я буду предполагать, что вы знакомы с видеоиграми, немного разбираетесь в таких математических концепциях, как геометрия, тригонометрия и т.д. Большинство примеров кода будет записано псевдокодом, поэтому вам не потребуется знание какого-то конкретного языка.

            Что же такое «игровой ИИ»?


            Игровой ИИ в основном занимается выбором действий сущности в зависимости от текущих условий. В традиционной литературе по ИИ называет это управлением "интеллектуальными агентами". Агентом обычно является персонаж игры, но это может быть и машина, робот или даже нечто более абстрактное — целая группа сущностей, страна или цивилизация. В любом случае это объект, следящий за своим окружением, принимающий на основании него решения и действующий в соответствии с этими решениями. Иногда это называют циклом «восприятие-мышление-действие» (Sense/Think/Act):

            • Восприятие: агент распознаёт — или ему сообщают — информацию об окружении, которая может влиять на его поведение (например, находящиеся поблизости опасности, собираемые предметы, важные точки и так далее)
            • Мышление: агент принимает решение о том, как поступить в ответ (например, решает, достаточно ли безопасно собрать предметы, стоит ли ему сражаться или лучше сначала спрятаться)
            • Действие: агент выполняет действия для реализации своих решений (например, начинает двигаться по маршруту к врагу или к предмету, и так далее)
            • … затем из-за действий персонажей ситуация изменяется, поэтому цикл должен повториться с новыми данными.
            Читать дальше →

          Самое читаемое