Рекомендации по использованию теории графов в машинном обучении?

Я много читал об использовании графиков для машинного обучения, наблюдая за видеофильмами Christopher Bishops (http://videolectures.net/mlss04_bishop_gmvm/). Я нахожу это очень интересным и смотрел несколько других в тех же категориях (машинное обучение/график), но задавался вопросом, есть ли у кого-нибудь рекомендации относительно способов узнать больше?

Моя проблема в том, что, несмотря на то, что видео дало отличное понимание на высоком уровне, у меня пока нет практических навыков. Я читал книгу Епископов о машинных учениях/образцах, а также книгу Норвига А.И., но оба они, похоже, не затрагивают конкретные графики использования. С появлением поисковых систем и социальных сетей я бы подумал, что машинное обучение на графиках будет популярным.

Если возможно, может ли кто-нибудь предложить ресурс для изучения? (Я новичок в этой области, и разработка - это хобби для меня, поэтому я извиняюсь заранее, если есть супер очевидный ресурс, чтобы учиться на.. Я пробовал сайты Google и Университета).

Спасибо заранее!

Ответ 1

Получивший Грант МакАртура и Стэнфордский профессор Дафна Коллер соавтором окончательного учебника по байесовским сетям под названием Пробабалистические графические модели, который содержит строгое введение в теорию графов применительно к AI. Это может не точно соответствовать тому, что вы ищете, но в своей области это очень высоко ценится.

Ответ 2

Во-первых, я бы настоятельно рекомендовал книгу Анализ социальных сетей для стартапов Максим Цветават и Александр Кузнецов. Книга, подобная этой, - это находка для программистов, которым необходимо быстро получить базовое владение определенной дисциплиной (в данном случае теорией графов), чтобы они могли начать писать код для решения проблем в этой области. Оба автора являются академически подготовленными теоретиками графов, но предполагаемая аудитория их книги - программисты. Почти все многочисленные примеры, представленные в книге, находятся на python, используя библиотеку networkx.

Во-вторых, для проектов, которые вы имеете в виду, два типа библиотек очень полезны, если не являются необходимыми:

  • анализ графика: например, отличный networkx (python), или igraph (python, R, et al.) - это два, которые я могу рекомендовать очень; и

  • рендеринг графика: отличный graphViz, который можно использовать автономно из командной строки, но, скорее всего, вы захотите использовать его как библиотеку; существуют привязки graphViz во всех основных Языки (например, для python есть как минимум три я знаю, хотя pygraphviz - мое предпочтение; для R существует rgraphviz, который часть пакета bioconductor). Rgraphviz имеет отличную документацию (см., В частности, Vignette, включенную в пакет).

Очень легко установить и начать экспериментировать с этими библиотеками и, в частности, с их помощью

  • чтобы изучить основную теоретическую лексику и единицы анализа (например, распределение последовательности степеней, обход узлов, график операторы);

  • чтобы различать критические узлы в графе (например, степень центра, центрированность собственных векторов, ассортиментность); и

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

Значение использования библиотеки графического анализа для быстрого понимания этих существенных элементов теории графов состоит в том, что по большей части существует отображение 1:1 между упомянутыми мной понятиями и функциями в библиотеку (networkx или igraph).

Так, например, вы можете быстро генерировать два случайных графа равного размера (node number), визуализировать, а затем просматривать их, а затем легко вычислять, например, среднюю последовательность степеней или центральность среднего для обоих и наблюдателя из первых рук, как изменения в значении этих параметров влияет на структуру графика.

W/r/t комбинация методов ML и Graph Theoretical, здесь мой ограниченный личный опыт. Я использую ML в своей повседневной работе и теории графов реже, но редко вместе. Это просто эмпирическое наблюдение, ограниченное моим личным опытом, поэтому тот факт, что я не нашел проблемы, в которой было естественно сочетать методы в этих двух областях. Чаще всего теоретико-графский анализ полезен в слепом пятне МЛ, что является наличием значительного количества помеченных данных обучения. Надлежащие методы ML в значительной степени зависят от этого.

Одним из примеров проблем для иллюстрации этого момента является обнаружение/прогнозирование онлайн-мошенничества. Почти невозможно собрать данные (например, наборы онлайн-транзакций, приписываемых конкретному пользователю), которые вы можете с разумной степенью уверенности разделить и обозначить как "мошенническую учетную запись". Если бы они были особенно умными и эффективными, вы бы неправильно обозначали как "законные", а для тех счетов, для которых подозревалось мошенничество, нередко диагностика первого уровня (например, дополнительная проверка идентификатора или увеличенный период ожидания для выплат) часто достаточно, чтобы заставить их прекратить дальнейшую деятельность (что позволило бы определить определенную классификацию). Наконец, даже если вам удастся собрать достаточно бесшумный набор данных для обучения вашему алгоритму ML, он, безусловно, будет серьезно неуравновешенным (то есть гораздо более "законным", чем точки данных "мошенничества" ); эту проблему можно решить с помощью предварительной обработки статистики (передискретизации) и путем настройки алгоритма (взвешивания), но это все еще проблема, которая, вероятно, ухудшит качество ваших результатов.

Таким образом, хотя я никогда не мог успешно использовать методы ML для этих типов проблем, по крайней мере в двух случаях, я использовал теорию графов с некоторым успехом - в самом последнем случае, применив модель, адаптированную из проект группы в Carnegie Mellon, первоначально направленный на обнаружение мошенничества онлайн-аукциона на ebay.

Ответ 3

Вы можете посещать бесплатные онлайн-классы в Стэнфорде для машинного обучения и искусственного интеллекта:

https://www.ai-class.com/
http://www.ml-class.org/

Классы не просто ориентированы на теорию графов, но включают более широкое введение в поле, и они дадут вам хорошее представление о том, как и когда вы должны применить какой алгоритм. Я понимаю, что вы прочитали вступительные книги по ИИ и МЛ, но я думаю, что онлайн-классы предоставят вам множество упражнений, которые вы можете попробовать.

Ответ 4

Хотя это не точное соответствие с тем, что вы ищете, textgraphs - это семинар, который фокусируется на связи между теорией графов и обработкой естественного языка. Здесь есть ссылка. Я считаю, что семинар также создал эту книгу.