Как мы делали ML Boot Camp III

Автор: admin от 19-04-2017, 17:50, посмотрело: 351

Как мы делали ML Boot Camp III


19 марта закончился третий чемпионат по машинному обучению на платформе ML Boot Camp. 614 человек прислали решения и поборолись за главный приз ? MacBook Air. Для нас это важный проект: мы хотим расширить сообщество ML-специалистов России. Поэтому в наших задачах сможет разобраться даже новичок. Теоретически… Профи же соревнуются благодаря сложности метрик и большому ряду параметров задачи.


Со второго контеста многое изменилось. Мы увеличили количество участников вдвое, прикрутили к серверу новую метрику, пофиксили баги и создали ML-комьюнити в Телеграме. Рассказываем, как проводили третий контест.

Категория: Программирование

 

Начнем с математики. Векторизация вычислений в реализации технологии RAID-6

Автор: admin от 19-04-2017, 12:55, посмотрело: 274

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

Начнем с математики. Векторизация вычислений в реализации технологии RAID-6

Категория: Программирование, Системное администрирование

 

Реализация псевдо-3D в гоночных играх

Автор: admin от 19-04-2017, 12:15, посмотрело: 407

Реализация псевдо-3D в гоночных играх

Введение


Почему псевдо-3d?

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

Но в такой системе есть и множество недостатков. Глубина физики, используемой в играх-симуляторах, будет утеряна, поэтому такие движки не приспособлены для этих игр. Однако они просты в реализации, быстро работают, а игры на их основе обычно очень интересны!

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

Категория: Программирование » Веб-разработка

 

Заклиная техническое интервью

Автор: admin от 18-04-2017, 11:00, посмотрело: 222

Перевод (возможно лучшей) статьи Aphyr.


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


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

Никогда не читай Hacker News

Категория: Программирование

 

Итоги первого раунда Russian Code Cup 2017

Автор: admin от 13-04-2017, 16:45, посмотрело: 256

Итоги первого раунда Russian Code Cup 2017
The Sword of Midnight by Mischeviouslittleelf


Второго апреля прошёл первый квалификационный раунд Russian Code Cup 2017, на котором были побиты рекорды посещаемости за последние три года. Предлагаем вам немного цифр и разбор задач раунда:


A. Марсианский волейбол
B. Раскраска стены
C. Магический артефакт
D. Менеджер памяти
E. ЛИСА


На раунд зарегистрировалось 4552 участника, из них 1001 — новички, открывшие для себя RCC лишь в этом году. Активных участников в этот раз оказалось в два раза больше, чем в 2015 и 2016 годах! Всего нам прислали 6586 решений. Как обычно, популярнее всего — C++ в разных вариациях (2346 решений — C++ 14, 1425 на плюсах 11-й версии и примерно по 500 решений у GNU C++ 6.2 и Visual C++ 2013). Второе место по популярности у Java 8.0 (649), а третье — у Python (402 на Python 3.5 + 60 решений на PyPy 2.4.0). Самыми непопулярными для спортивного программирования оказались Perl, D и Haskell (на последнем написали ровно одно решение за весь раунд). Список всех поддерживаемых нами языков можно найти здесь.

Категория: Программирование

 

Библиотека глубокого обучения Tensorflow

Автор: admin от 13-04-2017, 14:50, посмотрело: 640

Здравствуй, Хабр!


Библиотека глубокого обучения Tensorflow

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

Категория: Программирование

 

Логика сознания. Часть 12. Поиск закономерностей. Комбинаторное пространство

Автор: admin от 12-04-2017, 20:25, посмотрело: 337

Логика сознания. Часть 12. Поиск закономерностей. Комбинаторное пространствоПоэзия — та же добыча радия.
В грамм добыча, в годы труды.
Изводишь единого слова ради
Тысячи тонн словесной руды.
Но как испепеляюще слов этих жжение
Рядом с тлением слова-сырца.
Эти слова приводят в движение
Тысячи лет миллионов сердца.

Владимир Маяковский


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

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

Категория: Программирование

 

Онлайн-курсы весеннего семестра от Академического университета и CS центра

Автор: admin от 11-04-2017, 16:20, посмотрело: 343

Онлайн-курсы весеннего семестра от Академического университета и CS центра
Коллекция онлайн-курсов, подготовленных преподавателями Академического университета (СПбАУ РАН) и Computer Science Center, насчитывает уже почти 20 бесплатных курсов по программированию и математике. Все онлайн-курсы разработаны на платформе Stepik.org, их может проходить любой желающий. Количество курсов продолжает расти, и этой весной запускаются несколько новинок:



  • Алгоритмы: теория и практика. Структуры данных (А. С. Куликов)

  • Операционные системы (М.Ю. Кринкин)

  • Функциональное программирование на языке Haskell (часть 2) (Д. Н. Москвин)


Подробнее о курсах

Категория: Программирование

 

Фильтрация изображения методом математической морфологии на FPGA

Автор: admin от 8-04-2017, 17:10, посмотрело: 297

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

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

  • требует формирование оконной функции

  • очень сложен для расширения окна

  • большое запаздывание (latency) при последовательном соединении с другими оконными функциями.


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

Категория: Программирование

 

Архаичные алгоритмы сжатия видео эпохи FMV-игр

Автор: admin от 8-04-2017, 10:15, посмотрело: 243

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

Но была и проблема: типичное игровое разрешение того времени — 320 на 200 точек при палитре из 256 цветов, что даёт нам 64 килобайта на кадр или полтора мегабайта на 25 кадров, при скорости чтения с компакт диска в 150 килобайт в секунду. Т.е. видео надо было жать и жать довольно сильно, а сжав, потом надо суметь декодировать, ведь мы помним, компы были слабенькие и декодирование, например, MPEG им было вообще не по силам. Тем не менее производители видео игр успешно решили проблему недостаточной производительности породив заодно множество видео-кодеков и игровых видео-форматов, некоторые из которых могли проигрываться аж 286-м (прописью: двести восемьдесят шестым) процессором.

Так началась эпоха FMV игр (Full Motion Video Games). Я думаю, многие помнят её ярких представителей: Crime Patrol от American Laser Games, Lost Eden, Cyberia, Novastorm и даже Command & Conquer, в который многие играли только ради видеовставок между миссиями. В те времена выглядело это очень круто. Вау! Вау! Ну а мне было интересно, как же они закодировали это видео, в книжках о мультимедиа приводили то же описание проблемы, что и я выше, но ничего внятного о методах сжатия не писали, видимо, авторы в этом мало понимали и пересказывали какие-то сомнительные слухи.

На самом деле, всё оказалось очень просто, методов было всего три штуки и все очень простые.

Категория: Программирование » Веб-разработка