Комментарии 18
Сложилось впечатление, что я открыл хорошо оформленный вопрос на stackoverflow.
+9
«информационные нейронные сети» (ИНС)
А бывают «не-информационные»? А как же понятие «искусственные нейронные сети» (ИНС)?
+3
Не выложили исходники?
0
Вы все примеры приводите с feed-forward сетями, а в списке литературы у вас фигурируют LSTM-сети. Попробуйте их — результат станет лучше.
+1
Детский сад какой-то. Не хочу никого обидеть, но если человек кодирует слова числами и приводит их к диапазону 0,1, то он как очень, очень плохо знакомился с литературой.
А вообще задача мне кажется весьма сложной для НС. Я бы смотрел в сторону sequence2sequence моделей, которые что-то вроде вход — LSTM — hidden — LSTM — выход. Эмбеддинг скорее всего тоже надо. Ну и тренировать на сотнях тысяч диалогов.
А вообще задача мне кажется весьма сложной для НС. Я бы смотрел в сторону sequence2sequence моделей, которые что-то вроде вход — LSTM — hidden — LSTM — выход. Эмбеддинг скорее всего тоже надо. Ну и тренировать на сотнях тысяч диалогов.
+3
де собака зарыта? Какой подход нужно использовать для получения ИНС, способной запоминать и понимать хотя бы 100 – 200 фраз?
Собака в том, что эта задача не для ИНС в чистом виде, а для Марковских цепей, например…
… у каждой из технологий ткн. «искусственного интеллекта» есть конкретные специфики применения, а попытка реализации чат-бота на ИНС это как сайты на ассемблере делать, в принципе возможно, но один хрен придётся реализовывать всю технологическую цепочку. ИНС на это в принципе способна, вопрос лишь в размерах и времени обучения, но без гарантий что «понимание» обученной сети будет именно тем, что вам требуется…
0
А зачем использовать нейронные сети при моделировании цепочек? НС подходят для классификационных задач. Для моделирования цепочек лучше использовать скрытые Марковские модели, например, или Conditional random fields (к сожалению, не знаю, как это по-русски). Также не совсем понятно, как можно синтезировать связный текст без привлечения синтаксического и морфологического анализа.
0
Результат как-то не очень. Такого и без ИНС несложно добиться.
0
300-мерные входные данные и всего 95 обучащюих пар?
Делать самостоятельно маленький текстовый корпус, когда есть готовые и большие?
Взять для работы с последовательностями прямую сеть вместо полагающейся рекуррентной?
Матлаб, а не ставший стандартным в этой области питон (theano/tensorflow etc)?
Необычно.
Делать самостоятельно маленький текстовый корпус, когда есть готовые и большие?
Взять для работы с последовательностями прямую сеть вместо полагающейся рекуррентной?
Матлаб, а не ставший стандартным в этой области питон (theano/tensorflow etc)?
Необычно.
Но даже при такой реализации word2vec не делает нужных связей между словами с точки зрения русского языка.Вот классическая реализация ворд2век. Она хорошо выискивает связи. Например, vec(“Madrid”) — vec(“Spain”) + vec(“France”) выдаст ~ vec(“Paris”)
ИНС не могла запомнить более 15 предложенийОбычно стремятся избежать, чтоб нейросеть запоминала обучающие примеры (переобучение). Заставляют генерализовать. Если хочется, чтобы модель быстро запоминала маппинг «вопрос»-«ответ», то это не к обычным нейросетям. Возможно, стоит глянуть one-shot learning.
0
После этих опытов да, потихоньку перехожу на Python TensorFlow/Keras.
По поводу обучения word2vec: возможно, на большом корпусе он будет лучше работать. А если нужных мне слов в этом корпусе нет? Всё же придётся добавлять самому.
Для диалога в целом: если делать робота с собственными мозгами, базу реплик, даже готовую, как минимум, прочесть придётся.
За one-short learning спасибо. Посмотрю, что этот метод может.
А вообще, хорошо бы и все примеры запомнить, и обобщить достаточно неплохо.
По поводу обучения word2vec: возможно, на большом корпусе он будет лучше работать. А если нужных мне слов в этом корпусе нет? Всё же придётся добавлять самому.
Для диалога в целом: если делать робота с собственными мозгами, базу реплик, даже готовую, как минимум, прочесть придётся.
За one-short learning спасибо. Посмотрю, что этот метод может.
А вообще, хорошо бы и все примеры запомнить, и обобщить достаточно неплохо.
-1
Можете попробовать библиотеку RecurrentJS https://github.com/karpathy/recurrentjs с реализацией рекуррентной нейронной сети на JavaScript. В репозитории есть демо пример character_demo.html использования библиотеки для генерации текстов посимвольно. В своем приложении ChatBot https://play.google.com/store/apps/details?id=svlab.chatbot2 для режима рекуррентная нейронная сеть я использовал эту библиотеку с небольшими изменениями демо примера. Вместо посимвольного кодирования я использовал кодирование по словам. Также использовал библиотеку Az.js https://github.com/deNULL/Az.js/tree/master в качестве морфологического анализатора. Почитать про алгоритм чат бота на основе рекуррентной нейронной сети можно в статье https://habrahabr.ru/post/304284/ или elibrary.ru/item.asp?id=27405153
0
Что думаете о проекте: http://www.simbrain.net/?
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Робот-собеседник на основе нейронной сети