1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế mô hình GAN-LSTM cho tạo sinh âm nhạc

91 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết kế mô hình GAN-LSTM cho tạo sinh âm nhạc
Tác giả Đỗ Quang Thịnh
Người hướng dẫn PGS. TS. Hoàng Trang
Trường học Trường Đại học Bách Khoa, Đại học Quốc gia TP. HCM
Chuyên ngành Kĩ thuật Điện tử
Thể loại Luận văn thạc sĩ
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 91
Dung lượng 1,61 MB

Cấu trúc

  • CHƯƠNG 1: MỞ ĐẦU (12)
    • 1.1 Lý do chọn đề tài (12)
    • 1.2 Mục đích, đối tượng và phạm vi nghiên cứu (13)
    • 1.3 Ý nghĩa khoa học và thực tiễn của đề tài nghiên cứu (14)
    • 1.4 Bố cục luận văn (14)
  • CHƯƠNG 2: TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU (16)
    • 2.1 Tình hình nghiên cứu trong và ngoài nước (16)
    • 2.2 Mục tiêu và nhiệm vụ nghiên cứu (17)
  • CHƯƠNG 3: CƠ SỞ LÝ LUẬN VÀ GIẢ THUYẾT KHOA HỌC (18)
    • 3.1 Mạng đối nghịch tạo sinh GAN (Generative Adversarial Network) (18)
      • 3.1.1 Giới thiệu (18)
      • 3.1.2 Các thành phần (22)
      • 3.1.3 GAN có điều kiện (Conditioning GAN) (27)
    • 3.2 Ứng dụng Machine Learning trong âm nhạc (28)
      • 3.2.1 Cơ bản về âm nhạc (28)
      • 3.2.2 Tệp MIDI và cách thức lưu trữ âm nhạc trong máy tính (31)
      • 3.2.3 Long-Short Term Memory (LSTM) (33)
      • 3.2.4 Cấu trúc bài hát và các mối liên hệ với Machine Learning (38)
    • 3.3 Mô hình mạng GAN-LSTM cho âm nhạc (38)
      • 3.3.1 Những vấn đề tồn đọng cụ thể (38)
      • 3.3.2 Phương pháp (40)
  • CHƯƠNG 4: PHƯƠNG PHÁP NGHIÊN CỨU (45)
    • 4.1 Phương pháp xây dựng dữ liệu (45)
    • 4.2 Phương pháp thu thập và tiền xử lý dữ liệu (47)
    • 4.3 Phương pháp xây dựng mô hình GAN-LSTM (48)
      • 4.3.1 Xây dựng mô hình học máy trên Python (48)
      • 4.3.2 Xây dựng mô hình thực thi trên Verilog (53)
    • 4.4 Phương pháp mô phỏng (57)
      • 4.4.1 Mô phỏng kiểm chứng khả năng học hỏi của mô hình trên Python (57)
      • 4.4.2 Mô phỏng chức năng trên phần cứng và synthesis (tổng hợp) (57)
    • 4.5 Phương pháp đánh giá kết quả (58)
      • 4.5.1 Đánh giá định lượng (58)
      • 4.5.2 Đánh giá định tính (60)
  • CHƯƠNG 5: KẾT QUẢ NGHIÊN CỨU VÀ CÁC PHÂN TÍCH LIÊN QUAN (65)
    • 5.1 Phân tích kết quả theo các đánh giá định lượng (65)
      • 5.1.1 Phân tích theo tập dữ liệu gốc (65)
      • 5.1.2 Phân tích theo quá trình huấn luyện (68)
      • 5.1.3 Phân tích các quãng chuyển Verse-Chorus và điểm kết Chorus (70)
    • 5.2 Phân tích phiên bản thực thi phần cứng của mô hình (73)
      • 5.2.1 Phân tích kết quả mô phỏng (73)
      • 5.2.2 Phân tích về mặt thời gian (Timing) (74)
    • 5.3 Phân tích kết quả theo các đánh giá định tính (79)
      • 5.3.1 Khảo sát về mức độ chân thực của âm nhạc (80)
      • 5.3.2 Khảo sát về tác động cảm xúc của âm nhạc (81)
      • 5.3.3 Khảo sát về nhận diện các quãng chuyển Verse-Chorus (82)
  • CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (84)
    • 6.1 Kết luận đề tài (84)
    • 6.2 Hướng phát triển (84)

Nội dung

TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU

Tình hình nghiên cứu trong và ngoài nước

Các máy AI nhằm mục đích tạo ra dữ liệu mới như trình bày ở mục trước thường được gọi rộng rãi là GAN (Generative Adversarial Network), theo tiếng Việt gọi là mạng đối nghịch tạo sinh Thuật ngữ này lần đầu xuất hiện trong buổi hội thảo NIPS tại Barcelona, và được đề xuất bởi Ian Goodfellow của Google Brain [1] Ở đó, GAN được mô tả bằng cấu trúc, cách huấn luyện, đặt nền móng cho các nghiên cứu phía sau

Từ sự kiện này, nhiều nghiên cứu đã được công bố trong việc sử dụng GAN cho nhiều ứng dụng khác nhau[2-5] Ví dụ, P Isola và các cộng sự đã thực hiện một GAN cho việc biến đổi hình ảnh (Image2Image Transalation) với độ chính xác được tối ưu bằng hàm mất mát của riêng họ [6] Tương tự, nhóm của T Wang cũng dùng GAN trong việc tự tạo ra những bộ các câu hỏi và câu trả lời thông qua đọc một đoạn văn bản cho trước [7]

Tuy đã có nhiều nghiên cứu ứng dụng GAN trên thực tế, phần lớn các nghiên cứu tập trung vào dữ liệu hình ảnh [8][9] Ở chiều ngược lại, dữ liệu như văn bản hay âm thanh có tỉ lệ nghiên cứu thấp hơn, do chúng có đặc điểm riêng biệt so với hình ảnh và khó kiểm soát hơn[10] Dù vậy, âm nhạc, một bộ phận của âm thanh, vẫn thu hút được các nhà nghiên cứu với những kết quả đáng nể Chẳng hạn, H Dong đã xây dựng một GAN gọi là MuseGAN với khả năng chơi nhiều nhạc cụ cùng một lúc mà không làm mất đi sự hài hòa [11]

Bên cạnh GAN, Long-Short Term Memory (LSTM) cũng là một loại hình AI được ứng dụng nhiều trong sáng tác âm nhạc [12-14] Trong đó, đặc tính về chuỗi nốt, cũng như liên kết giữa các nốt là mối quan tâm chính Ví dụ, dự án Magenta của

Google cũng đã xây dựng được một Melody RNN với khả năng tạo nhạc theo chuỗi mang phong cách của những nghệ sĩ nổi tiếng [9->15]

Theo hiểu biết của tác giả, các nghiên cứu hiện tại chưa làm rõ được những vấn đề sau Thứ nhất, chưa có nghiên cứu nào đi vào việc kết hợp hai mô hình GAN và LSTM nhằm tận dụng các ưu điểm của chúng và giảm thiểu các bất lợi tương ứng Thứ hai, tồn tại rất ít các nghiên cứu tập trung vào cấu trúc, thành phần của một bài hát, đặc biệt là giai đoạn chuyển điệu giữa các phần trong cùng một bài hát Nhận thấy khe hở này, luận văn này sẽ xây dựng một mô hình AI giải quyết các vấn đề trên.

Mục tiêu và nhiệm vụ nghiên cứu

Đề tài luận văn này sẽ hướng đến những mục tiêu sau:

- Xây dựng và hoàn thiện một mô hình AI kết hợp giữa GAN và LSTM cho việc sáng tạo âm nhạc, trong đó sản phẩm được định hình bởi số lượng các nốt, cùng các cao độ và trường độ tương ứng

- Mô hình được kiểm định về khả năng học trên phần mềm thông qua ngôn ngữ Python Cụ thể, các đánh giá về thời gian huấn luyện và kết quả huấn luyện được tập trung làm rõ

- Bên cạnh đó, mô hình AI sẽ được xây dựng và kiểm định trên phần cứng sử dụng ngôn ngữ mô tả phần cứng (Verilog), mô phỏng bằng phần mềm chuyên dụng (VCS/Questa) Cụ thể, các kiểm định về mặt chức năng và tốc độ của mô hình sẽ được quan tâm

- Âm nhạc do máy tạo ra hướng đến những bài hát với nhiều phần, cụ thể là một Verse và một Chorus, trong đó khoảnh khắc chuyển đổi giữa các phần sẽ được làm cho mượt mà, đồng thời các phần phải thể hiện được âm sắc phù hợp cho người nghe.

CƠ SỞ LÝ LUẬN VÀ GIẢ THUYẾT KHOA HỌC

Mạng đối nghịch tạo sinh GAN (Generative Adversarial Network)

3.1.1 Giới thiệu Để hiểu rõ GAN, trước hết ta cần làm rõ một mô hình mạng nơ-ron cơ bản Một mạng nơ-ron thường gồm nhiều lớp, mỗi lớp gồm nhiều nút, với các kết nối giữa những nút ở lớp trước với lớp sau [16] như trong hình 1 Mô hình mạng này chính là mô phỏng của não người với các kết nối phúc tạp giữa các nơ-ron, điều giúp thực hiện được các suy nghĩ hay hành động tinh vi

Hình 1 Mô hình mạng nơ-ron cơ bản

Các kết nối giữa các nút trong mạng nơ-ron thường được thông số hóa bởi các weight Nói cách khác, từ một dữ liệu đưa vào mạng nơ-ron, nó sẽ được tính toán bởi một hàm số (đại diện cho mạng nơ-ron) thông qua các weight, và đưa ra kết quả là dữ liệu ra Điều này được thể hiện trong hình 2, trong đó các weight đóng vai trò quan trọng trong việc định hình dữ liệu đầu ra dựa trên dữ liệu đầu vào Thông qua cập nhật và điều chỉnh các hệ số trên, máy sẽ hướng đến việc tạo dữ liệu ra phù hợp với dữ liệu vào

Hình 2 Cấu trúc mạng nơ-ron cơ bản

Cụ thể hơn, máy sẽ trải qua hai quá trình sau:

- Rèn luyện (Training): máy tính sẽ được cung cấp một tập dữ liệu vào có dữ liệu ra đã biết trước (tập này gọi là training set) Dựa vào đầu vào và đầu ra từ training set, máy tính sẽ tự điều chỉnh các weight của chính nó sao cho dữ liệu ra của nó sai lệch so với đầu ra đã biết trước của training set ít nhất có thể Sau quá trình này, máy được coi là đã “học”

- Kiểm tra (Test): máy tính được cung cấp ngõ vào là một tập dữ liệu mới khác với training set(gọi là test set), sau đó tự tính toán ra ngõ ra tương ứng Ngõ ra này sẽ được so sánh, đánh giá với ngõ ra thực tế của test set Nếu kết quả đánh giá không tốt, nghĩa là máy chưa đủ đáp ứng về độ chính xác, cần điều chỉnh lại hoặc cần “học” nhiều hơn; ngược lại, nếu kết quả đánh giá tốt, máy có thể đưa vào ứng dụng

Mạng nơ-ron không giới hạn kích thước hay số chiều của cả dữ liệu vào lẫn dữ liệu ra Một mạng nơ-ron với kích thước dữ liệu vào lớn trong khi dữ liệu ra nhỏ thường là các mạng nơ-ron dùng trong nhận định hay phân loại, ở đó, từ dữ liệu vào, các đặc trưng đáng chú ý được trích xuất ra và chỉ giữ lại những gì quan trọng nhất (dữ liệu ra) để sử dụng Ở chiều ngược lại, mạng nơ-ron có kích thước dữ liệu ra vượt trội so với dữ liệu vào thường là những mạng nơ-ron cho việc hồi phục hay tạo dữ liệu mới, trong đó, dữ liệu vào thường là các đặc điểm, các yêu cầu vể dữ liệu ra, sau đó chúng sẽ được sử dụng bởi mạng nơ-ron để tạo ra dữ liệu mới Hai loại mạng nơ-ron này được mô tả trong hình 3

Hình 3 Các loại mạng nơ-ron

GAN là mô hình sử dụng cả hai loại mạng nơ-ron nêu trên Trong đó, mạng nơ- ron có dữ liệu vào lớn được gọi là discriminator, với nhiệm vụ nhận định dữ liệu vào mà nó nhận được là thật hay giả Discriminator trong luận văn này sẽ có nhiệm vụ phán đoán âm thanh mà nó nhận được có hợp lý, có đúng là nhạc thật hay không Ở phía ngược lại sẽ là mạng nơ-ron được gọi là generator, với mục đích tạo ra dữ liệu mới dựa trên những dữ liệu vào ít ỏi Trong luận văn này, generator sẽ tạo ra nhạc chỉ từ các nhiễu (dữ liệu random)

GAN được mô tả là mô hình dựng nên dựa trên một “cuộc chiến” giữa generator và discriminator Generator sẽ cố gắng tạo ra dữ liệu “như thật” nhằm qua mặt discriminator và discriminator thì phải cố gắng đoán chính xác rằng dữ liệu nó nhận được là thật hay giả Ở khởi điểm của việc huấn luyện GAN, tất nhiên generator chỉ tạo ra những dữ liệu đầy nhiễu cũng như discriminator chỉ dự đoán một cách ngẫu nhiên Để tận dụng khả năng học hỏi của cả hai, cần có một quá trình huấn luyện phù hợp, như được thể hiện trong hình 4

Hình 4 Quá trình huấn luyện của GAN

Quá trình trên được mô tả như sau:

- Bước 1: Huấn luyện cho discriminator o Dữ liệu từ generator (dữ liệu máy tạo) được đưa cho discriminator nhận định với nhãn 0 (giả) Sai số giữa dự đoán và thực tế sẽ dùng để cập nhật weight của discriminator o Dữ liệu thật từ tập dữ liệu (thu thập trước đó) được đưa cho discriminator nhận định với nhãn 1 (thật) Sai số giữa dự đoán và thực tế sẽ dùng để cập nhật weight của discriminator

- Bước 2: Huấn luyện cho generator o Dữ liệu từ generator (dữ liệu máy tạo) được đưa cho discriminator nhận định với nhãn 1 (thật) Sai số giữa dự đoán và thực tế sẽ dùng để cập nhật weight của generator Khi này, các weight của discriminator sẽ được giữ cố định, sai số sẽ chỉ được dùng cho cập nhật weight của generator

3.1.2.1 Lớp dense (Dense layer) Đây là lớp cơ bản nhất trong một mạng nơ-ron Các kết nối giữa các nút sẽ mang theo một giá trị weight Từng nút sẽ lấy tổng các tích giữa dữ liệu từ lớp trước cùng với weight tương ứng Kết quả tổng sẽ được đưa qua một hàm kích hoạt (sẽ được mô tả ở phần sau) và có thể đưa đến lớp tiếp theo Ví dụ về lớp dense được thể hiện trong hình 5

Hình 5 Cấu trúc lớp dense Bằng cách thu thập dữ liệu từ tất cả các nút thuộc lớp trước, mỗi nút thuộc lớp sau có thể lấy được thông tin hữu ích từ lớp trước Số nút của hai lớp kế cận có thể khác nhau Trường hợp số nút của lớp sau nhiều hơn lớp trước thường được dùng trong generator (tạo ra dữ liệu lớn hơn) trong khi trường hợp ngược lại thường được dùng trong discrmininator

3.1.2.2 Hàm kích hoạt (Activation function)

Các phép toán như ta đã thấy trong các nút đều là các phép toán tuyến tính Do đó, hàm kích hoạt được thêm vào như một nhân tố phi tuyến Trên thực tế, dữ liệu rất hiếm khi phân bố tuyến tính, do đó hàm kích hoạt đối với mạng nơ-ron có tác dụng

“uốn cong” những “suy nghĩ” tuyến tính, một chiều, làm tăng khả năng học hỏi và thích nghi của mạng nơ-ron

Trong các máy AI thường gặp, hai hàm số sau đây được dùng nhiều nhất cho hàm kích hoạt: hàm sigmoid và hàm ReLU [17] Mô tả của các hàm này được thể hiện trong hình 6 Trong đó:

Hình 6 Đồ thị hàm sigmoid và ReLU Trong khi hàm sigmoid cố định ngõ ra của nó trong khoảng [0;1] thì hàm ReLU không có giới hạn chặn trên Tuy nhiên, hàm ReLU dễ tính toán hơn rất nhiều so với hàm sigmoid Trong từng trường hợp cụ thể, người ta sẽ lựa chọn loại hàm kích hoạt phù hợp [18]

3.1.2.3 Hàm mất mát (Loss function) và gradient descent Để đánh giá sai số của mạng nơ-ron, người ta sử dụng nhiều hàm mất mát để đánh giá độ sai lệch giữa ngõ ra thực tế của mạng với ngõ ra mong muốn Có 3 loại hàm mất mát phổ biến: sai số trung bình bình phương (mean squared error), cross- entropy phân loại (categorical cross-entropy) và cross-entropy nhị phân (binary cross- entropy) Trong khi sai số trung bình bình phương dùng nhiều trong các bài toán nhấn mạnh chênh lệch, các hàm sai số cross-entropy dùng nhiều trong các bài toán phân loại [19] Công thức của các hàm này như sau, với 𝑛 là tổng số đơn vị ngõ ra, 𝑦 𝑖 và 𝑝 𝑖 là ngõ ra do mạng nơ-ron tương ứng với đơn vị ngõ ra thứ 𝑖:

Ứng dụng Machine Learning trong âm nhạc

3.2.1 Cơ bản về âm nhạc Âm nhạc là một bộ môn nghệ thuật sử dụng chất giọng, âm thanh để diễn đạt các cung bậc cảm xúc của con người Trong đó ca từ hay thanh nhạc thể hiện trực tiếp ý tưởng, cảm xúc, còn âm thanh từ nhạc cụ hay khí nhạc thì trừu tượng hơn, nhưng tác động đến cảm xúc và liên tưởng của thính giả rất mạnh

Trong khi ngôn ngữ là một phạm trù phức tạp ngay cả đối với con người, khí nhạc thường dễ cho các GAN có thể thực thi hơn GAN trong trường hợp này sẽ tạo ra các chuỗi nốt có cao độ và trường độ thích hợp Cái khó là làm cho những nốt này luân chuyển êm ái, chuyển đổi nốt không mang đến khó chịu

Trong âm nhạc, các nốt có thể có độ dài vang lên khác nhau, trong đó người ta quy ước các nốt như trong hình 10 [24]

Hình 10 Trường độ các nốt trong âm nhạc

(Nguồn: https://fidgetcube.vn/mot-kien-thuc-nhac-ly-can-ban-ap-dung-vao-kalimba-phan-

1/gia-tri-truong-do-am-thanh/) Thực tế không có quy ước về việc một nốt có thể kéo dài chính xác bao lâu (đến từng giây) Tuy nhiên hệ thống quy ước như trên giúp người ta căn chỉnh cho các nốt diễn ra đồng điệu Dùng nhiều thời gian hơn cho một nốt chuẩn có thể làm bài hát chậm rãi, da diết hơn Điều này tùy thuộc vào người biểu diễn

Bên cạnh trường độ, cao độ được dùng để mô tả độ trầm hay bổng của nốt tương ứng Trong đó 7 nốt chuẩn Đô, Rê, Mi, Fa, Sol, La, Si (C, D, E, F, G, A, B) tạo thành một quãng tám Trong âm nhạc thường thức người ta hay dùng 7 quãng tám trong khoảng 32.7 Hz đến 3951.07Hz như trong hình 13 [25]

Trong 7 tên nốt, khoảng cách cao độ của chúng không đồng đều nhau, có thể là khoảng cách nửa cung hay một cung tròn như trong hình 11 Mỗi cung có thể chia làm hai nửa cung, trong đó các nốt ở giữa này thường được gọi là nốt thăng ♯ (của nốt nửa cung phía trước) hay nốt giáng ♭ (của nốt nửa cung phía sau) Tần số tương ứng của các nốt này được thể hiện trong hình 12

Hình 11 Khoảng cách cung và nửa cung giữa các nốt chuẩn

(Nguồn: https://quizlet.com/510616560/bai-5-cung-va-nua-cung-flash-cards/)

Hình 12 Tần số của các nốt nhạc trong âm nhạc

(Nguồn: https://en.wikipedia.org/wiki/Pitch_(music))

3.2.2 Tệp MIDI và cách thức lưu trữ âm nhạc trong máy tính

MIDI (Musical Instrument Digital Interface) là chuẩn công nghiệp về nghi thức giao thông điện tử trong đó xác định rõ các nốt âm nhạc nhằm giúp cho nhạc cụ điện tử và máy tính trao đổi dữ liệu với nhau [26] Một tệp MIDI là một tập tin lưu trữ tiêu chuẩn mà ở đó sẽ bao gồm đầy đủ thông tin về cao độ, trường độ, hợp âm,… của một bản nhạc Do đó, các tệp MIDI thường được dùng để lưu trữ lượng lớn thông tin âm nhạc và dùng cho huấn luyện các mạng nơ-ron về âm nhạc

Một tệp MIDI sẽ gồm hai thành phần cơ bản: Header chunk và Track chunk Trong đó một tệp MIDI chỉ bao gồm một Header chunk duy nhất trong khi có thể bao gồm nhiều Track chunk

Header chunk xuất hiện ở đầu file và có định dạng như sau (dưới dạng mã hex):

4D 54 68 64 00 00 00 06 ff ff nn nn dd dd

Bốn byte đầu tiên là quy định tiêu chuẩn của tệp MIDI, bốn byte kế tiếp thể hiện độ dài của Header chunk và luôn là 6 Hai byte kế tiếp (ff ff) là định dạng của file, bao gồm 3 định dạng sau:

- 2 – Nhiều track, bất đồng bộ

Track đơn chỉ bao gồm một track (một loại nhạc cu duy nhất) Định dạng nhiều track có thể bao gồm nhiều track khác nhau (nhiều loại nhạc cụ) Nếu chúng là đồng bộ, các track sẽ bắt đầu cùng lúc, và ngược lại trong trường hợp bất đồng bộ

Hai byte kế tiếp (nn nn) trong Header chunk là số track trong tệp MIDI Hai byte (dd dd) là số lượng của một tick delta-time ứng với mỗi một nốt đen Delta-time là thời gian chờ trước khi một MIDI event được bắt đầu (trong Track chunk) Ở phía sau của Header chunk là các Track chunk Một Track chunk sẽ có định dạng như sau:

4D 54 72 6B xx xx xx xx Data1 Data2 …

Bốn byte đầu tiên là tiêu chuẩn của Track chunk trong tệp MIDI Bốn byte kế tiếp (xx xx xx xx) là độ dài của track (không bao gồm 8 byte đầu của Track chunk) tính theo byte Phía sau 8 byte này là các MIDI data MIDI data sẽ bao gồm delta-time và MIDI event Mỗi MIDI event trước khi bắt đầu sẽ phải chờ một khoảng delta-time, mà thời gian mỗi tick của delta-time được định nghĩa trong Header chunk Delta-time có mục đích nhằm giảm lãng phí các dữ liệu toàn 0 để chờ giữa các MIDI event Không có ranh giới rõ ràng giữa MIDI event và delta time, thay vì đó người ta sẽ đọc dần từng byte theo thứ tự từ trái sang phải, cho đến khi gặp được một byte có bit đầu tiên (MSB) bằng 0 thì đó là kết thúc của delta-time 7 bit còn lại trong những byte đã đọc nối lại sẽ cho ta delta-time của MIDI event kế tiếp

Các MIDI event có nhiều định dạng khác nhau, với nhiều mã lệnh riêng biệt, từ định nghĩa văn bản, bản quyền, tên nhạc cụ, lời nhạc, khóa nhạc, các nốt,… Do đó, phần này sẽ không tiện trình bày trong luận văn

3.2.3 Long-Short Term Memory (LSTM)

3.2.3.1 Cấu trúc và vận hành

Dữ liệu trong âm nhạc (các nốt) mang nặng tính tuần tự Đặc điểm của nốt phía sau không thể quá chênh lệch với nốt phía trước, về cả cao độ và trường độ Mô hình các mạng nơ-ron mô tả ở phần trước tỏ ra hiệu quả với các dữ liệu mang thông tin không gian như hình ảnh và ngược lại với văn bản hay âm nhạc Do đó, Long Short- Term Memory (LSTM) được đề xuất là một mô hình mạng nơ-ron chuyên dụng cho xử lý thông tin có tính tuần tự [27]

Một mô hình LSTM cơ bản sẽ có cấu trúc như được mô tả ở hình 13 Ở đó, dữ liệu vào được đưa vào mạng LSTM tuần tự theo chuỗi, mỗi lần chỉ có một dữ liệu được xử lý (một timestep) Lớp Embedding là một bảng tra mà ở đó với từng loại dữ liệu vào sẽ được map qua một vector tương ứng trong bảng (Vector này cũng được coi là các weight) Vector trên sẽ được đưa vào LSTM Cell LSTM Cell có thể hiểu như một phần tử ghi nhớ Nó sẽ học những điều mới của dữ liệu đang nhận đồng thời giữ lại những gì hữu ích từ những dữ liệu trước đó Bằng cách đó, LSTM Cell có thể phán đoán đặc điểm của dữ liệu kế tiếp thông qua những dữ liệu đã học hỏi được

Hình 13 Cấu trúc của một mạng LSTM

Cấu trúc của LSTM Cell được thể hiện trong hình 14 Trong đó h được gọi là trang thái ẩn (hidden state) và sẽ là output của LSTM Cell sau từng timestep Bên cạnh đó, LSTM Cell còn bao gồm C là trạng thái cell, có thể được hiểu là niềm tin của LSTM Cell về trạng thái hiện tại của nó Hai loại trạng thái này (C và h) sẽ được thể hiện dưới dạng hai vector cùng kích thước (kích thước này gọi là số unit của LSTM Cell) Trong LSTM Cell sẽ bao gồm các gate (thực chất là các lớp Dense) nhằm trích xuất những thông tin cần giữ trong quá trình luân chuyển dữ liệu

Hình 14 Cấu trúc và hoạt động của LSTM Hoạt động của LSTM Cell được mô tả theo 6 bước:

Mô hình mạng GAN-LSTM cho âm nhạc

3.3.1 Những vấn đề tồn đọng cụ thể

Phần này xin trình bày những vấn đề còn tồn đọng mà người thực hiện luận văn rút ra trong quá trình thu thập, phân tích các nghiên cứu trước đó Trong đó, hai vấn đề cụ thể nhất sẽ được nêu ra sau đây

Vấn đề đầu tiên cần bàn đến là về tính hợp lý của các đoạn nhạc Tính hợp lý ở đây là nói đến phân bố cao độ cùng trường độ của các nốt trong một đoạn nhạc cụ thể, cũng như các mối liên kết giữa các nốt, các nhóm nốt gần kề nhau

Như đã trình bày ở phần trên, LSTM vốn được xây dựng để tạo ra dữ liệu theo chuỗi Trong đó, để xây dựng nốt (cao độ/trường độ) ở một thời điểm, LSTM sẽ sử dụng những thông tin hữu ích lưu trữ từ một đến một vài nốt của những thời điểm trước đó Cơ chế có chú ý (attention mechanic), khi đó, có tác dụng tăng khả năng liên hệ với những nốt ở xa hơn trên trục thời gian (các nốt cũ hơn), qua đó tăng mức độ tin cậy của nốt được tạo ở thời điểm hiện tại thông qua nhiều liên kết chặt chẽ hơn với các nốt phía trước Trong luận văn này, LSTM được mô tả là mang tính “cục bộ”

LSTM có cho bản thân một số lợi thế rất rõ ràng Thứ nhất, các nốt thường rất ít khi bị “lạc nhịp”, khi chúng liên hệ chặt chẽ thành nhiều nhóm nốt được sắp xếp theo chuỗi Thứ hai, độ dài của chuỗi không bị giới hạn bởi một biên giới cụ thể nào, bởi vì cứ tiếp tục giữ nguyên vận hành của LSTM trong thêm một đơn vị thời gian, một nốt mới sẽ lại được tạo nên, và không bị ràng buộc nào cả Ở chiều ngược lại, một số hạn chế cũng có thể được chỉ ra ở LSTM Đầu tiên, khi mà chuỗi các nốt bắt đầu tăng lên, các liên kết giữa nốt dần trở nên thiếu ổn định hơn, đặc biệt là những nốt ở xa nhau trên trục thời gian Lấy một ví dụ cụ thể, giả sử nốt ở ban đầu đoạn nhạc mang cao độ ở quãng tám thứ ba, nhưng sau một thời gian mà LSTM vận hành, nốt ở thời điểm hiện tại có thể nằm ở quãng tám thứ năm Đây là điều hiếm khi xảy ra trong một đoạn nhạc thuộc âm nhạc đại chúng, nhưng hoàn toàn có thể xảy đến bởi LSTM không nắm bắt được những liên kết các nốt này, và kết quả này có được là do những quá trình cục bộ tăng dần về cao độ giữa các nốt gần nhau

Một bất lợi khác của LSTM nằm ở chính việc chuỗi nốt nó tạo ra không bị giới hạn Theo thường thức phổ thông, một đoạn nhạc thì sẽ có hồi kết, và nốt ở điểm kết của một đoạn nhạc thường mang tông trầm hơn các nốt còn lai Trong khi đó, LSTM cơ bản là một máy tạo nốt theo chuỗi, không quan tâm đến điểm đầu cũng như điểm cuối của chuỗi Điều này đặt ra một thách thức về thời điểm kết thúc chuỗi của LSTM, cũng như kết thúc bằng nốt hay các nốt cụ thể như thế nào vẫn chưa được làm rõ

Mô hình thứ hai dùng trong tạo nhạc được đề cập đến là GAN GAN là mô hình được xây dựng hiệu quả hơn cho dữ liệu thuộc dạng hình ảnh, vì tính chất của nó tập trung vào toàn cảnh dữ liệu, ở đó các đặc trưng của dữ liệu được trích xuất từ tệp mẫu và tái xây dựng lại thành dữ liệu hợp lý Nói cách khác, GAN quan tâm đến liên hệ của từng miền, từng khối dữ liệu mang tính toàn thể, thay vì chú ý vào tính liên tục của các điểm dữ liệu kế cận nhau Trong luận văn này, GAN được xem là có tính “toàn thể” Ứng dụng GAN vào âm nhạc mang một lợi ích rất cụ thể, đó là tăng cường tính liên kết giữa những điểm nốt ở xa nhau, điều mà LSTM chưa làm tốt Tuy nhiên, cách ứng dụng GAN vào âm nhạc cũng gặp phải một số trở ngại Thứ nhất, kích thước của một đoạn nhạc không là một con số cố định, trong khi dữ liệu tạo sinh bởi GAN thì có Thứ hai, vẫn chưa có một phương pháp cụ thể nào (theo hiểu biết của tác giả) nhằm vào việc kết hợp GAN với LSTM trong việc tạo âm nhạc, cũng như phương pháp tận dụng được những lợi thế của từng mô hình cụ thể

Một vấn đề khác mà người thực hiện luận văn tìm được trong quá trình thu thập, phân tích dữ liệu là về các mối liên kết giữa những thành phần trong một bài hát Như đã trình bày, một bài hát bao gồm nhiều phần, và cấu trúc các phần, cách thức sắp xếp chúng cũng không có một tiêu chuẩn cụ thể nào Điều này đặt ra hai thách thức cần giải quyết:

- Cấu trúc bài hát sẽ bao gồm những thành phần nào và sắp xếp chúng làm sao cho hợp lí

- Cách thức làm sao để bài hát chuyển đổi giữa các phần mà không bị mất đi tính tự nhiên của bài hát, hay nói cách khác, làm sao cho các phần trong bài hát được liên kết phù hợp nhất có thể, thể hiện một sự chuyển điệu “mượt mà”

Sau khi phân tích LSTM và GAN, tác giả nhận thấy có những ưu điểm cũng như bất lợi của những mô hình này, đơn giản là vì chúng tập trung vào những khía cạnh khác nhau của dữ liệu Dựa trên cơ sở đó, luận văn này trình bày mô hình GAN-LSTM, trong đó các ưu điểm của GAN được tận dụng để bổ khuyết cho LSTM và ngược lại

Mô hình GAN-LSTM sẽ học từ hai nguồn: một nguồn từ LSTM nhằm xây dựng dữ liệu có tính tuần tự, và một nguồn từ generator của GAN nhằm học dữ liệu toàn thể Giả sử mô hình này huấn luyện và chỉnh sửa hệ số một cách luân phiên giữa hai nguồn này, trong đó sử dụng chung một tập hệ số nội tại (coefficient); khi đó, kết quả sẽ không đạt được hiệu quả học mong muốn bởi mô hình đang bị ép học theo hai hướng khác nhau trong cùng một khoảng thời gian, dẫn đến việc những thay đổi về các hệ số nội tại không cải thiện khả năng học của mô hình

Giải pháp cho vấn đề trên chính là chia tập hệ số của mô hình ra làm 3 phần: phần (I) sẽ được cập nhật dựa theo LSTM, phần (II) được cập nhật theo discriminator của GAN và phần (III) còn lại được cập nhật theo cả hai nguồn trên (luân phiên)

Hình 16 thể hiện cấu trúc của mô hình GAN-LSTM, mà ở đó, quá trình huấn luyện được thực hiện theo những bước sau:

- Bước 1 (Huấn luyện cho LSTM): LSTM ban đầu sẽ được cung cấp một tập dự liệu âm nhạc thật (A) và sẽ tự huấn luyện mình theo tập này, cùng với sự hỗ trợ của cơ chế có chú ý như đã trình bày ở phần trước Quá trình này sẽ biến đổi LSTM thành nguồn đáng tin cậy cho mô hình GAN-LSTM về dữ liệu tuần tự

- Bước 2 (Huấn luyện cho generator của GAN): Đây chính là quá trình huấn luyện cho GAN như đã trình bày ở phần trước, trong đó generator và discriminator được huấn luyện luân phiên, trong đó discriminator được huấn luyện ở tốc độ cao hơn nhằm tránh mode collapsing và hạn chế khả năng quyết định sai của nó Quá trình huấn luyện này được tiến hành trong một số lượng epoch nhất định nhằm tạo được giới hạn, tạo “bô khung” cho generator Trong quá trình này, chỉ có các hệ số thuộc phần (II) và (III) của generator được cập nhật

- Bước 3 (Huấn luyện tuần tự cho generator): Dữ liệu random sẽ được dùng làm dữ liệu vào cho cả LSTM và generator, kết quả của chúng sẽ được đánh giá mức độ tương đồng thông qua hàm sai số cross-entropy Sau đó, quá trình lan truyền ngược sẽ cập nhật lại các hệ số của generator thông qua hàm sai số trên, tuy nhiên chỉ cập nhật ở các phần (I) và (III)

- Các bước 2 và 3 được thực hiện luân phiên nhau, mỗi bước tiến hành trong một số lượng epoch nhất định Trong đó, phần III của generator, được cập nhật theo hai nguồn, do đó cần có các hệ số 𝐶 𝑙𝑜𝑐 và 𝐶 𝑔𝑒𝑛 nhằm quyết định mức độ ảnh hưởng của LSTM và discriminator lên phần (III) của generator Về mặt bản chất, tính tuần tự của âm nhạc sẽ quan trọng hơn tính toàn thể nên 𝐶 𝑙𝑜𝑐 sẽ được lựa chọn giá trị lớn hơn 𝐶 𝑔𝑒𝑛 Quá trình huấn luyện kết thúc khi mà discriminator đưa ra quyết định trong vùng “không chắc chắn”, tức giá trị ngõ ra nằm trong khoảng 0.4-0.6

Hình 16 Cấu trúc mô hình GAN-LSTM

Nhằm tránh kết quả cập nhật sai số bị cập nhật với biên độ lớn, ràng buộc được đặt ra như sau:

PHƯƠNG PHÁP NGHIÊN CỨU

Phương pháp xây dựng dữ liệu

Dữ liệu về nốt bao gồm hai yếu tố quan trọng nhất là cao độ và trường độ Về cao độ, luận văn này sẽ sử dụng 84 loại cao độ, tương ứng với 7 lần lặp lại của các nốt chuẩn Đô, Rê, Mi, Fa, Sol, La, Si chênh lệch nhau một quãng tám từng đôi một Về mặt trường độ, để dễ quy chuẩn, mỗi phần tử dữ liệu trong mô hình GAN của luận văn sẽ được quy cho độ dài trường độ là bằng với 1 nốt móc kép Khi đó, thay vì sử dụng dữ liệu nốt theo cao độ và trường độ, một phần tử dữ liệu trong luận văn này sẽ gồm 2 thông tin sau:

- Cao độ: nằm trong khoảng [0;84] ứng với 84 cao độ khác nhau cộng với dấu lặng (bằng 0)

- Tính liên tục (Continuity Coefficient hay CC): bằng 1 nếu phần tử này thuộc chung một nốt với phần tử dữ liệu phía trước và bằng 0 trong trường hợp ngược lại

Một phần tử dữ liệu như vậy trong luận văn này sẽ được gọi là một Data Unit hay DU, với kích thước về trường độ là một Length Unit, hay LU, và kích thước về cao độ là một Pitch Unit, hay PU Một ví dụ về chuỗi các DU như mô tả ở trên được thể hiện trong hình 18 Các nốt trong dữ liệu tập dữ liệu trong trường hợp là các nốt liên ba hay liên năm sẽ lần lượt được chuyển hóa thành tổ hợp hai nốt và bốn nốt tương ứng cho phù hợp với yêu cầu về trường độ Dữ liệu do GAN-LSTM tạo ra sẽ không có loại hình các nốt kiểu này.

Hình 18 Xây dựng chuỗi dữ liệu theo cao độ và tính liên tục

Lý do của việc xây dựng dữ liệu như trên là nhằm tạo ra một miền dữ liệu hai chiều có kích thước cố định, qua đó có thể sử dụng chung với mô hình GAN Dữ liệu do mô hình GAN-LSTM do đó sẽ không có kích thước vượt quá kích thước nói trên Kích thước chiều dài của khuôn mẫu nói trên sẽ được lựa chọn là 200 LU, đại diện cho kích thước tối đa của đoạn nhạc theo trường độ, trong đó giá trị trường độ có thể là 0 hoặc 1 (tính liên tục) Về mặt cao độ, kích thước sẽ được cố định bằng 85 (7 quãng tám cộng với dấu lặng)

Trong trường hợp âm nhạc do mô hình GAN-LSTM tạo ra có kích thước nhỏ hơn 200 LU, các DU còn thiếu sẽ được thay thế bằng dấu lặng và CC bằng 0 Điều này đảm bảo cho dữ liệu tạo ra không bị hạn chế về mặt sáng tạo, và làm đa dạng các khả năng của dữ liệu âm nhạc tạo ra.

Phương pháp thu thập và tiền xử lý dữ liệu

Dữ liệu sử dụng cho huấn luyện mô hình GAN trong luận văn này sẽ được thu thập dưới dạng tệp MIDI từ kho dữ liệu của website hooktheory.com Đây là trang web dành cho người viết nhạc và gồm kho dữ liệu số lượng lớn các bài hát trên thế giới [30] Ngoài ra, các bài hát được chia thành từng phần nhỏ (verse, bridge, chorus,…), thích hợp cho mô hình GAN-LSTM trong luận văn này Một ví dụ về verse của bài hát được thể hiện trong hình 19

Hình 19 Ví dụ về phần Verse của ca khúc Crazy Little Thing Called Love trên hooktheory.com

Phần việc còn lại là xử lý dữ liệu thu thập được trong thư viện nói trên, biến đổi chúng thành các dữ liệu tương thích với mô hình GAN-LSTM: một khuôn dữ liệu có kích thước 200LU x 85PU x 2CC, trong đó trường độ các nốt cần được xử lý và chuyển về dạng hệ số liên tục (CC) Để làm được điều này, cần có một chương trình phần mềm nhằm biến đổi các tệp MIDI về dạng thích hợp Âm nhạc trong tệp MIDI không được thể hiện dưới dạng các nốt, mà thể hiện dưới dạng những quãng thời gian duy trì một cao độ âm nhạc nhất định Để trích xuất được các nốt và biến đổi về dạng phù hợp, các bước sau sẽ được thực hiện:

- Bước 1: Xử lý các MIDI header nhằm trích xuất ra các thông tin cần thiết, bao gồm số lượng track, số lượng tick trong ứng với một nốt đen (đơn vị tính thời gian trong tệp MIDI là tick, hay delta time) Trong trường hợp tệp MIDI có nhiều track, track được lựa chọn làm đại diện cho bản nhạc sẽ là track đầu tiên Track đầu tiên trong các tệp MIDI thu thập từ thư viện hooktheory sẽ là track của nhạc cụ Piano, chứa đựng các nốt gần gũi nhất với nội dung bài hát, do phần track này được dùng để thay thế phần âm thanh do người hát

- Bước 2: Chương trình sẽ dựa trên các mã Note On và Note Off để xác định các thời điểm bắt đầu và kết thúc nốt Tương ứng với các mã trên, sẽ có cao độ và delta time tương ứng đi kèm, sử dụng những dữ liệu này thì người dùng sẽ rút ra được cao độ và trường độ của nốt Trong trường hợp mã Note On có delta time tương ứng lớn hơn 0, phần thời gian này sẽ đại diện cho các nốt lặng

- Bước 3: Từng nốt sẽ được xử lý tuần tự, trong đó mỗi nốt sẽ được chia nhỏ thành các DU, trong đó PU của các DU thuộc cùng một nốt sẽ giống hệt nhau

CC của DU đầu tiên bằng 0 và bằng 1 cho tất cả các DU còn lại thuộc cùng một nốt Các DU sẽ được sắp xếp tuần tự vào khuôn dữ liệu

- Bước 4: Trong trường hợp khuôn dữ liệu còn trống, các DU còn lại kể từ nốt cuối cùng sẽ được gán giá trị lần lượt là 0 về PU và 0 về CC.

Phương pháp xây dựng mô hình GAN-LSTM

4.3.1 Xây dựng mô hình học máy trên Python

Mô hình GAN-LSTM trong luận văn này sẽ tận dụng cả hai loại mạng GAN và LSTM như đã trình bày ở các phần trước Trong đó, LSTM sẽ được ứng dụng trong việc quản lý các chuỗi nốt ở các phần Verse và Chorus, đặc biệt là quá trình chuyển điệu của chúng Mạng nơ-ron như trong trình bày ở phần mô hình GAN sẽ được dùng làm trục chính cho generator và discriminator, do chúng có khả năng bao quát tổng thể dữ liệu tốt hơn LSTM Mô hình GAN-LSTM trong luận văn này sẽ được chia làm 3 mô hình con, tương ứng với Verse, Chorus và Verse-Chorus Connection, như trong mô tả ở hình 20 Tên gọi của chúng lần lượt là mô hình GAN-LSTM cục bộ cho Verse (Verse Network), khối chuyển điệu Verse-Chorus (Connection Network) và mô hình GAN-LSTM cục bộ cho Chorus (Chorus Network)

Hình 20 Mô hình GAN tổng hợp 3 quá trình: Verse, kết nối Verse-Chorus và Chorus Verse Network sẽ bao gồm 3 thành phần chính: một generator để tạo ra dữ liệu phần Verse, một discriminator để nhận định dữ liệu do generator trên tạo ra, cùng một mạng LSTM để huấn luyện khả năng hình thành chuỗi của generator Cách thức huấn luyện của nó giống với mô tả ở phần trước cho các mạng GAN-LSTM cục bộ

Connection Network đơn giản là một LSTM có nhiệm vụ dự đoán các nốt tiếp theo dựa trên các nốt cuối cùng mà generator của mô hình con cho Verse tạo ra Các nốt này sẽ được gửi đến generator và discriminator của mô hình con cho Chorus với ý nghĩa như những condition

Chorus Network có cấu trúc khá tương tự với Verse Network Tuy nhiên dữ liệu vào của LSTM, generator và discriminator được cộng thêm giá trị condition từ

Connection Network để giữ lại các nốt đầu của chorus mà Connection Network tạo ra

Trong số các mạng nơ-ron được sử dụng, lần lượt 3 mạng LSTM ở 3 mô hình con sẽ có thông số giống nhau Điều tương tự cũng được thiết lập ở các mạng nơ-ron dành cho các generator và các discriminator Thông số của chúng lần lượt được thể hiện ở các hình 21, 22 và 23

Hình 21 Thông số các mạng LSTM

Hình 22 Thông số mạng nơ-ron cho các generator

Hình 23 Thông số mạng nơ-ron cho các discriminator Điểm khác biệt của các mạng nơ-ron nói trên nếu thuộc cùng thể loại đó là về dữ liệu dùng để huấn luyện chúng Do đó, dữ liệu từ thư viện hooktheory trước đó cần được chia rõ ràng, tương ứng với Verse, Chorus và chuyển điệu Verse-Chorus, nhằm sử dụng cho các LSTM và GAN tương ứng

Toàn bộ quá trình xây dựng, huấn luyện cũng như kiểm nghiệm khả năng học (thông qua các đánh giá định tính và định lượng) của mô hình GAN-LSTM nói trên sẽ được tác giả thực hiện trên nền tảng Jupyter Notebook với ngôn ngữ lập trình được sử dụng là Python Python là ngôn ngữ lập trình rất phổ biến ở thời điểm hiện tại, với rất nhiều thư viện hỗ trợ, do đó sẽ góp phần đảm bảo cho thời gian thực thi cũng như tính chính xác của kết quả

4.3.2 Xây dựng mô hình thực thi trên Verilog

Về mặt chức năng cơ bản, mô hình GAN-LSTM trên Python đã bao quát được các kiểm chứng về mặt chức năng, cũng như cách phân tích, đánh giá Tuy nhiên, luận văn này cũng sẽ thực hiện cùng mô hình này trên ngôn ngữ mô tả phần cứng Verilog nhằm chứng minh khả năng thực thi trên phần cứng và phân tích một số nhựng mặt lợi ích khác Cụ thể hơn, tác giả có thể dẫn ra hai nguyên nhân

Với nguyên nhân thứ nhất, luận văn tập trung vào khía cạnh thực thi trên phần cứng của mô hình GAN-LSTM nói riêng và các hệ thống AI nói chung Trên cơ sở lý thuyết, các mô hình AI được thực thi trên phần mềm rất được phổ biến rộng rãi, vì khả năng kế thừa, tái sử dụng nhiều mã lệnh, cũng như không đòi hỏi quá nhiều về các phép toán cơ bản Ở chiều ngược lại, thực thi một hệ thống với chức năng tương đương trên phần cứng có những thử thách sau: chứng minh tính vượt trội về thời gian xử lý (thế mạnh của xử lý phần cứng), và khả năng thực hiện các hàm toán trên phần cứng

Cấu trúc mô hình GAN được xây dựng hầu hết trên các hàm toán học Dữ liệu trong mô hình GAN cũng không có khoảng giá trị cố định Do đó, để thể hiện dữ liệu dùng trong tính toán ở cấp độ phần cứng, nghiên cứu luận văn này sẽ sử dụng định dạng floating point 32-bit nhằm chuẩn hóa dữ liệu

Các hàm toán được sử dụng trong mô hình bao gồm:

Về việc thực hiện các hàm này trên Verilog, luận văn này sẽ sử dụng lại các thiết kế/ các kết quả trong các nghiên cứu trước đây và sẽ cải tiến 1 số thiết kế để tối ưu hơn, bao gồm tính chính xác cũng như một số giải thuật tăng tốc Các cải tiến trên sẽ không được mô tả cặn kẽ trong luận văn này vì tính không liên quan mật thiết của chúng đến nghiên cứu, mà sẽ được chứng tỏ thông qua các đánh giá liên quan đến phần cứng trong các phần tiếp theo

Về mặt thời gian tính toán, thiết kế trên phần cứng thường sẽ có tốc độ tối ưu hơn trên phần mềm Nguyên nhân là vì thiết kế hoàn toàn được tối ưu cho các tính toán trên, trong khi các thiết kế trên phần mềm phải chịu nhiều ràng buộc với các CPU, các vi xử lý hay phần cứng tương ứng, vốn không được thiết kế riêng biệt cho mục đích tính toán trên Tóm lại, nguyên nhân thứ nhất cho việc thực thi trên phần cứng của mô hình GAN-LSTM là nhằm chứng tỏ khả năng thực thi thành công của mô hình trên phần cứng, đồng thời nhấn mạnh yếu tố ưu thế về mặt thời gian so với mô hình tương ứng trên phần mềm

Nguyên nhân thứ hai để tác giả thực thi mô hình trên phần cứng xuất phát từ khía cạnh nâng cao hiệu quả của mô hình GAN-LSTM Cụ thể, việc thực thi một số hàm toán lên phần cứng là rất phức tạp và tiêu tốn thời gian nghiên cứu vượt ngưỡng cho phép của luận văn này Các hàm toán này bao gồm nhiều giải thuật bổ trợ cho học máy như các giải thuật tiền xử lý dữ liệu, các giải thuật cho những lớp bổ sung, và các giải thuật đánh giá sai số thay thế Những giải thuật nói trên, rõ ràng mang lại hiệu quả làm việc cho mô hình AI, nhưng đi kèm với chúng là mức độ phức tạp cao cùng đòi hỏi nhiều nghiên cứu xung quanh Trong khi đó, các mô hình phần cứng có tốc độ vượt trội so với phần mềm; trong cùng một đơn vị thời gian, số mẫu dữ liệu mà mô hình phần cứng tạo ra có thể có số lượng gấp nhiều lần mô hình phần mềm tương ứng Như vậy, thay vì áp dụng nhiều giải thuật phức tạp lên mô hình GAN-LSTM, tác giả có thể sử dụng mô hình này trên phần cứng như một máy tạo dữ liệu số lượng lớn, sau đó lượng dữ liệu này sẽ được lọc thông qua các hàm đánh giá để chọn ra dữ liệu tốt nhất Nói cách khác, thay vì quá tập trung vào chất của dữ liệu được sinh ra bởi mô hình GAN-LSTM, tác giả có thể chọn lọc ra dữ liệu tốt nhất từ một số lượng dữ liệu có chất lượng từ thấp đến cao thông qua các khối đánh giá bổ sung, qua đó cho ra kết quả tương đương mà không mất nhiều công sức cùng thời gian (Hình 24)

Hình 24 Phương thức chuyển đổi cách tiếp cận trong sử dụng mô hình GAN-LSTM thông qua phần cứng

Về việc thực hiện các khối đánh giá bổ sung, các thông số đánh giá sau sẽ được lựa chọn (sẽ mô tả kĩ hơn các thông số này ở mục 4.5.1): bao gồm Biên độ cao độ nốt trung bình (Average Pitch Interval hay API), Biên độ nốt tối đa (Note range hay NR), Entropy của phân bố cao độ nốt (Pitch Entropy hay PE) và Xác suất trường độ ưu thế (Major length probability hay MLP) [31-33] Trong đó, API thể hiện mức độ liên kết giữa các nốt liền kề thông qua tính trung bình các chênh lệch về cao độ của chúng; NR thể hiện quãng nốt tối đa, quãng này càng lớn thì đoạn nhạc càng thiếu ổn định, PE thể hiện cho khả năng xuất hiện của các nốt không mong đợi, PE lớn thì dữ liệu đoạn nhạc nhiều khả năng thiếu gắn kết, và MLP đại diện cho trường độ nốt ưu thế về mặt số lượng trong đoạn nhạc cần đánh giá, trong trường hợp không có nốt ưu thế (xác suất xuất hiện nhỏ hơn 50%), khả năng đoạn nhạc thiếu tính hợp lý cũng tăng lên Cụ thể hơn, công thức sau thể hiện cách tính toán hàm đánh giá:

Trong đó, các hệ số 𝛼, 𝛽, 𝛾, 𝛿 là các hệ số cân chỉnh tỉ lệ nhằm thể hiện mức độ quan trọng của từng tiêu chí đánh giá lên hàm đánh giá; 𝑙𝑒𝑛 𝑠𝑐𝑜𝑟𝑒 là số lượng nốt có trong đoạn nhạc được đánh giá;𝑝 𝑖 , ∀𝑖 ∈ 1, 𝑙𝑒𝑛̅̅̅̅̅̅̅̅̅̅̅̅̅ 𝑠𝑐𝑜𝑟𝑒 là cao độ của các nốt trong đoạn nhạc, 𝑝 𝑚𝑎𝑥 và 𝑝 𝑚𝑖𝑛 lần lượt là cao độ cao nhất xuất hiện trong đoạn nhạc, 𝑝 𝑚𝑜𝑑𝑒 là cao độ của nốt có tần suất xuất hiện nhiều nhất; 𝑝𝑟𝑜𝑏𝑎𝑏𝑖𝑙𝑖𝑡𝑦(𝑙 𝑖 ), ∀𝑖 ∈ 1,4̅̅̅̅ lần lượt là xác suất xuất hiện của các nốt trắng (half), nốt đen (quarter), nốt móc đơn (eighth) và nốt móc kép (sixteenth) trong đoạn nhạc Hàm đánh giá theo những thông số trên có giá trị càng lớn thì đoạn nhạc được xét càng được đánh giá cao

Ngoài ra, nếu như mô hình GAN-LSTM trên phần mềm bao gồm đầy đủ các quá trình huấn luyện và thực hiện tạo dữ liệu, mô hình phần cứng tương ứng trong luận văn này chỉ thực hiện bước tạo dữ liệu, dựa trên dữ liệu các hệ số thu thập được từ mô hình phần mềm, qua đó chỉ thực hiện luồng dữ liệu feed forward (luồng dữ liệu theo chiều xuôi của các generator và các LSTM) Khi đó, mô hình phần cứng của GAN-LSTM được giảm tải khi cắt bớt được nhiều khối lượng và chỉ tập trung vào việc thực hiện tạo dữ liệu và chọn lọc dữ liệu tốt nhất.

Phương pháp mô phỏng

4.4.1 Mô phỏng kiểm chứng khả năng học hỏi của mô hình trên Python

Quá trình thực hiện mô phỏng trên Python của mô hình GAN-LSTM được hiện trên nền tảng máy tính cá nhân, trong đó bộ biên dịch và thực hiện mô phỏng ngôn ngữ Python được cung cấp bởi các phần mềm thuộc nền tảng Anaconda, với hệ thống thư viện mã nguồn mở cùng số lượng người dùng đông đảo [34] Ngoài ra, để phân chia mã lệnh có thể thực hiện theo nhiều luồng khác nhau, phần mềm Jupyter Notebook được chọn nhằm xây dựng các hoạt động riêng lẻ của các mạng nơ-ron cục bộ trong mô hình GAN-LSTM [35]

Ngoài ra, cách thức xây dựng, huấn luyện và kiểm chứng mô hình GAN-LSTM trong Python sẽ được thực hiện theo các bước sau:

- Bước 1: Thiết lập các thông số liên quan đến quá trình training, bao gồm batch (số dữ liệu cho một lần cập nhật hệ số), epoch (số lần thực hiện theo batch), tốc độ cập nhật hệ số (learning rate), bộ tối ưu (optimizer)

- Bước 2: Xây dựng các lớp cho từng mạng nơ-ron thông qua các lệnh khai báo mạng, thêm lớp, chèn thông số cho các lớp

- Bước 3: Thực hiện huấn luyện bằng cách sử dụng lệnh train() của thư viện, trong đó cần hết sức chú ý đến thời điểm hoạt động và vấn đề đóng băng hệ số, nhằm tránh sai sót không đáng có Quá trình huấn luyện kết thúc theo số epoch đã quy định ở bước trên

- Bước 4: Nhận định, đánh giá kết quả thông qua các hàm tính toán và vẽ biểu đồ Phần này sẽ được phân tích cụ thể hơn trong mục Phương pháp đánh giá kết quả ở phía sau của luận văn này

4.4.2 Mô phỏng chức năng trên phần cứng và synthesis (tổng hợp)

Quá trình mô phỏng, kiểm định cũng như tổng hợp của mô hình GAN-LSTM trên phần cứng được thực hiện trên các phần mềm của nhà cung cấp Synopsys Trong đó, quá trình mô phỏng và kiểm định được thực hiện trên phần mềm VCS, còn quá trình tổng hợp (synthesis) được thực hiện trên phần mềm DC [36-37] Trong quá trình thực hiện các quá trình trên, các tệp báo cáo kết quả cho người thực hiện các đánh giá về tính đúng đắn của chức năng mô hình, các thông số liên quan đến thời gian (timing), diện tích, …

Cụ thể, cách thức thực hiện mô phỏng, kiểm định chức năng và tổng hợp phần cứng của mô hình GAN-LSTM được thực hiện theo các bước sau:

- Bước 1: Sử dụng mã lập trình Verilog để mô tả các khối (module) liên quan và kết nối chúng lại với nhau

- Bước 2: Xây dựng môi trường kiểm định (testbench), trong đó đặt ra một số trường hợp kiểm định cụ thể nhằm xác định đáp ứng của mô hình GAN-LSTM trong nhiều khả năng khác nhau có thể xảy đến

- Bước 3: Tiến hành mô phỏng và quan sát hành vi của mô hình theo testbench, đưa ra các đánh giá về tính chính xác của mô hình

- Bước 4: Sau khi đảm bảo về mặt chức năng, thực hiện tổng hợp thiết kế nhằm đưa thiết kế về dạng chuẩn các cell cơ bản Thư viện được sử dụng trong luân văn này là thư viện công nghệ 65nm của nhà máy TSMC

- Bước 5: Đánh giá các đáp ứng của mô hình, đặc biệt là về timing thông qua các tệp báo cáo của phần mềm DC sau khi chạy tổng hợp Trong đó, yêu cầu cấp thiết là không có các vi phạm về thời gian setup cũng như thời gian hold, từ đó chỉ ra được tần số hoạt động tối đa của mô hình.

Phương pháp đánh giá kết quả

4.5.1 Đánh giá định lượng Âm nhạc phụ thuộc trực tiếp vào cảm âm của con người, do đó thường khó có một tiêu chí đánh giá cụ thể về mức độ hợp lý của một tác phẩm Tuy nhiên, trên thực tế, nhiều nghiên cứu vẫn có thể dùng một số thông số định lượng cụ thể nhằm đánh giá âm nhạc về các thông số cơ bản như cao độ, trường độ và các phân bố của nốt nhạc, cùng một số các thông số khác Các phương pháp đánh giá định lượng này thường đưa ra các phép so sánh với tập dữ liệu thật ban đầu (tập dùng cho huấn luyện máy), qua đó cho thấy khả năng tương đồng cũa dữ liệu tạo bởi máy, cùng với dạng đặc trưng của loại hình âm nhạc mà nó tạo ra

Các dữ liệu âm nhạc dùng cho huấn luyện trong luận văn này sẽ thuộc loại hình âm nhạc pop và soft rock Đặc điểm của các dòng nhạc này là biên độ dao động của các nốt không quá lớn, và chuyển đổi trạng thái của các nốt thường theo một loại hình mẫu (pattern) cố định Trong luận văn này, tác giả sẽ sử dụng một vài thông số sau để đánh giá, phân tích âm nhạc do mô hình GAN-LSTM tạo ra theo mô tả ở trên, cụ thể bao gồm các thông số đánh giá sau [31-33]:

- Biên độ cao độ nốt trung bình (Average Pitch Interval hay API): Thông số này được tính toán bằng các tính trung bình của tổng các giá trị chênh lệch về cao độ của hai nốt kề nhau trong một đoạn nhạc Đơn vị tính độ chênh lệch là nửa cung Thông số này có giá trị càng cao thì có nghĩa âm nhạc có tính ổn định không cao, hay nói cách khác, giai điệu của đoạn nhạc thay đổi rất nhanh Trong luận văn này, do đặc trưng của thể loại nhạc được chọn, API mong muốn của âm nhạc máy tạo ra sẽ có giá trị nhỏ, trong khoảng 1.4-2.3

- Biểu đồ phân bố nốt theo cao độ (Pitch histogram hay PH): Biểu đồ này cho người phân tích cái nhìn trực quan về khả năng sáng tác của máy, trong đó bao gồm tầm nốt phổ biến nhất, các nốt thường được sử dụng và các nốt hiếm khi xuất hiện, cũng như một số nhận xét khác

- Biểu đồ phân bố nốt theo trường độ (Note Length Histogram hay NLH): Biểu đồ này cũng cho người phân tích cái nhìn trực quan về khả năng sáng tác của máy, trong đó bao gồm tiết tấu, tốc độ, tần suất, và tính liên tục của giai điệu

- Entropy của phân bố cao độ các nốt (Pitch Entropy hay PE): Để đánh giá phân bố của các nốt theo cao độ, ngoài hình ảnh trực quan (PH) thì entropy cung cấp mức độ gây nhạc nhiên của các nốt “lạ” (các nốt trong tầm nốt không mong đợi) Entropy cao đồng nghĩa với mức độ nâng cao sáng tạo của mô hình AI, nhưng cũng có thể chỉ ra những rủi ro về khả năng tạo ra những dữ liệu không hợp lý

Kết quả do mô hình GAN-LSTM tạo ra sử dụng thông số tính liên tục (CC) thay vì sử dụng trường độ như các bản nhạc thông thường, do đó, để sử dụng các phương pháp định lượng trên, dữ liệu trên cần được chuyển đổi về dạng cổ điển

Nhằm đảm bảo tính đầy đủ và khách quan của các đánh giá định lượng, các bối cảnh so sánh sau được thực hiện:

- So sánh với tập dữ liệu gốc: các so sánh với tập dữ liệu ban đầu cho người đánh giá các nhận xét về tính tương đồng theo đặc trưng, cũng như khả năng sáng tạo riêng biệt của mô hình GAN-LSTM

- So sánh trong quá trình huấn luyện: các thông số được đo đạc trong quá trình huấn luyện nhằm làm rõ hiệu quả huấn luyện về mặt tính chính xác và thời gian.

Các đánh giá định tính cần được thực hiện thông qua tương tác với con người Cách đơn giản cũng như phổ biến nhất là sử dụng các bảng khảo sát Trong luận văn này, tác giả tạo ra và sử dụng ba loại bảng khảo sát

Bảng khảo sát thứ nhất là Bảng khảo sát tính chân thực của âm nhạc (Music Authenticity Survey) Như trình bày trong hình 25 (bằng tiếng Anh), bảng khảo sát này bao gồm hai câu hỏi: “Bạn nghĩ rằng âm thanh bạn đang nghe là do người viết hay do

AI tạo nên?”, và “Mức độ chắc chắn của bạn như thế nào?” Các lựa chọn trả lời cho câu hỏi thứ nhất sẽ là “Con người” và “Máy móc”, trong khi câu hỏi thứ hai có thể trả lời theo 4 mức độ: “Tuyệt đối (100%)”, “Khá chắc chắn (70%)”, “Có lẽ (50%)” và

“Không chắc chắn lắm (20%)” Câu hỏi thứ hai sẽ không có câu trả lời “Hoàn toàn không (0%)” bởi lẽ đơn giản nếu trường hợp đó xảy ra, người được khảo sát đã chọn câu trả lời còn lại cho câu hỏi thứ nhất Ngoài ra, xác suất để người được khảo sát chọn trả lời “Không chắc chắn lắm (20%)” cũng sẽ rất thấp, với cùng lý do như trên Tuy nhiên, nghiên cứu cũng đã chỉ ra rằng, khi người khảo sát thêm vào những giá trị nhỏ như vậy vào bảng câu trả lời, người được khảo sát có xu hướng tin vào đánh giá chắc chắn của bản thân, qua đó tăng mức độ đáng tin cậy của dữ liệu thu thập được sau khi khảo sát [38]

Hình 25 Bảng khảo sát tính chân thực của âm nhạc Để đưa ra phân tích cụ thể theo bảng khảo sát trên, tất cả kết quả khảo sát sẽ được quy về mức độ chắc chắn của người được khảo sát về khả năng âm nhạc được tạo nên bởi AI Nếu người được khảo sát chọn trả lời “Con người” cho câu hỏi thứ nhất, thì xác suất họ nghĩ rằng âm nhạc do AI tạo nên sẽ là 100% trừ đi giá trị trong câu trả lời của câu hỏi thứ hai với đoạn nhạc tương ứng

Nhằm giữ tính khách quan của câu trả lời của người được khảo sát, một tập dữ liệu trộn lẫn giữa dữ liệu âm nhạc thật và âm nhạc do mô hình GAN-LSTM tạo ra Một tập như thế sẽ không đòi hỏi số lượng bằng nhau của hai loại dữ liệu trên, nhưng tổng số bản nhạc phải là 20 Đây là con số vừa phải, tránh khiến cho người khảo sát phải nghe quá nhiều, từ đó suy giảm khả năng nhận định Các tập dữ liệu như thế này cũng sẽ được áp dụng cho bảng khảo sát được mô tả tiếp theo đây

Bảng khảo sát thứ hai được sử dụng là Bảng khảo sát đánh giá cảm xúc

KẾT QUẢ NGHIÊN CỨU VÀ CÁC PHÂN TÍCH LIÊN QUAN

Phân tích kết quả theo các đánh giá định lượng

5.1.1 Phân tích theo tập dữ liệu gốc Để thực hiện các đánh giá về API của mô hình GAN-LSTM so với tập dữ liệu gốc, lần lượt 500 mẫu ngẫu nhiên được lựa chọn từ tập dữ liệu gốc cũng như tiến hành để mô hình GAN-LSTM tạo ra các mẫu dữ liệu có số lượng tương đương Các mẫu dữ liệu kể trên sẽ được xử lý, tính toán giá trị API của từng cá thể, sau đó tổng hợp lại theo bảng 1

Bảng 1 Bảng so sánh các thông số về API của tập dữ liệu gốc và tập tạo bởi mô hình GAN-LSTM

Thông số Tập dữ liệu gốc GAN-LSTM

API trung bình của 500 mẫu 1.71 1.43

API lớn nhất trong 500 mẫu 2.59 2.11

API nhỏ nhất trong 500 mẫu 1.03 1.36

Có thể thấy được rằng, xu hướng của mô hình GAN-LSTM là làm giảm giá trị API nói chung của toàn tập dữ liệu Nói cách khác, các nốt trong dữ liệu do GAN-LSTM tạo ra có xác suất cao nằm gần nhau hơn về mặt cao độ Khi đó, giai điệu thể hiện tính dao động với biên độ nhỏ, tức độ ổn định tăng lên Tuy nhiên, giá trị API riêng lẻ của từng mẫu dữ liệu riêng lẻ do GAN-LSTM tạo ra không giới hạn quanh giá trị trung bình mà dao động trong khoảng 1.36-2.11 Các giá trị này nằm trong khoảng hẹp hơn so với tập dữ liệu gốc, vốn là các tác phẩm do nhiều nhạc sĩ khác nhau sáng tác và có xu hướng không nhất quán với nhau Tóm lại, thông qua bảng so sánh trên, mô hình GAN-LSTM cho thấy khả năng tạo ra dữ liệu âm nhạc có các chỉ số API nằm trong ngưỡng cho phép nhưng không bị suy giảm về mặt sáng tạo

Hình 28 thể hiện ma trận chuyển đổi cao độ nốt của tập dữ liệu gốc (bên trái) và của tập dữ liệu do GAN-LSTM tạo ra (bên phải), với số lượng 500 mẫu giống như phân tích, đánh giá ở trên Cao độ các nốt trong mỗi tập dữ liệu sẽ được lượng tử hóa về những nốt cùng tên (có thể khác quãng tám), vì về cơ bản các nốt cùng tên thì mang lại sắc thái cảm âm tương tự nhau đối với tai của con người [40]

Hình 28 So sánh ma trận chuyển đổi cao độ nốt của tập dữ liệu gốc và tập dữ liệu do GAN-LSTM tạo ra

Như có thể thấy, về mặt trực quan, các ma trận chuyển đổi, tức quy luật chuyển đổi các nốt theo cao độ của hai tập dữ liệu là tương đồng nhau Ví dụ: xác suất xuất hiện sự chuyển vị từ nốt A sang nốt G, nốt D sang nốt E của cả hai tập đều rất cao (khoảng hơn 4%) Bên cạnh mặt tương đồng, xác suất chuyển đổi của các nốt gần kề nhau của tập GAN-LSTM là cao hơn, thể hiện qua việc màu của các đường chéo (theo hướng trái trên – phải dưới) là đậm hơn, chứng tỏ các nốt gần nhau được siết chặt hơn về mặt liên kết (ảnh hưởng của LSTM)

Tương tự, về mặt trường độ, tập dữ liệu tạo bởi GAN-LSTM có xu hướng tương đồng với tập dữ liệu gốc, theo xác suất chuyển đổi giữa các trường độ nốt (nốt tròn, nốt trắng, nốt đen, nốt móc đơn và nốt móc kép cùng các nốt có chấm), như thể hiện trên hình 29 Xu hướng chung của cả hai tập dữ liệu đó là xác suất chuyển đổi hai nốt khác trường độ là thấp hơn xác suất chuyển đổi của hai nốt với cùng trường độ Điều này có thể giải thích được bởi vì trường độ nốt đại diện cho tiết tấu, tốc độ của đoạn nhạc, và thường tiết tấu này không thay đổi nhiều Trường hợp chuyển đổi theo nhiều trường độ khác nhau thường xảy ra ở phía cuối và đầu đoạn nhạc, khi những nét bộc phá về mặt cảm xúc của nhạc sĩ thường được gửi gắm vào Tuy nhiên, có thể thấy dữ liệu do GAN-LSTM tạo sinh có đặc điểm giữ nguyên tiết tấu của đoạn nhạc nhiều hơn, khi mà xác suất giữ nguyên trường độ của hai nốt kế cận mang giá trị lớn, trên ngưỡng 4%, đặc biệt là nốt đen và nốt móc đơn Ở chiều ngược lại, dữ liệu của tập dữ liệu gốc tập trung rất nhiều vào sự chuyển đổi qua lại của các nốt đen, nốt móc đơn và nốt móc kép

Hình 29 So sánh ma trận chuyển đổi trường độ nốt của tập dữ liệu gốc và tập dữ liệu do GAN-LSTM tạo ra

Hình 30 thể hiện sự phân bố theo trường độ của các nốt trong tập dữ liệu do GAN-LSTM tạo ra Ở đó, các cột đại diện cho số lượng nốt xuất hiện trong tập tương ứng với từng trường độ, và đường màu cam là đường pareto, thể hiện xu hướng ưu thế của những trường độ xuất hiện nhiều nhất Có thể thấy các nốt đen và nốt móc đơn chiếm ưu thế chủ đạo, tổng tần suất xuất hiện của hai nốt này chiếm đến 70% tổng số lượng của các nốt Điều này có thể giải thích được do phong cách âm nhạc của tập dữ liệu gốc (pop và soft rock), vốn mang tiết tấu nhanh vừa phải Các quãng lặng cũng xuất hiện với tần suất khoảng 5%, phù hợp với các quãng nghỉ lấy hơi thường thấy trong bài hát phổ thông

Hình 30 Biểu đồ phân bố nốt theo trường độ của tập dữ liệu do GAN-LSTM tạo ra

5.1.2 Phân tích theo quá trình huấn luyện

Bảng 2 thể hiện sự thay đổi của mô hình GAN-LSTM trong quá trình huấn luyện với các trường hợp kích thước batch khác nhau về thông số API Có thể thấy được hai xu hướng sau Thứ nhất, API có xu hướng giảm dần khi số lượng epoch tăng lên và ổn định ở mức 1.4-1.6 Lý do của việc này là do LSTM dần tạo nên ảnh hưởng lên generator khiến cho generator tăng dần mức độ liên kết của các dữ liệu cạnh nhau Điều này có cả hệ quả tích cực lẫn tiêu cực Cụ thể, mặt tích cực là các nốt trong dữ liệu tạo ra thường không chênh lệch nhau nhiều, tức âm nhạc ít khi bị lạc nhịp, còn về mặt tiêu cực, khi LSTM ảnh hưởng quá nhiều lên generator, âm nhạc do generator tạo ra trở nên khá ngang (do quãng tăng/giảm bị hạn chế), thiếu đột phá Người thực hiện huấn luyện đưa ra con số 1000 epoch cho thời gian huấn luyện hợp lý, bởi từ thời điểm này về sau, API không có nhiều sự thay đổi đáng kể Xu hướng thứ hai có thể thấy được thông qua bảng 2 là batch side không có nhiều ảnh hưởng lên API của dữ liệu, do đó người thực hiện huấn luyện có thể lựa chọn giá trị batch side vừa phải để giảm thời gian huấn luyện cần thiết

Bảng 2 Xu hướng thay đổi API trong quá trình huấn luyện

Thông số Epoch = 50 Epoch0 EpochP0 Epoch00 Epoch00

Bảng 3 cho thấy sự thay đổi của entropy cao độ nốt (PE) với cao độ có xác suất xuất hiện cao nhất làm chuẩn trong quá trình huấn luyện Cụ thể, PE có xu hướng giảm dần khi tăng thời gian huấn luyện (epoch), do mô hình GAN-LSTM sẽ dần thiết lập các mối liên kết giữa các nốt lại với nhau, đặc biệt là với nốt có cao độ với xác suất xuất hiện cao nhất (gọi là mode) Liên kết ở đây là làm giảm chênh lệch về cao độ giữa chúng, do đó xác suất xuất hiện của các nốt lạ, tức các nốt nằm xa nốt mode nhất sẽ giảm dần đi, qua đó làm giảm PE Tương tự đánh giá trước, kích thước batch không có nhiều ảnh hưởng lên PE

Bảng 3 Xu hướng thay đổi của PE trong quá trình huấn luyện

Thông số Epoch = 50 Epoch0 EpochP0 Epoch00 Epoch00

Cuối cùng, quãng nốt (note range hay NR) của dữ liệu tạo bởi GAN-LSTM được thể hiện ở bảng 4 (đơn vị tính là nửa cung) Xu hướng đơn giản của NR là giảm dần theo thời gian huấn luyện Tuy nhiên, trong trường hợp đánh giá thông số này, kích thước batch có ảnh hưởng lên tốc độ suy giảm trên, khi mà kích thước batch lớn làm giảm tốc độ thu hẹp của NR

Bảng 4 Xu hướng thay đổi của NR trong quá trình huấn luyện

Thông số Epoch = 50 Epoch0 EpochP0 Epoch00 Epoch00

5.1.3 Phân tích các quãng chuyển Verse-Chorus và điểm kết Chorus

Các phân tích sau đánh giá định lượng về khả năng chuyển đổi từ Verse qua Chorus của dữ liệu được tạo bởi mô hình GAN-LSTM, cũng như khả năng tạo điểm kết thúc của Chorus (ràng buộc bởi GAN)

Hình 31 thể hiện ma trận chuyển đổi về cao độ của các nốt trong quãng chuyển Verse-Chorus (50 DU cuối của mô hình GAN-LSTM cục bộ cho Verse và 50 DU cuối của khối chuyển điệu Verse-Chorus) Có thể thấy được, xác suất xuất hiện của các quãng chuyển biên độ lớn tăng lên đáng kể so với xác suất tương ứng của đánh giá cùng trên trong mục 5.1.1 Điều này có thể giải thích là vì Verse và Chorus thường mang trong mình hai tông nhạc có cao độ chênh lệch nhau Xác suất tăng từ 4 đến 5 nửa cung của các nốt trong quãng chuyển này, theo hình 31, chiếm khoảng 30%, đánh dấu các mốc chuyển đổi giữa hai đoạn của bài hát

Hình 31Ma trận chuyển đổi cao độ của nốt trong quãng chuyển Verse-Chorus

Tương tự, thông số quãng nốt (note range hay NR) trung bình của các quãng chuyển cũng cao hơn thông số tương tự của riêng Verse hay Chorus (bảng 5), khoảng hơn 2 lần Dù vậy, xác suất quãng nốt không có nhiều biến chuyển (dưới 15) cũng chiếm đến 23,8% trong tổng số các mẫu dữ liệu được quan sát (bảng 6), cho thấy khả năng huấn luyện của khối chuyển điệu vẫn chưa đạt mức tối ưu

Bảng 5 Thông số NR trung bình của các đoạn Verse, Chorus và quãng chuyển Verse-Chorus

Thông số NR Verse Chorus Verse-Chorus

Bảng 6 Tần suất giá trị của NR trong các mẫu dữ liệu

Phân tích cuối cùng là về khả năng kết thúc của Chorus Một đoạn kết Chorus hợp lý thường sẽ là một tổ hợp các nốt có trường độ cao hơn so với tiết tấu của bản nhạc, cũng như tông thấp hơn so với nốt mode Trong trường hợp của GAN-LSTM, tổ hợp các nốt cuối cùng (cụ thể là 3) của Chorus sẽ được quan sát, và khi nói đến những nốt cuối cùng, có nghĩa là các DU cuối cùng với cao độ khác 0, tức phần còn lại trong mẫu dữ liệu là các khoảng lặng không cần thiết để xem xét Bảng 7 cho thấy mô hình GAN-LSTM đã đạt được yêu cầu trên trong các quãng chuyển Verse-Chorus, với hiệu số chênh lệch cao độ của nốt cuối so với nốt mode có giá trị ổn định ở mức 2.47 Trong trường hợp trường độ các nốt cuối, xác suất trường độ của chúng dài hơn tiết tấu chung của đoạn nhạc là không quá ưu thế (41.6%), tuy nhiên có thể giải thích được do yêu cầu này là không bắt buộc trong một bài hát, khi mà việc giảm tiết tấu được chuyển tải qua cho các đoạn kết hay nhạc cụ phía sau

Bảng 7 Đánh giá thông số các nốt cuối cùng của đoạn Chorus

Thông số Chênh lệch với nốt mode

Xác suất nốt cuối dài hơn nốt ưu thế về trường độ (%)

Phân tích phiên bản thực thi phần cứng của mô hình

5.2.1 Phân tích kết quả mô phỏng

Quá trình mô phỏng của mô hình GAN-LSTM trên phần cứng, thông qua phần mềm VCS được kiểm nghiệm thông qua các bước sau:

- Tập các hệ số của mô hình GAN-LSTM trên Python sau khi huấn luyện được lưu trữ lại và nhập vào mô hỉnh GAN-LSTM trên Verilog dưới dạng các mảng bộ nhớ

- Thực hiện nhập cùng một dữ liệu vào cho hai mô hình (Python và Verilog), giống hệt nhau về giá trị, bao gồm các giá trị điều kiện (condition) và các giá trị ngẫu nhiên (noise)

- Đánh giá sai số về kết quả của hai mô hình Đối với mô hình GAN-LSTM trên Verilog, kết quả dùng để so sánh là kết quả dữ liệu ra chưa đi qua khối đánh giá ở cuối

- Thực hiện nhập dữ liệu vào mô hình GAN-LSTM nhiều lần, trong đó các giá trị condition được giữ nguyên còn các giá trị ngẫu nhiên thì thay đổi liên tục

- Các dữ liệu ra được đưa qua khối đánh giá, từ đó cập nhật lại giá trị đoạn nhạc tốt nhất để đưa ra đoạn nhạc tốt nhất

- Đánh giá định lượng kết quả cuối cùng

Nhằm đánh giá về sai số kết quả của hai mô hình trên phần cứng và phần mềm, một chương trình con bằng Python được thêm vào để tính toán sai số tuyệt đối cũng như sai số tương đối trung bình của các kết quả Cụ thể, theo bảng 8, ta có được sai số tuyệt đối và tương đối trung bình về mặt cao độ của hai kết quả lần lượt là 0.13 (đơn vị nửa cung) và 0.16%, còn sai số về mặt trường độ gần như bằng 0, trên một mẫu 500 dữ liệu vào giống hệt nhau với cả hai mô hình Điều này cho thấy về mặt sai số, mô hình GAN-LSTM trên phần mềm có kết quả không chênh lệch là bao so với phiên bản tương tự trên phần mềm Nguyên nhân của sự sai lệch nằm ở sai số tích lũy tồn tại trong các cách định dạng số khác nhau, trong giải thuật thực thi các hàm toán, các ước lượng gần đúng, và bảng tra (look-up table) Dù vậy, như đã nhận xét, những sai số kể trên không có tầm ảnh hưởng xấu đến kết quả

Bảng 8 Bảng tính sai số của hai mô hình GAN-LSTM trên phần cứng và trên phần mềm

Sai số Sai số tuyệt đối trung bình Sai số tương đối trung bình

Bảng 9 cho thấy một số thông số định lượng cơ bản của kết quả chọn lọc từ mô hình GAN-LSTM trên phần cứng so với phần mềm, thông qua tập dữ liệu gồm 500 mẫu để so sánh Qua đó, có thể thấy được, phiên bản phần cứng ưu tiên lựa chọn các mẫu có giá trị phù hợp với các tiêu chí của hàm đánh giá của nó (mô tả ở mục 4.3.2) Các bản nhạc do mô hình phần cứng chọn ra có đặc điểm ít biến đổi đột ngột (cả về cao độ và trường độ), cũng như quãng nốt nhỏ, ít dao động về tiết tấu

Bảng 9 Bảng so sánh các thông số định lượng của kết quả chọn lọc trên phần cứng so với phần mềm của mô hình GAN-LSTM

Thông số GAN-LSTM phần cứng GAN-LSTM phần mềm

Xác suất nốt ưu thế (MLP) 6.7 8.3

5.2.2 Phân tích về mặt thời gian (Timing)

Thiết kế thực hiện trên phần cứng nên cần đáp ứng một số điều kiện để có thể thực thi được trên thực tế Quá trình tổng hợp (synthesis) là quá trình chuyển đổi mã lập trình Verilog sang dạng các cell tiêu chuẩn trong thư viện được sử dụng (trong luận văn này là thư viện công nghệ 65nm) Sau khi tổng hợp, thiết kế vẫn cần được kiểm định về một số đặc điểm quan trọng để có thể vận hành trên phần cứng, bao gồm các yêu cầu về diện tích, năng lượng, và đặc biệt là thời gian (timing) Vấn đề timing của một thiết kế được rút gọn lại thành các điều kiện về thời gian setup cùng với thời gian hold Trong đó, điều kiện về thời gian setup còn cho người tổng hợp biết được tần số tối đa mà thiết kế có thể hoạt động được, qua đó ước lượng được tốc độ của thiết kế khi sản xuất ra vi mạch phần cứng thực sự

Bằng cách trừ đi các khoảng slack, người tổng hợp có thể suy ra được tần số hoạt động tối đa của mạch Hình 32 và 33 thể hiện các tệp báo cáo về thời gian hold và setup của thiết kế mô hình GAN-LSTM, trong đó các điều kiện không bị vi phạm (slack MET) Cụ thể hơn, slack trong điều kiện về thời gian setup đạt giá trị xấp xỉ 0, tức chu kì hiện tại đang đạt giá trị nhỏ nhất là 4.55ns, tức xấp xỉ tần số là 219.7 MHz Đây chính là tần số có thể hoạt động cao nhất của mô hình trong phần cứng Dù vậy, thiết kế phần cứng trong thực tế còn cần thêm những ràng buộc về tính ổn định của tín hiệu clock (clock uncertainty), khoảng delay của các ngõ ra/ngõ vào (input/output delay) cùng một số ràng buộc khác Những ràng buộc này có thể làm giảm tần số hoạt động tối đa của thiết kế, tuy nhiên nó sẽ không bị suy giảm nghiêm trọng

Hình 32 Báo cáo về điều kiện thời gian hold của mô hình phần cứng

Hình 33 Báo cáo về điều kiện thời gian setup của mô hình phần cứng Để thể hiện ưu thế về mặt thời gian của mô hình phần cứng so với phần mềm, tác giả dẫn ra những tính toán sau đây Thời gian để mô hình GAN-LSTM trên Python tạo ra một mẫu dữ liệu là khoảng 0.3 giây (thông số thu thập được từ quá trình mô phỏng trên Jupyter Notebook) Đối với thiết kế phần cứng, quá trình tạo ra một mẫu dữ liệu vào khoảng 5400-5600 chu kỳ, bao gồm cả việc xử lý qua hàm đánh giá kết quả ở cuối Như vậy tổng thời gian tối đa để mô hình GAN-LSTM tạo ra một mẫu dữ liệu chọn lọc qua 1000 mẫu là:

0.02548= 11.77 lần Con số 11.77 lần này cho thấy tốc độ vượt trội của mô hình trên phần cứng (dù đã chọn lọc qua 1000 mẫu) so với mô hình trên phần mềm (chỉ tạo 1 mẫu) Tuy nhiên, phép so sánh này không mang giá trị chính xác tuyệt đối Nguyên nhân thứ nhất, như đã trình bày ở trên, tần số hoạt động của thiết kế phần cứng có thể bị suy giảm do các ràng buộc liên quan Nguyên nhân thứ hai là ở bản thân phần cứng thực thi mô hình trên phần mềm trong luận văn này là máy tính cá nhân, nếu phần cứng thay đổi lên các cấu hình mạnh hơn thì có thể làm tăng cao tốc độ tạo dữ liệu của mô hình phần mềm Tóm lại, tác giả luận văn muốn nhấn mạnh điểm sau, đó là người thực hiện mô hình GAN-LSTM có thể tận dụng ưu thế tốc độ của phần cứng nhằm chọn lọc ra dữ liệu có đặc tính tốt nhất từ số mẫu dữ liệu lớn trong thời gian tương đương mà phần mềm tạo ra một mẫu dữ liệu tương tự.

Phân tích kết quả theo các đánh giá định tính

Đối tượng được khảo sát trong luận văn này là tập thể 187 con người ở những độ tuổi và ngành nghề khác nhau (Bảng 10) Trong đó, độ tuổi được giới hạn là 15 đến

30, độ tuổi phù hợp với thể loại nhạc pop cùng soft rock của tập âm nhạc gốc Cũng theo bảng 8, có thể thấy đối tượng khảo sát có thiên hướng thiên về nam giới, cùng các ngành nghề liên quan đến mặt kĩ thuật Điều này ảnh hưởng ít nhiều đến khả năng nhận định chính xác của họ với bài khảo sát Tuy nhiên, tác giả cũng đã đạt đến giới hạn trong việc tìm kiếm đối tượng khảo sát, và hơn nữa, thể loại âm nhạc được lựa chọn là các thể loại phổ biến, không đòi hỏi yêu cầu về kiến thức hàn lâm trong âm nhạc

Bảng 10 Thống kê đối tượng khảo sát theo độ tuổi và nghề nghiệp

Tiêu chí Phân loại Số lượng người tham gia Tỉ lệ (%)

Ngoài ra, mô hình tạo dữ liệu cung cấp cho khảo sát sẽ là mô hình GAN-LSTM trên phần cứng, khi mà dữ liệu được chọn lọc kĩ càng hơn thông qua hàm đánh giá kết quả ở cuối, qua đó đưa ra các lựa chọn dữ liệu có đặc tính tốt hơn

5.3.1 Khảo sát về mức độ chân thực của âm nhạc

Bảng 11 và 12 cho thấy thống kê các câu trả lời của người được khảo sát cho bảng khảo sát thứ nhất, theo độ tuổi và theo ngành nghề Cụ thể theo độ tuổi, nhóm người từ 18-26 có xu hướng nhận diện chính xác hơn về tính chân thực của âm nhạc (lần lượt 77.6 và 88.7%) Theo nghề nghiệp, đa phần các nhóm ngành đều dự đoán chính xác với xác suất vượt ngưỡng 50% Điều này chứng tỏ ở nhóm đối tượng khảo sát này, độ tuổi quyết định khả năng nhận định tốt hơn là phân loại theo ngành nghề Mức độ chắc chắn của nhóm người tham dự khảo sát cũng theo đúng kết quả dự đoán, với đa phần các câu trả lời có mức độ chắc chắn trong khoảng 50-70%

Bảng 11 Kết quả khảo sát về mức độ chân thực của âm nhạc theo độ tuổi Đối tượng Số lượng

Xác suất trả lời đúng (%)

Xác suất mức độ chắc chắn (trong trường hợp trả lời đúng) Đúng Sai 100% 70% 50% 20%

Bảng 12 Kết quả khảo sát về mức độ chân thực của âm nhạc theo nghề nghiệp Đối tượng Số lượng

Xác suất trả lời đúng

Mức độ chắc chắn (trong trường hợp trả lời đúng) Đúng Sai 100% 70% 50% 20%

Nếu xét riêng về khả năng đánh lừa của GAN-LSTM trong việc làm người nghe tin tưởng vào mức độ thật của dữ liệu mà nó tạo ra, thì hiện tại GAN-LSTM đang ở mức trung bình (khoảng 30% người nghe bị đánh lừa) Điều này chứng tỏ rằng cần có thêm những cải thiện để làm tăng cường chất lượng do GAN-LSTM tạo ra

5.3.2 Khảo sát về tác động cảm xúc của âm nhạc Để đánh giá trực quan tác động đến cảm xúc của người dùng, chỉ các thống kê đối với dữ liệu do GAN-LSTM tạo ra được thống kê, theo bảng 13 Có thể thấy được hai điều theo bảng này Thứ nhất, điểm đánh giá trung bình của các dữ liệu là 6.81 Đây là một con số rất ổn nếu biết rằng người khảo sát ít khi nhận định cho điểm tuyệt đối mà chọn một con số thấp hơn Thứ hai, xác suất cho điểm từ 7-9 có xu hướng cao hơn xác suất cho các điểm số thấp hơn Điều này có thể xuất phát từ nguyên nhân chủ quan của người được khảo sát, tránh thực hiện những hành vi có ý nghĩa mang tính tiêu cực (cho điểm thấp) Nói tóm lại, quan điểm của người được khảo sát trong bài khảo sát này cho thấy được sự đánh giá cao đối với dữ liệu mà GAN-LSTM tạo ra

Bảng 13 Kết quả khảo sát về mức độ tác động cảm xúc của dữ liệu do GAN-LSTM tạo ra Đối tượng Điểm trung bình

Xác suất cho điểm (%) 10.0 7-0-9.0 4.0-6.0 0.0-3.0 15-18 (Học sinh

5.3.3 Khảo sát về nhận diện các quãng chuyển Verse-Chorus

Thống kê cuối cùng liên quan đến khảo sát nhận diện quãng chuyển Verse- Chorus (bảng 14) Qua bảng này, có thể thấy được nhận diện quãng chuyển là một vấn đề với đa số người được khảo sát Tuy nhiên, xác suất người được khảo sát nhận ra trường hợp có quãng nghỉ giữa Verse và Chorus cũng rất khả quan, đạt 33.1%, chứng tỏ trong trường hợp bài hát chuyển điệu kiểu này, người nghe có thể dễ dàng nhận ra, và GAN-LSTM có thể tạo ra mô hình chuyển điệu kiểu ấy Trên thực tế, nhận diện quá trình chuyển điệu của bài hát cũng không phải dễ dàng, khi mà đôi khi bản thân người nghe (là con người) sau khi phát hiện tính lặp lại của Chorus hay đoạn Verse mới thì mới nhận diện ra Chorus ở đâu và khi nào

Bảng 14 Kết quả khảo sát về nhận diện quãng chuyển Verse-Chorus Đối tượng

Xác suất của câu trả lời (%) Không nhận diện được

Có quãng nghĩ giữa Verse và Chorus

Tiết tấu nhanh hơn 15-18 (Học sinh

Ngày đăng: 31/07/2024, 09:17

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] I. J. Goodfellow et al. “Generative adversarial networks”, presented at Conference Neural Information Processing Systems, Montreal, Canada, 2014 Sách, tạp chí
Tiêu đề: et al". “Generative adversarial networks
[2] Y. Cheng et al. “Sequential attention GAN for interactive image editing,” in Proceedings of the 28 th ACM International Conference on Multimedia, Seattle, United States, 2020, pp. 4383-4391 Sách, tạp chí
Tiêu đề: et al". “Sequential attention GAN for interactive image editing,” in "Proceedings of the 28"th" ACM International Conference on Multimedia
[3] D. Foster. Generative Deep Learning – Teaching Machines to Paint, Write, Compose and Play. Sebastopol, CA: O’Reilly Media, 2019 Sách, tạp chí
Tiêu đề: Generative Deep Learning – Teaching Machines to Paint, Write, Compose and Play
[4] X. Liang et al. “MIDI-Sandwich2: RNN-based Hierarchical Multi-modal Fusion Generation VAE networks for multi-track symbolic music generation.” Internet:https://arxiv.org/abs/1909.03522, Sep. 8, 2019 Sách, tạp chí
Tiêu đề: et al". “MIDI-Sandwich2: RNN-based Hierarchical Multi-modal Fusion Generation VAE networks for multi-track symbolic music generation
[5] M. Zhu et al. “DM-GAN: Dynamic Memory Generative Adversarial Networks for Text- To-Image Synthesis,” in Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), IEEE, 2019, pp. 5802-5810 Sách, tạp chí
Tiêu đề: et al". “DM-GAN: Dynamic Memory Generative Adversarial Networks for Text-To-Image Synthesis,” in "Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)
[6] P. Isola et al. “Image-to-Image Translation with Conditional Adversarial Networks.” Internet: https://arxiv.org/abs/1611.07004, Nov. 21, 2016 Sách, tạp chí
Tiêu đề: et al". “Image-to-Image Translation with Conditional Adversarial Networks
[7] T. Wang et al. “A Joint Model for Question Answering and Question Generation.” Internet: https://arxiv.org/abs/1706.01450, Jul. 5, 2017 Sách, tạp chí
Tiêu đề: et al". “A Joint Model for Question Answering and Question Generation
[8] A. Alankrita et al. “Generative adversarial network: An overview of theory and applications,” International Journal of Information Management Data Insights,” vol. 1, iss. 1, pp. 95-111, Apr. 2021 Sách, tạp chí
Tiêu đề: et al". “Generative adversarial network: An overview of theory and applications,” "International Journal of Information Management Data Insights
[9] G. Jie, et al. “A review on generative adversarial networks: Algorithms, theory, and applications,” IEEE Transactions on Knowledge and Data Engineering, Early Access, Nov. 2021 Sách, tạp chí
Tiêu đề: et al". “A review on generative adversarial networks: Algorithms, theory, and applications,” "IEEE Transactions on Knowledge and Data Engineering
[10] S. Sakib and A. Noora. “How can generative adversarial networks impact computer generated art? Insights from poetry to melody conversion,” International Journal of Information Management Data Insights,” vol. 2, iss. 1, pp. 16-22, Mar. 2022 Sách, tạp chí
Tiêu đề: How can generative adversarial networks impact computer generated art? Insights from poetry to melody conversion,” "International Journal of Information Management Data Insights
[11] H. Dong et al. “MuseGAN: Multi-Track Sequential Generative Adversarial Networks for Symbolic Music Generation and Accompaniment.” Internet:https://arxiv.org/abs/1709.06298, Sep. 19, 2017 Sách, tạp chí
Tiêu đề: et al". “MuseGAN: Multi-Track Sequential Generative Adversarial Networks for Symbolic Music Generation and Accompaniment
[12] Y. Adrien and E. Benetos. "A study on LSTM networks for polyphonic music sequence modelling,” presented at 18 th International Society for Music Information Retrieval Conference, Suzhou, China, 2017 Sách, tạp chí
Tiêu đề: A study on LSTM networks for polyphonic music sequence modelling
[13] K. Nikhil and P. Young. "Generating music using an LSTM network." Internet: https://arxiv.org/abs/1804.07300, Apr. 18, 2018 Sách, tạp chí
Tiêu đề: Generating music using an LSTM network
[14] F. Prasenjeet et al. “A hybrid model for music genre classification using LSTM and SVM,” in Proceedings of the 2018 Eleventh International Conference on Contemporary Computing (IC3), 2018, pp. 1-3 Sách, tạp chí
Tiêu đề: et al". “A hybrid model for music genre classification using LSTM and SVM,” in "Proceedings of the 2018 Eleventh International Conference on Contemporary Computing (IC3)
[15] Google Magenta Project, “Make Music and Art Using Machine Learning.” Internet: https://magenta.tensorflow.org, Apr. 24, 2022 Sách, tạp chí
Tiêu đề: Make Music and Art Using Machine Learning
[16] S. Wang. “Artificial neural network,” in Interdisciplinary computing in java programming, 1 st ed., G. Potter, Ed. Boston: Springer, 2003, pp. 81-100 Sách, tạp chí
Tiêu đề: Artificial neural network,” in "Interdisciplinary computing in java programming
[17] S. Sagar et al. “Activation functions in neural networks.” Internet: https://towardsdatascience.com/activation-functions-neural-networks-1cbd9f8d91d6, Sep. 6, 2017 Sách, tạp chí
Tiêu đề: et al". “Activation functions in neural networks
[18] A. Forest et al. "Learning activation functions to improve deep neural networks." Internet: https://arxiv.org/abs/1412.6830, Jun. 15, 2014 Sách, tạp chí
Tiêu đề: Learning activation functions to improve deep neural networks
[19] W. Qi, et al. "A comprehensive survey of loss functions in machine learning," Annals of Data Science, vol 9, pp. 187-212, Apr. 2020 Sách, tạp chí
Tiêu đề: A comprehensive survey of loss functions in machine learning
[20] R. Sebastian. "An overview of gradient descent optimization algorithms." Internet: https://arxiv.org/abs/1609.04747, Sep. 15, 2016 Sách, tạp chí
Tiêu đề: An overview of gradient descent optimization algorithms

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN