Giới thiệu về Machine Learning
Lớp nơ-ron (Layers)
Lớp dày hay còn gọi là lớp fully-connected là một thành phần cơ bản trong mạng nơ-ron nhân tạo, trong đó mỗi nơ-ron tiếp nhận đầu vào từ tất cả các nơ-ron của lớp trước.
Dropout layer trong Keras là một trong những kĩ thuật phổ biến nhất được sử dụng với mục đích giảm overfitting trong các model học sâu.
Overfitting là hiện tượng xảy ra khi độ chính xác của mô hình trên tập dữ liệu huấn luyện cao hơn so với tập dữ liệu kiểm tra hoặc dữ liệu chưa thấy Để khắc phục tình trạng này, kỹ thuật dropout được áp dụng bằng cách loại bỏ ngẫu nhiên một số nơ-ron ẩn hoặc các lớp trong mô hình Các nghiên cứu đã chỉ ra rằng việc sử dụng kỹ thuật dropout có thể giúp giảm thiểu overfitting và cải thiện khả năng tổng quát của mô hình.
Mạng nơ-ron
1.2.1/ Mạng nơ-ron nhân tạo (Artificial Neuron Network)
Mạng Nơ-ron nhân tạo (ANN) là mô hình xử lý thông tin được thiết kế dựa trên hoạt động của hệ thống thần kinh sinh vật ANN bao gồm một mạng lưới lớn các nơ-ron liên kết, tương tự như bộ não con người, cho phép học hỏi từ kinh nghiệm thông qua quá trình huấn luyện Mô hình này có khả năng lưu trữ tri thức và sử dụng để dự đoán các dữ liệu chưa biết.
Hình 2 Kiến trúc tổng quát của một ANN
Mạng nơ-ron được phân loại thành nhiều loại khác nhau dựa trên các lớp (layer), cấu trúc, số lượng nơ-ron, mật độ nơ-ron và luồng dữ liệu.
Một mạng nơ-ron sâu (Deep Neural Network, viết tắt là DNN) là một ANN với nhiều lớp ẩn (hidden layer) giữa lớp input và lớp output.
1.2.2/ Mạng nơ-ron truyền thẳng một lớp (Single-layer Neural Network)
Hình 3 Một số mạng nơ-ron đơn giản khác nhau
Mạng nơ-ron truyền thẳng một lớp, hay còn gọi là mạng perceptron một lớp, bao gồm một lớp nơ-ron đầu vào và một lớp nơ-ron đầu ra Trong cấu trúc này, lớp nơ-ron đầu vào không thực hiện xử lý, do đó mạng chỉ được coi là có một lớp Mỗi nơ-ron đầu ra nhận tín hiệu từ các đầu vào x1, x2, …, xm để tạo ra tín hiệu đầu ra tương ứng.
1.2.3/ Mạng nơ-ron truyền thẳng nhiều lớp (Multi-layer feedforward networks)
Trong mạng nơ-ron truyền thẳng nhiều lớp, lớp đầu vào (input layer) chỉ có chức năng nhận tín hiệu mà không thực hiện chuyển đổi thông tin Tín hiệu đầu ra được phát ra từ lớp đầu ra (output layer), trong khi các lớp ở giữa được gọi là lớp ẩn Đặc biệt, trong mạng truyền thẳng (feedforward network), không có nút nào có đầu ra là đầu vào của nút khác trong cùng một lớp hoặc lớp trước đó.
Hình 4 Mô hình một mạng nơ-ron truyền thẳng nhiều lớp
Trong mạng nơ-ron truyền thẳng nhiều lớp, lớp đầu vào (input layer) chỉ có chức năng nhận tín hiệu mà không thực hiện chuyển đổi thông tin Lớp ra (output layer) là nơi phát sinh tín hiệu đầu ra của mạng Các lớp nằm giữa lớp vào và lớp ra được gọi là các lớp ẩn Đặc biệt, trong mạng truyền thẳng (feedforward network), không có nút nào có đầu ra là đầu vào của một nút khác trong cùng lớp hoặc lớp trước.
Mạng có phản hồi (feedback network) là loại mạng mà đầu ra của một nơ-ron có thể trở thành đầu vào cho nơ-ron trong cùng một lớp hoặc lớp trước đó Mạng feedback này có chu trình khép kín, được gọi là mạng quy hồi (recurrent network).
Trong hình 5, một lớp của mạng quy hồi được minh họa, trong đó đầu ra (output) của một nơ-ron được tái sử dụng làm đầu vào (input) cho một nơ-ron khác trong cùng lớp.
1.2.4/ Mạng nơ-ron tích chập (Convolutional Neural Network)
Mạng nơ-ron tích chập (CNN), hay còn gọi là ConvNet, là một loại mạng nơ-ron sâu (DNN) thường được sử dụng trong các ứng dụng thị giác máy tính, hệ thống gợi ý và phân loại hình ảnh.
Một mạng nơ-ron tích chập (ConvNet) là một mạng nơ-ron thuộc nhóm mạng nơ-ron truyền thẳng nhiều lớp (multi-layer feedforward network).
Trong một mạng nơ-ron tích chập (CNN), các lớp thường được sử dụng có thể được minh họa qua bài toán phân loại ảnh Dữ liệu được truyền từ lớp này sang lớp khác, bắt đầu từ lớp đầu vào (input layer), nơi dữ liệu đầu vào có kích thước 32x32 và chiều sâu 3, tương ứng với các kênh màu RGB.
Lớp tích chập (convolutional layer) thực hiện phép toán giữa các filter và các vùng ảnh, tạo ra đầu ra dữ liệu Ví dụ, khi sử dụng 12 filter, đầu ra sẽ là một khối dữ liệu có kích thước 32x32x12.
Lớp hàm kích hoạt là một phần quan trọng trong mạng nơ-ron, thực hiện các hàm kích hoạt trên đầu ra của lớp tích chập trước đó Một số hàm kích hoạt phổ biến bao gồm RELU, Sigmoid, Tanh và Leaky RELU Kích thước đầu ra của lớp này vẫn được giữ nguyên ở mức 32x32x12.
Lớp pooling có vai trò quan trọng trong việc giảm kích thước dữ liệu, giúp tăng tốc độ tính toán và giảm dung lượng bộ nhớ, đồng thời hạn chế hiện tượng overfitting Hai loại pooling phổ biến là max pooling và average pooling Khi áp dụng max pooling với filter kích thước 2x2 và stride 2 lên dữ liệu từ lớp trước, kết quả thu được sẽ có kích thước 16x16x12.
Lớp Fully-Connected là một loại lớp nơ-ron truyền thống, có nhiệm vụ nhận đầu vào từ lớp trước và thực hiện các phép toán để tạo ra kết quả cho bài toán Kết quả này thường được biểu diễn dưới dạng một mảng, với kích thước tương ứng với số lượng loại, thể hiện điểm số của từng loại đó.
1.2.5/ Mạng nơ-ron quy hồi (Recurrent Neural Network)
Mạng nơ-ron quy hồi (RNN) là loại mạng nơ-ron mà đầu ra từ các bước trước được sử dụng làm đầu vào cho bước hiện tại Khác với mạng nơ-ron thông thường, nơi mà tất cả các đầu vào và đầu ra hoạt động độc lập, RNN rất hữu ích trong các bài toán dự đoán như tự động sửa lỗi hay dự đoán giá cổ phiếu, nơi mà kết quả trước đó ảnh hưởng đến dự đoán hiện tại Mạng RNN tạo ra các đầu ra ở mỗi bước thời gian và chia sẻ trọng số giữa các bước này, giúp cải thiện khả năng xử lý dữ liệu tuần tự.
Cách thức hoạt động của một mạng RNN có thể được hiểu như sau:
Sơ đồ minh họa cách hoạt động của RNN trong xử lý ngôn ngữ, nơi đầu vào là một câu gồm 5 từ Mạng nơ-ron được cấu trúc thành 5 lớp khác nhau, mỗi lớp tương ứng với một từ, và sử dụng các công thức tính toán để xử lý thông tin.
+ xt là input tại time step thứ t.
Nơ-ron
Hình 7 Ảnh minh họa một Nơ-ron và quá trình xử lý thông tin của chúng.
Một nút nơ-ron tiếp nhận nhiều đầu vào khác nhau, và mỗi đầu vào này được gán một giá trị trọng số (weight) cho liên kết giữa đầu vào và nơ-ron, được gọi là connection.
Mỗi input trong mạng nơ-ron nhân tạo (ANN) tương ứng với một thuộc tính (attribute) của dữ liệu, còn kết quả (outputs) mà ANN tạo ra là giải pháp cho một vấn đề cụ thể.
Trọng số liên kết là một thành phần quan trọng trong quá trình xử lý thông tin, thể hiện mức độ ảnh hưởng của dữ liệu đầu vào khi chuyển giao thông tin giữa các lớp khác nhau.
Hàm tổng (Summation Function) trong mạng nơ-ron tính tổng trọng số của tất cả các đầu vào được cung cấp cho mỗi nơ-ron (phần tử xử lý PE) Đối với n đầu vào, hàm tổng của một nơ-ron được tính theo công thức cụ thể.
Hàm chuyển đổi (Transfer Function) là hàm tổng (Summation Function) của một nơ-ron, thể hiện khả năng kích hoạt (Activation) của nơ-ron đó, hay còn gọi là kích hoạt bên trong (internal activation) Trong mạng nơ-ron nhân tạo (ANN), các nơ-ron có thể tạo ra đầu ra (output) hoặc không, nghĩa là đầu ra của một nơ-ron có thể được chuyển đến lớp tiếp theo trong mạng hoặc không Mối quan hệ giữa kích hoạt bên trong và đầu ra được mô tả qua hàm chuyển đổi.
Hình 8 Summation function và Transformation function
Việc chọn hàm chuyển đổi có ảnh hưởng đáng kể đến hiệu quả của mạng nơ-ron nhân tạo (ANN) Trong ANN, hàm chuyển đổi phi tuyến phổ biến nhất thường là hàm sigmoid (hàm kích hoạt logic).
Kết quả của Sigmoid Function thuộc khoảng [0,1] nên còn gọi là hàm chuẩn hóa (Normalized Function).
Kết quả xử lý tại các nơron có thể rất lớn, do đó, hàm chuyển (transfer function) được áp dụng để điều chỉnh đầu ra trước khi chuyển đến lớp tiếp theo Thay vì sử dụng hàm chuyển, một số phương pháp sử dụng giá trị ngưỡng (threshold value) để kiểm soát đầu ra của các nơron trong một lớp nhất định Nếu đầu ra của một nơron nhỏ hơn giá trị ngưỡng, nó sẽ không được chuyển tiếp đến lớp kế tiếp.
II/ Một số thuật toán được sử dụng trong máy học (machine learning)
Học có giám sát
Trong quá trình huấn luyện mạng nơron, một mẫu học cùng với bộ trọng số tự do được cung cấp Đầu ra thực tế của mạng sẽ được so sánh với đầu ra mong muốn, và sự khác biệt giữa hai giá trị này chính là cơ sở để hiệu chỉnh trọng số Quá trình này diễn ra liên tục với bộ thông số đầu vào cho đến khi mạng đạt được giá trị sai số mong muốn Kỹ thuật điển hình cho quá trình này là mạng nơron lan truyền ngược.
Hình 9 Mô hình huấn luyện mạng có giám sát
Một số thuật toán học có giám sát hay được sử dụng:
Học không giám sát
Trong học không giám sát, mạng nơron không nhận thông tin phản hồi từ môi trường, mà tự tìm ra các đặc tính, quy luật và tương quan trong dữ liệu đầu vào để tạo ra đầu ra Quá trình tự phát hiện các đặc điểm này dẫn đến việc thay đổi tham số của mạng, được gọi là tự tổ chức Mạng nơron điển hình thường được huấn luyện theo phương pháp tự tổ chức.
Hình 10 Mô hình huấn luyện mạng không giám sát
Hình 11 Ảnh minh họa về bài toán clustering
Bài toán clustering là một ví dụ điển hình trong học không giám sát, giúp người dùng hiểu rõ hơn về khái niệm này Phương pháp clustering chủ yếu được sử dụng để phát hiện các mẫu trong tập dữ liệu không gán nhãn.
Một số thuật toán clustering phổ biến:
Trong lĩnh vực luật học có giám sát, các giá trị đầu ra được xác định rõ ràng cho mỗi đầu vào Tuy nhiên, trong thực tế, đôi khi chỉ có ít thông tin chi tiết, ví dụ như mạng chỉ biết rằng giá trị đầu ra quá cao hoặc chỉ nhận được phản hồi cho biết đầu ra đúng hay sai Phương pháp học dựa trên thông tin đánh giá này được gọi là học củng cố, và thông tin phản hồi được gọi là tín hiệu tăng cường.
Hình 12 Mô hình huấn luyện mạng tăng cường
Sự khác nhau giữa các phương pháp học
Học có giám sát được sử dụng chủ yếu trong các bài toán quy hồi và phân loại, trong khi học không giám sát thường áp dụng cho các bài toán clustering Cuối cùng, học tăng cường thường được áp dụng để giải quyết các vấn đề liên quan đến Quá trình quyết định Markov, học chính sách và học giá trị.
Học có giám sát sử dụng tập dữ liệu đã được gán nhãn, trong khi học không giám sát làm việc với bộ dữ liệu chưa được gán nhãn Học tăng cường dựa trên bộ dữ liệu không rõ ràng và không được định nghĩa trước.
Học có giám sát dựa trên dữ liệu đã được gán nhãn, trong khi học không giám sát tập trung vào việc phát hiện các mẫu trong dữ liệu mà không cần nhãn Học tăng cường cho phép các tác nhân (agent) tương tác với môi trường và nhận phần thưởng dựa trên hành động của chúng.
Mục tiêu chính của học có giám sát là tạo ra công thức từ dữ liệu đầu vào và đầu ra Ngược lại, trong học không giám sát, chúng ta tìm kiếm mối liên hệ giữa các giá trị đầu vào và phân nhóm chúng Trong khi đó, học tăng cường tập trung vào việc học từ phản hồi muộn thông qua việc tương tác với môi trường.
GIỚI THIỆU VỀ BÀI TOÁN SPEECH RECOGNITION
Tensorflow và Keras
TensorFlow là một thư viện mã nguồn mở do Google phát triển, chuyên dụng cho việc xây dựng ứng dụng và nghiên cứu trong lĩnh vực máy học (Machine Learning) và học sâu (Deep Learning).
Keras là một API mạng nơ-ron bậc cao chạy trên nền tảng TensorFlow, giúp người dùng tạo mô hình với chi phí lập trình thấp và nhanh chóng, rất phù hợp cho nghiên cứu và giảng dạy Keras hỗ trợ cả CPU và GPU trong quá trình huấn luyện, do đó tốc độ huấn luyện được cải thiện đáng kể.
Librosa
Librosa là một thư viện Python chuyên dụng cho phân tích mẫu âm thanh, cung cấp các công cụ thiết yếu để lập trình viên xây dựng hệ thống xử lý thông tin âm thanh hiệu quả.
Dataset
LibriSpeech ASR Corpus: Dataset bao gồm các đoạn audio ngôn ngữ Tiếng Anh được trích từ các audiobook khác nhau với tổng thời lượng hơn 1000 giờ.
Dataset Google Speech Commands được phát triển bởi đội ngũ Tensorflow và AIY, bao gồm hơn 65.000 đoạn âm thanh ngắn, mỗi đoạn khoảng 1 giây Mỗi đoạn âm thanh chứa một trong 30 từ lệnh tiếng Anh, được ghi âm bởi nhiều người khác nhau.
Dataset Lệnh Giọng Nói Tổng Hợp: Bộ dữ liệu này chứa nhiều đoạn âm thanh ngắn với nội dung đơn giản Mỗi tệp âm thanh bao gồm các câu lệnh ngắn gọn như ‘có’, mang lại sự đa dạng cho việc nghiên cứu và phát triển công nghệ nhận diện giọng nói.
‘no’, ‘up’, ‘down’, ‘on’, ‘off’,…
III/ Thuật toán cài đặt
Dataset
Trước khi triển khai giải pháp cho bài toán Nhận diện tiếng nói (SR) thông qua việc huấn luyện một mô hình, việc chuẩn bị dữ liệu là rất quan trọng Chúng tôi đã quyết định sử dụng tập dữ liệu từ thử thách trên Kaggle.com, cụ thể là thử thách “Tensorflow speech recognition” Tập dữ liệu này hoàn toàn miễn phí và bao gồm hơn 65,000 mẫu âm thanh, mỗi mẫu có thời gian khoảng 1 giây, với nội dung là 30 từ ngắn khác nhau được phát âm và ghi lại bởi nhiều người.
Xử lý tiếng nói (Speech processing)
Lời nói và tiếng nói là phương pháp giao tiếp phổ biến trong các cuộc đối thoại hàng ngày, giúp con người nổi bật hơn so với các loài động vật khác Ngoài lời nói, ngôn ngữ cơ thể và các tín hiệu phi ngôn ngữ cũng đóng vai trò quan trọng, trở thành công cụ hữu ích trong công việc và sinh hoạt hàng ngày.
Lịch sử của giao tiếp đã hình thành từ lâu đời Một trong những quá trình giao tiếp quan trọng nhất đó chính là lưu trữ thông tin.
3.2.1/ Hệ thống Nhận dạng tiếng nói
Xét ví dụ sau về một hệ thống sử dụng Encoder và decoder trong quá trình Nhận dạng tiếng nói.
Hình 13 Ảnh minh họa cho quá trình thực thi của bộ Encoder và Decoder
Chuyển phát và lưu trữ âm thanh yêu cầu nén tín hiệu âm thanh để đạt dung lượng tối ưu mà vẫn duy trì chất lượng cao Mục tiêu là đảm bảo người nghe nhận diện được nội dung chính của âm thanh, đồng thời giảm thiểu sự chú ý vào các tín hiệu bị mất hoặc bổ sung.
Khi truyền âm thanh, bên gửi sử dụng bộ mã hóa để chuyển thông tin âm thanh tới bên nhận, trong đó áp dụng mô hình đánh giá độ quan sát được của âm thanh Sau đó, tín hiệu âm thanh được nén thành dung lượng nhỏ hơn Bên nhận sẽ đảm nhận nhiệm vụ giải mã quá trình nén này theo các bước ngược lại với bộ mã hóa.
Khâu tiền xử lý bao gồm (pre-processing) các tác vụ thông thường như noise attenuation hay voice activity detection.
Chiết xuất thông tin từ tín hiệu tiếng nói cho phép thu thập nhiều mẫu dữ liệu khác nhau, được gọi là nhãn, và đóng vai trò quan trọng trong các thuật toán máy học Hệ thống sẽ sử dụng các cơ sở dữ liệu này để huấn luyện, từ đó học cách phân loại các mẫu âm thanh theo nhãn một cách hiệu quả.
Hình 14 Phương pháp máy học trong quá trình classification
Ngoài ra, còn tồn tại các hệ thống khác như text-to-speech và giao diện người dùng, bao gồm nhận dạng âm thanh và phát âm thanh đầu ra Tuy nhiên, trong bài viết này, chúng tôi sẽ không đề cập đến các hệ thống đó để tập trung vào mục tiêu chính của đồ án.
Trong quá trình xử lý và tiền xử lý âm thanh, việc xác định thời điểm sử dụng bộ phân loại là rất quan trọng, chỉ áp dụng khi có âm thanh đầu vào và thông tin phải là lời nói của con người Ngoài ra, cần phải giải quyết các vấn đề liên quan đến tạp âm và nhiễu âm thanh để đảm bảo chất lượng tín hiệu.
Hình 15 Một số module được sử dụng trong quá trình processing và pre-processing
Ngoài ra, còn có các hệ thống như text-to-speech và giao diện người dùng, bao gồm nhận dạng âm thanh và phát âm đầu ra Tuy nhiên, chúng tôi sẽ không đề cập đến các hệ thống này để tập trung vào mục tiêu chính của đồ án.
Cài đặt
3.3.1/ Giới thiệu về tín hiệu âm thanh Âm thanh là các dao động cơ học (biến đổi vị trí qua lại) của các phân tử, nguyên tử hay các hạt làm nên vật chất và lan truyền trong vật chất như các sóng Âm thanh, giống như nhiều sóng, được đặc trưng bởi tần số, bước sóng, chu kỳ, biên độ và vận tốc lan truyền (tốc độ âm thanh). Đối với thính giác của người, âm thanh thường là sự dao động, trong dải tần số từ khoảng 16 Hz đến khoảng 20 000 Hz, của các phân tử không khí, và lan truyền trong không khí, va đập vào màng nhĩ, làm rung màng nhĩ và kích thích bộ não Tuy nhiên âm thanh có thể được định nghĩa rộng hơn, tuỳ vào ứng dụng, bao gồm các tần số cao hơn hay thấp hơn tần số mà tai người có thể nghe thấy, không chỉ lan truyền trong không khí mà còn truyền trong bất cứ vật liệu nào.
Hình 17 Các thành phần của một sóng âm thanh
Trong lĩnh vực tín hiệu, chúng ta thường gặp hai loại chính: tín hiệu điện tử và tín hiệu analog Tín hiệu âm thanh được coi là một biểu diễn liên tục của các giá trị độ cao khác nhau theo thời gian, với khoảng thời gian giữa các giá trị rất nhỏ, lý do này cho thấy tín hiệu âm thanh thuộc loại tín hiệu analog Tuy nhiên, do tín hiệu analog có số lượng mẫu vô tận, việc xử lý chúng trở nên tốn kém về mặt tính toán Vì vậy, cần thiết phải sử dụng một thuật toán để chuyển đổi tín hiệu analog thành tín hiệu điện tử (digital signals) nhằm đơn giản hóa quá trình xử lý.
Xử lý mẫu tín hiệu là quá trình chuyển đổi tín hiệu analog thành tín hiệu điện tử bằng cách lấy một số lượng mẫu nhất định mỗi giây từ tín hiệu analog gốc Tần số sampling được xác định bởi số lượng mẫu được thu thập trong một giây.
3.3.2/ Trích chọn đặc trưng (Feature Extraction)
Bước đầu tiên trong quá trình nhận dạng tiếng nói là trích xuất các đặc trưng từ tín hiệu âm thanh, những đặc trưng này sẽ được sử dụng làm đầu vào cho các mô hình sau này.
Một số biểu diễn của âm thanh có thể kể đến như sau:
Phương pháp phân tích time-domain là một phương pháp biểu diễn giá trị tín hiệu âm thanh bằng một hàm thời gian.
Phương pháp phân tích frequency-domain là một phương pháp biểu diễn mối quan hệ giữa hai giá trị biên độ và tần số.
Quang phổ (spectrogram) là hình ảnh 2 chiều thể hiện mối quan hệ giữa thời gian và tần số, trong đó mỗi điểm ảnh phản ánh biên độ của một tần số cụ thể tại thời điểm tương ứng.
Hình 18 Một hình ảnh thể hiện một quang phổ (spectrogram) MFCC (viết tắt của Mel frequency Cepstrum Coefficients) là một phương pháp biểu diễn âm thanh.
ỨNG DỤNG GIẢI QUYẾT BÀI TOÁN
Gameplay
Game sẽ cho phép người chơi điều khiển một đối tượng là rắn và nhiệm vụ của người chơi là tích lũy càng nhiều điểm (score) càng tốt.
Rắn sẽ di chuyển theo bốn chiều (lên, xuống, phải, trái) không ngừng xuyên suốt quá trình chơi trừ khi bị chết hoặc game tạm dừng.
Rắn sẽ chết khi tự ăn chính bản thân (tự va vào người) và lúc này người chơi có thể chơi lại từ đầu hoặc ngừng chơi.
Người chơi tích lũy điểm số khi rắn ăn mồi, dẫn đến việc rắn dài ra Sự gia tăng độ dài này không chỉ làm tăng mức độ khó cho việc kiếm điểm sau này mà còn tăng nguy cơ rắn tự va vào bản thân.
Hình 22 Giao diện trò chơi trong quá trình thực thi
Cơ chế điều khiển
Giới thiệu sơ qua về cơ chế điều khiển:
Left arrow Chuyển hướng di chuyển của rắn sang bên trái Right arrow Chuyển hướng di chuyển của rắn sang bên phải
Up arrow Chuyển hướng di chuyển của rắn đi lên trên Down arrow Chuyển hướng di chuyển của rắn đi xuống dưới
Bên cạnh đó, việc sử dụng microphone để giao tiếp với rắn có thể được thực hiện như sau:
Bước 1: Người dùng nói vào microphone trong quá trình game thực thi
Bước 2: Nếu đoạn âm thanh nhận được từ người dùng nói bao gồm các từ khóa thì rắn sẽ di chuyển tương tự như các nút bấm mặc định:
Từ khóa: ‘left’ → Left arrow
Đây là lần đầu tiên nhóm chúng em nghiên cứu về ứng dụng máy học, vì vậy chúng em còn nhiều bỡ ngỡ, đặc biệt là về cơ chế hoạt động của mạng nơ-ron trong quá trình thực thi, cũng như các tính toán diễn ra trong quá trình huấn luyện và thực thi chương trình.
Nhóm chúng em đã thực hiện huấn luyện các mạng nơ-ron để phân biệt khoảng 30 từ đơn giản, tuy nhiên ứng dụng hiện tại chưa thực tế do đầu vào gồm nhiều từ ngữ và âm thanh đa dạng Thêm vào đó, chúng em chỉ có thể sử dụng mạng CNNs và chưa thể đánh giá chính xác mô hình hay phương pháp nào là hiệu quả nhất.
Một số hướng phát triển cho đồ án bao gồm việc huấn luyện trên tập dataset lớn hơn với số lượng từ vựng phong phú và độ chính xác cao hơn để áp dụng vào các bài toán thực tiễn Ngoài ra, ứng dụng demo cũng có thể được cải thiện để trở thành một sản phẩm hoàn chỉnh với đồ họa sắc nét và âm thanh chân thực hơn.
Nhóm chúng em xin cảm ơn vì đã lắng nghe.
Một số liên kết chính mà nhóm chúng em tham khảo và sử dụng nhiều trong đồ án có thể kể đến như sau:
[2] Introduction to Convolution Neural Network: geeksforgeeks.org/introduction-convolution- neural-network
[4] wiki.aalto.fi/display/ITSP/Cepstrum+and+MFCC
CHƯƠNG 1: Giới thiệu về Machine Learning 7
I/ Mạng nơ-ron (Neural Network) 7
1.2.1/ Mạng nơ-ron nhân tạo (Artificial Neuron Network) 8
1.2.2/ Mạng nơ-ron truyền thẳng một lớp (Single-layer Neural Network) 10
1.2.3/ Mạng nơ-ron truyền thẳng nhiều lớp (Multi-layer feedforward networks) 10
1.2.4/ Mạng nơ-ron tích chập (Convolutional Neural Network) 12
1.2.5/ Mạng nơ-ron quy hồi (Recurrent Neural Network) 13
1.2.6/ Bộ nhớ ngắn-dài hạn (Long short-term memory) 15
II/ Một số thuật toán được sử dụng trong máy học (machine learning) 17
2.4/ Sự khác nhau giữa các phương pháp học 21
CHƯƠNG 2: GIỚI THIỆU VỀ BÀI TOÁN SPEECH RECOGNITION 22
I/ Speech Recognition (Nhận dạng tiếng nói) 22
II/ Giới thiệu về một số thư viện 23
III/ Thuật toán cài đặt 24
3.2/ Xử lý tiếng nói (Speech processing) 24
3.2.1/ Hệ thống Nhận dạng tiếng nói 24
3.3.1/ Giới thiệu về tín hiệu âm thanh 27
Hình 17 Các thành phần của một sóng âm thanh 28
3.3.2/ Trích chọn đặc trưng (Feature Extraction) 28
Bước đầu tiên trong bài toán nhận dạng tiếng nói là trích xuất các đặc trưng từ tín hiệu âm thanh, những đặc trưng này sẽ được sử dụng làm đầu vào cho các quá trình tiếp theo.
CHƯƠNG 3: ỨNG DỤNG GIẢI QUYẾT BÀI TOÁN 31
II/ Xây dựng ứng dụng 31
Giới thiệu sơ qua về cơ chế điều khiển: 33