Рубрика «Алгоритмы» - 40

Привет!

Напоминаем, что ранее мы анонсировали книгу "Машинное обучение без лишних слов" — и теперь она уже в продаже. Притом, что для начинающих специалистов по МО книга действительно может стать настольной, некоторые темы в ней все-таки затронуты не были. Поэтому всем заинтересованным предлагаем перевод статьи Саймона Керстенса о сути алгоритмов MCMC с реализацией такого алгоритма на Python.
Читать полностью »

image

Разработчики из Университета Райса в Хьюстоне, штат Техас, разработали новый алгоритм машинного обучения, который получил название SLIDE. По их словам, эта схема обучения ИИ будет более эффективна при работе на центральных процессорах, чем на графических. Читать полностью »

imageФото: news.mit.edu

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

Когда фильтр Блума не подходит - 1

Я ещё с университета знал о фильтре Блума — вероятностной структуре данных, названной в честь Бёртона Блума. Но у меня не было возможности её использовать. В прошлом месяце такая возможность появилась — и эта структура буквально очаровала меня. Впрочем, вскоре я нашёл у неё некоторые недостатки. В этой статье — рассказ о моей краткой любовной связи с фильтром Блума.
Читать полностью »

С алгоритмом Google робот учится ходить самостоятельно - 1

Существующие алгоритмы обучения роботов ходьбе сильно зависят от вмешательства человека: каждый раз, когда робот падает, ему нужно, чтобы кто-то поднял его и вернул в правильное положение. Новый проект исследователей из Google Brain позволит роботам учиться ходить без помощи человека. В течение нескольких часов, полагаясь исключительно на настройки современных алгоритмов, команда Google обучила четырехногого робота ходить вперед и назад и поворачивать влево и вправо полностью самостоятельно.Читать полностью »

Julia и клеточные автоматы - 1

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

Читать полностью »

Ускорение поиска в Have I Been Pwned до 49 микросекунд (С++) - 1

Я давно знал о сайте Have I Been Pwned (HIBP). Правда, до недавнего времени никогда там не был. Мне всегда хватало двух паролей. Один из них неоднократно использовался для мусорной почты и пары аккаунтов на странных сайтах. Но пришлось от него отказаться, потому что почту взломали. И, честно говоря, я благодарен хакеру, потому что это событие заставило меня пересмотреть свои пароли — то, как я их использую и храню.

Конечно, я поменял пароли на всех аккаунтах, где стоял скомпрометированный пароль. Затем мне стало интересно, попал ли утёкший пароль в базу HIBP. Я не хотел вводить пароль на сайте, поэтому скачал базу данных (pwned-passwords-sha1-ordered-by-count-v5). База весьма впечатляет. Это текстовый файл на 22,8 ГБ с набором хэшей SHA-1, по одному в каждой строке со счётчиком, сколько раз пароль с данным хэшем встречался в утечках. Я вычислил SHA-1 своего взломанного пароля и попытался найти его.
Читать полностью »

Zip-файлы: история, объяснение и реализация - 1

Мне давно было интересно, как сжимаются данные, в том числе в Zip-файлах. Однажды я решил удовлетворить своё любопытство: узнать, как работает сжатие, и написать собственную Zip-программу. Реализация превратилась в захватывающее упражнение в программировании. Получаешь огромное удовольствие от создания отлаженной машины, которая берёт данные, перекладывает их биты в более эффективное представление, а затем собирает обратно. Надеюсь, вам тоже будет интересно об этом читать.

В статье очень подробно объясняется, как работают Zip-файлы и схема сжатия: LZ77-сжатие, алгоритм Хаффмана, алгоритм Deflate и прочее. Вы узнаете историю развития технологии и посмотрите довольно эффективные примеры реализации, написанные с нуля на С. Исходный код лежит тут: hwzip-1.0.zip.
Читать полностью »

Привет всем, меня зовут Андрей Токарев и снова я бы хотел поделится опытом участия и победой в Russian AI Cup.

Если кто не знает, Russian AI Cup (далее РАИК) это чемпионат по программированию исскуственного интелекта, где мы (точнее наша программа) должны управлять одним или несколькими персонажами (юнитами), которые соревнуются между собой. В этом году игра представляла собой 2-х мерный платформер, напоминающая компютерные игры начала 90-х, а юниты являлись вооруженными человечками, которые должны были убивать таких-же человечков противника. Более детально об этом можно почитать в анонсе

Продолжение участия (и победы) в Russian AI Cup 2019 - 1

В этот раз заседания не было когда пришла повестка о начале РАИК-а, так что перейдем сразу к сути.

Читать полностью »

Привет! Представляю вашему вниманию перевод статьи "ECS back and forth — Part 1 — Introduction" автора Michele skypjack Caini.

ECS back and forth

Часть 1 — Введение.

Когда я в первые узнал про архитектурный шаблон entity component system, я пошёл искать больше информации о нём в интернете. Но, к сожалению, тогда на эту тему не было пролито достаточно света, а ресурсов, где описывались бы разные подходы с их плюсами и минусами, не существовало. Почти каждые статья, пост, комментарии (существенная их доля) были об одной специфичной реализации и только слегка ссылались на другие примеры.

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

Почему я должен использовать ECS?

Старайтесь не быть одураченным тем, что говорят вокруг. Если вы работаете над AAA проектами на серьёзном уровне, главной причиной почему вы должны использовать такой серьёзный инструмент — это организация кода, а не (только) производительность. Конечно, производительность имеет не последнее значение, но хорошо организованная кодовая база бесценна, и с большинством игр у вас не будет проблем с производительностью, будь они написаны с использованием ОПП парадигмы либо с другой опциональной реализацией компонентного шаблона.

В сущности, компонентно-ориентированное программирование — это крайне мощный инструмент, который позволяет сделать код легко расширяемым и ускорить цикл разработки. Бесспорно, всё это должно быть вашей первостепенной целью.

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

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js