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

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

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

Интересные алгоритмы кластеризации, часть вторая: DBSCAN

Время на прочтение10 мин
Количество просмотров102K
Часть первая — Affinity Propagation
Часть вторая — DBSCAN
Часть третья — кластеризация временных рядов
Часть четвёртая — Self-Organizing Maps (SOM)
Часть пятая — Growing Neural Gas (GNG)

Углубимся ещё немного в малохоженные дебри Data Science. Сегодня в очереди на препарацию алгоритм кластеризации DBSCAN. Прошу под кат людей, которые сталкивались или собираются столкнуться с кластеризацией данных, в которых встречаются сгустки произвольной формы — сегодня ваш арсенал пополнится отличным инструментом.


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

Нейробайесовский подход к задачам машинного обучения. Лекция Дмитрия Ветрова в Яндексе

Время на прочтение15 мин
Количество просмотров34K
Этим постом мы завершаем серию лекций с Data Fest. Одним из центральных событий конференции стал доклад Дмитрия Ветрова — профессора факультета компьютерных наук НИУ ВШЭ. Дмитрий входит в число самых известных в России специалистов по машинному обучению и, начиная с прошлого года, работает в Яндексе ведущим исследователем. В докладе он рассказывает об основах байесовского подхода и объясняет, какие преимущества дает этот подход при использовании нейронных сетей.


Под катом — расшифровка и часть слайдов.

Интересные алгоритмы кластеризации, часть первая: Affinity propagation

Время на прочтение11 мин
Количество просмотров53K
Часть первая — Affinity Propagation
Часть вторая — DBSCAN
Часть третья — кластеризация временных рядов
Часть четвёртая — Self-Organizing Maps (SOM)
Часть пятая — Growing Neural Gas (GNG)

Если вы спросите начинающего аналитика данных, какие он знает методы классификации, вам наверняка перечислят довольно приличный список: статистика, деревья, SVM, нейронные сети… Но если спросить про методы кластеризации, в ответ вы скорее всего получите уверенное «k-means же!» Именно этот золотой молоток рассматривают на всех курсах машинного обучения. Часто дело даже не доходит до его модификаций (k-medians) или связно-графовых методов.

Не то чтобы k-means так уж плох, но его результат почти всегда дёшев и сердит. Есть более совершенные способы кластеризации, но не все знают, какой когда следует применять, и очень немногие понимают, как они работают. Я бы хотел приоткрыть завесу тайны над некоторыми алгоритмами. Начнём с Affinity propagation.

image

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

Методы оптимизации нейронных сетей

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

В подавляющем большинстве источников информации о нейронных сетях под «а теперь давайте обучим нашу сеть» понимается «скормим целевую функцию оптимизатору» лишь с минимальной настройкой скорости обучения. Иногда говорится, что обновлять веса сети можно не только стохастическим градиентным спуском, но безо всякого объяснения, чем же примечательны другие алгоритмы и что означают загадочные \inline \beta и \inline \gamma в их параметрах. Даже преподаватели на курсах машинного обучения зачастую не заостряют на этом внимание. Я бы хотел исправить недостаток информации в рунете о различных оптимизаторах, которые могут встретиться вам в современных пакетах машинного обучения. Надеюсь, моя статья будет полезна людям, которые хотят углубить своё понимание машинного обучения или даже изобрести что-то своё.


image


Под катом много картинок, в том числе анимированных gif.

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

Hello, TensorFlow. Библиотека машинного обучения от Google

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

tensorflow


Проект TensorFlow масштабнее, чем вам может показаться. Тот факт, что это библиотека для глубинного обучения, и его связь с Гуглом помогли проекту TensorFlow привлечь много внимания. Но если забыть про ажиотаж, некоторые его уникальные детали заслуживают более глубокого изучения:


  • Основная библиотека подходит для широкого семейства техник машинного обучения, а не только для глубинного обучения.
  • Линейная алгебра и другие внутренности хорошо видны снаружи.
  • В дополнение к основной функциональности машинного обучения, TensorFlow также включает собственную систему логирования, собственный интерактивный визуализатор логов и даже мощную архитектуру по доставке данных.
  • Модель исполнения TensorFlow отличается от scikit-learn языка Python и от большинства инструментов в R.

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


Как работает TensorFlow? Давайте попробуем разобраться, посмотреть и понять, как работает каждая часть. Мы изучим граф движения данных, который определяет вычисления, через которые предстоит пройти вашим данным, поймем, как тренировать модели градиентным спуском с помощью TensorFlow, и как TensorBoard визуализирует работу с TensorFlow. Наши примеры не помогут решать настоящие проблемы машинного обучения промышленного уровня, но они помогут понять компоненты, которые лежат в основе всего, что создано на TensorFlow, в том числе того, что вы напишите в будущем!

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

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

Время на прочтение4 мин
Количество просмотров39K
Для одной из задач мне понадобился синтаксический анализатор русскоязычных текстов. Что это такое. Например, у нас есть предложение «Мама мыла раму». Нам нужно получить связи слов в этом предложении в виде дерева:

image

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

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

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

Глубокое обучение для новичков: тонкая настройка нейронной сети

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

Введение


Представляем третью (и последнюю) статью в серии, задуманной, чтобы помочь быстро разобраться в технологии глубокого обучения; мы будем двигаться от базовых принципов к нетривиальным особенностям с целью получить достойную производительность на двух наборах данных: MNIST (классификация рукописных цифр) и CIFAR-10 (классификация небольших изображений по десяти классам: самолет, автомобиль, птица, кошка, олень, собака, лягушка, лошадь, корабль и грузовик).
Читать дальше →

Тензорные разложения и их применения. Лекция в Яндексе

Время на прочтение17 мин
Количество просмотров37K
Предыдущая лекция с Data Fest была посвящена алгоритмам, необходимым для построения нового вида поиска. Сегодняшний доклад тоже в некотором смысле про разные алгоритмы, а точнее про математику, лежащую в основе множества из них. О матричных разложениях зрителям рассказал доктор наук и руководитель группы вычислительных методов «Сколтеха» Иван Оселедец.


Под катом — расшифровка и большинство слайдов.

[ В закладки ] Зоопарк архитектур нейронных сетей. Часть 1

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


Это первая часть, вот вторая.
За всеми архитектурами нейронных сетей, которые то и дело возникают последнее время, уследить непросто. Даже понимание всех аббревиатур, которыми бросаются профессионалы, поначалу может показаться невыполнимой задачей.

Поэтому я решил составить шпаргалку по таким архитектурам. Большинство из них — нейронные сети, но некоторые — звери иной породы. Хотя все эти архитектуры подаются как новейшие и уникальные, когда я изобразил их структуру, внутренние связи стали намного понятнее.
Читать дальше →

Deep Learning: Сравнение фреймворков для символьного глубокого обучения

Время на прочтение5 мин
Количество просмотров29K
Представляем вам перевод серии статей посвященных глубокому обучению. В первой части описан выбор фреймворка с отрытым кодом для символьного глубокого обучения, между MXNET, TensorFlow, Theano. Автор подробно сравнивает преимущества и недостатки каждого из них. В следующих частях вы узнаете о тонкой настройке глубоких сверточных сетей, а также о сочетании глубокой сверточной нейронной сети с рекуррентной нейронной сетью.


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

«Правда, чистая правда и статистика» или «15 распределений вероятности на все случаи жизни»

Время на прочтение15 мин
Количество просмотров262K
Статистика приходит к нам на помощь при решении многих задач, например: когда нет возможности построить детерминированную модель, когда слишком много факторов или когда нам необходимо оценить правдоподобие построенной модели с учётом имеющихся данных. Отношение к статистике неоднозначное. Есть мнение, что существует три вида лжи: ложь, наглая ложь и статистика. С другой стороны, многие «пользователи» статистики слишком ей верят, не понимая до конца, как она работает: применяя, например, тест Стьюдента к любым данным без проверки их нормальности. Такая небрежность способна порождать серьёзные ошибки и превращать «поклонников» теста Стьюдента в ненавистников статистики. Попробуем поставить точки над i и разобраться, какие модели случайных величин должны использоваться для описания тех или иных явлений и какая между ними существует генетическая связь.
Читать дальше →

Нейромедиаторы, часть первая: дофамин, норадреналин, серотонин

Время на прочтение7 мин
Количество просмотров306K
Нейромедиаторы — это праздник, который всегда с тобой. Мы постоянно слышим о том, что именно они дарят чувства радости и удовольствия, но мало знаем о том, как они работают. В первой части небольшого образовательного курса «Атлас» рассказывает о трех самых известных нейромедиаторах, без которых наша жизнь была бы просто отвратительной.



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

Кластеризация с пакетом ClusterR, часть 1

Время на прочтение8 мин
Количество просмотров14K
Эта статья посвящена кластеризации, а точнее, моему недавно добавленному в CRAN пакету ClusterR. Детали и примеры ниже в большинстве своем основаны на пакете Vignette.

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

Наиболее известные примеры алгоритмов кластеризации — кластеризация на основе связности (иерархическая кластеризация), кластеризация на основе центров (метод k-средних, метод k-медоидов), кластеризация на основе распределений (GMM — Gaussian mixture models — Гауссова смесь распределений) и кластеризация на основе плотности (DBSCAN — Density-based spatial clustering of applications with noise — пространственная кластеризация приложений с шумом на основе плотности, OPTICS — Ordering points to identify the clustering structure — упорядочивание точек для определения структуры кластеризации, и др.).
Читать дальше →

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

Время на прочтение10 мин
Количество просмотров8.8K
Лог-линейные модели и их представления в виде марковских сетей позволяют показать структуру взаимосвязей между случайными величинами. Однако полученная визуализация может оказаться трудна для восприятия из-за большого числа равнозначных ребер в графе такой модели. При работе с порядковыми и бинарными переменными гауссовы копулы (Gaussian copula graphical models, сокр. GCGM) дают возможность повысить наглядность и упростить интерпретацию модели. В статье приведен краткий обзор теории и построен пример GCGM для European Social Survey данных.


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

Метрики качества ранжирования

Время на прочтение7 мин
Количество просмотров117K
В процессе подготовки задачи для вступительного испытания на летнюю школу GoTo, мы обнаружили, что на русском языке практически отсутствует качественное описание основных метрик ранжирования (задача касалась частного случая задачи ранжирования — построения рекомендательного алгоритма). Мы в E-Contenta активно используем различные метрики ранжирования, поэтому решили исправить это недоразуменее, написав эту статью.

Метрики качества ранжирования


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

Технологии фондового рынка: 10 заблуждений о нейронных сетях

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

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

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

Лучшие пакеты для работы с данными в R, часть 1

Время на прочтение6 мин
Количество просмотров10K
Есть два отличных пакета для работы с данными в R — dplyr и data.table. У каждого пакета свои сильные стороны. dplyr элегантнее и похож на естественный язык, в то время как data.table лаконичный, с его помощью многое можно сделать всего в одну строку. Более того, в некоторых случаях data.table быстрее (сравнительный анализ доступен здесь), и это может определить выбор, если есть ограничения по памяти или производительности. Сравнение dplyr и data.table можно также почитать на Stack Overflow и Quora.

Здесь можно найти руководство и краткое описание data.table, а здесь — для dplyr. Также можно почитать обучающие материалы по dplyr на DataScience+.
Читать дальше →

R в Microsoft Azure для победы на хакатоне. Инструкция по применению

Время на прочтение9 мин
Количество просмотров7.3K
Стандартный план любого хакатона
Microsoft Azure Machine Learning Hackathon
R, один из популярнейших языков программирования среди data scientist'ов, получает все большую и большую поддержку как среди opensource-сообщества, так и среди частных компаний, которые традиционно являлись разработчиками проприетарных продуктов. Среди таких компаний – Microsoft, чья интенсивно увеличивающая поддержка языка R в своих продуктах/сервисах, привлекла к себе и мое внимание.

Одним из «локомотивов» интеграции R с продуктами Майкрософт является облачная платформа Microsoft Azure. Кроме того, появился отличный повод повнимательнее взглянуть на связку R + Azure – это проходящий в эти выходные (21-22 мая) хакатон по машинному обучению, организованный Microsoft.

Хакатон – мероприятие, где кофе время чрезвычайно ценный ресурс. В контексте этого я ранее писал о best practices обучения моделей в Azure Machine Learning. Но Azure ML – это не инструмент для прототипирования; это скорее сервис для создания продукта с SLA со всеми вытекающими отсюда затратами как на время разработки, так и на стоимость владения.

R же прекрасно подходит для создания прототипов, для копания (mining) в данных, для быстрой проверки своих гипотез – то есть
всего того, что нам нужно на такого типа соревнованиях! Ниже я расскажу, как использовать всю мощь R в Azure – от создания прототипа до публикации готовой модели в Azure Machine Learning.
Читать дальше →

Готовим к публикации пост с формулами

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

В последнее время на хабре появилось много постов с математическими формулами. Например, нельзя не вспомнить серию статей maisvendoo о теоретической механике.


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


Скриншот редактора


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

Четыре слова, которые нельзя (исследование русской обсценной лексики на материалах соц.медиа)

Время на прочтение5 мин
Количество просмотров33K
Один мой приятель, учитель латинского языка, в начале урока спрашивал своих студентов, выполнили ли они домашнее задание. Как правило, если не первый, то второй или третий ученик сознавался: простите, господин Учитель, я ничего не сделал. «Фак!» — говорил учитель. «Фак!» — повторял он, вводя в еще большее недоумение своих чад. «Сегодня мы будем проходить глагол третьего спряжения facio делать», который в повелительном наклонении единственного числа так и произносится: fac! – делай!

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность