Category: технологии

Category was added automatically. Read all entries about "технологии".

Гугл: квантовое преимущество, искусственный интеллект, первые признаки сингулярности в google pay

Кто там мемично шутил про "бигдата, аджайл, где карту получали, в то отделение и ступайте"? Ввожу обязательные параметры в Google Pay, подключаю виртуальную визу. На форме ввода нужно ввести почтовый индекс. Ввожу - "неправильно заполнено поле индекса". Переввожу, пробую другие соседние индексы, пробую сменить город и индекс на Вологду - толку 0. Гуглю проблему (тонкий британский юмор ситуации). Оказывается, этому багу в гугл пэе много лет, но чинить его не торопятся. Да, нейросети, квантовое преимущество, искуственный интеллект - все в комплекте.
Collapse )

Нейросетевое решение AGRR-2019

Код с пояснениями для чисто нейросетевого решения задачи https://github.com/dialogue-evaluation/AGRR-2019 выложен в репозитории https://github.com/Koziev/AGRR-2019

Решение с BERT не взлетело, причем судя по всему из-за нехватки вычресурсов, так как после нескольких суток тренировки BERT'а модель почти достигла бейзлайна на рекуррентной сетке. 2 или 4 1080 Ti явно помогли бы :)

дилемма с BERT в AGRR-2019

По результатам тестов классификатора предложений для https://github.com/dialogue-evaluation/AGRR-2019, возникла дилемма.

С одной стороны, базовая нейросетевая модель выбивает на этой задаче более 90% точности при кросс-валидации.

С другой стороны, крайне урезанная BERT (обучена на 100,000 парах предложений, урезана до 2 heads и другие усечения) плюс fine tuning дала почти 85%.

По ощущениям, повысив сложность BERT хотя бы до 4 или 6 heads, можно поднять и точность последующей классификации. Но усеченная BERT обучалась на GTX 1080 Ti более суток. То есть любые улучшения потребуют несколько суток прогона. С другой стороны, эту обученную русскую BERT можно будет использовать и в других конкурсах. А до дедлайнов по AGRR осталось совсем немного.

Вот и вопрос - стоит ли оно того, при наличных вычислительных ресурсах.

PS (15-02-2019): Увеличил сложность BERT до 4х heads, переобучил на тех же 100,000 парах предложений. Точность классификации предложений для задачи AGRR на кроссвалидации выросла до ~91%.

Дислексия в чатботе с Трансформером

Небольшой забавный момент с результатами работы модели Трансформера в чатботе (предыдущий пост о модели).
Фрагмент листинга с целевыми (true) и сгенерированными (model) ответами на вопросы:
Collapse )

Вот эти "заикания", бесконечные повторения, иногда с вариациями как-то характерны именно для модели Транформера, в RNN такого я не встречал.

Слишком хороший f1 и roc-auc score в моделях релевантности/синонимичности с triple loss

1. Что выдает модель сама по себе

Как работают эти модели? В качестве обучающих данных используются триады, содержащие опорное предложение, нерелевантное предложение и релевантное предложение. Для модели синонимичности эта тройка может выглядеть так:

(anchor) кошка ловит мышку
(positive) на мышку охотится кошка
(negative) дети играют в кошки-мышки
Collapse )

Чатбот в первом классе: склонность понемногу ошибаться как отличительная черта

Проверяю результаты обучения моделей чатбота с добавленными арифметическими примерами. Опять просматривается замеченная ранее склонность давать ответ "примерно похожий на то, что нужно". Когда ответ подразумевает число, бот действительно выдает какое-то число, обычно близкое к верному:
Collapse )

Улучшения в движке вывода ответов чатбота: арифметика и логика

Для проекта вопросно-ответной системы проверяю нейросетку, которая отвечает за выбор ответов "да" и "нет".
Строки с приглашением "H:" - мой ввод с консоли, ответы бота помечены "B:".
Важный момент - бот в явном виде не анализирует синтаксис и лексику, никаких прописанных кодом особых обработок арифметических вещей в нем нет, это исключительно артефакты нейросетки, обученной на наборе примеров.
Collapse )

Сравнение оптимизаторов "Follow The Moving Leader" и "Nesterov moment + Adam"

Для задачи посимвольной генерации теста ответа в чатботе сравниваю два алгоритма оптимизации:

1) штатный keras.optimizers.nadam, описанный тут http://cs229.stanford.edu/proj2015/054_report.pdf
2) FTML из https://github.com/keras-team/keras-contrib/blob/master/keras_contrib/optimizers/ftml.py, описанный тут.

Сравнивается значение per instance accuracy, достигаемое при обучении нейросетки, то есть успехом считается генерация всей цепочки символов ответа без единой ошибки.
Collapse )

Сравнение оптимизаторов nadam и rmsprop с помощью F-теста

Еще одна серия экспериментов с моделью для векторизации символьного представления слов.
Сравним две штатных реализации оптимизаторов в Keras - rmsprop и nadam. Фиксируем batch_size значением 250, делаем несколько запусков обучения модели для каждого варианта оптимизатора (см. строку 356 в файле wordchar2vector_trainer.py).
Collapse )

Визуализация влияния batch_size на качество модели wordchar2vector - ч.2

В комментарии к предыдущему посту коллега p2004r подсказал замечательную мысль по поводу того, что надо бы смотреть не на количество эпох, а на количество градиентов, которые увидела сетка при обучении. И получается вот такая замечательная картина.

1) Смотрим по-старому, динамика обучения в зависимости от числа эпох:
Collapse )2) Теперь то же самое, но в зависимости от количества батчей (масштаб по OX сделан криво, поэтому цена деления такая странная - надо домножать на число сэмплов в обучающем датасете):
Collapse )
То есть начиная с какого-то размера батча (>100 в данном случае) сетка обучается примерно с одинаковым темпом для разных batch_size. Разница только в том, что для каких-то значений обучение обрывается раньше, и максимальная точность не достигается.

Новая тетрадка выложена в репозиторий.

PS: сделан расчет еще для нескольких batch_size и получился вот такой график максимально достижимой точности:
Collapse )