praca-magisterska/docs/document.tex

248 lines
20 KiB
TeX
Raw Permalink Normal View History

\documentclass[12pt,a4paper,reqno,twoside]{mwbk}
\usepackage[MeX]{polski}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{makeidx}
\usepackage{graphicx}
\usepackage{fancyhdr}
\usepackage{chapter-style}
\textheight 21.1 cm
\voffset = 1.2 cm
\textwidth 14 cm
\hoffset = -0.5 cm
\oddsidemargin = 1.4 cm
\newtheorem{de}{Definicja}
\newtheorem{tw}{Twierdzenie}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
%\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
\fancyhf{} \fancyhead[LE,RO]{\small\thepage}
%\fancyhead[LO]{\small\rightmark}
\fancyhead[RE]{\small\leftmark}
\fancyheadoffset[LO]{0 cm}
\fancyheadoffset[RE]{0 cm}
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0pt}
\addtolength{\headheight}{0.5pt}
\fancypagestyle{plain}{
\fancyhead{}
\renewcommand{\headrulewidth}{0pt}
}
\makeindex
\begin{document}
% Strona tytułowa
\thispagestyle{empty}
\begin{center}
\textsc{UNIWERSYTET IM. ADAMA MICKIEWICZA W POZNANIU}
\vglue 0.1 cm
\textsc{WYDZIAŁ MATEMATYKI I INFORMATYKI}
\vglue 2.1 cm
{\LARGE \bf Cezary Adam Pukownik}
\vglue 1cm
{\large Kierunek: Analiza i przetwarzanie danych}
\medskip
{\large Specjalność: Uczenie maszynowe}
\medskip
{\large Numer albumu: 444337}
\vspace{1.5cm}
{\Huge \bf Generowanie muzyki \\[4pt] przy pomocy głębokiego uczenia\\}
\vspace{0.8cm}
{\large \bf Music generation with deep learning\\}
\end{center}
\vspace{3cm}
\hspace{7.5cm}{Praca licencjacka}\\[-12pt]
\hspace{7.5cm}{napisana pod kierunkiem}\\[-12pt]
\hspace{7.5cm}{dr hab. Tomasza Góreckiego}
\vspace{2.2cm}
\begin{center}
\textsc{POZNAŃ 2020}
\end{center}
% Koniec strony tytułowej
\clearpage \thispagestyle{empty} \cleardoublepage
% Oświadczenie
\thispagestyle{empty}
\begin{flushright}
Poznań, dnia .....................
\end{flushright}
\vglue 2.4 cm
\begin{center}
\large \bf OŚWIADCZENIE
\end{center}
\vglue 1.2 cm
Ja, niżej podpisany Cezary Pukownik, student Wydziału Matematyki i Informatyki Uniwersytetu im. Adama Mickiewicza w Poznaniu oświadczam, że przedkładaną pracę dyplomową pt: "Generowanie muzyki przy pomocy głębokiego uczenia", napisałem samodzielnie. Oznacza to, że przy pisaniu pracy, poza niezbędnymi konsultacjami, nie korzystałem z pomocy innych osób, a w szczególności nie zlecałem opracowania rozprawy lub jej części innym osobom, ani nie odpisywałem tej rozprawy lub jej części od innych osób.
Oświadczam również, że egzemplarz pracy dyplomowej w wersji drukowanej jest całkowicie zgodny z egzemplarzem pracy dyplomowej w wersji elektronicznej.
Jednocześnie przyjmuję do wiadomości, że przypisanie sobie, w pracy dyplomowej, autorstwa istotnego fragmentu lub innych elementów cudzego utworu lub ustalenia naukowego stanowi podstawę stwierdzenia nieważności postępowania w sprawie nadania tytułu zawodowego.
\bigskip
\noindent $[TAK]^{\star}$ - wyrażam zgodę na udostępnianie mojej pracy w czytelni Archiwum UAM
\medskip
\noindent $[TAK]^{\star}$ - wyrażam zgodę na udostępnianie mojej pracy w zakresie koniecznym do ochrony mojego prawa do autorstwa lub praw osób trzecich
\vglue 1.2 cm
\noindent{\small $^{\star}$Należy wpisać TAK w przypadku wyrażenia zgody na udostępnianie pracy w czytelni Archiwum UAM, NIE w przypadku braku zgody. Niewypełnienie pola oznacza brak zgody na udostępnianie pracy.}
\vglue 2 cm
\hglue 6cm ............................................................
% Koniec oświadczenia
\clearpage \thispagestyle{empty} \cleardoublepage
\tableofcontents
\chapter*{Streszczenie}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut fermentum lorem libero. Duis a magna arcu. Nam sit amet porta odio. Cras sit amet euismod elit. Etiam a turpis eget magna pharetra malesuada. Vivamus accumsan leo eget turpis efficitur, non interdum tortor pretium. Maecenas at massa nec elit imperdiet sagittis. Maecenas pellentesque libero et risus aliquam consectetur.
Proin ac dui orci. Cras nec elit eleifend lacus eleifend gravida. Ut placerat lacinia dolor non viverra. Curabitur rhoncus sit amet nibh sed malesuada. Integer iaculis eros venenatis, tempor enim non, sollicitudin sapien. Vestibulum eu scelerisque erat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at felis massa. Ut est arcu, rhoncus ac tincidunt vel, consequat eu sem. Aliquam neque orci, lacinia molestie enim fermentum, ullamcorper congue mauris. Phasellus pellentesque, ante nec ultricies porta, erat erat placerat ante, vitae vehicula ipsum enim id ante. Donec malesuada tortor id ornare mattis. Nulla nec augue at augue dictum aliquet.
\chapter*{Abstract}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut fermentum lorem libero. Duis a magna arcu. Nam sit amet porta odio. Cras sit amet euismod elit. Etiam a turpis eget magna pharetra malesuada. Vivamus accumsan leo eget turpis efficitur, non interdum tortor pretium. Maecenas at massa nec elit imperdiet sagittis. Maecenas pellentesque libero et risus aliquam consectetur.
Proin ac dui orci. Cras nec elit eleifend lacus eleifend gravida. Ut placerat lacinia dolor non viverra. Curabitur rhoncus sit amet nibh sed malesuada. Integer iaculis eros venenatis, tempor enim non, sollicitudin sapien. Vestibulum eu scelerisque erat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at felis massa. Ut est arcu, rhoncus ac tincidunt vel, consequat eu sem. Aliquam neque orci, lacinia molestie enim fermentum, ullamcorper congue mauris. Phasellus pellentesque, ante nec ultricies porta, erat erat placerat ante, vitae vehicula ipsum enim id ante. Donec malesuada tortor id ornare mattis. Nulla nec augue at augue dictum aliquet.
\chapter{Wstęp}
Uczenie maszynowe w ostatnich latach mocno zyskało na popularności. Zastosowania i możliwości różnych algorytmów Mashine Learning czasami przekraczają nasze wyobrażenie o tym, co komputer może zrobić. Niektóre aplikacje potrafią wręcz zaskoczyć użytkowników tym, co potrafią zrobić. Wśród takich aplikacji znajdują się takie, które potrafią przewidywać następne wartości akcji giełdowych, rozpoznawać na filmie obiekty w czasie rzeczywistym czy nawet prowadzić samochód. Algorytmy wyuczone proponują nam spersonalizowane reklamy, czy produkty na podstawie naszych upodobań. Najczęstsze zastosowania dotyczą przetwarzania obrazów lub tekstu, natomiast zastosowania w przetwarzaniu muzyki są niszowe i rzadko spotykane.
\section{Zastosowania uczenia maszynowego w muzyce}
Wśród najbardziej rozwiniętych zastosowań uczenia maszynowego w muzyce, można wymienić algorytmy polecania utworów w portalach streamingowych takich jak Spotify czy Tidal. Algorytmy potrafią znajdywać podobne do siebie utwory i polecać je nam na podstawie naszych preferencji.
\section{Modele generatywne}
Jednym z najnowszych modeli sieci neuronowych są sieci generatywne. Wychodzą one poza standardowe zastosowania klasyfikacji i regresji. Modele generatywne, uczą się ze zbioru uczącego najważniejszych ale i ogólnych cech i potrafią reprodukować podobne wyniki.
\section{Muzyka symboliczna, a muzyka}
Należy rozróżnić dwa pojęcia, które są od siebie różne w podstawowych założeniach. Muzyka symboliczna, i muzyka odegrana. Muzyka symboliczna, jest to utwór zapisany, skomponowany ale na papierze. Przedstawia to muzykę jako koncepcję, taki przepis na utwór. Taka muzyka zapisywana jest klasycznie na pięciolinii, czy komputerowo przy pomocy protokołu MIDI. Druga muzyka, jest to muzyka już odebrana, która nie przechowuje informacji o tym jak zagrać, czy odtworzyć utwór muzyczny, ale brzmienie tego utworu jako fala dźwiękowa. W tej pracy będę opisywał przede wszystkim generowanie muzyki symbolicznej.
\section{Cele tej pracy.}
Celem tej pracy, jest zastosowanie technik głębokiego uczenia, do generowania muzyki. Jest to bardzo ogólny cel, ponieważ muzyką może być prosta melodia oparta na kilku dźwiękach grana przez jeden instrument ale również aranżacja orkiestralna na wiele instrumentów, które razem współgrają i wybrzmiewają jako jeden pełny utwór.
\newpage
\chapter{Reprezentacja muzyki}
Muzyka jesy
\section{Podstawowe koncepcje}
\subsection{Nuta}
Każdy utwór muzyczny składa się nut. Nuta jest podstawowym obiektem w muzycznym słowniku. Każda nuta ma dwa parametry, wartości oraz wysokości. Wartość nuty określa jak długo będzie ona trwać w czasie, relatywnie do pozostałych nut. Wysokość noty oznacza z jaką częstotliwością fala dzwiękowa tej nuty ma wybrzmieć. Częstotliwości te są nazwane literami alfabetu ABCDEFG lub w zapisie polskim AHCDEFG.
\subsection{Skala}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut fermentum lorem libero. Duis a magna arcu. Nam sit amet porta odio. Cras sit amet euismod elit. Etiam a turpis eget magna pharetra malesuada. Vivamus accumsan leo eget turpis efficitur, non interdum tortor pretium. Maecenas at massa nec elit imperdiet sagittis. Maecenas pellentesque libero et risus aliquam consectetur.
\subsection{Akord}
Proin ac dui orci. Cras nec elit eleifend lacus eleifend gravida. Ut placerat lacinia dolor non viverra. Curabitur rhoncus sit amet nibh sed malesuada. Integer iaculis eros venenatis, tempor enim non, sollicitudin sapien. Vestibulum eu scelerisque erat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at felis massa. Ut est arcu, rhoncus ac tincidunt vel, consequat eu sem. Aliquam neque orci, lacinia molestie enim fermentum, ullamcorper congue mauris. Phasellus pellentesque, ante nec ultricies porta, erat erat placerat ante, vitae vehicula ipsum enim id ante. Donec malesuada tortor id ornare mattis. Nulla nec augue at augue dictum aliquet.
\subsection{Utwór}
Aenean malesuada interdum hendrerit. Integer quis nisl et neque iaculis dapibus at in metus. Cras pretium bibendum magna at aliquet. Integer aliquet cursus augue, efficitur sollicitudin felis fringilla efficitur. Vivamus euismod bibendum justo, vitae suscipit nunc mattis a. Sed egestas porttitor velit, sit amet volutpat tortor suscipit vitae. Nulla nec dignissim mauris. Curabitur maximus viverra mollis. Suspendisse molestie turpis sit amet turpis interdum viverra ac eu lorem. Suspendisse iaculis ultricies ante, a condimentum odio congue nec. Integer varius lobortis diam, eget scelerisque nisl mattis at.
\section{Reprezentacja muzyki}
\subsection{Zapis klasyczny - pięciolinia}
Proin ac dui orci. Cras nec elit eleifend lacus eleifend gravida. Ut placerat lacinia dolor non viverra. Curabitur rhoncus sit amet nibh sed malesuada. Integer iaculis eros venenatis, tempor enim non, sollicitudin sapien. Vestibulum eu scelerisque erat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at felis massa. Ut est arcu, rhoncus ac tincidunt vel, consequat eu sem. Aliquam neque orci, lacinia molestie enim fermentum, ullamcorper congue mauris. Phasellus pellentesque, ante nec ultricies porta, erat erat placerat ante, vitae vehicula ipsum enim id ante. Donec malesuada tortor id ornare mattis. Nulla nec augue at augue dictum aliquet.
\subsection{Tabulatura}
Proin ac dui orci. Cras nec elit eleifend lacus eleifend gravida. Ut placerat lacinia dolor non viverra. Curabitur rhoncus sit amet nibh sed malesuada. Integer iaculis eros venenatis, tempor enim non, sollicitudin sapien. Vestibulum eu scelerisque erat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at felis massa. Ut est arcu, rhoncus ac tincidunt vel, consequat eu sem. Aliquam neque orci, lacinia molestie enim fermentum, ullamcorper congue mauris. Phasellus pellentesque, ante nec ultricies porta, erat erat placerat ante, vitae vehicula ipsum enim id ante. Donec malesuada tortor id ornare mattis. Nulla nec augue at augue dictum aliquet.
\subsection{Pianoroll}
Proin ac dui orci. Cras nec elit eleifend lacus eleifend gravida. Ut placerat lacinia dolor non viverra. Curabitur rhoncus sit amet nibh sed malesuada. Integer iaculis eros venenatis, tempor enim non, sollicitudin sapien. Vestibulum eu scelerisque erat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at felis massa. Ut est arcu, rhoncus ac tincidunt vel, consequat eu sem. Aliquam neque orci, lacinia molestie enim fermentum, ullamcorper congue mauris. Phasellus pellentesque, ante nec ultricies porta, erat erat placerat ante, vitae vehicula ipsum enim id ante. Donec malesuada tortor id ornare mattis. Nulla nec augue at augue dictum aliquet.
\subsection{Tekstowa}
Proin ac dui orci. Cras nec elit eleifend lacus eleifend gravida. Ut placerat lacinia dolor non viverra. Curabitur rhoncus sit amet nibh sed malesuada. Integer iaculis eros venenatis, tempor enim non, sollicitudin sapien. Vestibulum eu scelerisque erat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at felis massa. Ut est arcu, rhoncus ac tincidunt vel, consequat eu sem. Aliquam neque orci, lacinia molestie enim fermentum, ullamcorper congue mauris. Phasellus pellentesque, ante nec ultricies porta, erat erat placerat ante, vitae vehicula ipsum enim id ante. Donec malesuada tortor id ornare mattis. Nulla nec augue at augue dictum aliquet.
\chapter{Sieci neuronowe}
Tutaj będzie opisane, dlaczego sieci neuronowe, radzą sobie lepiej w produkowaniu muzyki niż inne modele. Oraz jakie modele są odpowidnie do pewnych zastosowań, JAZZ - LSTM, bardziej ustrukturyzowana - VAE itp.
\subsection{Wstęp do sieci neuronowych, definicje wzory itp.}
Proin ac dui orci. Cras nec elit eleifend lacus eleifend gravida. Ut placerat lacinia dolor non viverra. Curabitur rhoncus sit amet nibh sed malesuada. Integer iaculis eros venenatis, tempor enim non, sollicitudin sapien. Vestibulum eu scelerisque erat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at felis massa. Ut est arcu, rhoncus ac tincidunt vel, consequat eu sem. Aliquam neque orci, lacinia molestie enim fermentum, ullamcorper congue mauris. Phasellus pellentesque, ante nec ultricies porta, erat erat placerat ante, vitae vehicula ipsum enim id ante. Donec malesuada tortor id ornare mattis. Nulla nec augue at augue dictum aliquet.
\subsection{Autoencodery}
Proin ac dui orci. Cras nec elit eleifend lacus eleifend gravida. Ut placerat lacinia dolor non viverra. Curabitur rhoncus sit amet nibh sed malesuada. Integer iaculis eros venenatis, tempor enim non, sollicitudin sapien. Vestibulum eu scelerisque erat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at felis massa. Ut est arcu, rhoncus ac tincidunt vel, consequat eu sem. Aliquam neque orci, lacinia molestie enim fermentum, ullamcorper congue mauris. Phasellus pellentesque, ante nec ultricies porta, erat erat placerat ante, vitae vehicula ipsum enim id ante. Donec malesuada tortor id ornare mattis. Nulla nec augue at augue dictum aliquet.
\subsection{LSTM}
Proin ac dui orci. Cras nec elit eleifend lacus eleifend gravida. Ut placerat lacinia dolor non viverra. Curabitur rhoncus sit amet nibh sed malesuada. Integer iaculis eros venenatis, tempor enim non, sollicitudin sapien. Vestibulum eu scelerisque erat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at felis massa. Ut est arcu, rhoncus ac tincidunt vel, consequat eu sem. Aliquam neque orci, lacinia molestie enim fermentum, ullamcorper congue mauris. Phasellus pellentesque, ante nec ultricies porta, erat erat placerat ante, vitae vehicula ipsum enim id ante. Donec malesuada tortor id ornare mattis. Nulla nec augue at augue dictum aliquet.
\subsection{GAN}
Proin ac dui orci. Cras nec elit eleifend lacus eleifend gravida. Ut placerat lacinia dolor non viverra. Curabitur rhoncus sit amet nibh sed malesuada. Integer iaculis eros venenatis, tempor enim non, sollicitudin sapien. Vestibulum eu scelerisque erat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at felis massa. Ut est arcu, rhoncus ac tincidunt vel, consequat eu sem. Aliquam neque orci, lacinia molestie enim fermentum, ullamcorper congue mauris. Phasellus pellentesque, ante nec ultricies porta, erat erat placerat ante, vitae vehicula ipsum enim id ante. Donec malesuada tortor id ornare mattis. Nulla nec augue at augue dictum aliquet.
\chapter*{Budowanie generatora muzyki}
W tym rozdzialę opiszę w jaki sposób zbudowałem swój własny geneator muzyki, jak przechodził procesz uczenia, jakie próbki udało mi się wygenrować. Opis kodu który napisałem.
\subsection{Przygotowanie danych}
Proin ac dui orci. Cras nec elit eleifend lacus eleifend gravida. Ut placerat lacinia dolor non viverra. Curabitur rhoncus sit amet nibh sed malesuada. Integer iaculis eros venenatis, tempor enim non, sollicitudin sapien. Vestibulum eu scelerisque erat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at felis massa. Ut est arcu, rhoncus ac tincidunt vel, consequat eu sem. Aliquam neque orci, lacinia molestie enim fermentum, ullamcorper congue mauris. Phasellus pellentesque, ante nec ultricies porta, erat erat placerat ante, vitae vehicula ipsum enim id ante. Donec malesuada tortor id ornare mattis. Nulla nec augue at augue dictum aliquet.
\subsection{Architektura sieci neuronowej}
Proin ac dui orci. Cras nec elit eleifend lacus eleifend gravida. Ut placerat lacinia dolor non viverra. Curabitur rhoncus sit amet nibh sed malesuada. Integer iaculis eros venenatis, tempor enim non, sollicitudin sapien. Vestibulum eu scelerisque erat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at felis massa. Ut est arcu, rhoncus ac tincidunt vel, consequat eu sem. Aliquam neque orci, lacinia molestie enim fermentum, ullamcorper congue mauris. Phasellus pellentesque, ante nec ultricies porta, erat erat placerat ante, vitae vehicula ipsum enim id ante. Donec malesuada tortor id ornare mattis. Nulla nec augue at augue dictum aliquet.
\subsection{Proces treningowy}
Proin ac dui orci. Cras nec elit eleifend lacus eleifend gravida. Ut placerat lacinia dolor non viverra. Curabitur rhoncus sit amet nibh sed malesuada. Integer iaculis eros venenatis, tempor enim non, sollicitudin sapien. Vestibulum eu scelerisque erat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at felis massa. Ut est arcu, rhoncus ac tincidunt vel, consequat eu sem. Aliquam neque orci, lacinia molestie enim fermentum, ullamcorper congue mauris. Phasellus pellentesque, ante nec ultricies porta, erat erat placerat ante, vitae vehicula ipsum enim id ante. Donec malesuada tortor id ornare mattis. Nulla nec augue at augue dictum aliquet.
\subsection{Przykłady wygenerowanej muzyki}
Proin ac dui orci. Cras nec elit eleifend lacus eleifend gravida. Ut placerat lacinia dolor non viverra. Curabitur rhoncus sit amet nibh sed malesuada. Integer iaculis eros venenatis, tempor enim non, sollicitudin sapien. Vestibulum eu scelerisque erat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla at felis massa. Ut est arcu, rhoncus ac tincidunt vel, consequat eu sem. Aliquam neque orci, lacinia molestie enim fermentum, ullamcorper congue mauris. Phasellus pellentesque, ante nec ultricies porta, erat erat placerat ante, vitae vehicula ipsum enim id ante. Donec malesuada tortor id ornare mattis. Nulla nec augue at augue dictum aliquet.
\chapter*{Podsumowanie}
Ostateczne wnioski, czy muzyka generowana komputerowa da się lubić? Czy to pozytywnie wpłynie na przemysł muzyczny? Tak i nie. Może złużyć jako inspiracja dla muzyków, proces wspierający. Z drugiej strony może obnizy koszty produkowania muzyki pop, która i tak jest już bardzo powtarzalna. Czy sieci neuronowe nauczą się produkować Hity?
\begin{thebibliography}{99}
\bibitem{} Briot, J.P., Hadjeres, G., Pachet, F.D. (2019): {\em Deep Learning Techniques for Music Generation - A Survey. arXiv:1709.01620v3}
\bibitem{} Goodfellow, I., Bengio, Y., Courville, A. (2016): {\em Deep Learning. MIT Press.}
\bibitem{} Zocca, V., Spacagna, G., Slater, D., Roelants, P. (2018): {\em Deep Learning. Uczenie głębokie z językiem Python. Helion.}
\end{thebibliography}
\printindex
\end{document}