Pull to refresh
18
Karma
0
Rating
Пожарский Александр @alex4321

User

Рубрика «Читаем статьи за вас». Сентябрь 2017

Open Data Science corporate blog Algorithms *Image processing *Mathematics *Machine learning *


Привет, Хабр! Мы продолжаем нашу традицию и снова выпускаем ежемесячный набор рецензий на научные статьи от членов сообщества Open Data Science из канала #article_essense. Хотите получать их раньше всех — вступайте в сообщество ODS!


Статьи выбираются либо из личного интереса, либо из-за близости к проходящим сейчас соревнованиям. Напоминаем, что описания статей даются без изменений и именно в том виде, в котором авторы запостили их в канал #article_essence. Если вы хотите предложить свою статью или у вас есть какие-то пожелания — просто напишите в комментариях и мы постараемся всё учесть в дальнейшем.

Читать дальше →
Total votes 71: ↑66 and ↓5 +61
Views 19K
Comments 14

Мониторинг выполнения задач в IPython Notebook

Python *
Хотел бы поделиться простым, но полезным инструментом. Когда много работаешь с данными, часто возникают примитивные, но долгие операции, например: «скачать 10 000 урлов», «прочитать файл на 2Гб, и что-то сделать с каждой строчкой», «распарсить 10 000 html-файлов и достать заголовки». Долго смотреть в зависший терминал тревожно, поэтому долгое время я использовал следующий гениальный код:
def log_progress(sequence, every=10):
    for index, item in enumerate(sequence):
        if index % every == 0:
            print >>sys.stderr, index,
        yield item


Эта функция прекрасна, больше года она кочевала у меня из задачи в задачу. Но недавно я заметил в стандартной поставке Jupyter виджет IntProgress и понял, что пора что-то менять:

Читать дальше →
Total votes 42: ↑39 and ↓3 +36
Views 35K
Comments 11

Библиотека быстрого поиска путей на графе

Website development *JavaScript *Programming *Game development *Algorithms *

Привет, Друзья!


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


Пример использования на огромном графе:



Поиграться с демо можно здесь


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


Описание разных вариантов A* уже не раз встречалось на хабре. Мне очень понравилось вот это, потому повторяться в этой статье я не буду. Под катом расскажу подробнее почему библиотека работает быстро и о том, как было сделано демо.

Читать дальше →
Total votes 114: ↑112 and ↓2 +110
Views 33K
Comments 53

Научи бота! — разметка эмоций и семантики русского языка

Self Promo
Со всех сторон на нас сыпятся перспективы светлого роботического будущего. Или не очень светлого, в духе Матрицы и Терминатора. В самом деле — машины уже уверено справляются с переводами, не хуже и намного быстрее людей распознают лица и предметы окружающего мира, учатся понимать и синтезировать речь. Круто? Не то слово!

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

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

Как мы планируем прокачать сознание машин, научить их эмоциям, чувствам и оценочным суждениям, а также где вы можете свободно скачать размеченные
данные — читайте в статье.
Читать дальше →
Total votes 17: ↑16 and ↓1 +15
Views 8K
Comments 13

Открытый курс машинного обучения. Тема 10. Градиентный бустинг

Open Data Science corporate blog Data Mining *Algorithms *Mathematics *Machine learning *

Всем привет! Настало время пополнить наш с вами алгоритмический арсенал.


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


UPD 01.2022: С февраля 2022 г. ML-курс ODS на русском возрождается под руководством Петра Ермакова couatl. Для русскоязычной аудитории это предпочтительный вариант (c этими статьями на Хабре – в подкрепление), англоговорящим рекомендуется mlcourse.ai в режиме самостоятельного прохождения.


Видеозапись лекции по мотивам этой статьи в рамках второго запуска открытого курса (сентябрь-ноябрь 2017).

Читать дальше →
Total votes 64: ↑63 and ↓1 +62
Views 251K
Comments 17

Вебинар: Введение в Data Science

FlyElephant corporate blog High performance *Data Mining *Big Data *Machine learning *


Команда FlyElephant приглашает всех 21 декабря в 18.00 (EET) на вебинар «Введение в Data Science». В его рамках мы рассмотрим на примерах, что такое Data Science, Data Mining, Machine Learning и Deep Learning, кто такой data scientist и какими инструментами он пользуется для сбора, хранения, обработки и визуализации данных. Поговорим о платформе FlyElephant и чем она может быть полезна для работы data scientist’а.

Зарегистрироваться на вебинар можно здесь.
Total votes 19: ↑16 and ↓3 +13
Views 6.1K
Comments 3

Синтаксический анализ текстов с помощью SyntaxNet

PHP *Python *Programming *Algorithms *Machine learning *
Для одной из задач мне понадобился синтаксический анализатор русскоязычных текстов. Что это такое. Например, у нас есть предложение «Мама мыла раму». Нам нужно получить связи слов в этом предложении в виде дерева:

image

Из этого дерева понятно, что связаны слова «мама» и «мыла», а также «мыла» и «раму», а слова «мама» и «раму» напрямую не связаны.

Статья будет полезна тем, кому понадобился синтаксический анализатор, но не понятно, с чего начать.

Я занимался этой темой несколько месяцев назад, и на тот момент нашел не много информации по поводу того, где бы взять готовый и желательно свободный анализатор.
Читать дальше →
Total votes 29: ↑29 and ↓0 +29
Views 36K
Comments 22

Алгоритм Левенберга — Марквардта для нелинейного метода наименьших квадратов и его реализация на Python

Data Mining *Algorithms *Mathematics *Machine learning *
Sandbox



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



Для устранения недостатков, как это часто бывает, нужно глубже погрузиться в предметную область и добавить ограничения на входные данные. В частности: МНС и МН имеют дело с произвольными функциями. В статистике и машинном обучении часто приходится иметь дело с методом наименьших квадратов (МНК). Этот метод минимизирует сумму квадрата ошибок, т.е. целевая функция представляется в виде



\frac{1}{2}\sum \limits_{i=1}^{N}(y_i'-y_i)^2 = \frac{1}{2}\sum \limits_{i=1}^{N}r_i^2 \tag{1}


Алгоритм Левенберга — Марквардта является нелинейным методом наименьших квадратов. Статья содержит:


  • объяснение алгоритма
  • объяснение методов: наискорейшего спуска, Ньтона, Гаусса-Ньютона
  • приведена реализация на Python с исходниками на github
  • сравнение методов

Читать дальше →
Total votes 80: ↑78 and ↓2 +76
Views 59K
Comments 28

Word2Vec: классификация текстовых документов

Search engines *Semantics *Data Mining *
Известная утилита дистрибутивной семантики Word2Vec демонстрирует удивительные результаты и стабильно обеспечивает использующих её специалистов призовыми местами на конкурсах машинной лингвистики. Преимущество утилиты, как впрочем, и её аналогов – Glove и AdaGram, состоит в дешевизне процесса обучения и подготовки обучающих текстов. Но есть и недостатки – представление слов в виде векторов хорошо работает на словах, удовлетворительно на словосочетаниях, так-себе на фразах и вообще никак – на длинных текстах.

В данной статье предлагается к обсуждению подход, позволяющий представить текст любой длины в виде вектора, позволяющий проводить с текстами операции сравнения (вычисления дистанции), сложения и вычитания.
Читать дальше →
Total votes 8: ↑5 and ↓3 +2
Views 26K
Comments 4

Алгоритмы чат бота на базе рекуррентной нейронной сети и расширения языка AIML

Algorithms *Machine learning *
Recovery mode
На сегодняшний день остается актуальным создание программ имитирующих общение человека. Простейшей моделью общения является база вопросов и ответов к ним [1]. В данном случае возникает проблема описания базы знаний и реализация программы интерпретатора. Язык разметки базы знаний может включать в себя паттерны вопросов и соответствующие им шаблоны ответов, также предысторию диалогов к ним и название соответствующей темы общения.

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

Альтернативным вариантом создания программы виртуального собеседника является использование алгоритмов машинного обучения на базе диалогов общения, именно искусственные нейронные сети. Подходящей моделью ИНС является рекуррентная нейронная сеть, способная хранить, обобщать и прогнозировать различные последовательности. В данной работе в качестве элементов последовательности предлагается использовать индексы соответствующие словам в базе знаний вопросов и ответов.
Читать дальше →
Total votes 9: ↑8 and ↓1 +7
Views 34K
Comments 6

Information

Rating
Does not participate
Date of birth
Registered
Activity