Глубокое обучение (deep learning)

Dec 03, 2012 22:20

Глубокое обучение (deep learning) -- это про попытку собрать из каких-то маленьких абстрактностей всё более глубокие абстрактности, и так в несколько слоёв. Ну, или собрать описание чего-то в языке малой абстрактности, а сам этот язык на языке большей абстрактности. Человек постоянно выделяет признаки (злое лицо), выраженные в терминах других признаков (выражение глаз, выражение губ), которые выражены в терминах третьих признаков (градиенты пикселей). Фишка в том, чтобы эти признаки выделила тупая машина.

Именно такая постановка задачи была для многоуровневых нейронных сетей, где каждый слой должен был бы отвечать за очередной уровень признаков, но до 2006 года много уровней обучать не удавалось по совокупности интеллектуальных затыков исследователей и маломощности тогдашних компьютеров. В 2006 году получился прорыв -- и программы глубокого обучения начали работать практически сразу на уровне SOTA (state-of-the-art программ, которые научились что-то делать на данный момент времении), но в сто тридцать раз быстрее и в тридцать раз меньше по памяти. Народ ахнул, и пошли эксперименты. Неделю назад Майкрософт продемонстрировала свой переводчик с голоса на голос, и тут же появилась статья в NY Times (http://www.nytimes.com/2012/11/24/science/scientists-see-advances-in-deep-learning-a-part-of-artificial-intelligence.html), New Yorker (http://www.newyorker.com/online/blogs/newsdesk/2012/11/is-deep-learning-a-revolution-in-artificial-intelligence.html) -- и далее внимание мира оказалось приковано к этой технологии, пузырь начал надуваться.

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

По-русски о deep learning (чтобы понять, как об этом говорить по-русски): http://habrahabr.ru/post/134950/

Меня меньше волнует обработка изображений и распознавание речи, меня больше волнуют лингвистические штудии на предмет построения моделей по неформальным описаниям (см. мою схему интеллектуального акта в http://dot15926.livejournal.com/37807.html). Меня волнует мэппинг, который можно сделать между текстами разных школ управления (проект PraxOS), и я не хочу делать его полностью вручную. Так, организация как "чего-то-провод" описывается самыми разными авторами в самых разных словах:
-- у Голдрата по организации текут результаты ее работы, измеряется этот поток показателем throughput (единица приближения к цели за период).
-- у Андреева организация -- это Жила, по которой течет сила. Бухгалтерия нужна не для счета денег, а чтобы эти абстрактные-потусторонние жилу и силу представить в "съедобном" виде, дать возможность "пощупать" в нашем мире.
-- процессный подход: к потребителям текут результаты операций цепочки бизнес-процессов. Это все "цепочка приращения стоимости".
-- сетевая организация: проводящая сеть, по которой течет информация, продукты, операции.
-- кооперативные схемы СМД-методологов: цепочки из актов деятельности, выходы одних направляются на любые входы других.
Это все про одно и то же видение организации, как абстрактной "проводящей сущности", абстрактной трубы, по которой течет какая-то другая абстракция. Такая организация -- идеальный (т.е. из области идей, нематериальный) объект, никак не наблюдаемый в мире иначе, чем через схемы, картинки, таблицы показателей.

И вот мне важно, чтобы не я сам делал такой мэппинг (отождествление) объектов разных теорий, т.е. мэппил объекты разных эпистемологических описаний (которые есть у конкретных людей и софтинок -- http://dot15926.livejournal.com/38046.html) к экстрагируемой мной напряжением мозговой мышцы общей онтологии (разделяемая, общая формально заданная концептуализация мира -- конечно, тут речь идет не о собственно онтологии, а об онтологическом описании). Нет, я хочу, чтобы эта общая онтология экстрагировалась бы из множества формально заданных метамоделями и неформально заданных текстами эпистемологий компьютером -- первый пункт из моей схемы интеллектуального акта (http://dot15926.livejournal.com/38046.html).

В этом автоматизированном поначалу, а затем и автоматическом мэппинге/определении аналогий будут участвовать и "химические алгоритмы" (т.е. нахождение аналогий по структуре концептуального графа, как это делают люди из VivoMind -- http://www.jfsowa.com/pubs/analog.htm, примеры где-то со 105 слайда в http://www.inf.ufrgs.br/ontobras-most2011/arquivos/curso1/OntobrasMostSlidesMinicurso1Sowa.pdf), и свеженькие алгоритмы глубокого обучения, которые смогут в каких-нибудь проектных данных проанализировать не только структуры появляющихся там паттернов, но и увеличить вероятность правильности автоматического мэппинга (или валидации вручную сделанного мэппинга) путём изучения компьютером использованных программистами идентификаторов модели даных, анализа этим же компьютером доступной документации по программе, и даже анализа исходного кода программы, если он есть.

Тем самым меня пока мало интересует глубокое обучение для задач распознавания изображений (хотя это может быть очень и очень неплохо для создания документации as built после выполнения операций "доработать по месту напильником"). Сейчас меня больше волнует использование глубокого обучения при работе с текстами.

Вот относительно свеженькие ссылки на эту тему:

Тьюториал по алгоритмам глубокого обучения для обработки текстов на естественном языке, о 186 слайдах -- http://nlp.stanford.edu/~socherr/SocherBengioManning-DeepLearning-ACL2012-20120707-NoMargin.pdf
Приложения технологии глубокого обучения к естественным языкам (продолжение тьюториала, со 196 слайда): http://www.iro.umontreal.ca/~bengioy/talks/gss2012-YB5-NLP.pdf

Разные полезные для глубокого обучения софтины на специализированном для данной теме вебсайте (правда, этот вебсайт уже год не обновляется, мои другие ссылки много свежее): http://deeplearning.net/software_links/ (обращаем внимание, сколько там софта на Питоне). Кому не хватит, есть и для Lua: http://www.torch.ch/

Выделение семантической сетки по тексту (это ну очень похоже на то, чем мы занимаемся с ABBYY): http://jmlr.csail.mit.edu/proceedings/papers/v22/bordes12/bordes12.pdf (2012), и http://www-etud.iro.umontreal.ca/~bordesa/mywiki/lib/exe/fetch.php?media=snowbird11-talk.pdf (2011).

Архитектура SENNA, которая не использует ручной настройки традиционных систем парсинга текстов, а самонастраивается "почти с нуля": http://ronan.collobert.com/pub/matos/2011_nlp_jmlr.pdf (код: http://ronan.collobert.com/senna/, там порядка 3500 строк на ANSI C).

Первая коммерческая софтина, которая использует deep learning: http://research.microsoft.com/en-us/projects/mavis/ (доступна через облако -- http://www.greenbutton.com/Applications/Incus). Она делает субтитры, находит ключевые слова, что позволяет реализовать полнотекстовый поиск по аудио и видеоматериалам с доступом по клику на найденный фрагмент текста сразу к месту в ролике.

Работа с омонимами и полисемией, используя не только локальные окрестности слов, но и глобальный контекст -- http://www.socher.org/uploads/Main/HuangSocherManning_ACL2012.pdf

Мне это направление очень близко, ибо я три года в университете занимался распознаванием образов (немножко об этом я писал в http://ailev.livejournal.com/710976.html). Почему это я пишу? Я хочу прикрутить какую-нибудь интеллектуальную распознавалку к .15926 Editor, чтобы автоматизировать мэппинги. Ибо нужно бежать со всех ног, чтобы только-только остаться на месте.

Опять же, пузырь начал надуваться, и грех оставаться в стороне :-)

Ещё меня интересуют Hybrid Reasoning Architectures (http://ontolog.cim3.net/forum/ontolog-forum/2012-11/msg00176.html), но о них будет чуть попозже.
Previous post Next post
Up