ОБНОВЛЕНИЕ: 10 марта 2018 г. В 2016 г. опубликован Deepmind Differentiable neuro computer с похожими идеями. Я почему-то пропустил эту статью, но рад, что архитектура MVC с ассоциативной памятью в качестве модели доказана Deepmind.

Большой прогресс достигнут в Глубоком обучении (ГО) и Обучении с подкреплением (РУ). Как и многие, я был рад узнать все о Машинном обучении (МО), чтобы повысить свою квалификацию. Однако на какое-то время я потерялся в том, что именно меня волнует во всей этой шумихе.

Короче говоря. После нескольких лет прохождения онлайн-курсов, чтения и игры с примерами я понял, что Общий искусственный интеллект (GAI) — это то, что движет мной. Мы довольно далеки от действительно мыслящих машин.

По словам Рэя Курцвейла, мы на 10…27 лет далеки от вычислительной мощности, необходимой для того, чтобы Общий ИИ был на человеческом уровне и достиг сингулярности. Как мы знаем, без компьютерных мощностей, даже если кто-то умный расскажет нам, как работает мозг, никто не сможет этого сделать (поэтому Путину следует подождать, чтобы править миром).

Все герои глубокого обучения так или иначе работают на GAI. Посмотрите интервью Эндрю Нг, чтобы увидеть намеки на идеи, как, по их мнению, это должно работать.

Чего-то не хватает в алгоритмах нейронных сетей, над которыми никто не работает (по крайней мере, я никого не могу найти).

Сравним текущее разделение ответственности в ML с классической архитектурой Модель-Представление-Контроллер. Где

  • Контроллер — это обучение с подкреплением (DQN)
  • Представление — это глубокое обучение (DNN/CNN/RNN и т. д.)
  • В модели отсутствует третий элемент в ML, что-то вроде памяти или дорожной карты знаний об окружающей среде!?

Это неправильно понятые и хорошо забытые Ассоциативные сети (ASNN, Associatron). В обычных компьютерах нет спроса на дорогую контентно-адресуемую память, поэтому они не популярны в компьютерных науках. Есть попытки использовать ассоциативную память для распознавания образов и классификации, но они имеют худшую производительность, чем DBN.

На мой взгляд, ассоциативные нейронные сети являются ключом к алгоритмам абстрактного обучения (AL). Ассоциативная память необходима для сохранения и извлечения последовательности состояний и действий агента для формирования опыта, чтобы позже его можно было восстановить. Глубокое обучение может распознавать состояния и изменения в окружающей среде и извлекать многоиерархические абстрактные связи между различными состояниями системы из ассоциативной памяти для формирования Марковского процесса принятия решений (MDP) в качестве входных данных для алгоритма обучения с подкреплением.

С ASNN мы можем ввести новое действие для обучения с подкреплением, чтобы думать, запрашивая некоторые связанные данные для текущего состояния, создавая некоторые дорожные карты MDP и находя политики, чтобы получить более высокую ценность вознаграждения в каком-то будущем состоянии. Если у системы есть больше времени, она может выбрать «Подумай больше», основываясь на будущих состояниях, абстрагированных от предыдущих мыслей. Этот алгоритм абстрактного обучения может быть расширен для вербализации своих мыслей в словах какого-либо языка. Затем он может читать чьи-то мысли из текста и объединять новые идеи в свои собственные ассоциации ASNN. С помощью такого абстрактного обучения мы можем достичь творчества, генерации новых идей или гипотез, что невозможно только при глубоком обучении и обучении с подкреплением.

Это сложно, но это то, над чем я хотел бы поработать! И для этого мне не нужно менять работу. Мне не нужно столько мощности компьютера. Мне просто нужно провести мысленный эксперимент и найти суженную задачу, чтобы создать какое-то доказательство концепции. (Да, я хочу сделать это в своем гараже :)

Одной из идеальных узких задач, требуемых абстрактному обучению, является мечта стариков об умной генерации исходного кода. С современным состоянием машинного обучения мы можем лучше оптимизировать существующий код, распознавать некоторые шаблоны с высокой вероятностью ошибки, но мало что можем сделать для создания нового реалистичного кода, даже используя Генеративно-состязательные сети (GAN). Программирование требует абстрактного понимания кода, сотрудничества с другими разработчиками, PO, PM, QA, рефакторинга и интеграции с устаревшим кодом. Таким образом, простая оптимизация кода с помощью глубокого обучения с подкреплением не имеет большого значения.

На данный момент я изучаю идею использования последних векторов Capsule Network (CapsNet) для представления состояний и действий в ассоциативных сетях. Звучит как идеальное решение для подключения DL и RL к AL…

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