Ответы пользователя по тегу Нейронные сети
  • Что посоветуете для сравнения двух предложений по смыслу?

    @SolidMinus
    Унифицирование подойдет как препроцессинг текста. Т.е, есть некоторое множество < K, V >, где K - числовое описание класса синонима ( например, различные синонимы в один класс ), V - тензор синонимов, где по 0-й оси отложены вектора со словами, содержащие кодированные ( Unicode, так понимаю в данном случае ) слова. Стоит обратная задача нахождения по V соответствующего K, почти как словарь, но наоборот. Предложение трансформируется в последовательность K_i, после чего эта унифицированная, как вы правильно сказали, анализируется. Перед анализом унифицированный вектор надо отобразить в пространство фиксированной размерностью, чтобы все предложения были как бы одинаковой длины. Можно просто дописать нули, например, чтобы вектор стал с 5 компонентами ( максимальная длина предложения )

    Тут два варианта. 1-й более эффективный и сложный, 2-й более простой
    1) LSTM-сети. Почему LSTM? Потому что данный вид RNN сетей наиболее подходит для анализа последовательностей.
    По выходу определяете смысловой класс. Т.е, имеем RNN с 5 входами, и выходами, равными количеству смысловых классов, дающее k-мерный вектор распределения вероятностей по классам. argmax(output) будет наш класс. Типичная задача мультиклассовой классификации, но при помощи RNN сетей. Если с рнн не разберетесь, можно обычную MLP-сеть, но выход будет хреновеньким, т.к это последовательность завязанная на предыдущих состояниях элемента. У нас не бывает предложений вроде "привет нет да пока эх машина".

    Нужно предобучение на огромной базе размеченной вручную. Т.е, такой вектор - такой класс.

    2) Можно пойти по простому пути, без нейронных сетей использовать норму разницы между двумя векторами. Требуемым, и введенным, чем меньше норма - тем более близкое по смыслу предложение. Ведь числовая последовательность предложения является вектором в n-мерном пространстве. В нашем случае после нормализации в 5-мерном пространстве. А норма - это обобщение расстояния на большие размерности, т.е при разницы векторов предложений мы получаем третий вектор, чья длина - расстояние между векторами. Можно использовать различные метрики. Какая больше нравится. Я бы предпочел метрику минковского c p = 2.

    Предобучение не требуется, никаких сложностей тоже. Просто школьная арифметика. Но и предложения, например:

    "Сегодня я пошел в школу снова" и "Завтра я поеду в командировку опять" могут показаться одинаковыми по смыслу. О чем и говорил Максим Чернятевич, имея ввиду, что с базой синонимов можно сделать только самый простой анализ, т.к после нормализации по синонимам в один вектор, скорее будут полностью равны.
    Ответ написан
    2 комментария
  • Как зашифровать извлеченные биометрические признаки на выходе обучения классификатора/нейросети?

    @SolidMinus
    По поводу безопасности я все четко описал в комментах к своей статье.

    Если делать проверку биометрических признаков при помощи MLP-классификатора, то шифровать не имеет смысла, сама матрица весов нейронной сети уже будет чем-то вроде хэша, а feed-forward входного вектора через нейронную сеть - сверкой с этим хэшом. Таким образом по моему ту методу имеем N матриц весов, где N - количество пользователей, хранить вектора уже не имеет смысла.

    https://habrahabr.ru/post/336198/

    Кстати, удачно, всего через 5 дней после вашего вопроса. Прочтите статью, мб интересные идеи оттуда подчерпнете.
    Ответ написан
    6 комментариев
  • Подойдет ли С++ для изучения, если интересны ИНС и робототехника?

    @SolidMinus
    Программирование на робототехнике не сильно дается. Возможно, зависит от ВУЗа, но это не профильный предмет. На первом курсе готовьтесь много чертить, так как у вас будет стандартный курс инженерных специальностей.

    Лучше на прикладную математику поступайте с такими темами.

    P.S. Сам учусь на робтехе.

    P.P.S. Это не ответ, если что, а просто дополнение к тому, что вы поступаете на 15.03.06
    Ответ написан
    3 комментария