Обновить
271.12

Алгоритмы *

Все об алгоритмах

Сначала показывать
Порог рейтинга
Уровень сложности

Числа Муаммара. Как я измерял искусственный интеллект на стажировке в Яндексе

Время на прочтение10 мин
Охват и читатели36K
Лето 2015 года. Сессия успешно сдана. Нормальный человек, наверное, скажет: «Ура! Свобода! Целый день буду играть в футбол и слетаю на море в Турцию». Но только не настоящий исследователь с пытливым умом. Я решил, что в любом случае буду работать над каким-нибудь собственным проектом… Но время непродуктивно со свистом неслось вперед. И тут мне в голову пришла светлая мысль: а почему бы не пойти на стажировку в Яндекс? Наверняка у них есть куча интересных исследовательских задач, к тому же это бесценный опыт работы в огромной компании с множеством профессионалов в своих областях, у которых есть чему поучиться. Тем, как попасть на стажировку в Яндекс, чем там можно заниматься и что вас ждет потом, я и хочу сегодня поделиться.

Для начала пару слов о себе. Зовут меня Муаммар, 21 год от роду, на данный момент являюсь студентом пятого курса мехмата МГУ. А еще я выпускник ШАДа, ведущий семинаров по Natural Language Processing в ШАДе и младший разработчик в команде речевых технологий Яндекса. Какой-то супергениальностью не отличаюсь, но люблю и умею работать. Пожалуй, хватит себя расхваливать, поговорим о стажировке. Кому интересно — добро пожаловать под кат!
Читать дальше →

Конкурс по программированию на JS: Классификатор слов

Время на прочтение5 мин
Охват и читатели73K
Компания Hola объявляет начало весеннего конкурса по программированию! Призовой фонд увеличен:

  1. Первое место: 3000 USD.
  2. Второе место: 2000 USD.
  3. Третье место: 1000 USD.
  4. Возможно, мы решим отметить чьи-то чрезвычайно оригинальные решения двумя специальными призами в 400 USD.
  5. Если Вы отправите кому-то ссылку на этот конкурс, поставив наш адрес в CC, и этот человек займёт призовое место, Вы получите половину суммы приза (разумеется, не в ущерб награде победителя). За одного победителя такую награду может получить только один человек — тот, кто отправил ссылку первым.

Мы ищем талантливых программистов, поэтому авторы интересных решений будут приглашены на собеседования.

Опубликовано дополнение: Тестовая программа, часто задаваемые вопросы, типичные ошибки.
Опубликовано дополнение: О ходе тестирования.


Правила


На этот раз мы решили попробовать что-то новенькое: для разнообразия, этот конкурс — не на производительность кода.

Условия конкурса на английском языке размещены на GitHub. Ниже — перевод на русский язык.

Читать дальше →

Приглашаем на конференцию по искусственному интеллекту и большим данным AI&BigData Lab 4 июня

Время на прочтение3 мин
Охват и читатели4.2K


4 июня в Одессе, наша команда FlyElephant совместно с GeeksLab будет проводить третью ежегодную техническую конференцию по искусственному интеллекту и большим данным — AI&BigData Lab.

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

Программа конференции AI&BigData Lab уже частично сформирована. Среди принятых докладов можно отметить:
Читать дальше →

Борьба с мельницами — 1: интерполяционные сплайны

Время на прочтение8 мин
Охват и читатели12K
В данной статье лирический герой бросает вызов оптимальной реализации классического полиномиального интерполятора Лагранжа (Фарроу), в процессе битвы случайно открывает и доказывает тривиальное никому не нужное математгическое заклинание, с помощью которого пытается потеснить противника, но по результатам всех раундов боя решением судей фиксируется ничья.

— Где вы видите великанов? — спросил Санчо Панса.
— Да вон они, с громадными руками, — отвечал его господин. — У некоторых из них длина рук достигает почти двух миль.
— Помилуйте, сеньор, — возразил Санчо, — то, что там виднеется, вовсе не великаны, а ветряные мельницы; то же, что вы принимаете за их руки, — это крылья: они кружатся от ветра и приводят в движение мельничные жернова.
— Сейчас видно неопытного искателя приключений, — заметил Дон Кихот, — это великаны. И если ты боишься, то отъезжай в сторону и помолись, а я тем временем вступлю с ними в жестокий и неравный бой…

Читать дальше →

Метод Монте-Карло для поиска в дереве

Время на прочтение4 мин
Охват и читатели39K


Метод Монте-Карло это алгоритм принятия решений, часто используемый в играх в качестве основы искусственного интеллекта. Сильное влияние он оказал на программы для игры в Го, хотя находит свое применение и в других играх, как настольных, так и обычных компьютерных (например Total War: Rome II). Так же, стоит отметить, что метод Монте-Карло используется в нашумевшей программе AlphaGo, победившей го-профессионала 9-го дана Ли Седоля в серии из 5 игр.

В данной статье хотелось бы рассказать про версию алгоритма Монте-Карло под названием Upper Confidence bound applied to Trees (UCT). Именно после публикации этого алгоритма в 2006-м году, программы для игры в Го сильно усилили свои позиции и достигли значительных успехов в игре против человека.
Читать дальше →

Математическая модель восприятия (Часть 2)

Время на прочтение16 мин
Охват и читатели12K
Часть 1
Часть 3

Предисловие


Одним ключом можно открыть только одну дверь. К. Шеннон


Последнее время ознаменовано громким триумфом промышленного внедрения искусственных нейронных сетей. Узнать ли слово или лицо, подобрать мелодию под настроение — задачи, которые с уверенностью можно считать уже решенными. СМИ пестрят то и дело появляющимися заголовками о создании искусственного интеллекта, а фантасты рассуждают о том, может ли в таких сетях самопроизвольно зародится мысль. Но действительно ли успех так грандиозен, ведь различать цифры — не значит иметь абстракцию числа, а искусно составлять предложения не означает уметь определять их смысл.
Давайте попробуем посмотреть на эти проблемы немного с другого ракурса. В природе есть один хорошо обоснованный ею процесс — эволюция: все, что не может приспособится, обычно вымирает. Именно задача приспособления на определенном этапе стала причиной развития у живых существ способности восприятия свойств внешнего мира, а необходимость оперативно отвечать на изменения этих свойств поощрило у животных развитие нервной системы. Не стоит ли поэтому попытаться представить какие именно задачи и в какой усложняющейся последовательности пришлось решать развивающемуся интеллекту животных, ведь возможно тогда, решив их, мы повторим путь эволюции и наконец приблизимся к пониманию механизмов мышления. Вторая кажущаяся разумной идея — прежде чем приступать к конструированию машин, способных составлять представление о чем-либо (факте присутствия на картинке зеркальносимметричного фрагмента, или что у исследуемого лабиринта есть путь к выходу) попытаться:
1) назвать это «что-либо» в терминах восприятия машины;
2) охарактеризовать класс всех тех понятий, которые могут быть представлены машиной данной конструкции.
Однако назвать чем же являются такие базовые понятия как «время» и «пространство», не в рамках какой-либо формальной теории, а по своей природе — может оказаться неразрешимой проблемой. Здесь спасает то, что во многих случаях процесс восприятия можно формально заменить (мульти) символьной последовательностью, изображающей состояния рецепторов через одинаковые достаточно малые промежутки времени. После такой подмены оказывается уже не важной истинная природа понятий, подлежащих восприятию — важно лишь то, чем они являются в терминах упомянутой символьной последовательности. С этой новой позиции интересно рассмотреть такие понятия, как «время», «место», «число», «память», «будущее». В настоящей части моей работы я попытался найти подход к определению понятия симметрии и понятия формы, а так же показать как фактически они реализуются на учебном примере «зрительного зонда». Если Вы не читали первую часть статьи, рекомендую Вам это сделать, поскольку части не независимы и дальнейшее содержание может оказаться непонятным

Внутреннее определение симметрий


Математика знает много примеров, когда те или иные свойства не могут быть установлены «изнутри». Пожалуй, самый известный из них– это утверждение о невозможности лишь средствами арифметики установить её непротиворечивость. Другой же говорит о том, что ни на одном языке нельзя так охарактеризовать, какие из его фраз являются истинами, чтобы ничего не упустить и не прийти
Читать дальше →

Можно ли создать алгоритм для торговли на бирже с помощью анализа тональности сообщений в интернете

Время на прочтение4 мин
Охват и читатели12K


В нашем блоге на Хабре мы много пишем об алгоритмической торговле и создании алгоритмов для работы на финансовых рынках. Одним из наиболее преспективных и популряных направлений деятельности исследований является прогнозирование ситуации на фондовом рынке на основе различной информации. Для этого, в том числе, применяются и данные о тональности сообщений, опубликованных в интернете (sentiment analysis).

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

Антиспам в Mail.Ru: как машине распознать взломщика по его поведению

Время на прочтение9 мин
Охват и читатели17K

Bat's post delivery by sashulka

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

Мы постоянно работаем над системами, которые обеспечивают аккаунтам несколько ступеней защиты и значительно усложняют жизнь злоумышленникам. Но есть одно слабое звено. Это пароль, который можно угадать или, например, украсть на стороннем сервисе. Подробнее о способах кражи паролей и о безопасности почты можно прочесть в посте на эту тему.

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

Обратная польская нотация: как же приготовить хот-дог?

Время на прочтение4 мин
Охват и читатели54K
Будучи дилетантом в области разработки приложений, я испытал сложности с пониманием алгоритма работы обратной польской нотации, а если быть точнее — алгоритма подготовки стека. Делу так же мало помогли статьи в «интернетах».

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

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

Однако до конца я так и не понял тот важный вопрос: как же построить стек?
Читать дальше →

В поисках пути — царь Салтан осваивает лапласиан

Время на прочтение11 мин
Охват и читатели22K
… Молвит он: «Коль жив я буду, чудный остров навещу, у Гвидона погощу».



В царстве Салтана не без изьяна. Принят закон — не лезть за кордон, да тут князь Гвидон.
Опять прислал поклон, да приглашение на угощение,- надо принимать политическое решение.

Дворцовые интриганки, похожие на поганки, встали стеной — «мол, скажи, что больной». Но прослышал Салтан про Гвидонов кальян, про изумрудную белку, да богатырскую стрелку. А главная новинка — молодая жинка. В общем, ехать решено — «Я не был за морем давно».

Было однако одна проблема,- нужен был маршрут или схема. Поскольку никто (кроме Врангеля барона) не знал, как добраться до острова Гвидона. Корабельщики дали карту,- пришлось сесть за парту. Над картой склонился Салтан, — где тут остров Буян? Задача была как будто знакома — проложить путь к острову Гвидона. Но как найти дорогу, когда путей слишком много?

До ночи решал Салтан задачку, в итоге свалился в спячку. Снились ему матрицы и точки, да на болоте кочки. На кочку прыгнул Нео с острова Борнео.
— Если хочешь добраться ко сроку — плыви по максимальному потоку.
— Чего? — Салтан почти проснулся. Но Нео уже в зайца обернулся.
Плывем дальше

Дайджест Университета ИТМО: #1 Oбразование и наука

Время на прочтение5 мин
Охват и читатели11K


Сегодня мы решили собрать в одном дайджесте полезные ссылки по темам, связанным с научной и образовательной деятельностью Университета ИТМО. В подборку вошли научные журналы, интересные статьи о научных достижениях и открытые учебные курсы.
Читать дальше →

Liscript — реализуем TCO

Время на прочтение10 мин
Охват и читатели5K


В своей прошлой статье Пишем Lisp-интерпретатор на Java я кратко и тезисно рассказал про то, что написал пару интерпретаторов Lisp-подобного языка, который назвал Liscript — на Haskell и на Java. Ничего особо уникального и выдающегося в этом нет, но для меня это было приятным, интересным и познавательным времяпровождением. Среди прочих особенностей, я упомянул про реализацию TCO (tail call optimization) — оптимизацию интерпретатором хвостовых вызовов функций. Этот вопрос вызвал интерес отдельных участников сообщества, и поступило предложение детальнее раскрыть его в отдельной статье, что я и попытался сделать. Интересующихся прошу под кат.
Читать дальше →

Математическая модель восприятия (Часть 1)

Время на прочтение10 мин
Охват и читатели26K
Часть 2
Часть 3

Введение (Языковая природа абстрактных понятий)


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

Ближайшие события

На что смотрит свёрточная нейросеть, когда видит наготу

Время на прочтение7 мин
Охват и читатели72K


На прошлой неделе в компании Clarifai мы формально анонсировали нашу модель распознавания непристойного контента (NSFW, Not Safe for Work).

Предупреждение и отказ от ответственности. Эта статья содержит изображения обнажённых тел в научных целях. Мы просим не читать дальше тех, кому не исполнилось 18 лет или кого оскорбляет нагота.



Автоматическое выявление обнажённых фотографий было центральной проблемой компьютерного зрения на протяжении более двух десятилетий, и из-за своей богатой истории и чётко поставленной задачи она стала отличным примером того, как развивалась технология. Я использую проблему детектирования непристойности для пояснения, как обучение современных свёрточных сетей отличается от исследований, проводившихся в прошлом.
Читать дальше →

Две международные конференции в Санкт-Петербурге в июне: Experimental Algorithms и Computer Science in Russia

Время на прочтение1 мин
Охват и читатели2.3K
Летом в Математическом институте Стеклова (ПОМИ) пройдут две международные конференции: 15th International Symposium on Experimental Algorithms (SEA 2016, 5–8 июня) и 11th International Computer Science Symposium in Russia (CSR 2016, 9–13 июня). Программы конференций уже доступны на страницах конференций. Будет куча интересных докладов. Ниже приведён список приглашённых докладов. Для местных участников установлен минимальный орг. взнос. Если вы хотите принять участие, но оплатить орг. взнос у вас возможности нет, напишите мне — мы что-нибудь придумаем.
Читать дальше →

RUVDS предоставит VDS сервера участникам ежегодного биржевого конкурса «Алгоритмус»

Время на прочтение2 мин
Охват и читатели1.3K


Конкурс «Алгоритмус 2016» уже проводится в шестой раз. Он проводится компанией МФД-ИнфоЦентр при поддержке Московской Биржи на платформе автоследования EasyMANi. Трейдеры и управляющие активами соревнуются в доходности на рынке акций и фьючерсов Московской Биржи.

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

При этом участие высокочастотных трейдеров в турнире исключается, что уравнивает шансы участников друг перед другом. Соревноваться в конкурсе могут как частные трейдеры (управляющие активами), так и профессиональные участники фондового рынка.

RUVDS присоединился к партнерам конкурса «Алгоритмус». Мы предоставим участникам турнира возможность воспользоваться облачной инфраструктурой по уникальным ценам, получив скидку до 30%* на виртуальный VPS сервер на Windows независимо от конфигурации.
Читать дальше →

Предсказание оттока игроков из World of Tanks от Yandex Data Factory. Лекция для Малого ШАДа

Время на прочтение15 мин
Охват и читатели52K
Важнейшая экспертиза Яндекса — машинное обучение. Она выросла из потребностей поиска, для ранжирования в котором нами была разработана известная сейчас многим технология Матрикснет. В 2014 году Яндекс стал использовать свои знания в области ML вне собственных сервисов — появилась Yandex Data Factory. Это международное направление, которое решает сложные математические задачи для других компаний.

Один из его проектов — прогноз оттока игроков World of Tanks. Илья Трофимов рассказал слушателям Малого ШАДа не только о проекте с Wargaming, но и о том, что вообще такое машинное обучение и в каких задачах оно может помогать бизнесу. Слушатели — старшеклассники, интересующиеся математикой и компьютерными науками.



Сам Илья в 2007 году окончил физический факультет МГУ по специализации «теоретическая физика». В 2011 — Школу анализа данных по специальности «анализ данных». В Яндексе занимался применением машинного обучения для оптимизации показов рекламы, сейчас решает задачи по анализу больших объёмов данных в Yandex Data Factory. Читает лекции в ШАДе по теме «Машинное обучение на больших данных».

Подробная расшифровка и слайды

Объяснение эксперимента о ветвлениях, или философские изыскания на тему бенчмарков в вакууме и в… реальности

Время на прочтение11 мин
Охват и читатели7.2K
Надеюсь, кто хотел, ознакомился с моим пробным экспериментом на Хабре в этой статье. Теперь я считаю, что будет правильным огласить его результаты и даже дать более детальное объяснения причин, по которым вообще подобные эксперименты проводятся. Пост будет наполовину философским, поскольку сейчас в компьютерном мире всё настолько сложно, что без философского осмысления принять какие-то осмысленные решения просто невозможно. Я постараюсь вообще выразить своё мнение о сферических измерениях в вакууме, поэтому будет много букв. В статье есть опрос, проводимый до 1-го мая 2016. Под катом целиком ИМХО.

Читать дальше →

Могут ли все финансовые модели быть ошибочными: 7 источников риска возникновения убытков

Время на прочтение9 мин
Охват и читатели17K


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

Создатель сайта Turing Finance и аналитик хедж-фонда NMRQL Стюарт Рид опубликовал интересный материал на тему анализа возможных рисков использования финансовых моделей. В материале рассматриваются несколько факторов, влияющих на возникновения рисков — то есть вероятности финансовых потерь при использовании модели. Мы представляем вашему вниманию главные моменты этой работы.
Читать дальше →

Сортировка слиянием по-простому

Время на прочтение4 мин
Охват и читатели227K
Кто-то сказал однажды, что
...any scientist who couldn't explain to an eight-year-old what he was doing was a charlatan.

Оказывается, это был Курт Воннегут.

Я не стремился доказать это высказывание. Я стремился опровергнуть свою тупость.


Допустим у нас есть два массива чисел, отсортированных по возрастанию.

int[] a1 = new int[] {21, 23, 24, 40, 75, 76, 78, 77, 900, 2100, 2200, 2300, 2400, 2500};
int[] a2 = new int[] {10, 11, 41, 50, 65, 86, 98, 101, 190, 1100, 1200, 3000, 5000};

Необходимо слить их в один упорядоченный массив.

int[] a3 = new int[a1.length + a2.length];

Это задача для сортировки слиянием.

Что это такое? В интернете есть ответ, есть описание алгоритма, но я его не понял с одного присеста и решил разобраться сам. Для этого необходимо понять базовый принцип алгоритма, чтобы можно было по памяти воссоздать алгоритм применительно к своей задаче.
Читать дальше →

Вклад авторов