Press "Enter" to skip to content

GOTO 2017 • Composing Bach Chorales Using Deep Learning • Feynman Liang


[Музыка]
круто, спасибо , только я знаю, что
уровень, чтобы говорить, поднимая руки, если
Вы знаете , кто Бах велик ваш рейз
если вы знаете, что такое нейронная сеть
это о, это прекрасная толпа потрясающая
если вы не знаете, не беспокойтесь, я пойду
чтобы охватить самые основы
давайте поговорим о Бахе, я собираюсь сыграть
вам немного музыки
[Музыка]
теперь то, что вы только что услышали, — это то, что известно
как коралл есть четыре части к нему
сопрано альто тенор бас, играющий на
то же самое время, и есть очень регулярный
фраз, где у вас есть
начало фразы, решимость
фразы следуют следующей фразе
за исключением того, что это был не Бах, а
компьютерный алгоритм, называемый ботом Баха и
это был один образец из его результатов
если вы не верите мне, что он включен
soundcloud это называется образцом один раз
слушать себя так , вместо того , чтобы
Сегодня я говорю о коробке
поговори с тобой о бах- боте, меня зовут
Phiman и это приятно быть здесь
Амстердам, и сегодня мы поговорим о
Осень — автоматическая стилистика
композиция с использованием долговременной памяти
так что потом о себе я
в настоящее время инженер-программист в gigster
где я хожу на работу по интересным
проблемы автоматизации, которые я принимаю
контракты разделили их на суб
контрактов, а затем их фриланс
работа над Bach бота была выполнена в рамках
моя дипломная работа, на которой я сделал
Университет Кембриджа с
Microsoft Research Cambridge в очереди
с треком здесь у меня нет доктора
и так, и я все еще могу сделать машину
обучения , так это тот факт , что это
факт, что вы можете заниматься машинным обучением без
доктора философии для тех из вас , кто просто хочет
знать, что произойдет, а затем получить
отсюда, потому что это не интересно
вот исполнительное резюме, которое я собираюсь
поговорить с вами о том, как тренировать конец
конец, начиная с подготовки наборов данных
вплоть до моделирования модели и
развертывание глубокой рецидивирующей нервной системы
сеть для музыки, эта нейронная сеть
способный многозначно многократно
одновременные голоса одновременно
это способный автоматический состав
генерируя композицию полностью из
царапины, а также согласование
некоторые фиксированные части, такие как сопрано
линии мелодии генерируют
оставшиеся поддерживающие части этой модели
учит теории музыки, не сказав
сделать это, обеспечивая эмпирическую проверку
из того, что используют теоретики музыки
на протяжении веков и
наконец, он оценивается в Интернете
музыкальный тест Тьюринга, который мы из 1700
всего лишь девять процентов
отличить фактический Бах от Баха
холостяк
когда я отправился на это исследование там
были три основные цели: первый
вопрос, на который я хотел ответить, — это то, что
граница вычислительного творчества
теперь творчество — это то, что мы делаем
быть человеком в 8 литров,
некоторые разумные компьютеры не должны
уметь копировать это о нас
это действительно правда, у нас есть компьютеры
генерировать искусство, которое является убедительным человеком
второй вопрос, на который я хотел ответить
насколько влияет глубокое обучение
автоматическая музыкальная композиция сейчас
автоматическая музыкальная композиция является специальной
в нем доминировали символические
методы, которые используют такие вещи, как формальные
грамматики или контекстно-свободные грамматики, такие как
как это дерево разбора мы видели
методы подключения в начале 19-го
но у нас есть это, однако они
они следовали по популярности и
последние системы использовали символические
методы с работой здесь я хотел
см. новые достижения в глубокой
обучение за последние 10 лет может
переноситься на этот конкретный
проблемный домен и, наконец, последний
вопрос, на который я хотел посмотреть, — как это сделать
мы оцениваем эти генеративные модели I
мы видели, что видели в
предыдущий разговор очень много моделей
они создают искусство, на которое мы смотрим, и как
автор мы говорим, что это убедительно
но о, это прекрасно и прекрасно, что
может быть вполне допустимым вариантом использования, но
этого недостаточно для публикации
опубликуем что- то, что нам нужно, чтобы установить
стандартизованный бенчмарк, и нам нужно быть
умеет оценивать все наши модели о
поэтому мы можем объективно сказать, какая модель
лучше, чем сейчас, если вы
все еще здесь, я предполагаю, что вы
интересно, что это план, который мы будем
начните с быстрой учебники по музыке
теория дает вам только основные
терминологии вам необходимо понять
в оставшейся части этой презентации мы будем
расскажите о том, как подготовить набор данных
Бах Коррал
а затем ворота будут получить Предоставлю
праймер в рекуррентных нейронных сетях
которая является реальной моделью глубокого обучения
архитектура, используемая для строительства Баха Баха
мы поговорим о модели Баха Баха
сами советы и трюки и
методы, которые мы использовали для того, чтобы
обучать его
пусть он работает успешно, а также
разверните его, а затем мы покажем
Результаты
хорошо показать , как эта модель способна
фиксировать статистические закономерности в поле
музыкальный стиль, и мы докажем, что мы не будем
доказать, что мы предоставим очень убедительные
свидетельства того, что теория музыки имеет
теоретический жест эмпирический
оправдание и, наконец, я покажу
результаты музыкального теста Тьюринга, который
была наша предлагаемая методология оценки
за то, что да
эта модель решает нашу цель исследования
задача автоматического составления
убеждает, что хор Баха более закрыт
чем открытие проблемы в результате
Участок Баха, и если вы практический тип
ученика мы
все развертывание, поэтому, если вы пойдете на мой
сайт здесь У меня есть копия слайдов
которые имеют все эти инструкции, вы
запустите эти восемь строк кода, и он запускается
весь этот и трубопровод прямо здесь
где он берет заглавные буквы pre
обрабатывает их, помещает их в данные
хранить поезда поездов глубокое обучение
макетные образцы глубокой модели обучения
производит выходы, которые вы можете прослушать
давайте начнем с основной теории музыки сейчас
когда люди думают о музыке, это
обычно то, что вы думаете о себе
эти штриховые линии у вас есть заметки и эти
примечания находятся на разных горизонтальных и
вертикальные позиции, некоторые из которых имеют
интересные связи некоторых из них точек
это интересная маленькая странная шляпа
нам не нужно все это
нужны три фундаментальные концепции :
первый шаг тона часто упоминается
насколько это низко или насколько высоко примечательно
если я сыграю это, мы можем отличить это
некоторые примечания ниже, а некоторые примечания
выше по частоте и соответствует
к вертикальной оси здесь, как примечания
звуков восходящего звука появляются
восходящий по линиям штанги второй
атрибут, который нам нужен, — это продолжительность, и это
действительно, как долго уведомление, так что это
обратите внимание на эти две заметки: эти четыре и
эти восемь всех имеют равную общую сумму
продолжительность, но они у них есть zuv
друг друга, поэтому, если мы примем слух
общая интуиция — это больше баров
есть на этих приливах, тем быстрее
заметки появляются только с этими двумя
концепции, это начинает
немного больше смысла это прямо здесь
в два раза быстрее, чем эта заметка, мы можем видеть
эта нота выше этой заметки и
вы можете обобщить это на остаток
из этого, но есть еще эта забавная шляпа
мы увидим что-то в шляпе
сек, но с шагом и продолжительностью мы можем
переписывайте музыку так, а не
представляя его, используя примечания, которые могут быть
вид загадочного, мы показываем его здесь как
матрица, где на оси х мы имеем время
поэтому длительность и по оси у мы
имеют высоту , как высоко или низко и частоту
эта заметка и то, что мы сделали, это
мы взяли символическое представление
музыки, и мы превратили ее в
цифровой вычислимый формат, который мы можем
моделей железных дорог на спине в шляпе смотрит
это называется Фермата и Бах
использовал его для обозначения концов фраз, которые мы
изначально сказал об этом исследовании
полностью пренебрегая скромностью, и мы
что фразы, сгенерированные
модель просто вид блуждала они никогда
похоже, не было смысла
резолюции или заключения, и это было
нереально, но , добавив эти четыре
скромные вдруг модели оказалась
вокруг, и мы, и мы внезапно обнаружили
реалистичная фразировочная структура крутая и
это вся музыка, которую вам нужно знать
остальное — это машинное обучение сейчас
большая часть машинного обучения
работа инженера готовит данные
устанавливает, что это очень болезненная задача, обычно
должны прочесывать интернет или находить некоторые
стандартизованный набор данных, который вы тренируете и
оценивайте свои модели на том, что обычно
эти данные должны быть предварительно обработаны
и массируется в формат, который
поддающийся обучению и для нас это
не отличается коробка не работает , однако
к счастью, за эти годы
транскрибируется в оправдание моего немецкого Баха
worka Vera — Nix BW извините
dwv — это то, как я говорил об этом
corpus содержит около 438
гармонизация Баха
Коррала и
доступный через программный пакет
называется музыка21
это пакет Python , который вы можете
просто установите инсталляцию, а затем импортируйте ее и
теперь у вас есть итератор над
коллекция музыки первой
мы сделали предварительную обработку
музыка оригинальная музыка здесь, и мы
сделал две вещи, которые мы перенести, а затем
мы квантуем его вовремя, вы можете
обратите внимание на транспозицию , посмотрев
эти случайности прямо здесь эти два
немного смешно назад или вперед B’s
и тогда они отсутствуют здесь
кроме того, эта записка
половина строки, которую немного трудно увидеть
но это происходит и причина, по которой мы
это мы не хотели изучать ключ
подпись подписи ключа обычно
что-то, принятое автором ранее
куски даже начали сочинять и так
мы можем и поэтому ключ подписи сам может
вводят в качестве этапа предварительной обработки
где мы опробуем все ключи Bach
использовал, поэтому мы удалили ключевые пальцы из
уравнение через транспозицию и
Я оправдую, почему это нормально
сделайте в следующем слайде эту первую меру
написано, является прогрессией пяти
заметки, написанные до мажор, а затем то, что я
в следующей мере я просто переехал
это на пять целых шагов
[Музыка]
так что да, шаг изменил это
относительно выше он абсолютно выше
по всем счетам
но отношения между заметками
не изменилось, и
мотивы, которые музыка выводит
те , по- прежнему остаются достаточно постоянными даже
после квантования транспонирования, что
однако это другая история, если я пойду
назад к слайдам заметят квантование
к этой 30-секундной ноте и превратить ее в
шестнадцатой записке, удалив эту вторую
бар, который мы исказили, — это то, что
проблема в том, что дело не в совершенстве
но это очень незначительная проблема, поэтому
здесь я построил гистограмму всех
продолжительности внутри загона
корпус и это квантование влияет на
только 0,2% от всех нот , которые мы
обучение по той причине , что мы делаем это
путем квантования во времени, мы можем получить
дискретных представлений в
так же как в поле, тогда как работа над
непрерывная ось времени теперь вы должны
компьютеры являются дискретными и
не может работать на непрерывном
представление должно быть квантовано в
цифровой формат как-то последний
вызов полифонии, так что многозначность
наличие нескольких одновременных голосов
пока что примеры, которые я вам показал
вы только что услышали один голос, играющий
в любой момент времени, но у Коррала четыре
голос сопрано альто тенор
бас и так вот вопрос для
если у меня есть четыре голоса, и они могут
каждый из них представляет 128 различных смол
это ограничение в MIDI
представление музыки , сколько
различные аккорды я могу построить очень
хорошо да 128 ^ 4 это правильно
Я поставил Big O, потому что некоторые вроде некоторых
как вы можете изменить порядок заказа, но
более или менее да, это правильно и почему
это проблема хорошо, это
проблема , потому что большинство из этих аккордов
на самом деле никогда не видел особенно после тебя
фактически перенесено на майор
глядя на набор данных, мы видим, что
только первые 20 аккордов или 20
ноты , а занимают почти 90% от
весь набор данных, поэтому, если бы мы были
представляем все это, мы имели бы
тонна символов в нашем словаре , который
мы никогда не видели прежде, чем мы справляемся
с этой проблемой происходит сериализация
то есть вместо представления всех четырех
примечания как индивидуальный символ мы
представляют каждую отдельную ноту как
символа, и мы сериализовали
сопрано альто тенор басовый заказ и так
то, что вы получаете, — это сокращение
от 128 до 4 все возможные аккорды
всего в 128 возможных смол теперь
может показаться немного необоснованным, но это
фактически выполняется все время с помощью
обработки последовательности, если вы приняли
взглянуть на традиционный язык
модели вы можете представлять их либо в
уровень персонажа или уровень слова
аналогичным образом вы можете представлять музыку либо
на уровне ноты или на уровне аккорда
после сериализации данных выглядит
как это мы собрали отметили
начало куска, и это используется для
инициализируем нашу модель, мы имеем
четыре аккорда сопрано альто тенор бас
а затем разделитель, указывающий
конец этого кадра и время
один в будущем, а затем другой
сопрано alto тенор бас мы также имеем
эти смешные точки зрения, которые я
придумал обозначить self firmata
так что мы можем закодировать когда конец участка
фразы в наших вводных данных обучения после
вся наша предварительная обработка нашего финала
corpus выглядит так, что есть только 108
символы оставлены так не сто все
сто 28 смол используются в Бах
работает, и есть о чем я бы сказал четыре
сто тысяч, где мы разделяем
триста восемьдесят тысяч или
триста восемьдесят тысяч в
учебный комплект и сорок тысяч в
набор валидации, который мы разделяем между обучением
и проверки в целях предотвращения
переобучения мы не хотим просто
запомните коробку Corral, а мы хотим
иметь возможность производить очень похожие образцы
которые не являются точно идентичными, и это
это с тем, что у вас есть тренировочный набор
и он заключен в первые три
команды на этом слайде, которые я показал ранее
с Бахом
сделать набор данных Bach bot extract
лексика следующий шаг — подготовить
повторяющаяся нейронная сеть, чтобы говорить о
рекуррентные нейронные сети перерыв ДАВАЙТЕ
слово вниз рекуррентной нейронной сети
Я собираюсь начать с нейроневрологических
нейронные просто означает, что у нас очень
основные строительные блоки, называемые нейронами
которые выглядят как это они принимают
d-мерный вход x1 XD, это
цифры равны 0,9 0,2, и все они
добавляется вместе с линейной комбинацией
так что вы в конечном итоге получить это
активация Z, которая является просто суммой
эти входы, взвешенные по WS, поэтому, если
нейрон действительно заботится о том, что X 2 W 2 W
1 , а остальные будут нули и таким образом это
позволяет нейрону выбирать
какой из его вкладов, которые больше заботятся
о и позволяет специализироваться на
определенные части его ввода
активация передается через этот X
образную вещь, называемую
функция активации обычно сигмоида
но все, что он делает, представляет собой
нелинейность в сети и
позволяет исследовать выразительные на
типы функций, которые вы можете приблизить
и у нас есть выход под названием Y, который вы принимаете
эти нейроны вы складываете их
горизонтально, и вы получаете то, что называется
логово, так что я просто показываю четыре
нейронов в этом слое три нейрона в
этот слой двух нейронов на этом верхнем слое
и я представлял такую ​​сеть
здесь мы берем вход X, так что это дно
мы умножим теперь на матрицу, потому что
мы воспроизвели нейроны
горизонтально, и что w представляет
веса мы проходим через этот сигмоид
активации, чтобы получить эти первые
это рекурсивно выполняется
через все слои, пока не дойдете до
на самом верху, где у нас есть финал
выходы модели W здесь
веса — это параметры
сети, и это то, что мы
нужно научиться, чтобы обучить
нейронная сеть
мы знаем, что нервный
сети теперь давайте представим слово
рецидивирующий рецидивирующий просто означает , что
предыдущий ввод или предыдущий скрытый
состояния используются на следующем шаге
предсказание, так что я показываю здесь
снова, если вы просто обратите внимание на
эта область ввода
и этот слой прямо здесь и этот
вывести эту часть прямо здесь, то же самое
вещь как эта вещь прямо здесь однако
мы добавили эту забавную маленькую петлю
возвращение с этим является электрическим
техническая нотация на единицу времени
задержка и то, что это говорит,
скрытое состояние со времени T минус 1 и
также включить его в качестве следующего в следующий
в простые предсказания Т в
уравнения это выглядит так
текущее состояние скрытого равно
действовать или предыдущие входы плюс свободные
или активация предыдущих входов
ждали плюс взвешенные активации
предыдущих скрытых состояний и
выходов является функцией только лишь
текущие скрытые состояния, мы можем принять это
петля прямо здесь
о, жаль, прежде чем я туда поеду, это
называемый рецидивирующим нейронным типом
сеть эта ячейка памяти очень простая
это просто то же самое, что и
нормальная нейронная сеть сделает это
там некоторые проблемы с просто
используя базовую архитектуру, и поэтому
архитектура , что поле было
сходящаяся в сторону , известна как длинная
краткосрочная память
это выглядит очень сложно, это не вы
принимать входные данные и скрытые состояния
и вы положили их на три точки справа
здесь входные входные ворота забываются
ворот и выхода и точки
добавив, что вся эта художественная сложность заключается в
решить проблему , известную как исчезание
градиентной задачи, где эта постоянная
ошибка карусели скрытого состояния
снова и снова возвращались к себе и
по результатам сближения сигналов
к нулю или к бесконечности
это , к счастью, это обычно
доступный как просто черный ящик
реализация в большинстве программных пакетов
вы просто указываете, что я хочу использовать LS TM
и все это абстрагируется от
вы теперь здесь, если вы косоглазите, можете
видеть, что ячейка памяти, которую я
показанных ранее, где мы имеем
вводит скрытые Штаты скрытые облицовочные
вернуться к себе для генерации вывода I
отвлеките это так, и я
складывали его друг на друга, чтобы
а не просто выходы
из этого H прямо здесь я на самом деле
сделало его входным для получения другой памяти
клетка
это то место, откуда слово
глубокие сети — это просто сети, которые
имеют много слоев и путем укладки I
использовать слово глубоко внутри моего
глубокая модель LS TM, но я покажу вам позже
что я не просто делаю это для
глубина мозаичного слова действительно имеет значение
см. в результатах другую операцию, которая
Для LS CMS важно развернуть и
что делает разворот, так это требуется
единицу времени, и она просто повторяет
единицы LS TM со временем, а не
показать в этой задержке, как это я взял
я показал, что когда-то скрытый блок
передавая состояние в скрытый элемент t
проходящие этапы T плюс первый скрытый
единица вашего ввода — это переменная длина и
для обучения сети, что вы делаете, это вы
Разверните этот график, чтобы развернуть lsdm так
той же длины, что и ваша переменная длина
ввода и для того, чтобы получить эти
предсказания наверху, которые мы знаем
все, что нам нужно знать о музыке и rnns
давайте перейдем к боту Баха, есть Бах
Бах работает, чтобы натренировать бота Баха, который мы применяем
критерии последовательного прогнозирования теперь я
украл это у воров Андре
github, но принципы одинаковы
предположим, что нам даны входные символы
привет, и мы хотим смоделировать его, используя
рецидивирующий нейронная сеть обучения
критериям присваивается текущий ввод
символ и предыдущее скрытое состояние
предсказывает следующий символ, поэтому обратите внимание
здесь у меня есть CH , и я пытаюсь
предсказать е Я е и я пытаюсь
предсказать L Я L , и я пытаюсь
предсказывать L, и у меня есть Аллен, я пытаюсь
предсказать, если мы примем аналогию с
музыка У меня есть все заметки, которые я видел
до этого момента, и я
пытаясь предсказать следующее примечание, которое я могу
повторить этот процесс вперед
генерировать композиции критерии, которые мы
хотите использовать is, и поэтому выходной уровень
здесь на самом деле вероятность
Распространение жаль, поэтому возьмите
предыдущий слайд, и теперь я положил его сверху
моей развернутой Сети, так что
начальное скрытое состояние, которое мы просто
инициализировал все нули, потому что у нас есть
уникальный символ запуска, используемый для инициализации
наших частей и динамики RNN, поэтому это
— распределение вероятности по
следующее состояние с учетом текущего состояния
так что это YT
для этого, и это функция
токов текущий вход XT, а также
предыдущие скрытые состояния от t минус
1 нам нужно выбрать r и n
параметры, поэтому эти весы
веса всех связей между
все нейроны , чтобы максимизировать
эта вероятность прямо здесь
вероятность настоящего хорала Баха
здесь у нас есть все примечания
настоящий хор Баха, и здесь у нас есть
следующие примечания этого из
идеальный мир, если мы просто его инициализируем
с некоторым хором Баха это будет просто
запоминать и возвращать остаток и
это будет хорошо работать на этом
критерии прогнозирования, но это не
именно то, что мы хотим, но тем не менее
как только у нас будут такие критерии,
модель на самом деле является обучение
используя правило цепи из исчисления, где
мы возьмем частные производные здесь мы
имеют сигнал ошибки, поэтому я знаю, что это
настоящий Бах отмечает настоящую записку о том, что
Бах используется, и это то, что моя модель
предсказывает хорошо они немного
разные, как изменить параметры
эта весовая матрица между скрытыми
вывести выходные данные этой весовой матрицы
между предыдущим пребыванием в
текущее скрытое состояние и этот вес
матрица между скрытым состоянием
входы , как я могу изменить окружающий , как
я покачу их, чтобы сделать этот вывод
здесь ближе к тому, что Бах фактически имел
теперь эти критерии обучения могут
быть просто формализованным
используется при использовании градиентов с использованием исчисления
и итерации, а затем оптимизации
известные как стохастические градиентные спуски
и когда применяется к нейронным сетям, это
алгоритм, называемый обратным распространением
хорошее обратное распространение через время, если
вы хотите получить nitty-gritty, потому что
мы раскатали нейронную сеть над
но опять же это абстракция
которые вам не нужны , потому что это
также обычно предоставляется вам как
черный ящик внутри общих фреймворков
таких как тензорный поток и мы имеем теперь
теперь у нас есть бат-модель Баха
но есть пара параметров, которые мы
нужно посмотреть, я не сказал вам
точно, как глубокий бот Баха и не имеет
рассказал вам, насколько велики эти слои до
мы начинаем, когда оптимизируем модели, это
это очень важное
вероятно, очевидно, что теперь GPU
очень важно для быстрого экспериментирования
Я сделал быстрый тест, и я обнаружил, что
GPU обеспечивает 8-кратное выполнение
ускорить делаем мое время обучения идет
по сравнению с 256 минутами до 28
минут, поэтому, если вы хотите итерации
быстро получить GPU позволит вам сэкономить
Апрель, как будет делать вас восемь раз
более продуктивным я просто положил слово
глубоко в мою нейронную сеть, потому что она
было хорошим звуковым словом, оказалось, что нет
глубина действительно имеет значение, что я показываю
вы также проиграли тренировочные потери
как потери валидации при изменении
глубина обучения — это то, насколько хорошо
моя модель, сделанная в наборе учебных данных
который я разрешаю видеть и позволяю
настроить свои параметры, чтобы лучше
потеря проверки — это то, насколько хорошо мой
модель делает на данных , которые я не дал ее
посмотрим, насколько хорошо он обобщает
за исключением того, что он запоминает
то , что мы видим здесь, что только с
один уровень ошибки проверки достаточно
высоко, и поскольку мы увеличиваем слои — это получается
вы здесь три, вы получаете этот красный
кривая, которая так же низка, и если
вы продолжаете идти с четырьмя, это идет
это должно быть удивительно
не следует и причина, по которой это
не следует, потому что, когда вы добавляете больше
слои, которые вы добавляете более выразительные
что мы здесь с четырьмя
которые вы на самом деле делаете так же, как
хорошо, как красная кривая, чтобы вы делали
отличный от обучающего множества , но из — за
ваша модель сейчас настолько выразительна, что вы
запоминание входных данных, и поэтому вы
обобщают более плохо так похожи
рассказ о скрытом состоянии
вздыхает так, насколько широки эти ячейки памяти
сколько единиц у нас есть в них, так как мы
увеличить скрытое состояние слоя это
размер скрытого состояния мы получаем производительность
улучшения в обобщении от этого
синяя кривая на всем пути вниз , пока мы не получим
до 256 скрытых единиц эта зеленая кривая
после этого мы видим тот же вид
поведение, когда ошибка набора обучения
идет ниже и ниже, но поскольку вы
запоминание входов, потому что ваша модель
теперь слишком мощный, что вы
ошибка обобщения на самом деле становится все хуже
наконец, LST em они довольно
осложнил причину, по которой я ввел
это потому, что это действительно так важно
для вашей работы основной
тип повторяющейся нейронной сети или
просто повторяет стандартную повторяющуюся
нейронная архитектура сети для
ячейка памяти показана здесь в
сторона этой зеленой кривой прямо здесь
которые на самом деле не делают и для обоих
плохо, но, используя короткий короткий срок
памяти вы получите эту желтую кривую, которая
находится на самом дне, он делает как можно лучше
поскольку из всех архитектур мы
посмотрел в терминах ячеек памяти
повторяющиеся единицы являются более упрощенными или
более простое обобщение LF CMS они
не были использованы , как много и так есть
меньше литературы о них, но об этом
задача , которую они также , кажется, делает очень
хорошо здорово после всего этого
экспериментирование и все это руководство
поиск по сетке, мы, наконец, достигли
окончательная архитектура, где заметки начинаются
вложенные в действительные числа a 32
мерное вещественное или вектор , а и
то мы имеем три слоя уложены
длительная краткосрочная память рецидивирующая нервная
сеть, которая обрабатывает эти примечания
с течением времени, и мы обучили его
с использованием стандартного градиентного спуска с
мы используем эту вещь под названием
выпадают, и мы бросаем с настройкой
30%, а это значит, что между
последующие соединения между слоями
случайным образом отключает 30% нейронов
что кажется немного противоречивым
почему ты хочешь это сделать?
путем отключения нейронов во время
обучение, которое вы на самом деле заставляете нейроны
узнать более надежные функции, которые
независимые друг от друга
если нейроны не всегда надежно
если эти соединения не будут
всегда надежно доступны, тогда есть
всегда надежно доступны тогда нейроны
может понять, что объединить эти два
и чтобы это произошло ,
получение коррелированных функций, где
новые дополнения фактически обучения
точно такая же функция с выбыванием, мы
мы на самом деле можем показать в следующем
скользят, что обобщение улучшается, поскольку мы
увеличьте это число до определенной точки
мы также проводим что-то называемое
Бакалавр Малайзии это в основном просто
возвращает ваши данные и центры
вокруг нуля и перераспределяет дисперсию, поэтому
что вам не нужно беспокоиться о
число переполнений с плавающей запятой или ниже
потоков, и мы используем 128- тичный шаг, усеченный
повторное распространение через время снова
другое , что ваш оптимизатор будет
для вас, но на высоком уровне, что
это происходит , а не разворачивается
всей сети, которая в течение всей
входная последовательность, которая может быть десятки
тысячи нот
получили десятки тысяч тысяч заметок
долго мы только разворачиваем его 128, и мы
усечение воздушных сигналов , которые мы в основном
скажем, после 120 временных шагов, что бы вы ни делали
здесь не повлияет
будущее
слишком много, вот мое обещание
выпадать встречную интуитивно , как мы переходим
что, когда мы начинаем бросать или поворачивать
случайные нейроны или случайный нейрон
мы фактически обобщаем
лучше мы видим , что без падения вне
модель фактически начинает переобучать
вы знаете, что это становится лучше
обобщая, что это ухудшается и
хуже и хуже при обобщении, потому что
он получил так много связей она может
узнать так много вы поворачиваете и выпадать
до 0,3 вы получаете эту фиолетовую кривую на
внизу, где вы только что
правильное количество, чтобы функции
модель обучения является надежной, они
может обобщать независимо от других
функции, и если вы слишком сильно повышаете его
то теперь вы так сильно падаете
вы вводите больше шума, чем
упорядочивая свою модель, вы на самом деле
не обобщайте это хорошо и рассказ
на стороне обучения также непротиворечиво
поскольку мы увеличиваем выпад, вы делаете строго
хуже на тренировках, и это имеет смысл
тоже потому, что это не обобщение
это то, насколько хорошо может модель
запомнить его входные данные, и если вы включите
входы вы запомните это хорошее
отлично с моделью Поезда, мы можем сделать
многие вещи мы можем составить, и мы можем
гармонизировать и способ, которым мы
после того, как у нас есть скрытые состояния и
у нас есть входы, и у нас есть модель
весов и поэтому мы можем использовать модель
веса для формирования этого прогнозирующего
распределение, какова вероятность
моя текущая нота учитывая всё
предыдущие заметки, которые я видел раньше
это распределение вероятности мы просто
мы выберем записку в соответствии с
как это распределение параметризуется
так вот здесь это может быть, как я думаю, L
имеет самый высокий вес здесь, а затем так
после того, как мы его попробуем, мы просто установим XT равным
к тому, что мы отбирали оттуда и
мы просто рассматриваем это как истину, которую мы просто считаем
что независимо от того, какой результат был там
теперь вводится для следующего шага времени
и затем мы повторяем этот процесс для
слова, начинающиеся без каких-либо заметок
вы пробуете символ начала, а затем вы
просто продолжайте идти, пока вы не попробуете конец
символ, а затем
таким образом, мы можем генерировать роман
автоматическая гармонизация композиций
фактически обобщение композиции
что мы в основном
Я получил символ начала, заполняющий остальные
гармонизация — это то, где вы говорите, что я
мелодия у меня есть базовый уровень, или у меня есть
эти определенные заметки заполняют
частей, которые я не указывал, и для этого
мы фактически предложили субоптимальный
стратегии, поэтому я собираюсь позволить альфа
обозначить материал, который нам дан, чтобы он
альфа может быть как 1 3 7 баллов в
где фиксируются ноты, и
проблема приватизации — нам нужно
выберите ноты, которые не фиксированы, или мы
подает входную последовательность X 1 в X
также нам нужно выбрать весь
такой, что примечания, которые
нам дали X альфа, уже исправлены
и поэтому наши переменные решения являются
вещи, которые не в альфе, и нам нужно
максимизировать эту вероятность
распространение моего жадного решения
который я получил много критики
потому что это нормально, вы на этот момент
просто попробуйте наиболее вероятную вещь в
в следующий момент времени причина, по которой
это критикуется , потому что если вы
жадно выбирать, не глядя на то, что
влияние этого решения теперь может повлиять
в будущем вы можете выбрать
то , что просто не делать какие — либо
смысла в будущем гармоническом контексте, но
может звучать очень хорошо сейчас это
вроде как думать, что это похоже на
действуя, не задумываясь о
последствия ваших действий, но
свидетельство того, насколько хорошо это на самом деле
выполняет не то, что могло бы быть так плохо
Теоретически это может быть
насколько хорошо это делает эмпирически, это
все еще убедительно, и мы скоро узнаем
но прежде, чем мы пойдем туда, давайте раскрыть
черный ящик говорил о нейронных
сети — это именно эта вещь, которую вы
может просто оптимизировать данные броска, это будет
изучать вещи, давайте заглянем внутрь
и посмотреть , что происходит на самом деле и так
что я сделал здесь я взят
различные ячейки памяти моего повторяющегося
нейронной сети, и я развернул ее
так что на оси х вы видите время и
на оси y, я показываю вам
активация всех скрытых единиц
так что это похоже на число нейронов
один тюнер на номер 32 — это нейрон
номер один — число нейронов 256 в
первый скрытый слой и аналогично это
нейрон номер один — нейрон номер 256 в
второй скрытый слой это любой
Я не имею в виду, я вроде как
я вижу, как будто это немного
мазать прямо здесь, и это, кажется, появляется
везде, а также здесь, но
нет слишком интуитивного смысла
что я могу сделать из этого образа и
это общая критика глубоких
нейронные сети, они как черные ящики
где мы не знаем, как они действительно работают
внутри, но они, похоже, делают
ужасно хорошо, когда мы приближаемся к
выходные вещи начинают немного
больше смысла, поэтому я раньше был
показывая скрытые единицы первого
и второй слой теперь я показывающий
третьего слоя, а также линейного
сочетание третьего слоя и
наконец, результаты модели и
вы добираетесь до конца, когда начинаете видеть
oh есть этот маленький точечный рисунок
это почти похоже на рояль, если
вы помните представление музыки
Я показал раньше , где у нас было время на
ось x и шаг на оси y это
выглядит ужасно похоже на то, и это
неудивительно, что мы вспоминаем нас
обучил нейронную сеть предсказать
следующее примечание, данное текущей записке или
все предыдущие заметки, если сеть
делал отлично, мы ожидали бы
просто посмотрите, что вход здесь задерживается
одноразовый шаг, и поэтому
неудивительно, что мы что-то видим
что напоминает вход, но это не
довольно точно ввод иногда мы видим
как несколько предсказаний в одной точке
во времени, и это действительно представляет
неопределенность внутри нашей
поэтому, если бы я представлял
распределение вероятности мы не просто
сказав следующее примечание, это
скорее мы говорим, что мы уверены
чем это следующая заметка.
вероятности, но это также может быть
с этой вероятностью вероятность I
назвал это вероятностным роялем
Я не знаю, стандартно ли это
терминология здесь одна из моих самых
интересные идеи, которые я нашел из
эта модель, по-видимому,
изучение концепций теории музыки, так что
Я показываю здесь несколько материалов, которые я
для модели, и здесь я выбрал
из некоторых нейронов и нет этих нейронов
выбраны случайным образом, поэтому я не просто
идти , и я ловил тех , что
вроде, я просто побежал случайно
генератор чисел получил восемь из них
и затем я передал их в мою музыку
дорогой соавтор, и я был похож на эй
есть что- нибудь там, и вот
конец, вот записки, которые он сделал для меня
он сказал, что нейрон 64 этот и
слой один нейрон 138 это один они
кажутся идеальными
Каденция с корневыми аккордами положения в
тонизирующий ключ больше теории музыки, чем я
может понять, но если я посмотрю здесь
это похоже на эту форму прямо на
рояль выглядит так, как на
рояль выглядит так, как на
рояль интересный нейрон слой один
или нейрон 151 Я считаю, что это
второстепенные фразы Каденса — два и
четыре нет, это жалко и
снова я смотрю здесь хорошо, да, такого рода
аккорда прямо там вроде как
этот аккорд прямо там, кажется,
специализирующаяся на выборе конкретных
типы аккордов в порядке, так что это обучение
Римский цифровой анализ и тоники и
корневые аккорды положения и каденция и
последний, где один нейрон восемьдесят
семь и слой два нейрона 37 Я верю
вот в этом то, что они
выбирая я шесть аккордов, я понятия не имею
что это значит
поэтому я показал вам автоматическую композицию на
начало презентации, когда я
взял музыку Баха Баха и я
якобы утверждал, что это был Бах, я сейчас
показать, что похоже на гармонизацию
и это связано с оптимальным
которую я предложил, поэтому мы
мелодию, такую ​​как
[Музыка]
мы говорим модели, что это должно быть
линия сопрано, что другие вероятные
быть таким убедительным
это почти как барочный аккорд аккорда C
прогрессия, что действительно интересно
хотя это не только мы можем просто
гармонизировать простые мелодии, подобные тому, что мы
могут действительно принимать популярные мелодии, такие как
это
[Музыка]
мы можем создать новое барокко
гармонизация того, что может иметь Бах
сделал, если бы он услышал мерцание, мерцающее немного
звезда во время его жизни
теперь я ухожу с трассы, где это
как о, это моя модель, она выглядит так
хорошо это звучит настолько реалистично , что да , но я
просто критиковали в начале
разговор
моя третья цель исследования заключалась в том, как
мы можем определить стандартизированный способ
количественную оценку эффективности
генеративные модели для этого конкретного
и я рекомендую для всех
автоматической композиции — сделать
субъективный эксперимент для прослушивания и так
что мы сделали, мы построены
václav comm, и похоже, что это
получил заставку, и это своего рода
пытаясь пойти вирусным, он просит вас
скажите разницу между Бахом и
компьютер, который они говорили человеку по сравнению с
но но интерфейс прост
вам дают два варианта: один из них
Бах один из них — бот Бах, и ты
попросил различить, какой из них был
фактический Bach мы помещаем это вверх из на
интернет
У меня около девятнадцати сотен
участники со всего мира
участники, как правило, находились в пределах
от восемнадцати до сорока пяти
мы получили удивительно большой
количество экспертов, которые решили
мы определили эксперта как
Исследователь кто опубликован или
учитель с профессиональным
аккредитация в качестве учителя музыки
как кто-то, кто имеет
учился в дипломной программе для музыки
и промежуточный человек, который играет
инструмент, и вот как они это сделали
Я закодировал их, как я закодировал эти
с SAT B, чтобы представить часть, которая
было предложено согласовать это
учитывая, что бас альто тенор гармонизирован
сопрано в этом году был дан только
бас-гитара сопрано гармонизировала
средний — и все это составлено
Я не дам вам ничего такого
результат, который я кодировал
все участники только ток-шоу
умеет отличать Баха от Баха
купил на 7% лучше, чем случайный шанс, но
есть и другие интересные выводы
здесь
хорошо, я думаю, это не слишком удивительно
если вы удалите линию сопрано, тогда
Бат бот выключен, чтобы создать убедительный
мелодия, и это не слишком хорошо
в то время как если вы удалите линию баса
Бах много намного лучше, я думаю
это на самом деле является следствием
я решил заняться полифонией в
смысл, что я сериализую музыку
от сопрано альто тенора и так далее
время Бах Бах должен выяснить ,
что басовая нота может быть это уже
видел сопрано-альт и примечание тенор
в течение этого времени и так
уже имела очень сильную гармонику
контекст о том, какая заметка может звучать хорошо
в то время как если бы я тогда , когда я получил
записка сопрано Бах Ватт не знает, что
бас-нота alto tenor может быть и так
просто сделав случайное предположение, что
может быть совершенно неуместным для
утвердить эту гипотезу, которая является работой
ушли в будущее, вы можете сериализовать
в другом порядке, таком как басовый тенор
Alto сопрано вы можете запустить это
эксперимент снова, и вы можете видеть, и вы
было бы ожидать , чтобы увидеть его пойти вниз , как это
если гипотеза верна и
иначе, если не здесь, я взял
точно такой же сюжет из предыдущего сюжета
кроме того, что я сейчас сломал музыку
испытывать неудивительно
вы видите эту кривую, где люди
делают или делают лучше, когда они получают
более опытные, так что новички похожи
почти на три процента лучше, где
эксперты на шестнадцать процентов лучше
они, вероятно, знают Баха, у них это есть
запомнены, чтобы они могли
разница, но интересная
здесь эксперты делают значительно хуже
чем случайный шанс при получении
сравнивая Баха и Баха, купил бас
гармонизации. На самом деле у меня нет
почему, но это удивительно
мне кажется, что эксперты считают блок
бот более убедителен, чем фактический Бах
поэтому в заключение я представил глубокий
долговременная генерация памяти
для составления завершающих и генерирующих
полифоническая музыка и эта модель не
точно так же, как исследование, которое я говорю
о том, что никто никогда не использует
на самом деле с открытым исходным кодом на моем github
и, кроме того, Google Google мозги
пурпурный проект фактически интегрирован
это уже в Google пурпурный, так что если вы
использовать
полифоническая рекуррентная нейронная сеть
модель на пурпуре и тензорный поток
проектов вы будете использовать бок-бок
модель, как представляется, изучает музыку
теории без каких-либо предварительных знаний мы
не сказал, что это аккорд, это
каденция — это тоник, он просто
решил выяснить , что на его собственный в
для оптимизации производительности на
задача автоматической компоновки для меня это
предполагает, что теория музыки со всеми
его правила и все его формализмы
на самом деле полезно для comp
составление на самом деле настолько полезно, что
машина, предназначенная для оптимизации компоновки
состав решил специализироваться на
эти концепции, наконец, мы провели
крупнейший музыкальный тест Тьюринга на сегодняшний день с
1700 участников — только 7% из них
лучше, чем случайный шанс
обязательное уведомление для моего работодателя мы делаем
открытый разрез мы делаем внештатный аутсорсинг
если вам нужна команда разработчиков, позвольте мне
Знайте, кроме этого, большое спасибо
для вашего внимания это было удовольствие
говоря вам все
[Аплодисменты]
Please follow and like us:

Be First to Comment

Добавить комментарий