?

Log in

No account? Create an account

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

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

Entries by tag: neuronet

Коэффициент Пирсона для корреляции между batch_size и достигаемой точностью нейросетевой модели
kelijah
Коэффициент Пирсона получается около -0.5, то есть о линейной корреляции между размером батча и максимальной достигаемой точностью нейросетки говорить очень трудно.

Расчет добавлен в тетрадку, в самом конце.

Визуально зависимость тоже почти не видна, есть только некий тренд на понижение, о чем говорит и знак коэффициента:
Read more...Collapse )
Предыдущее сообщение по теме - тут
PS: добавлена визуализация регрессии полиномом второй степени

Визуализация влияния batch_size на качество модели wordchar2vector - ч.3
kelijah
Продолжение поста https://kelijah.livejournal.com/237155.html.

То, что казалось достаточно очевидным и логичным, стало интересным при увеличении количества исходных данных. Я погонял обучение модели на новых batch_size и даже по 2 раза для некоторых batch_size, и получается вот такое облако для максимальной достигаемой точности при разных batch_size:
Read more...Collapse )
Спад для batch_size>=1000 достаточно четкий, но вот все что слева уже не такое простое. Можно видеть даже, как batch_size=180 и 500 дают очень близкие результаты, это больше похоже на плато или макушку параболы.

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

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

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

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

Обновление char-level language model и подробная инструкция по использованию
kelijah

Выложил в репозиторий всё, включая новые файлы модели, обученной на 2 миллионах сэмлах. Также добавил описание:

Read more...Collapse )


Представления слов: исправления, улучшения, сравнение Python / Java / C++ реализаций нейросетей
kelijah
1. В Keras-реализации решения нашел data leak из  валидационных данных в тренировочный набор (как обычно по причине копипасты фрагментов из своих же исходников). После исправления стал получать намного более консистентные результаты: точность на одинаковых данных для сопоставимых архитектур нейросетей в Keras+Theano и в Tensorflow решениях стала примерно равна. И даже решения на Deeplearning4j и Apache.SINGA дают примерно такие же значения!
Read more...Collapse )

Нейросетевые модели для определения перефразировок вопросов (8)
kelijah
[начало тут http://kelijah.livejournal.com/212124.html]

1.1 Простейший multilayer perceptron
Read more...Collapse )

Нейросетевые модели для определения перефразировок вопросов (6)
kelijah
[начало тут http://kelijah.livejournal.com/212124.html]
Оценки качества моделей, усреднение
Для каждой модели я даю оценку, которую видно при сабмите результатов расчета для тестового набора по ссылке https://www.kaggle.com/c/quora-question-pairs/submit.

Read more...Collapse )

Нейросетевые модели для определения перефразировок вопросов (4)
kelijah
[начало тут http://kelijah.livejournal.com/212124.html, скрипты моделей тут https://github.com/Koziev/QuoraQuestionPairs]
Удвоение датасета
400 тысяч пар вопросов в обучающей выборке - это неплохо, но нейросетки очень любят много данных. Чем больше свободных параметров у модели, тем больше требуется обучающих примеров для их настройки. Поэтому вопрос искуственного наращивания обучающего датасета (a.k.a data augmentation - https://www.google.ru/search?q=what+is+datra+augmentation) вполне уместен. Для многих (не всех!) моделей эффективен простой, практически бесплатный, подход с удвоением обучающего датасета. Достаточно подавать не только исходные пары вопросов, но и пары с перестановкой, поскольку семантическая релевантность предложений не зависит от порядка сопоставляемых предложений. Это почти удваивает размер датасета, если учесть пары идентичных вопросов.
Read more...Collapse )

Нейросетевые модели для определения перефразировок вопросов (3)
kelijah
[начало тут http://kelijah.livejournal.com/212124.html]
Siamese network
Может показаться, что для определения семантической близости вопросов необходим сложный анализ смысла. Описание соревнования намекает на это соответствующей отсылкой: “Can you identify question pairs that have the same intent?”. То есть организаторы предлагают определять, имели в виду спрашивающие одно и то же или нет.
Read more...Collapse )

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