Техносфере Mail.Ru — три года
Сегодня исполнилось три года с момента запуска одного из наших образовательных проектов — Техносферы Mail.Ru, появившийся совместно с факультетом ВМК МГУ им. Ломоносова. Программа Техносферы рассчитана на подготовку специалистов в сфере больших данных. Изначально она была рассчитана на один год и состояла из шести дисциплин. Однако спустя год мы пересмотрели программу и сделали её двухгодичной. В течение четырёх семестров студенты изучают 12 дисциплин, выполняя большой объём практических работ. Заодно был разработан подготовительный курс «Алгоритмы и структуры данных».
В Техносферу принимают студентов 2—4-х курсов. Несмотря на то что схема вступительных экзаменов во все наши образовательные проекты одинакова (студенты сдают онлайн-тест и проходят очное собеседование), в Техносфере мы больше ориентируемся на базовые знания по высшей математике. Помимо чтения лекций мы создали лабораторию, где студенты работают с реальными задачами, с которыми мы сталкиваемся в Mail.Ru Group. Например, пытаются улучшить аналитические алгоритмы, создать определённые эвристики. То есть делают всё то же самое, что они делали бы во время обычной стажировки в компании. С осени 2015 года в лаборатории начали проводить и научные исследования. Например, изучаются возможности применения нейронных сетей для решения тех или иных бизнес-задач.
И в честь дня рождения мы выкладываем список учебных материалов, которые рекомендованы к изучению нашим студентам на протяжении всего двухлетнего курса.
Курс: Алгоритмы интеллектуальной обработки больших объёмов данных
Лекции, статьи и прочие материалы
Блог mathematical monk
Large-Scale High-Precision Topic Modeling on Twitter
Сравнение кластерных алгоритмов
Курс лекций Carnegie Mellon по статистике: Data Mining, лекция 22
Подборка материалов по IPython и Jupyter
Статья по теории информации Visual Information Theory
Блог Сергея Николенко на Хабре
Learning representations by back-propagating errors
Руслан Салахутдинов — Deep Learning
Yahoo! Hadoop Tutorial
Tentative NumPy Tutorial
100 упражнений по NumPy
CRISP-DM User Guide
Руководство по IBM CRISP-DM
MapReduce: Simplified Data Processing on Large Clusters
Литература
Pattern Recognition and Machine Learning
Здесь описаны алгоритмы логического вывода, позволяющие получить быстрые примерные ответы, когда это допустимо в конкретных ситуациях. Для описания распределения вероятностей используются графические модели.
Data Mining Practical Machine Learning Tools and Techniques
В книге описываются концепции машинного обучения и даются практические советы по применению инструментов и методик в реальных задачах анализа данных.
Introduction to Information Retrieval
Книга учит эффективно извлекать информацию с помощью поиска в сети, классификации и кластеризации текста. Здесь рассмотрены все аспекты проектирования и реализации систем сбора, индексирования и поиска документов, методики создания развивающихся систем, применение машинного обучения для работы с текстовыми коллекциями.
Mining of Massive Datasets
Здесь упор сделан на практические алгоритмы, используемые для решения ключевых проблем в анализе данных. Авторы объясняют разные хитрости, связанные с хешированием, чувствительным к локальности, и с алгоритмами обработки быстро поступающих данных. Также затронуты вопросы веба, поиска частых наборов объектов и кластеризации.
Pattern Classification
Книга посвящена нейронным сетям, статистическому распознаванию паттернов, теории машинного обучения и теории инвариантностей. Также приведены практические примеры и сравнения разных методов.
Machine Learning: a Probabilistic Perspective
Книга представляет собой введение в машинное обучение на базе унифицированного вероятностного подхода.
An Introduction to Data Science
Книга для тех, кто делает первые шаги в обработке данных. Представлены примеры кода на R для решения разных интересных задач.
Data Mining and Knowledge Discovery Handbook
Здесь описаны ключевые идеи, теории, стандарты, методологии, тенденции, сложности и методы применения глубинного анализа данных.
Stochastic Gradient Descent Tricks
Это первая глава книги «Neural Networks, Tricks of the Trade», в ней рассматривается метод стохастического обратного распространения для обучения нейронных сетей. По сути, это разновидность методики стохастического градиентного спуска.
Neural Networks and Learning Machines (3rd Edition)
В книге рассматриваются современные методики применения нейронных сетей с инженерной точки зрения. Примеры кода на Matlab можно скачать отсюда.
The elements of statistical learning
Здесь описаны важные идеи в сфере статистики, обработки данных, машинного обучения и биоинформатики.
Ensemble Methods: Foundations and Algorithms
В книге описываются теория и алгоритмы машинного обучения, от простых до более сложных.
Курс: Введение в анализ данных
Лекции, статьи и прочие материалы
Time Series Analysis and Its Applications: With R Examples
Математическая статистика
R: Анализ и визуализация данных
Документация по R
IRkernel
Seaborn: statistical data visualization
SF GIS Crime
Руководство по Apache Maven
JUnit
Руководство по Java
Лямбда-выражения в Java 8
Открытые данные правительства США
Данные социологической службы США
Данные ООН
Портал открытых данных ЕС
Dive into Python
Документация Python
CRISP-DM User Guide
Руководство по IBM CRISP-DM
Литература
R в действии. Анализ и визуализация данных на языке R
Это руководство по обучению языку R с особым вниманием к практическим задачам. В книге представлены полезные примеры статистической обработки данных, описаны изящные методы работы с запутанными и неполными данными, а также с данными, распределение которых отлично от нормального и с которыми трудно справиться обычными методами. Вы также овладеете обширными графическими возможностями для визуального исследования и представления данных.
Статистический анализ и визуализация данных с помощью R
Сегодня язык R является безусловным лидером среди свободно распространяемых систем статистического анализа. Ведущие университеты мира, аналитики крупнейших компаний и исследовательских центров регулярно используют R при проведении научно-технических расчётов и создании крупных информационных проектов. Широкое преподавание статистики на базе этой системы и всемерная поддержка научным сообществом обусловили то, что приведение скриптов кода на языке R постепенно становится общепризнанным стандартом как в журнальных публикациях, так и при неформальном общении учёных всего мира.
Data science for business
Вы узнаете, как улучшить взаимодействие между бизнесом и специалистами в сфере обработки информации, как вписать обработку данных в бизнес-процессы компании, как развить «мышление в стиле анализа данных», как использовать научные методы при принятии бизнес-решений и т. д.
Курс: Углублённое программирование на C/C++
Лекции, статьи и прочие материалы
Как начать работать с GitHub: быстрый старт
Отладка программ с помощью GDB
Работа с Valgrind
Операционная среда ОС UNIX для изучающих программирование
Введение в операционные системы
Литература
Programming with POSIX Threads
Книга даст вам понимание потоков и раскроет возможности этого режима программирования для использования в реальных проектах. Здесь подробно рассматривается стандарт интерфейса ОС IEEE — потоки POSIXAE (Portable Operating System Interface), часто называемые Pthreads. Рассчитана на опытных С-программистов.
Linux System Programming: Talking Directly to the Kernel and C Library
Это руководство по системному программированию под Linux, мануал по системным вызовам и пособие по грамотному написанию быстрого кода.
Advanced Programming in the UNIX Environment
Эта книга уже более 20 лет является настольной для программистов под UNIX. В последнем издании информация актуализирована. Автор последовательно ведёт читателей, работая с файлами, директориями и процессами, обрабатывая сигналы и терминальные команды I/O. Также рассматриваются потоки и многопоточное программирование.
Искусство программирования для Unix
В книге описывается хороший стиль Unix-программирования, многообразие доступных языков, их преимущества и недостатки, различные IPC-методики и инструменты разработки. Автор анализирует философию Unix, культуру и основные традиции сформированного вокруг неё сообщества. В книге объясняются наилучшие практические приёмы проектирования и разработки программ в Unix.
Вместе с тем описанные в книге модели и принципы будут во многом полезны и Windows-разработчикам. Особо рассматриваются стили пользовательских интерфейсов Unix-программ и инструменты для их разработки. Отдельная глава посвящена описанию принципов и инструментов для создания хорошей документации.
Курс: Многопоточное программирование на С/С++
Лекции, статьи и прочие материалы
Руководство по Beej
Fast portable non-blocking network programming with Libevent
FD passing for DRI.Next
Документация по nanomsg
Полезные материалы по С++
Литература
Программирование для Unix
Это практическое руководство поможет изучить особенности системных вызовов для различных реализаций UNIX и UNIX-подобных систем, что позволит создавать универсальные портируемые приложения. Рассматривается межпроцессное и сетевое взаимодействие, терминальный и файловый ввод-вывод, управление сигналами, многопоточность, работа в реальном времени и многое другое.
Стивенс У. UNIX. Разработка сетевых приложений
Книга посвящена созданию веб-серверов, клиент-серверных приложений или любого другого сетевого программного обеспечения в операционной системе UNIX. В книгу включено описание ключевых современных стандартов, реализаций и методов.
Джефф Элджер. C++: Библиотека программиста
Из книги можно узнать о нетривиальных возможностях одного из самых гениальных объектно ориентированных языков. Автор рассказывает о тонкостях программирования на C++, о специфических проблемах, возникающих при разработке программных систем, и о способах их решения.
Курс: Информационный поиск. Часть 1
Лекции, статьи и прочие материалы
Список библиотек и фреймворков, которые помогут в обработке естественного языка:
NLTK
Freeling
Gensim
Нейронные языковые модели в дистрибутивной семантике
Обработка текста
Deep Structured Semantic Model / Deep Semantic Similarity Model
Learning Deep Structured Semantic Models for Web Search using Clickthrough Data
Литература
Foundations of Statistical Natural Language Processing (Глава Collocations)
Книга является введением в статистическую обработку естественных языков. Здесь представлена теория и алгоритмы для создания необходимых инструментов.
Курс: Методы обработки больших объёмов данных
Лекции, статьи и прочие материалы
Стилизация изображений с помощью нейронных сетей: никакой мистики, просто матан
Convolution Arithmetic in Deep Learning. Part 2
Understanding the difficulty of training deep feedforward neural networks
A guide to convolution arithmetic for deep learning
A Neural Algorithm of Artistic Style
TensorFlow VGG-16 pre-trained model
Inception in TensorFlow
Efficient BackProp
Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification
Dropout: A Simple Way to Prevent Neural Networks from Overfitting
Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
An overview of gradient descent optimization algorithms
A Practical Guide to Training Restricted Boltzmann Machines
Neural Networks and Learning Machines (3rd Edition)
A Beginner’s Guide To Understanding Convolutional Neural Networks
A Beginner’s Guide To Understanding Convolutional Neural Networks. Part 2
The 9 Deep Learning Papers You Need To Know About (Understanding CNNs Part 3)
Spatial Transformer Networks
A Neural Algorithm of Artistic Style
Playing Atari with Deep Reinforcement Learning
A Neural Conversational Model
Нейросеть DCGAN (2)
Jupyter notebook
Awesome TensorFlow
Tensor with unspecified dimension in tensorflow
What’s the difference of name scope and a variable scope in tensorflow?
A tutorial on training recurrent neural networks, covering BPPT, RTRL, EKF and the «echo state network» approach
Finding Structure in Time
The Unreasonable Effectiveness of Recurrent Neural Networks
Generating Text with Recurrent Neural Networks
Deep Captioning with Multimodal Recurrent Neural Networks (m-RNN)
Composing Music with LSTM Recurrent Networks — Blues Improvisation
Hubel & Wiesel
Когнитрон и неокогнитрон
Neocognitron: A Self-organizing Neural Network Model for a Mechanism of Pattern Recognition
LeNet-5, convolutional neural networks
Convolutional Neural Networks (LeNet)
ImageNet Classification with Deep Convolutional Neural Networks
Very Deep Convolutional Networks for Large-Scale Image Recognition
Classifying plankton with deep neural networks
Visualizing and Understanding Convolutional Networks
Transfer Learning
Learning representations by back-propagating errors
A Growing Neural Gas Network Learns Topologies
Learning multiple layers of representation
An Introduction to information retrieval
Active Learning to Rank
Semi supervised learning tutorial
Combining labeled and unlabeled data with co-training
Neural Networks for Machine Learning
Variational Inference
Explaining «Explaining away»
A fast learning algorithm for deep belief nets
Semantic hashing
Dropout: A Simple Way to Prevent Neural Networks from Overfitting
Rectified Linear Units Improve Restricted Boltzmann Machines
A Practical Guide to Training Restricted Boltzmann Machines
Exponential Family Harmoniums with an Application to Information Retrieval
Gaussian-binary Restricted Boltzmann Machines on Modeling Natural Image Statistics
Improved Learning of Gaussian-Bernoulli Restricted Boltzmann Machines
Learning Deep Architectures for AI
Учебник «для новичков» по нейросетям
Calculus on Computational Graphs: Backpropagation
Статья по теории информации Visual Information Theory
A Step by Step Backpropagation Example
Литература
http://www.deeplearningbook.org
Это руководство для студентов и практиков, которое поможет освоиться в сфере машинного обучения вообще и глубинного обучения в частности.
Курс: Методы распределённой обработки больших объёмов данных в Hadoop
Лекции, статьи и прочие материалы
Writing an Hadoop MapReduce Program in Python
Курс: Информационный поиск. Часть 2
Лекции, статьи и прочие материалы
Список библиотек и фреймворков, которые помогут в обработке естественного языка:
- NLTK
- Freeling
- Gensim
Нейронные языковые модели в дистрибутивной семантике
Обработка текста
Deep Structured Semantic Model / Deep Semantic Similarity Model
Learning Deep Structured Semantic Models for Web Search using Clickthrough Data
* * *
А если вам мало этих материалов, то напоминаем, что актуальные лекции и мастер-классы о программировании от наших специалистов в проектах Технопарк, Техносфера и Технотрек по-прежнему публикуются на канале Технострим. В наличии следующие курсы Техносферы:
- Введение в анализ данных (весна 2016);
- Информационный поиск (весна 2016);
- Алгоритмы и структуры данных. Подготовительный курс (весна 2016);
- Разработка интернет-приложений (осень 2015);
- Программирование на Perl (осень 2015);
- Многопоточный С++ (осень 2015);
- Методы обработки больших объёмов данных (осень 2015);
- Базы данных (осень 2014)
- Качество и тестирование ПО (весна 2015);
- Data Mining (осень 2014);
- Hadoop (осень 2014).