Cấu trúc mạng Nơron

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu về nhận dạng tiếng nói ứng dụng vào điều khiển xe lăn (Trang 38)

2.2. Mạng Nơron nhân tạo

2.2.1. Cấu trúc mạng Nơron

Mạng Nơ ron là tập hợp các nút được kết nối với nhau thông qua các liên kết (hình 3.9). Một liên kết từ nút i đến nút j có trạng số wij xác định độ mạnh và dấu của liên kết đó.

Hình 2.9 Mô hình toán học cho một Nơ ron.

Mỗi nút j trước tiên tính toán tổng các giá trị đầu vào:

Tiếp theo áp dụng hàm kích hoạt g để được đầu ra:

Hàm kích hoạt g có thể là hàm ngưỡng (threshold) cứng hoặc hàm logistic (xem hình 3.10). Hàm kích hoạt phải đảm bảo về tổng thể mạng Nơ ron có thể mô tả hàm phi tuyến.

Hình 2.10. Ví dụ về hàm kích hoạt ngưỡng cứng (a) trong đó threshold(z) với đầu ra là 0 hoặc 1 và (b) hàm logistic với z

e z Logistic    1 1 ) ( .

Sau khi xác định mô hình toán học cho mỗi Nơ ron, nhiệm vụ tiếp theo là liên kết chúng thành một mạng. Có hai cách chính để thực hiện công việc này. Loại thứ nhất là mạng lan truyền thẳng, trong đó các nút kết nối theo một hướng duy nhất, nó hình thành một đồ thị có hướng. Mỗi nút nhận được tín hiệu đến nó và chuyển tiếp đến nút tiếp theo, không có vòng lặp trong trường hợp này. Loại thứ hai là mạng nơ ron hồi quy, cho phép đầu ra của mỗi nút quay trở lại đầu vào của chính nút đó. Hình 3.11 minh họa một mạng Nơ ron hồi quy trong đó có lớp vào (input Layer), lớp ẩn (Hidden Layer) và lớp ra (Output Layer).

Hình 2.11. Ví dụ về mạng Nơ ron hồi quy 2.2.2. Mạng Nơ ron lan truyền thẳng một lớp 2.2.2. Mạng Nơ ron lan truyền thẳng một lớp

Một mạng với tất cả đầu vào kết nối trực tiếp với các đầu ra gọi là mạng Nơ ron đơn truyền thẳng một lớp hay mạng perceptron. Hình 3.12 chỉ ra ví dụ về mạng hai đầu vào, hai đầu ra. Điều chú ý là một mạng perceptron với m đầu ra có thể tách thành m mạng riêng biệt vì thực tế mỗi trọng số chỉ ảnh hưởng duy nhất đến một đầu ra. Tập dữ liệu huấn luyện có thể như bảng 3.1.

Bảng 3.1. Ví dụ về tập dữ liệu huấn luyện

x1 x2 y3 y4 0 0 1 1 0 1 0 1 0 0 0 1 0 1 1 0

Hình 2.12. Mạng perceptron với hai đầu vào và hai đầu ra

Hình 2.13. Mạng Nơ ron với hai đầu vào, một lớp ẩn và hai đầu ra. 2.2.3. Mạng Nơ ron lan truyền thẳng nhiều lớp

Trên thực tế, mạng Nơ ron đơn không thể giải quyết nhiều bài toán. Điều này dẫn ra vấn đề là nếu chúng ta xem xét hàm hw(x) được tham số hóa hóa bởi các trọng số w. Xem xet mạng Nơ ron trên hình 3.12 (b), có hai nút vào, hai nút ẩn và hai nút ra. Với đầu vào x = (x1, x2), hàm kích hoạt được đặt (a1, a2) = (x1, x2). Đầu ra của nút 5 sẽ là:

a5 = g(w0,5 + w3,5a3 +w4,5a4) =

= g(w0,5 + w3,5g(w0,3 + w1,3a1 +w2,3a2) + w4,5g(w0,4 +w1,4a1 + w2,4a2)) = g(w0,5 + w3,5g(w0,3 + w1,3x1 +w2,3x2) + w4,5g(w0,4 +w1,4x1 + w2,4x2)) Như vậy, các đầu ra được biểu diễn bởi hàm của các đầu vào và các trọng số. Chúng ta có thể sử dụng đạo hàm theo các trọng số và sử dụng phương pháp gradient để huẩn luyện mạng. Do hàm diễn tả mạng Nơ ron là tổ hợp của các hàm không tuyến tính nên mạng Nơ ron giống như một công cụ hồi quy không tuyến tính.

2.2.4. Học trong mạng Nơ ron nhiều lớp

Việc học cho mạng Nơ ron nghĩa là từ dữ liệu huấn luyện ta phải xây dựng một mạng Nơ ron gồm L lớp với các trọng số wij cũng như hàm kích hoạt g. Việc học này sử dụng thuật toán Back-Proppagation. Bản chất của thuật toán này là dựa trên phương pháp gradient trong quá trình tính toán và điều chỉnh tham số wij. Cụ thể các bước như sau:

- Tính toán giá trị  cho các nút ra

- Xuất phát từ lớp ra, lặp lại các thao tác sau cho mỗi lớp, cho đến khi lớp ẩn sớm nhất đạt được:

 Lan truyền các giá trị  quay lại lớp trước

 Cập nhật các trọng số giữa hai lớp.

Thuật toán học lan truyền ngược được trình bày trong hình 3.12. Function back-propagation();

Input: tập dữ liệu huấn luyện Q ={(xi,yi)}, cấu trúc mạng với L lớp, hàm kích hoạt g;

Output: mạng Nơ ron  với các trọng số wij Begin

Repeat

Bước 1: for each wij  do

wij = <giá trị số ngẫu nhiên bé> Bước 2: for  (xi, yi)  Q

for  i  L ai = xi;

Bước 4: for l =2 to L do for j  lớp l do

Bước 5: for j  lớp output do

Bước 6: for l = L-1 downto 1 do For i  lớp l do

Bước 7: for wij   do

Until <điều kiện dừng = true> End;

Hình 2.14. Thuật toán Back-Propagation 2.2.5. Học xây dựng cấu trúc mạng nơ ron

Phần trước chúng ta đã xem xét vấn đề học các trọng số với một cấu trúc mạng cụ thể chẳng hạn như mạng Bayes; tuy nhiên chúng ta cũng cần hiểu cách thức xây dựng cấu trúc mạng phù hợp. Nếu chúng ta chọn mạng quá lớn chúng ta sẽ tốn bộ nhớ, xuất hiện nhiều tham số,… Một số thuật toán đã được đề xuất nhằm giải quyết vấn đề này chẳng hạn thuật toán

optimal brain damage bắt đầu với một mạng kết nối đầy đủ và loại bỏ các

kết nối dần dần. Sau khi mạng được luyện lần đầu, một phương pháp tối ưu sẽ được áp dụng để loại bỏ các kết nối, sau đó được luyện lại, nếu chất lượng mạng không tăng, thao tác này sẽ được lặp lại. Trong quá trình xây dựng mạng, một số nút không có đóng góp nhiều cũng sẽ bị loại bỏ. Một số thuật toán khác thì theo ý tưởng làm lớn dần kích thước của mạng xuất phát từ một nút dựa trên tập huấn luyện và kiểm tra tính phù hợp của nó với tập dữu liệu. Thuật toán sẽ thêm các nút cần thiết để làm việc được với tất cả các dữ liệu huấn luyện.

2.3. Mô hình âm học

Một trong những mô hình xác suất được sử dụng phổ biến cho mô hình âm học là mô hình Markov ẩn HMM (Hidden Markov Model). Chương trình demo luận văn sử dụng là mô hình kết hợp Hidden Markov Model và Gaussian Mixtrue Model (HMM-GMM).

2.3.1. Mô hình toán học của hệ thống nhận dạng

Để có một hệ thống nhận dạng tự động có độ chính xác cao cần có mô hình âm học tốt. Hầu hết các hệ thống nhận dạng tiếng nói thống kê ngày nay đều dựa trên mô hình toán học của một hệ thống nhận dạng tiếng nói theo nguyên lý xác suất của Bayes.

(2.1)

Tín hiệu tiếng nói sau khi qua bước tiền xử lý như rời rạc hóa và trích chọn ra các thông tin đặc trưng, ta thu được là một chuỗi các vector đặc trưng tương ứng X={X1, X2, X3,…, XN}. Sau đó nhiệm vụ của hệ thống nhận dạng tiếng nói là tìm ra một chuỗi các từ W = { W1, W2, W3,…, WN} có nội dung tương ứng với X về mặt ngữ nghĩa, sao cho P(W | X) cực đại. P(W) là xác suất của chuỗi W, giá trị này có thể được tính toán thông qua một mô hình ngôn ngữ n-gram và nó hoàn toàn độc lập với tín hiệu tiếng nói X. P(X|W) là xác suất để X là W được xác định thông qua mô hình âm học (acoustic model). Giá trị P(X) có thể được bỏ qua do giá trị của nó không thay đổi trong một bộ dữ liệu cụ thể với tất các chuỗi dự đoán W.

2.3.2 Đơn vị huấn luyện cho Tiếng Việt

THANH ĐIỆU

ÂM ĐẦU

VẦN

Âm đệm Âm chính Âm cuối

Trong Tiếng Việt tiếng là đơn vị tự nhiên nhất cấu tạo nên lời nói, số lượng tiếng trong tiếng Việt khá lớn khoảng 6000 đến 8000 tiếng. Âm vị trong tiếng Việt gồm:

+ 22 phụ âm làm nhiệm vụ âm đầu. Đó là /b, m, f, v, t, t’, d, n, z, ‘…’, s, ‘…’, c, ‘…’, ‘…’, l, k, x, ‘…’, ‘…’, h, ‘…’/

+ 1 âm đệm /w/ có cấu tạo gần giống như nguyên âm làm âm chính /u/ + 16 nguyên âm gồm 13 âm đơn và 3 nguyên âm đôi làm âm chính. Đó là /i, e, ε, ‘...’, ‘...’,‘...’, a, ă, u, o, ɔ,‘...’, ‘...’, ie, ‘...’, uo/.

+ 8 âm cuối

+ Có 6 thanh điệu là không, ngã, hỏi, nặng, huyền, sắc

Có thể thấy số lượng âm vị không nhiều như tiếng, lựa chọn âm vị để huấn luyện là giải pháp tối ưu hơn. Khó khăn ở đây là thanh điệu, tuy nhiên thanh điệu ảnh hưởng nhiều nhất ở các nguyên âm. Khi dây thanh dao động, âm được tạo nên nếu đi ra ngoài tự do, có một âm hưởng êm ái, dễ nghe ta sẽ có các nguyên âm, ví dụ: [i], [e], [a], [u], [o]. Về mặt âm học, các nguyên âm bao giờ cũng là tiếng thanh. Bởi vậy có thể chia 6 nguyên âm ra thành 6 âm, tương ứng với 6 thanh điệu.

2.4. Mô hình ngôn ngữ

Mô hình ngôn ngữ (Language Model - LM) là một tập xác suất phân bố của các đơn vị (thường là từ) trên một tập văn bản cụ thể. Một cách tổng quát thông qua mô hình ngôn ngữ cho phép ta xác định xác suất của một cụm từ

hoặc một câu trong một ngôn ngữ. Mô hình ngôn ngữ là một thành phần quan trọng trong hệ thống nhận dạng từ vựng lớn, khi mà tại một thời điểm mô hình âm học có thể xác định ra rất nhiều từ có cùng xác suất. Khi đó mô hình ngôn ngữ sẽ chỉ ra từ chính xác nhất thông qua xác suất của nó trong cả câu đầu ra. Mô hình ngôn ngữ không chỉ giúp bộ giải mã quyết định từ đầu ra đối với mỗi mẫu nhận dạng mà nó còn giúp chuẩn hóa về mặt ngữ pháp cho đầu ra của hệ thống nhận dạng. Mô hình ngôn ngữ có nhiều hướng tiếp cận, nhưng chủ yếu được xây dựng theo mô hình N-gram. Và đây cũng là loại mô hình được sử dụng trong các thử nghiệm của luận án.

2.5. Kết luận

Trong chương này hai phương pháp học máy là mô hình Markov ẩn và phương pháp mạng Nơ ron đã được nghiên cứu và trình bày. Đây là hai phương pháp hiệu quả dùng nhiều trong các bài toán thực tế như phân lớp và dự đoán. Chương tiếp theo sẽ trình bày một ứng dụng về hệ thống điều khiển xe lăn bằng giọng nói dựa trên mô hình Markov ẩn.

Chương 3

MÔ PHỎNG HỆ THỐNG ĐIỀU KHIỂN XE LĂN BẰNG TIẾNG NÓI

3.1. Giới thiệu

Chương này nhằm mục đích sử dụng phương pháp nhận dạng tiếng nói ứng dụng trong điều khiển xe lăn. Chúng ta biết rằng xe lăn đối với người khuyết tật là một thiết bị vô cùng quan trọng. Hơn nữa đối với một số người khuyết tật khả năng điều khiển xe lăn bằng tay là không thể. Trên thế giới cũng đã có nhiều nước nghiên cứu về vấn điều khiển xe lăn thông minh, chẳng hạn các dự án về xe lăn thông minh được nghiên cứu và triển khai ở nhiều phòng thí nghiệm tại Mỹ (xem hình 3.1).

Hình 3.1. Xe lăn thông minh tại phòng thí nghiệm của Đại học Texas (Mỹ)

Ở Việt nam thực tế sản phẩm xe lăn điều khiển bằng giọng nói cũng đã được nghiên cứu và triển khai. Cụ thể sản phẩm xe lăn điều khiển bằng giọng nói đã đạt giải nhất cuộc thi dành cho sinh viên của Việt nam năm 2015 (xem hình 3.2).

Hình 3.2 Xe lăn điều khiển bằng giọng nói đạt giải nhất cho sinh viên tại Việt nam năm 2015

Hình 3.3. Xe lăn điều khiển bằng giọng nói của tác giả và nhóm nghiên cứu tại phòng thí nghiệm

3.2. Giới thiệu về hệ thống xe lăn và quy trình điều khiển

3.2.1. Giới thiệu về các thành phần chính của xe lăn

Một chiếc xe lăn điện tử sử dụng một điện thoại thông minh như một bộ điều khiển bằng giọng nói. Khung xe, ghế, pin, động cơ DC bên phải, động cơ DC trái và thông số giao tiếp Bluetooth 9600 bps (xem hình 3.3).

Hình 3.4. Mô hình kế nối hệ thống chi tiết giữa module điều khiển của xe lăn và điều khiển từ xa của điện thoại thông minh

Sơ đồ hệ thống điều khiển bằng giọng nói qua điện thoại kết nối Blue Tooth được minh họa trên hình 3.4. Sau khi nhận được tín hiệu từ điện thoại chương trình điều khiển trên Micro-controller sẽ tiến hành xử lý và điều khiển động cơ của xe lăn.

3.2.2. Quy trình điều khiển hoạt động của xe lăn

Chúng ta sẽ có hai bước chính khi lập trình điều khiển xe lăn như sau: - Viết chương trình nhận dạng tiếng nói trên thiết bị điện thoại di động cũng như truyền tín hiệu đến xe lăn.

- Viết chương trình điều khiển xe lăn khi nhận được lệnh qua Blue tooth.

Để thiết kế các phần mềm cho hai chức năng trên, tôi đã tìm hiểu và khai thác các phần mềm mã nguồn mở cung cấp cho cộng đồng trên internet.

Cụ thể là các phần mềm nhận dạng của Sphinx-4 và phần mềm điều khiển động cơ.

3.3. Nhiệm vụ và chức năng của hệ thống

3.3.1. Nhiệm vụ của hệ thống

Nhiệm vụ chính của hệ thống là nhận dạng tiếng Việt và gửi lệnh điều khiển xuống module điều khiển xe lăn thông qua Bluetooth trên điện thoại Android. Sau khi nhận được tín hiệu từ điện thoại Android gửi xuống mudule Arduino sẽ dựa theo câu lệnh điều khiển xe lăn chạy theo chương trình đã lập trình sẵn.

3.3.2. Chức năng của hệ thống

Hệ thống cần đáp ứng được những yêu cầu sau: Trên điện thoại Android:

-Thu âm từ microphone của điện thoại.

-Phân tích âm thanh nhận được từ microphone.

-Nhận dạng được tiếng nói điều khiển từ dữ liệu phân tích. -Kết nối module Bluetooth.

-Truyền dữ liệu thông qua Bluetooth của thiết bị. Trên module Arduino:

-Nhận dữ liệu từ module Blutooth.

-Xuất tín hiệu điều khiển động cơ xe lăn. -Nhận tín hiệu từ bộ cảm biến tốc độ động cơ. -Tính toán điều chỉnh lại tốc độ.

3.4. Thiết kế hệ thống điều khiển xe lăn

3.4.1. Phần mềm, thư viện và CSDL nhận dạng.

 Các phần mềm và thư viện cần thiết. -Phần mềm Android studio.

-Phần mềm Arudino. -Hệ điều hành Ubuntu.

-Thư viện pocketsphinx-android-5prealpha-nolib.jar -Pocket sphinxtrain-5prealpha.tar.gz.

-Pocket sphinxbase-5prealpha.tar.gz. -Thư viện PID cho Arduino.

-Một số thư viện cần thiết khi cài pocket sphinx trên Ubuntu.

3.4.2. Các bước của giải thuật điều khiển xe lăn

Các bước của việc điều khiển xe lăn như sau:

Bước 1: Khi ứng dụng được mở, yêu cầu bật bluetooth

Bước 2: Có một nút kết nối ảo được sử dụng để kết nối điện thoại di động Android với phần cứng và Bluetooth để truyền dữ liệu không dây.

Bước 3: Khi Bluetooth được bật, ứng dụng sẽ kiểm tra đầu vào.

Bước 4: Nếu lệnh nhận được là Tiến, toàn bộ động cơ DC sẽ tiến lên phía trước cho chuyển động tuyến tính.

Bước 6: Nếu lệnh nhận được là Lùi, toàn bộ động cơ DC sẽ chuyển động hướng ngược lại cho chuyển động tuyến tính.

Bước 7: Nếu lệnh nhận được là Trái, động cơ DC trái sẽ dừng lại và động cơ DC phải di chuyển theo hướng trái.

Bước 8: Nếu lệnh nhận được là rẽ Phải, động cơ DC phải sẽ dừng lại và động cơ DC trái di chuyển theo hướng phải

Bước 9: Nếu lệnh nhận được là Dừng, cả hai động cơ sẽ dừng lại.

Bước 10: Khi người sử dụng muốn ngưng sử dụng xe, người sử dụng chạm vào nút tắt kết nối để tắt kết nối không dây.

Hình 3.5. Lưu đồ thuật toán của hệ thống nhận dạng

Bắt đầu

Bluetooth đã được bật chưa?

Kiểm tra đầu vào

Bluetooth đã bật

Gửi yêu cầu bật Bluetooth

Giá trị đầu vào

Tiến

n

Lùi Dừng Trái Phải

Động cơ di chuyển về phía trước Động cơ di chuyển về phía sau Động cơ dừng lại Động cơ trái dừng, động cơ phải di chuyển sang trái Động cơ phải dừng, động cơ trái di chuyển sang phải Kết thúc No Yes Yes No

3.4.3. Thiết kế phần mềm

Hình 3.6. Sơ đồ khối của quá trình nhận dạng tiếng nói trong Sphinx-4

Chức năng quan trọng nhất ở đây là nhận dạng tiếng nói, chúng tôi sử dụng công cụ mã nguồn mở của Sphinx-4 (hình 3.6). Trong đó có thể tóm tắt chức

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu về nhận dạng tiếng nói ứng dụng vào điều khiển xe lăn (Trang 38)

Tải bản đầy đủ (PDF)

(65 trang)