Сегодня я поучаствовал в записи передачи на канале "Культура", вопрос оказался традиционным для журналистов -- чего людям нужно бояться от генетики и машинного интеллекта? А присутствующие учёные, конечно, ничего не знали про успехи этого самого машинного интеллекта, кроме слухов о победах AlphaGo -- но и эту победу сводили к использованию мощного компьютера для перебора вариантов, и только. Пичалька.
Радостно всем рассказывать про то, что Гугль уже начал сочинять посредством нейросеток черновички ответов на письма (
http://www.wired.com/2016/03/google-inbox-auto-answers-emails/) -- этого не хочется. Это приложения, их будут столько же разных, сколько приложений человеческого ума. А речь идёт о создании ума (фишка в том, что необязательно человечьего -- самолёт явно оказался не птичкой, крыльями не машет, но летает дальше и выше птички). Все занимающиеся deep learning не скрывают, что они потихоньку движутся к созданию AGI -- общего искусственного интеллекта, то есть универсального решателя самых разных задач. Происходящее сегодня -- это слабые проблески будущей мощи машинного интеллекта. Так что мне интересно не только радоваться обилию приложений на поверхности глубокого обучения, но и докопаться до тех содержательных корней в его глубине, откуда берётся вся эта мощь.
В deep learning был преодолён обычный медленный ритм современных исследований, тягомотина с публикациями в современной науке: никто не ждёт полгода до принятия paper на конференцию, а потом ещё три месяца до публикации. Сразу публикуют в arxiv.org, коды выкладывают на GitHub. Через пару недель результаты повторяют в восьми местах, ещё через пару недель эти результаты улучшают. Выкладывают не только код, но и наборы данных. Поскольку наборы данных открыты, можно говорить о каких-то бенчмарках. "Открытая воспроизводимая наука" в одной маленькой предметной области. И связь с промышленностью: инфраструктура разработки и инфраструктура использования одна и та же, исследователи получили для своей работы тот софт, который используется затем в production.
Крупные компании ведут себя очень необычно: выкладывают в общее пользование те коды, которые буквально пару лет назад они бы считали страшной коммерческой тайной. Например, Microsoft собирается выложить код среды AIX, в которой приобретённый майкрософтом Minecraft используется как упрощённая модель мира для обучения виртуальных роботов (важно, что там разнообразные миры генерируются по потребности) --
https://blogs.microsoft.com/next/2016/03/13/project-aix-using-minecraft-build-intelligent-technology/, (первая статья тут --
http://arxiv.org/abs/1603.04119 Exploratory Gradient Boosting for Reinforcement Learning in Complex Domains, вот этот Complex Domain и есть мир Minecraft. We introduce two benchmarks built within the game Minecraft where the observations are pixel arrays of the agent’s visual field. A combination of our two algorithmic techniques performs competitively on the standard reinforcement-learning tasks while consistently and substantially outperforming baselines on the two tasks with high-dimensional observation spaces. The new function approximator, exploration strategy, and evaluation benchmarks are each of independent interest in the pursuit of reinforcement-learning methods that scale to real-world domains):
Никогда не нужно забывать, что взлёт глубокого обучения стал возможен именно из-за повышения вычислительной мощности -- алгоритмы-то были уже известны. Если этой мощности добавить, то можно ожидать новых сногсшибательных результатов, которые могут быть получены даже при сегодняшнем уровне знаний. Так что из важных тем последнего времени я бы выделил работу по разгону и ужатию нейронных сеток. Например, пытаются делать буквально бинарные архитектуры, вместо использования хоть и коротких, но плавающих. Вот, например, Binary-Weight-Networks and XNOR-Networks. In Binary-Weight-Networks, the filters are approximated with binary values resulting in 32x memory saving. In XNOR-Networks, both the filters and the input to convolutional layers are binary. XNOR-Networks approximate convolutions using primarily binary operations. This results in 58x faster convolutional operations and 32x memory savings. XNOR-Nets offer the possibility of running state-of-the-art networks on CPUs (rather than GPUs) in real-time. The classification accuracy with a Binary-Weight-Network version of AlexNet is only 2.9% less than the full-precision AlexNet (in top-1 measure). --
http://arxiv.org/abs/1603.05279. И таких работ относительно много. Вот, например, по 3- и 5-битным представлениям, хотя успехи там и поменьше:
http://arxiv.org/abs/1603.01025. А вот ещё: Binarized Neural Networks: Training Deep Neural Networks with Weights and Activations Constrained to +1 or -1,
http://arxiv.org/abs/1602.02830 -- Binarized Neural Networks (BNNs) - neural networks with binary weights and activations at run-time achieved nearly state-of-the-art results over the MNIST, CIFAR-10 and SVHN datasets. Last but not least, we wrote a binary matrix multiplication GPU kernel with which it is possible to run our MNIST BNN 7 times faster than with an unoptimized GPU kernel, without suffering any loss in classification accuracy. The code for training and running our BNNs is available on-line.
В эту же сторону бьют и различные deep compression --
http://arxiv.org/abs/1510.00149, On the ImageNet dataset, our method reduced the storage required by AlexNet by 35x, from 240MB to 6.9MB, without loss of accuracy. Our method reduced the size of VGG-16 by 49x from 552MB to 11.3MB, again with no loss of accuracy.
Эти работы поддержаны и аппаратными новинками: на прошлой неделе на саммите Open Compute Summit 2016 был продемонстрирован слайд с комбинированным процессором Broadwell-EP (предположительно) и матрицей Altera Arria 10 GX.Broadwell+FPGA --
http://www.nextplatform.com/2016/03/14/intel-marrying-fpga-beefy-broadwell-open-compute-future. Сюда же -- обзор Deep Learning on FPGAs: Past, Present, and Future --
http://arxiv.org/abs/1602.04283 И даже с языками происходит интересное: Intel представила для Julia пакет ParallelAccelerator.jl -- код Julia парсится на предмет оптимизации для процессоров Intel плюс распараллеливания его на ядра в многоядерных ителовских процессорах. Типичный пример разгона -- с 20.95 секунд до 0.16 секунд,
http://julialang.org/blog/2016/03/parallelaccelerator -- и вся эта оптимизационная мощь доступна также и в приложениях глубокого обучения. Я думаю, мы ещё не раз услышим о Julia в машинном обучении.
Работы по переносу художественных стилей (см. сравнение разных методов тут:
https://vk.com/away.php?to=https%3A%2F%2Fdocs.google.com%2Fdocument%2Fd%2F1OurIXrimTr2KKHznDiQ1oafUSghC_2WtT8EEjxm7Ei8%2Fedit&post=-44016343_6640) с использованием doodles привели к новинкам по выявлению структурной информации в изображениях -- Generative Image Modeling using Style and Structure Adversarial Networks,
http://arxiv.org/abs/1603.05631. most basic principle of image formation: images are product of: (a) Structure: the underlying 3D model; (b) Style: the texture mapped onto structure. In this paper, we factorize the image generation process and propose Style and Structure Generative Adversarial Network (S^2-GAN). We show our S^2-GAN model is interpretable, generates more realistic images and can be used to learn unsupervised RGBD representations. Не поленитесь, посмотрите тамошние картинки. По скетчам генерируются вполне фотореалистичные изображения:
Работы с временными рядами: Fujitsu develops new deep learning technology to analyze time-series data with high precision
http://phys.org/news/2016-02-fujitsu-deep-technology-time-series-high.html -- an approach to deep learning that uses advanced mathematical techniques to extract geometric features from time-series data, enabling highly accurate classification of volatile time-series. Using the time-series data from gyroscopic sensors built into wearable devices, this technology was found to achieve an accuracy of approximately 85%, an improvement of about 25% over existing techniques, on the UC Irvine Machine Learning Repository benchmark test for classifying human activities. In tests to infer mental states using brainwave time-series data, this technique achieved an accuracy of about 77%, a roughly 20% improvement over existing techniques.
Объявлен очередной (одиннадцатый!) семинар по нейросимволическому обучению и выводу:
http://www.neural-symbolic.org/NeSy16/. Первая же тема интереса -- The representation of symbolic knowledge by connectionist systems. По мне, так это ключевой на сегодня момент. Впрочем, и другие темы не менее забористые: Logical reasoning carried out by neural networks; Integrated neural-symbolic approaches; Extraction of symbolic knowledge from trained neural networks, и т.д. Keynote speakers там
Leon Bottou, Facebook AI Research.
Gary F. Marcus, New York University (NYU) & Geometric Intelligence, Inc.. Жаль, что всё будет ещё не скоро, 16-17 июля 2016, а презентации мы увидим ещё позже. И это всё в рамках большой
http://www.hlai2016.org/ -- The Joint Multi-Conference on Human-Level Artificial Intelligence.
Про reinforcement learning есть разные мнения. LeCun считает, что это "вишенка на торте" (как вы будете подавать обратную связь хорошему алгоритму обучения), ему вторит Yoshua Bengio (
https://www.quora.com/What-do-you-think-about-reinforcement-learning-Is-it-the-cherry-on-the-cake-as-Yann-LeCun-puts-it-1), но есть и другие мнения, что это магистральный путь развития -- если речь идёт об unsupervised learning. Вот ноябрьская статья Juergen Schmidhuber -- On Learning to Think: Algorithmic Information Theory for Novel Combinations of Reinforcement Learning Controllers and Recurrent Neural World Models (
http://arxiv.org/abs/1511.09249). Unlike our previous model-building RNN-based RL machines dating back to 1990, the RNNAI learns to actively query its model for abstract reasoning and planning and decision making, essentially "learning to think." The basic ideas of this report can be applied to many other cases where one RNN-like system exploits the algorithmic information content of another. Уже многократно бывало, что статьи Шмитхубера шли в реализацию только через несколько лет после того, как он их публиковал. Но сейчас другие времена, и эта статья рискует быть реализованной много раньше. Но каков заход, какая выбрана терминология! On Learning to Think -- обучение мышлению!!!
В фундаментальных вопросах тоже идут подвижки. Очередное обоснование необходимости глубоких сетей:
http://arxiv.org/abs/1602.04485. Глубокие сети не могут быть качественно аппроксимированы более мелкими сетями, если только число параметров в этих мелких сетях не будет экспоненциально большим. Это и так было понятно, но дано доказательство и даны конкретные оценки.
Статистика и deep learning продолжают быть заклятыми друзьями, они расходятся и сближаются одновременно -- широко обсуждается position paper Max Welling
https://www.ics.uci.edu/~welling/publications/papers/WhyMLneedsStatistics.pdf, мнение Joshua Bengio по поводу этой position paper ("да, машинное обучение и статистика потихоньку расходятся, но статистика будет играть важную роль"):
https://www.quora.com/Whats-Yoshua-Bengios-opinion-on-Max-Wellings-position-paper-Are-ML-and-Statistics-Complementary и множество работ по проектам "склейки расклеенного" (статистика байесовкая!) --
http://www.nextplatform.com/2015/09/24/deep-learning-and-a-new-bayesian-golden-age/,
http://blog.shakirm.com/2015/10/bayesian-reasoning-and-deep-learning/,
http://arxiv.org/abs/1512.05287 Линия на дифференцируемые (а, следовательно, обучаемые) компьютерные архитектуры прошла через Neural Turing Machine
http://arxiv.org/abs/1410.5401, Neural Programmer-Interpreter
http://arxiv.org/abs/1511.06279 и вышла на фантастическую нейронную машину Тьюринга с доступом Ли --
http://arxiv.org/abs/1602.08671, Lie Access Neural Turing Machine. LANTM is differentiable end-to-end, training was done with RMSProp. We found the right configuration of LANTM to be capable of learning different permutation and arithmetic tasks and extrapolating to at least twice the input size, all with the number of parameters 2 orders of magnitude below that for the LSTM baseline. In particular, we trained LANTM on addition of k-digit numbers for 2≤k≤16, but it was able to generalize almost perfectly to 17≤k≤32. Машина Тьюринга, которую не нужно программировать, но которая учится! Как это было с машиной Тьюринга (ENIAC не имел ленты, зато имел произвольный доступ к памяти), реальные компьютеры следущего архитектурного поколения будут не такие, как в этих работах. Но само наличие таких обучаемых компьютерных архитектур восхищает.
Осталось помянуть, что продолжается работа с вниманием и пониманием. Все человечьи слова успешно применяются к нейронным сеткам. Вот, например, работа с использованием не только "внимания" и не только "понимания"-understanding (обычно -- естественного языка, NLU, natural language understanding), но и амбициозного machine comprehension, "машинной понятливости" --
http://arxiv.org/abs/1602.04341, Attention-Based Convolutional Neural Network for Machine Comprehension. Understanding open-domain text is one of the primary challenges in natural language processing (NLP). Hierarchical attention-based convolutional neural network (HABCNN) employs an attention mechanism to detect key phrases, key sentences and key snippets that are relevant to answering the question. Experiments show that HABCNN outperforms prior deep learning approaches by a big margin.
Прекращаю писать не потому, что больше нечего. Очень даже есть чего! Поглядите только на одну из новостных лент:
https://vk.com/deeplearning. Или вот свежий список литературы с важными статьями:
https://docs.google.com/document/d/1prYqQibMD-fm5QjrtgCFh0cgk7m1r4RV5oyIw0ZiqDo/edit Просто рука бойца колоть устала, спать уже нужно.