Pull to refresh

Comments 12

А сколько времени выполняется? Дождаться не удалось. Очень надолго зависает вот тут:
for II := 0; II < 100; II++ {

выдавая длинные простыни матриц по ходу дела.
То есть даже, если дождаться, то как выше на картинке «Start — Looks like» не получится.
Примерно 2 секунды. Проверте что бы размер картинок был 20х20 и длина вектора была 400. Это может происходить из за того что размер или вектора или матрицы не совпадает, если подождать еще не не много то может вылететь out of range. Также можно образать цикл из 100 до 3.
Всё так и есть. Исходник просто скопировал. Картинки сохранил в браузере, те которые в статье, они 20 на 20. Комп правда старый, 10-летней давности. Может в этом дело.
Вопрос не по теме, но может подскажет кто.
Как сортировать музыку нейросетью?
Какие есть методы? Какие статьи на эту тему?
Сортировать музыку — это классифицировать по жанру, исполнителю и т.п.? Можно посмотреть на эту статью.
Скорее классифицировать по личным предпочтениям.
Например есть две выборки «Нравится» и «Не нравится». И чтобы новая музыка попадала в одну из категорий.

За статью спасибо.
Я бы посмотрел на feature extraction типа того, что описывается в статье (и в целом на CNN/RNN для работы со звуком), а поверх этого нужно просто натренировать классификатор.
С названием, канеш, вы загнули. Я не самая маленькая, но вообще ничего не поняла.
ЗЫ: что в вашем представлении самые маленькие?
В моем представлении это:
1. Исключить громоздкое использование теории и формул.
2. Описать процесс в виде step by step.
3. Минималистичный пример без использования большого количества зависимостей.

Все что вам нужно это преобразовать вводную информацию в вектор и уже использовать это в дальнейшем. Плюс, данный тип сети исключает процесс обучения(если так можно выразится) и не требует на это больших затрат.
Я старался исключить подробное описание тех вещей которые используются здесь как данность. Если постараться описать во вкратце, то после так называемого процесса обучения мы получаем слепок памяти всех образов что мы используем в виде единой матрицы W. Мы как будто накладываем каждую картинку на картинку и после подставленная нашего входного образа Y, сесть стремится к одному из образов. Конечно стоит учесть, что образы должны максимально отличатся друг от друга, иначе если мы и получим ответ, он может быть в виде «Химеры»(образ который слеплен из частей других образов).
Исключить громоздкое использование теории и формул.

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

Почему в вектор?
Преобразовать вектора в матрицы

у нас изначально сами изображения растр — матрица 20х20 с 1 бит цветом…
Просуммировать матрицы и получить одну единую матрицу (W)
Обнулить единую матрицу по диагонали
Умножать матрицу W на вектор входящего изображения
Пропускать полученный вектор через функцию активации для данной сети(F)
Подставлять новый вектор к пункту 5 и продолжать операцию до тех пор пока мы не получим устойчивое состояние сети(на выходе будем получать один и тот же вектор).

зачем/почему? Ну т.е. можно прочесть статью на вики, но можно было бы и объяснить в статье.
Да, вы правы, изображения являются матрицей по умолчанию, но наша сеть принимает вектор в качестве условной единицы. Мы вынуждены использовать преобразование в вектор так же как и использование симметричных матриц.
Ключевым фактором является функция активации (F). После прохождения искомого вектора через единую матрицу W мы получаем некий коллаж и разных частей образов. Нормальизируя данные ( приводя их к виду 1, -1), мы как будто смахиваем остатки того что нам не нужно за раз и проверяем похоже это на что то или нет. Если ответ нет, подставляем выходной результат обратно на условный вход. Наша главная задача получить «Статический аттрактор» — устойчивое состояние сети, где выходной сигнал(вектор) не будет изменяться в последующих итерациях. Во избежания «Динамического аттрактора»(неустойчивое положение выходного сигнала, вследствие которого мы получаем новый результат снова и снова), используется асинхронный режим сети что значительно увеличивает время и затраты на ресурсы.
Sign up to leave a comment.

Articles