|
|
|
|
Рейтинг 4.93/15:
|
|
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 3
|
|||||||||||||||||||||||||||||||||||||||||||||||
Робот-собеседник на основе нейронной сети15.02.2017, 13:24. Показов 3343. Ответов 21
Всем доброго времени суток!
Я поставил перед собой задачу разработать «робота-собеседника», который мог бы общаться на какую-нибудь определённую тему. Так как тема общения с роботом довольно обширна, диалог в целом я не оцениваю (привет товарищу Тьюрингу), рассматривается лишь адекватность ответа «собеседника» на реплику человека. Далее будем называть вопросом предложение, поступающее на вход ИНС, и ответом предложение, полученное на её выходе. Архитектура 1. Двухслойная нейронная сеть прямого распространения с одним скрытым слоем Так как нейронные сети работают только с числами, необходимо закодировать слова. Для простоты из рассмотрения исключены знаки препинания, с заглавной буквы пишутся только имена собственные. Каждое слово кодируется двумя целыми числами, начиная с единицы (ноль отвечает за отсутствие слова)*— номером категории и номером слова в этой категории. Предполагалось в «категории» хранить слова, близкие по смыслу или типу (цвета, имена, например).
Для нейронной сети данные нормализуются, приводятся к диапазону Каждое предложение (вопрос и ответ) может состоять максимум из десяти слов. Таким образом получается сеть с 20 входами и 20 выходами. Необходимое число связей в сети для запоминания где где m — число входов, n — число выходов, N — число примеров. Число связей в сети с одним скрытым слоем, состоящим из H нейронов Структура такой нейронной сети представлена на рисунке 1. Реализована сеть в MATLAB, обучение — метод обратного распространения ошибки. Обучающая выборка содержит 32 предложения… Большего и не потребовалось… ИНС не могла запомнить более 15 предложений, что демонстрирует следующий график (рисунок 2). Ошибка вычисляется как модуль разности между текущим выходом НС и требуемым. Пример диалога (все вопросы из обучающей выборки):
В результате тестирования для различного количества примеров стало понятно, что даже обучающую выборку ИНС запоминает с большим трудом (что видно из рисунка 2). Даже за миллион эпох ошибка не смогла уменьшиться до требуемого значения. Архитектура 2. Двухслойная нейронная сеть прямого распространения Следующий способ закодировать слова для ИНС — one-hot-кодировка[4]. Суть её в следующем: пусть в словаре имеется Для экспериментов был создан словарь из Число нейронов в скрытом слое определялось по зависимости числа связей от числа примеров, которые сеть может выучить без ошибок.
По результатам видно, что теперь система может запоминать большее количество слов. Почти победа… но возникает другая проблема — определение синонимов и похожих слов. Архитектура 3. Двухслойная нейронная сеть прямого распространения с одним скрытым слоем и word2vec-кодировка Для решения проблемы похожести слов и синонимов решил попробовать word2vec, который позволяет нужным образом закодировать слова. Для экспериментов по работе сети использовался словарь word2vec векторов длины 50, обученный на тренировочной базе нейронной сети. На вход нейронной сети подаётся шесть слов (вектор длины 300) и предлагается получить ответ, также состоящий из шести слов. При обратном кодировании вектор предложения разделяется на шесть векторов слов, для каждого из которых в словаре ищется максимально возможное соответствие по косинусу угла между векторами Но даже при такой реализации word2vec не делает нужных связей между словами с точки зрения русского языка. Для создания словаря, в котором именно синонимы будут находиться максимально рядом был сформирован корпус обучения с сгруппированными синонимами, по возможности сочетающиеся по смыслу друг с другом:
В результате такого представления отпадает необходимость запоминать множество синонимов, на которые можно давать одинаковый ответ (типа «привет», «здравствуйте», «приветствую»). Например, в обучающей выборке участвовала только «здравствуй — привет», остальные ответы получены из-за большой косинусной близости «здравствуй», «привет» и «приветствую».
Однако вместе с этим, из-за большой близости синонимов в ответе (беседа=беседую=беседовал=…, я=меня=моё=мне=…) они чаще всего путаются при незначительной переформулировке вопроса («Как ты учишься?» Вместо «Как ты учишься у человека?»). Итог Как видно, при попытке использовать ИНС для общения с человеком, у меня получилось «две блондинки»: одна не может запомнить больше 15 предложений, а вторая много знает, но ничего не понимает. Судя по описаниям как на Хабрахабре, так и на других сайтах, с такой проблемой сталкиваются не все. Поэтому возникает вопрос: где собака зарыта? Какой подход нужно использовать для получения ИНС, способной запоминать и понимать хотя бы 100 – 200 фраз? Прошу ваших советов и предложений.
0
|
|||||||||||||||||||||||||||||||||||||||||||||||
| 15.02.2017, 13:24 | |
|
Ответы с готовыми решениями:
21
Модель искусственной нейронной сети на основе метода опорных векторов Нужна программа на основе нейронной сети для распознавания букв.
|
|
5 / 7 / 2
Регистрация: 26.05.2015
Сообщений: 81
|
|||||
| 06.03.2017, 19:21 | |||||
|
0
|
|||||
|
19 / 19 / 14
Регистрация: 06.08.2009
Сообщений: 538
|
||
| 06.03.2017, 20:08 | ||
|
Добавлено через 4 минуты Может все таки вам посмотреть в сторону компьютерной лингвистики?
0
|
||
| 06.03.2017, 20:08 | |
|
Бот собеседник | Виртуальный собеседник Обучение нейронной сети - алгоритм обратного распространения ошибки(learning_tree) Обучение нейронной сети Структура нейронной сети Построение нейронной сети Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|