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

В МТИ искусственный интеллект учат распознавать эгоистичных водителей - 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), о нем и пойдет речь в статье. Цель статьи — дать практический пример реализации, который легко можно было бы воспроизвести.Читать полностью »

Какой следующий член…? — Ищем формулу для n-го члена последовательности, производящие функции и Z-преобразование - 1Скачать файл с кодом и данные можно в оригинале поста в моем блоге

В языке Wolfram Language есть четыре совершенно потрясающие функции: FindSequenceFunction, RSolve, DifferenceRootReduce и FindFormula. В этой статье мы обсудим их возможности и поговорим о функциях, тесно с ними связанных — для поиска параметров линейной рекурсии FindLinearRecurrence (коэффициентов линейного рекуррентного уравнения), производящих функциях GeneratingFunction и Z-преобразовании ZTransform.

Первая функция — FindSequenceFunction — по последовательности чисел ищет выражение для её n-го члена не требуя вообще ничего более.

Hold @ FindSequenceFunction[{1, 1, 2, 3, 5, 8, 13}, n]

Какой следующий член…? — Ищем формулу для n-го члена последовательности, производящие функции и Z-преобразование - 2

FindSequenceFunction[
{-2, 4Sqrt[Pi],
-16, 16Sqrt[Pi],
-128/3, 32Sqrt[Pi],
-1024/15, 128Sqrt[Pi]/3,
-8192/105, 128Sqrt[Pi]/3},
n]

Какой следующий член…? — Ищем формулу для n-го члена последовательности, производящие функции и Z-преобразование - 3
Читать полностью »

imageФото: Jim/Flickr

Банк Goldman Sachs позволит семьям пользоваться одной кредитной картой Apple Card. Такое решение было принято после того, как учреждение обвинили в предоставлении разных кредитных условий мужчинам и женщинам — супружеским парам.

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

Баги C++20. Итоги встречи в городе Белфаст - 1На днях прошла встреча комитета по стандартизации языка программирования C++ в городе Белфасте. От представителей стран в комитет прилетело около 400 замечаний к C++20, с половиной из них успели расправиться.

Под катом вас ждут результаты обсуждений замечаний России (да-да, ВАШИХ замечаний к C++20), некоторые замечания других стран, ну и подходящие новинки C++23 (Executors!).

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


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