Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Семантические технологии просто и доступно на примере родословных

Время на прочтение7 мин
Количество просмотров18K
Программа, способная к логическим выводам в рамках поставленной задачи, может казаться техническим чудом и воплощением Скайнета. Но, как можно убедиться ниже, на сегодняшний день создать такую программу на языке Python не составит труда, если использовать семантические технологии. Мы остановимся на наглядном примере онтологий — родословных — и для любого члена семьи в родословной сможем выводить его родственные отношения произвольной сложности (она ограничена вычислительными ресурсами). К примеру, на фамильном древе семьи Романовых ниже показан внучатый двоюродный племянник (first cousin twice removed) российского императора Петра II.

image

Так что если вы хотите познакомиться с технологиями семантического веба на практике, добро пожаловать под кат, где мы потренируемся на кошках на родословных.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии2

Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 1 из 6

Время на прочтение7 мин
Количество просмотров398K

Содержание курса



Улучшение кода






Official translation (with a bit of polishing) is available here.




Постановка задачи


Цель этого цикла статей — показать, как работает OpenGL, написав его (сильно упрощённый!) клон самостоятельно. На удивление часто сталкиваюсь с людьми, которые не могут преодолеть первоначальный барьер обучения OpenGL/DirectX. Таким образом, я подготовил краткий цикл из шести лекций, после которого мои студенты выдают неплохие рендеры.

Итак, задача ставится следующим образом: не используя никаких сторонних библиотек (особенно графических) получить примерно такие картинки:



Внимание, это обучающий материал, который в целом повторит структуру библиотеки OpenGL. Это будет софтверный рендер, я не ставлю целью показать, как писать приложения под OpenGL. Я ставлю целью показать, как сам OpenGL устроен. По моему глубокому убеждению, без понимания этого написание эффективных приложений с использованием 3D библиотек невозможно.
Читать дальше →
Всего голосов 198: ↑196 и ↓2+194
Комментарии120

Преимущества Common Lisp

Время на прочтение15 мин
Количество просмотров34K
Лисп часто рекламируют как язык, имеющий преимущества перед остальными из-за того, что он обладает некоторыми уникальными, хорошо интегрированными и полезными фичами.

Далее следует попытка выделить набор особенностей стандартного Common Lisp, кратко и с примерами.

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

Текст по большому счёту основан на списке особенностей CL и обзоре CL Роберта Стренда (Robert Strandh).
Читать дальше →
Всего голосов 83: ↑78 и ↓5+73
Комментарии120

Hypermedia — то без чего ваше API не совсем REST

Время на прочтение12 мин
Количество просмотров44K

Всем привет! Меня зовут Дмитрий Павлов, в компании Align Technology мы с коллегами занимаемся разработкой Web API для взаимодействия внутренних систем и интеграции нашей компании со сторонними вендорами. Об идеях создания API для веба, а точнее RESTful API я хотел бы рассказать в этой статье.


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

Читать дальше →
Всего голосов 27: ↑21 и ↓6+15
Комментарии85

Введение в теорию взаимодействующих последовательных процессов (CSP), часть 2

Время на прочтение5 мин
Количество просмотров4.7K
Продолжаем цикл статей посвящённый алгебре исчисления процессов. Данный текст является переводом и сокращённым пересказом начальных глав книги Чарльза Э. Хоара. Теория применяется для формального описания работы параллельных систем. Примерам её практических применений являются такие языки программирования как Erlang, Go и Limbo.
Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии6

Нейронные сети с нуля. Обзор курсов и статей на русском языке, бесплатно и без регистрации

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

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

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


Читать дальше →
Всего голосов 39: ↑34 и ↓5+29
Комментарии12

PhotoScan: как делать фотографии фотографий без бликов

Время на прочтение4 мин
Количество просмотров58K
19 апреля 2017 мы выпустили обновление PhotoScan, нашего мобильного приложения для iOS и Android, позволяющего оцифровывать бумажные фотографии одним только смартфоном. Одна из ключевых особенностей PhotoScan – возможность удалять блики с фотографий (их часто печатают на глянцевой, хорошо отражающей свет бумаге), а также со страниц пластиковых альбомов или фотографий под стеклом. Для этого мы разработали уникальное сочетание компьютерного зрения и технологии обработки изображений, которые могут точно совместить и скомбинировать несколько немного отличающихся снимков фотографии и отделить блик от самого изображения на фото.

image
Очень много фото. Очень.
Всего голосов 62: ↑59 и ↓3+56
Комментарии67

Нейросеть выполняет 3D-реконструкцию лица по фотографии

Время на прочтение3 мин
Количество просмотров15K

Некоторые результаты применения метода VRN — Guided на изображениях из набора AFLW2000-3D

В интернете есть ряд стартапов, в том числе российские, которые занимаются восстановлением 3D-структуры лица по фотографиям. Например, VisionLabs со своим приложением Face.DJ умеет выполнять 3D-реконструкцию по единственной фотографии. Такая трансформация (3D-моделирование по фото) имеет практический смысл. После создания модели появляется возможность, например, изменить причёску, примерить очки, отрастить бороду и т. д. Технология может использоваться в системах проверки и распознавания лиц.

Но теперь бизнес подобных стартапов под угрозой: их работу легко выполняет новая нейросеть VRN (Volumetric Regression Network), которую выложили в открытый доступ на GitHub. Прямо на сайт вы можете загрузить свою или любую другую фотографию — и нейросеть осуществит преобразование в онлайне за несколько секунд (демо).
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии10

Иголка в стоге сессий, или Байт-код регулярных выражений

Время на прочтение11 мин
Количество просмотров15K


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


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


В последней статье из серии, посвящённой виртуальным машинам, я расскажу про альтернативный подход к поиску интересных сессий — движок регулярных выражений («Поросячий Матчер»), определённых для последовательностей событий.


Виртуальная машина, байт-код и компилятор прилагаются бесплатно!

Читать дальше →
Всего голосов 68: ↑68 и ↓0+68
Комментарии25

Вулканический поросенок, или SQL своими руками

Время на прочтение15 мин
Количество просмотров15K


Сбор, хранение, преобразование и презентация данных — основные задачи, стоящие перед инженерами данных (англ. data engineer). Отдел Business Intelligence Badoo в сутки принимает и обрабатывает больше 20 млрд событий, отправляемых с пользовательских устройств, или 2 Тб входящих данных.


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


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

Читать дальше →
Всего голосов 47: ↑45 и ↓2+43
Комментарии10

«Сгоревшие» сотрудники: есть ли выход?

Время на прочтение18 мин
Количество просмотров157K
Ты работаешь в хорошей компании. Вокруг тебя крутые профессионалы, получаешь достойную зарплату, каждый день делаешь важные и нужные вещи. Илон Маск запускает спутники, Сергей Семёнович улучшает и без того лучший город Земли. Погода отличная, солнце светит, деревья цветут — живи да радуйся!

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

Что же делать? Как работать с Игнатом? Добро пожаловать под кат!


Всего голосов 224: ↑210 и ↓14+196
Комментарии400

Как я сделал тестер-оптимизатор для нахождения прибыльных стратегий на бирже

Время на прочтение10 мин
Количество просмотров93K

Введение


image

В алгоритмическом трейдинге при создании механических торговых систем (МТС) очень важен вопрос времени жизни торговых алгоритмов. Да, и найти их в принципе достаточно сложно. В условиях постоянно меняющегося рынка рано или поздно наступает момент, когда даже самый совершенный и прибыльный алгоритм начинает приносить убытки. И его нужно, что называется, «подкручивать» или оптимизировать под текущие условия рынка. Одними из самых распространенных являются торговые системы (ТС), работающие со свечными графиками с их многообразием индикаторов для технического анализа.
Читать дальше →
Всего голосов 130: ↑105 и ↓25+80
Комментарии61

Применение эволюционных стратегий для идентификации параметров нечетких систем

Время на прочтение7 мин
Количество просмотров4.2K

Суть работы



Широкое применение нечетких систем для решения проблем автоматического управления, прогнозирования, принятия решений заставляет специалистов искать эффективные методы построения систем, для идентификации которых наряду с алгоритмами оптимизации, основанными на производных, применяются генетические алгоритмы, эволюционные стратегии и нейронные сети. Эволюционные стратегии совместно с эволюционным программированием и генетическим алгоритмом представляют три главных направления развития эволюционного моделирования. Несмотря на то, что каждый из методов возник независимо от других, они характеризуются рядом общих свойств. Для любого из них формируется исходная популяция, которая подвергается селекции и воздействию различных генетических операторов, что позволяет находить более хорошие решения. Эволюционная стратегия – это алгоритмы, созданные в качестве методов решения оптимизации задач и основанные на принципах природной эволюции. Целью работы является описание классического алгоритма эволюционно стратегии для идентификации нечеткой системы.
Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии13

Торговая стратегия для торговли коинтегрированными парами акций

Время на прочтение8 мин
Количество просмотров8.2K
Цель данной статьи — поделиться простейшей стратегией статистического арбитража, основанной на торговле коинтегрированными парами акций, которые были выявлены на Московской и Нью-Йоркской биржах.

Если мы возьмём пару коинтегрированных акций, то у нас есть возможность захеджироваться и построить рыночно-нейтральную стратегию, когда убытки по одной бумаге будут компенсироваться прибылями по другой. Как это выглядит на практике?
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии11

Анализ класса нестационарных процессов со стационарными приращениями на фондовых рынках

Время на прочтение6 мин
Количество просмотров19K
Цель данной статьи — поделиться результатами исследования по выявлению структуры в значениях цен акций, которые торгуются на Московской Бирже и на NYSE, методом их проверки на стационарность с помощью теста Дики-Фуллера.

Есть небольшой класс акций, который представляет собой нестационарный процесс со стационарными приращениями и распределение t-статистики которого ведёт себя довольно любопытным образом, а именно не стремится к стандартному нормальному распределению при увеличении количества наблюдений. Как такие акции выявлять?
Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии25

Akumuli — база данных временных рядов

Время на прочтение10 мин
Количество просмотров26K

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


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


Time-series in finance


“Мне не нужна TSDB, у меня уже есть Х”


Х может быть чем угодно, начиная с SQL базы данных и заканчивая плоскими файлами. На самом деле все это действительно можно использовать для хранения временных рядов, с одной оговоркой — у вас мало данных. Если вы делаете 10 000 вставок в свою SQL базу данных — все будет хорошо какое-то время, потом таблица вырастет в размерах настолько, что время выполнения операций вставки увеличится.

Читать дальше →
Всего голосов 76: ↑76 и ↓0+76
Комментарии84

Реализация простейшей стратегии инвестирования на базе API MOEX (Московской биржи)

Время на прочтение6 мин
Количество просмотров36K

Введение


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


Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии32

Метод формализованных моделей как альтернатива нейронным сетям

Время на прочтение7 мин
Количество просмотров6.7K

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

Читать дальше →
Всего голосов 20: ↑12 и ↓8+4
Комментарии8

Машинное обучение для прогнозирования тенниса: часть 1

Время на прочтение12 мин
Количество просмотров71K
Математическое моделирование тенниса набирает популярность на наших глазах. Каждый год появляются новые аналитические модели и сервисы, соревнующиеся друг с другом в точности прогнозирования исходов теннисных матчей. Это вызвано желанием заработать на стремительно растущем онлайн рынке спортивных ставок: нередки случаи, когда сумма ставок на отдельный матч в профессиональном теннисе достигает миллионов долларов.

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



Читать дальше →
Всего голосов 24: ↑20 и ↓4+16
Комментарии16

Машинное обучение для прогнозирования тенниса: часть 2

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



Читать дальше →
Всего голосов 17: ↑14 и ↓3+11
Комментарии14

Информация

В рейтинге
Не участвует
Откуда
Днепр, Днепропетровская обл., Украина
Зарегистрирован
Активность