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

Тема анализа данных и Data Science в наши дни развивается с поразительной скоростью. Для того, чтобы понимать актуальность своих методов и подходов, необходимо быть в курсе работ коллег, и именно на конференциях удается получить информацию о трендах современности. К сожалению, не все мероприятия можно посетить, поэтому статьи о прошедших конференциях представляют интерес для специалистов, не нашедших времени и возможности для личного присутствия. Мы рады представить вам перевод статьи Чип Хен (Chip Huyen) о конференции ICLR 2019, посвященной передовым веяниям и подходам в области Data Science.

8 лучших трендов International Conference on Learning Representations (ICLR) 2019 - 1

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

Сглупил ли Ричард Хендрикс, или линейный поиск против бинарного - 1

Думаю, на Хабре есть любители сериала «Кремниевая долина» (Silicon Valley). На этой неделе там впервые за все шесть сезонов крупно показали код — разумеется, сразу хочется обсудить его здесь.

Желая унизить главного героя Ричарда Хендрикса, его бывший начальник показывает на совещании фрагмент его старого кода. Там к уже отсортированным данным применён линейный поиск — так что задача будет выполнена, но выглядит это очень неэффективно.

Сам Ричард не спорит с тем, что код плохой. Однако среди зрителей сериала у его решения внезапно нашлись защитники, и теперь мне интересно, что об их позиции думает Хабр.

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

В этой статье я расскажу вам о DAG (Directed Acyclic Graph, направленный ациклический граф) и его применении в распределённых реестрах, и мы сравним его с блокчейном.

От блокчейна к DAG: избавляемся от посредников - 1

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

В МТИ искусственный интеллект учат распознавать эгоистичных водителей - 1

Команда исследователей во главе с сотрудниками Лаборатории информатики и искусственного интеллекта Массачусетского технологического института (CSAIL) работает над созданием искусственного интеллекта, который мог бы предсказывать поведение водителей-людей на дорогах. Для этого они используют инструменты социальной психологии.

Учёные обучали систему с помощью так называемой социальной ценностной ориентации (SVO). Этим термином исследователи обозначили степень, в которой кто-то «эгоистичен» или «просоциален» во время вождения. Система наблюдала за поведением водителей и оценивала их SVO для создания траектории движения для беспилотных авто.

Во время тестов система показала, что она может оценивать и предсказывать поведение водителей лучше на 25%, чем до обучения.
Читать полностью »

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

Команда Serokell с богатым опытом разработки крупных блокчейн проектов не могла остаться в стороне. Мы делегировали на конкурс пятерых сотрудников, а уже через две недели они заняли в нем первое место под (не)скромным рандомным ником Sexy Chameleon. В этой статье я расскажу о том, как им это удалось. Надеемся, за ближайшие десять минут вы как минимум прочитаете интересную историю, а как максимум найдете в ней что-то полезное, что сможете применить в своей работе.

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

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

Исследователи разработали алгоритм, который предсказывает эпилептические припадки с почти идеальной точностью - 1

Два исследователя из Университета Луизианы в Лафайетте разработали модель, основанную на искусственном интеллекте, которая может с точностью до 99,6% прогнозировать возникновение эпилептического припадка за час до наступления.

Алгоритм использует результаты электроэнцефалограммы (ЭЭГ) для прогноза. Сейчас учёные занялись разработкой устройства, на основе которого будет функционировать модель.
Читать полностью »

Добрый день. Эту статью я написал специально для студентов курса «Алгоритмы для разработчиков» в OTUS и сегодня хочу поделиться ею со всеми читателями нашего блога.

Шахматный конь стоит на шахматной доске и задумчиво смотрит в шахматную даль.
Сколько разных ходов он может сделать?

image

Хвала изобретателю шахмат, на доске 64 клетки.
Хвала архитектору компьютеров — у типа ulong тоже 64 бита.
Это же надо было случиться такому совпадению!
Напрашивается гениальная идея — хранить всю доску в одном целом числе! Для этого решения существует даже специальный термин — Bitboard — битовая доска.

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

image

Wall Street Journal провело расследование работы поиска Google. Журналисты заявили, что компания серьезно вмешивается в алгоритм формирования поисковой выдачи.

По словам собеседников издания, в 2018 году Google внесла в алгоритмы более 3200 изменений, в 2017 году — 2400, а в 2010 году — около 500. В самой корпорации это объясняют тем, что примерно 15% запросов представляют собой слова или комбинации, с которыми система ранее не сталкивалась, и поэтому разработчики вынуждены корректировать работу алгоритмов для релевантной выдачи.

WSJ утверждает, что, тем не менее, Google отдает предпочтение крупным компаниям, так как на этих площадках покупатель вероятнее что-то приобретет. В итоге на верхние строчки выдачи попадает Amazon. Расследователи заявили, что это происходит даже тогда, когда продукты уже вышли из продажи в магазине. «Неверно также полагать, что мы не пытаемся решить проблему с отображением вышедших из продажи товаров на высоких позициях в выдаче», — в ответ заявила представитель корпорации. Читать полностью »

image

Недавно я вернулся к анализу погрешностей чисел с плавающей запятой, чтобы усовершенствовать некоторые детали в следующей редакции книги Physically Based Rendering. Числа с плавающей запятой — интересная область вычислений, полная сюрпризов (хороших и плохих), а также хитрых трюков, позволяющих избавиться от неприятных неожиданностей.

В процессе работы я наткнулся на этот пост на StackOverflow, из которого узнал об изящном алгоритме точного вычисления $a times b-c times d$.

Но прежде чем приступать к алгоритму, нужно понять, что же такого хитрого в выражении $a times b-c times d$? Возьмём $a=33962.035$, $b=-30438.8$, $c=41563.4$ и $d=-24871.969$. (Это реальные значения, которые получились у меня во время запуска pbrt.) При 32-битных значениях float получаем: $a times b=-1.03376365 times 10^9$ и $c times d=-1.03376352 times 10^9$. Выполняем вычитание, и получаем $-128$. Но если выполнить вычисления с двойной точностью, а в конце преобразовать их во float, то получится $-75.1656$. Что произошло?

Проблема в том, что значение каждого произведения может сильно выйти за нижнюю границу $-1 times 10^9$, где расстояние между представимыми значениями с плавающей запятой очень велико — 64. То есть при округлении $a times b$ и $c times d$ по отдельности до ближайшего представимого float, они превращаются в числа, кратные 64. В свою очередь, их разность будет кратной 64, и не останется никакой надежды, что она станет к $-75.1656$ ближе, чем $-64$. В нашем случае результат оказался ещё дальше из-за того, как два произведения были округлены в $-1 times 10^9$. Мы напрямую столкнёмся со старым добрым катастрофическим сокращением1.
Читать полностью »

Нейронный машинные перевод (НМП, англ. Neural Machine Translation, NMT) развивается очень быстро. Сегодня, чтобы собрать свой переводчик, не нужно иметь два высших образования. Но чтобы обучить модель, нужен большой параллельный корпус (корпус, в котором предложению на исходном языке сопоставлен его перевод). На практике речь идет хотя бы об одном миллионе пар предложений. Есть даже отдельная большая область НМП, исследующая методы обучения языковых пар с малым количеством данных в электронном виде (англ. Low Resource NMT).

Мы собираем чувашско-русский корпус и параллельно смотрим, что можно сделать с имеющимся объемом данных. В этом примере использовали корпус из 90 000 пар предложений. Самый хороший результат на данный момент дал метод передачи знания (англ. Transfer Learning), о нем и пойдет речь в статье. Цель статьи — дать практический пример реализации, который легко можно было бы воспроизвести.Читать полностью »


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