?

Log in

No account? Create an account

Компьютерная лингвистика

Новостная лента www.solarix.ru

Entries by tag: deep learning

Движок логического вывода на базе DNN моделей ("умный" chatbot)
kelijah
Далее - результаты работы тестовой версии chatbot'а на базе нейросетевого движка логического вывода:

Read more...Collapse )

Первая часть модели для чат-бота
kelijah
Чисто сеточная deep learning модель для определения семантической близости фраз, с учетом русского словоизменения и примитивный просмотр knowledge base для поиска подтверждения/опровержения гипотезы (т.е. retrieval-based модель для бота):
Read more...Collapse )
Далее буду пробовать реализовать вторую часть - inference engine (или text entailment, тут как посмотреть).

Нейросеточка для дописывания строк
kelijah
Играюсь с новой версией модели языка на уровне символов (код на питоне, в репозиторий залиты и файлы предобученной на небольшом корпусе модели).

Программа позволяет ввести начало строки и затем дополняет ее парой десятков символов, используя модель для вычисления вероятностей нового символа по предшествующим 64 символам. Вот такие штуки получаются (болдом выделен вводимая в консоли затравка):
Read more...Collapse )
Надо эту вещь взамен штатного безобразия на андроид для ввода текста, а то тамошний предиктор так и норовит испортить текст вместо помощи.

Решение бинарной классификационной задачи на C++ с помощью Apache.SINGA, tiny-dnn и OpenNN
kelijah
1. Выложил в репозиторий эксперимента cеточные модели для бинарной классификации на C++ в Apache.SINGA, OpenNN и tiny-dnn:

TinyDNN_Model.cpp - решатель на базе MLP, реализованного средствами библиотеки tiny-dnn (C++, проект для VS 2015)
alexnet.cc - решатель на базе нейросетки, реализованной средствами Apache.SINGA (C++, проект для VS 2015)
main.cpp - решатель на базе нейросетки, реализованной средствами OpenNN (C++, проект для VS 2015)

Постарался максимально подробно описать собственные впечатления от этих библиотек с позиции человека, впервые пытающегося применить их для решения реальной задачи: https://habrahabr.ru/post/335838/

2. Стартовал эксперимент по использованию sparse distributed representations слов на этой же задаче. Посмотрим, будет ли выигрыш в сравнении с базовыми w2v репрезентациями.

NIPS 2017: Learning to Run: улучшенная модель
kelijah
Подготовил новую модель для соревнования "NIPS 2017: Learning to Run (Reinforcement learning environments with musculoskeletal models)", организатором которого является Stanford Neuromuscular Biomechanics Laboratory:
Умчался вдаль, гремя костями (видео)...Collapse )
Визуально модель слишком динамична, склонна к энергичным и высокоамплитудным движениям. Возможно, следует штрафовать ее за слишком активную работу мышц, причем постепенно усиливать штраф.

NIPS 2017: Learning to Run - сделал первый сабмит
kelijah
Засабмитил своего киборга сюда https://www.crowdai.org/challenges/nips-2017-learning-to-run/leaderboards
Теперь надо попробовать улучшить устойчивость, а именно научить не падать после первого шага. Добиться, что модель делала шаги поменьше, не задирала ноги выше того, что раньше было ушами.

Нейросетевые модели для определения перефразировок вопросов (2)
kelijah
[Начало http://kelijah.livejournal.com/212124.html]
Используемый софт & хард
Я использую deep learning framework Keras (https://keras.io) с Theano backend под Ubuntu 16, плюс старенькая NVidia GTX 980.

Под Windows, кстати, Keras тоже можно использовать, если работать с пакетом Anaconda (https://www.continuum.io/downloads).

Но все модели крайне жадные до вычислительных ресурсов. На CPU они работают очень неторопливо, примерно в 10-15 раз медленнее, чем на GPU.

Для обработки текста используется NLTK (http://www.nltk.org/). Некоторые участники соревнования также использовали замечательный набор инструментов NLP Spacy (https://spacy.io/).

Для получения tf-idf представления текста и LSI я применял как средства scikit-learning (http://scikit-learn.org/), так и Gensim (https://radimrehurek.com/gensim/), но для описываемых далее моделей эти подходы не используются.

Краткое вступление по поводу задачи Quora Question Pairs на Каггле
kelijah
[ Черновой вариант содержания всей серии заметок здесь ]

В 2017 году на Каггле (http://kaggle.com) проходило соревнование по построению моделей, способных определять, являются ли два вопроса перефразировкой. Это неплохая задача из категории natural language processing, на которой можно замечательно потренироваться в построении deep learning моделей.
Read more...Collapse )

Нейросетевые модели для определения перефразировок вопросов (Quora Question Pairs на kaggle.com)
kelijah
Содержание

Краткое вступление по поводу задачи
Используемый софт & хард
Исходные тексты моделей
Siamese network
Удвоение датасета
Использование word2vec встраиваний и обучаемость слоя Embedding
Оценки качества моделей, усреднение

Часть 1 char-level deep neural networks
1.1 Простейший multilayer perceptron
1.2 Рекуррентная нейросеть
1.3 Сверточная нейросеть
1.4 Гибридная нейросеть, соединяющая сверточную и рекуррентную архитектуру

Часть 2 word-level deep neural networks
2.1 Рекуррентная сетка на базе bidirectional LSTM
2.2 Сверточная сеть
2.3 Гибридная рекуррентно-сверточная архитектура

...

Сеточная модель для детектирования перефразировок leaderboard=>0.17264
kelijah
Потюнил параметры (величину дропаута, кол-во слоев), logloss на паблике упал на соточку до 0.17264.
Соточка - это оказывается целых 44 позиции вверх на данный момент:Read more...Collapse )