Anatoly Levenchuk (ailev) wrote,
Anatoly Levenchuk
ailev

Расцвет и промискуитет ста цветов

Много-много лет назад на программистской летней школе в Лиманчике был капустник, и на нём хор пел песенку с припевом: "Базы данных, базы данных". Хитрость была в том, что часть хора пела в этот же момент "тазы банных", а некоторые ещё и "зады бабных". У зрителей рождалось смешанное впечатление по тому, что они слышали. Вот ровно такое совмещение разных парадигм сегодня ведущее в задачах искусственного интеллекта. Расцветают сразу сто парадигмальных цветов, но этого мало: все эти монопарадигмальные архитектуры (слово "когнитивный" из "когнитивная архитектура" сегодня часто просто не упоминают) начинают ещё и активно смешиваться.

Скажем, сегодня выпущенный майкрософтовский Concept Graph, который сравнивают с CYC по богатству представленных концептов, связанных отношениями IsA -- https://concept.research.microsoft.com/. Но сами эти отношения выражены не логически, а вероятностно, они контекстуальны -- первый уже вышедший релиз предполагает просто концептуализацию отдельных понятий (яблоко будет и компанией, и фруктом), второй концептуализацию в контексте какого-то понятия (чтобы различать эти два яблока), а третий релиз предполагает концептуализацию в рамках короткого текста, описывающего ситуацию (с хитрым примером "apple engineer is eating the apple") -- https://concept.research.microsoft.com/Home/Introduction. На что это похоже? Ну, на что-то типа эмбеддингов для отношений. С самими концептами-то все бодро работают, а вот с отношениями -- тут обычно затык (мы с vvagr разговаривали за последнюю пару месяцев со многими командами -- обычно нужно некоторое время, чтобы они вообще поняли, о чём это мы их спрашиваем, люди в deep learning как-то на отношения не настроены, только на сами концепты). Поэтому рекомендую смотреть на эту работу и чесать затылок. Помним при этом, что все эти "онтологии" и "семантики" только начальные priors, в каждой конкретной ситуации их нужно уточнять.

Ещё один шаг текущей недели в направлении склейки логических баз данных с нейронными задами бабных -- Neural Symbolic Machines: Learning Semantic Parsers on Freebase with Weak Supervision, https://arxiv.org/abs/1611.00020. Там предлагается Manager-Programmer-Computer подход, в котором сочетаются полностью дифференцируемые и недифференцируемые архитектуры. Фишка в том, что программы (скажем, представленные Лиспом) выучиваются и генерируются в коннекционистской парадигме, но исполняются потом традиционным компьютером. Получается лучшее из двух миров, со своими достоинствами и ограничениями. Мне очень, очень это симпатично по сравнению с end-to-end differentiable архитектурами, в которых символический компьютер почему-то моделируется самой сеткой и "база данных" хранится пушисто, как набор векторов. В предложенном же варианте память символическая, очень компактная и масштабируемая -- хотя и с дикой потерей информации, но для логичного формального рассуждения эта потеря информации не так важна. "Перцепция и генерация идей" отделяются тем самым от "логичной думалки" -- на выходе баз данных и задов бабных получаются гибридные тазы банных. It achieves new state-of-the-art performance on WebQuestionsSP, a challenging semantic parsing dataset, with weak supervision. Compared to previous approaches, NSM is end-to-end, therefore does not rely on feature engineering or domain specific knowledge.

С этой работой я бы сравнил Inference Compilation and Universal Probabilistic Programming, https://arxiv.org/abs/1610.09900 -- там жалуются на медленность работы универсальных вероятностных языков программирования и предлагают аппроксимировать программы на них "относительно быстрыми" глубокими нейронными сетями. Продуктивность подхода доказывают тем, что бьют от 90 до 99% капчей в разных датасетах. То есть байесовцы бегут к коннективистам "за скоростью", а потом коннективисты за тем же самым бегут к символистам. Ах, ещё есть "разгонщики" у коннективистов. Вот, например, добились решения задачи посимвольного машинного перевода за линейное время от длины предложения -- Neural Machine Translation in Linear Time, https://arxiv.org/abs/1610.10099. Да, результаты не state-of-the-art, но близки к нему, зато время линейное!

Одна парадигма не выживает, одновременно расцветают сто цветов, кембрийский взрыв обучающихся архитектур с самыми разными представлениями/representations -- в полном соответствии с no free lunch theorem.

Ещё я бы обратил внимание на продолжающийся прогресс в вытаскивании структуры (понятных фич) из неструктурированных данных. В работе Stochastic Variational Deep Kernel Learning, https://arxiv.org/abs/1611.00336 говорится, что Several fundamental themes emerge from the exposition: ... (3) by viewing neural networks through the lens of metric learning, deep learning approaches become more interpretable. Для меня это означает то же самое:
-- одной парадигмой дело не ограничится, все флаги обязательно будут в гости к нам
-- внимание к вытаскиванию отношений (metric learning is the task of learning a distance function over objects -- речь идёт о какой-то репрезентации отношений между объектами).

А что в лагере "когнитивных архитектур"? Там заметили, что этих "когнитивных архитектур" предложено под сотню, а отнюдь не только 5-6 самых попсовых (вот свежий обзор: https://arxiv.org/abs/1610.08602, A Review of 40 Years of Cognitive Architecture Research: Focus on Perception, Attention, Learning and Applications). Но речка развития бежит мимо "когнитивных архитектур" -- слово "когнитивный" опускается, с ранее предложенными "когнитивными архитектурами" сравнений нет, источником вдохновения служат совсем-совсем другие работы. Будущее "когнитивных архитектур" вдруг наступило, но в совсем другом месте и делают его совсем другие люди и под другими названиями.

UPDATE: дискуссия про то, чем все эти новые подходы отличаются от старых подходов -- https://www.facebook.com/groups/nevronet/permalink/732256203607370/ (я там занимаю позицию, что "старость начинается тогда, когда перестаёшь воспринимать и начинаешь вспоминать". Стремительно меняется способ обсуждения новых архитектур, и старые слова уже не сдерживают идущими за ними архитектурными паттернами. Я вот тоже онтологическое прошлое (и настоящее) довольно большое имею, но стремлюсь от него избавиться, ибо оно bias на восприятие происходящего накладывает. Старые слова и теории тащат за собой мышление зимы AI, а сейчас уже весна и выросли новые невиданные раньше травки.

У людей в deep learning есть даже кружка с надписью "твоя модель -- это частный случай моей модели". Они стебутся над теми, кто придумывает обобщения, не добавляющие ничего к state-of-the-art. Если использовать какие-то давно определённые идеи и говорить, что "придуман частный случай", то нужно показывать, что это обобщение добавляет к частному случаю. Это противоречит идее "чтить предков просто за то, что они предки").
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 20 comments