1. Các phương pháp nhận dạng 1.1 Khái niệm
- Nhận dạng (Pattern Recognition): Có thể hiểu đó là phương pháp để xây dựng một hệ thống tin học có khả năng: cảm nhận-nhận thức-nhận biết các đối tượng vật lý gần giống khả năng của con người. Nhận dạng có gắn chặt với 3 khả năng trên là một lĩnh vực hết sức rộng có liên quan đến việc xử lý tín hiệu trong không gian nhiều chiều, mô hình, đồ thị, ngôn ngữ, cơ sở dữ liệu, phương pháp ra quyết định... Hệ thống nhận dạng phải có khả năng thể hiện được quá trình nhận thức của con người qua các mức:
- Mức 1- mức cảm nhận: cảm nhận được sự tồn tại các đối tượng quan sát, hay đối tượng mà hệ thống cần nhận dạng. Mức này cũng đưa ra quá trình thu nhận số liệu qua các bộ cảm biến trong hệ thống nhận dạng, ví dụ trong hệ thống nhận dạng tiếng nói: đối tượng ở đây là tiếng nói (speech) và thu nhận đầu vào qua Micro hoặc các file âm thanh .wav.
- Mức 2- mức nhận thức: ở đây biểu diễn quá trình học, mô hình hoá đối tượng để tiến tới hình thành sự phân lớp (classification) các đối tượng cần nhận dạng.
- Mức 3- mức nhận biết: từ đối tượng quan sát có thể trả lời nhận biết đối tượng là gì? Hay đây là quá trình ra quyết định.
Hình vẽ dưới cho ta sơ đồ của hệ thống nhận dạng.
Hình . Sơ đồ tổng quan của hệ thống nhận dạng
- Trong chương này chúng ta xem xét đến các phương pháp nhận dạng âm thanh, một vấn đề được quan tâm nghiên cứu trong mấy thập kỷ qua. Tuy nhiên do tính đa dạng và phức tạp của tiếng nói mà các phương pháp đều giành được những thành công cùng với những hạn chế.
- Trong nhận dạng những hướng nghiên cứu có thể kể đến là: • Sử dụng tập mẫu.
• Sử dụng mô hình thống kê. • Sử dụng mạng Neuron nhân tạo.
1.2 Phương pháp nhận dạng dùng tập mẫu. Khái quát phương pháp.
Trong nhận dạng thì đơn giản nhất là ta so sánh mẫu mới đưa vào với tất cả mẫu đã học có trong hệ thống và thông qua các quy tắc xây dựng để quyết định mẫu đưa vào. Khả năng xảy ra xác suất lớn nhất sẽ được quyết định mẫu mới thuộc lớp đó. Độ giống nhau của 2 mẫu được đo bằng hàm khoảng cách toán
học. Độ giống nhau giữa hai mẫu càng lớn khi và chỉ khi khoảng cách giữa chúng càng nhỏ.
Những hạn chế của phương pháp tập mẫu.
Hệ thống này cũng gặp một số khó khăn trong nhận dạng tiếng nói: • Khả thi với hệ thống nhận dạng từ độc lập.
• Yêu cầu phải chuẩn hoá về mặt thời gian tong bước tiền xử lý.
• Hạn chế tối đa sai lệch về tốc độ phát âm của âm thanh của tập mẫu cũng như âm thanh nhận dạng.
• Độ tính toán tăng theo độ dài thời gian
1.3 Phương pháp dùng mô hình thống kê. Khái quát phương pháp.
- Pheo phương pháp này khả thi là mô hình Markov ẩn (Hidden Markov Models - HMM). Mô hình này bao gồm tập các trạng thái liên kết với nhau bởi các chuyển mạch. Bắt đầu với trạng thái đầu và theo mỗi bước thời gian có một chuyển mạch tương ứng xảy ra và đưa hệ thống về một trạng thái mới có kèm theo một đầu ra tương ứng.
- Với mô hình này thì việc lựa chọn đầu vào nào và ra nào là không cố định, chỉ phụ thuộc vào khả năng xảy ra phân bố đối với chúng. Mô hình HMM ứng dụng rất đa dạng, trong nhận dạng tiếng nói thì trạng thái được hiểu là dữ liệu âm thanh, còn chuyển mạch phụ thuộc theo thời gian. Với mức độ âm tiết ta có thể mô tả như hình sau:
Thông thường HMM có các thành phần sau: {s}: tập các trạng thái.
{aij}: tập các khả năng xảy ra chuyển mạch.
{bi(u)}: tập hợp của các khả năng xảy ra, (bi là khả năng sinh ra u từ trang thái i).
Với a, b chỉ phụ thuộc vào trạng thái hiện tại không phụ thuộc trạng thái trước đó, chúng phải thoả mãn: aij≥ 0, bi(u) ≥ 0, ∀ i, j, u
∑ = ∀j j ij i a 1, ∑ = ∀ ij i u i b ( ) 1,
Một số thuật toán được nêu ra.
• Thuật toán Forward.
• Thuật toán Forwardbackward.
Những hạn chế của HMM
• Trạng thái tiếp theo chỉ phụ thuộc trạng thái hiện tại, điều này ít phù hợp với nhận dạng tiếng nói.
• Không có sự liên quan giữa các frame gần nhau, nó chỉ kiểm tra một frame của tiếng nói tại một thời điểm, khi muôn sử dụng các frame liên quan nó phải tổng hợp các fram đó thành một frame đơn lẻ.
1.4 Phương pháp dùng mạng Neuron. Các khả năng của mạng neuron.
Mạng neuron có khả năng tiếp thu sự huấn luyện về mối quan hệ giữa đầu vào và đầu ra của các mẫu học, nếu ta chỉ cho nó đầu vào x tương ứng với đầu ra y thì mạng có thể nhớ lại được điều đó.
+ Khả năng chuẩn hoá:
Mạng neuron học các mẫu dữ liệu cơ sở nên có khả năng nhận dạng được dữ liệu mới, những dữ liệu mà nó cho rằng gần giống với dữ liệu đã được học. Chính khả năng này của mạng neuron rất thuận lợi khi ứng dụng nó nhận dạng tiếng nói vì các mẫu âm học không bao giờ giống nhau một cách tuyệt đối.
+ Khả năng tính toán:
Mạng neuron có khả năng tính toán song song rất cao, đáp ứng yêu cầu của các giải thuật. Trong nhận dạng tiếng nói khối lượng tính toán là rất lớn. Và kết quả cần được đưa ra nhanh chóng thì hệ thống mới nâng cao được giá trị sử dụng.
Nhờ những khả năng đó của mạng neuron mà con người đã cố gắng mô phỏng để tạo ra mạng neuron nhân tạo, kết quả mà chúng ta đạt được là rất khả quan và hiện nay được ứng dụng rông rãi trong nhiều bài toán đặc tả quan trọng, đặc biệt là trong nhận dạng tiếng nói.
2. Cấu trúc mạng neuron nhân tạo 2.1 Cấu trúc mạng Neuron 2.1.1 Cấu trúc mạng
Mô phỏng hoạt động của các nơ ron thần kinh, mạng neuron nhân tạo là một hệ thống bao gồm nhiều neuron hoạt động song song. Các neuron được nối với nhau nhờ các liên kết, mỗi liên kết kèm theo một trọng số đặc trưng cho tính kích hoạt hay ức chế giữa các neuron. Một nhóm neuron được tổ chức theo một cách
sao cho tất cả chúng đều nhận một vector vào X để xử lý tại cùng một thời điểm. Việc sản sinh ra tín hiệu của mạng xuất hiện cùng một lúc vì mỗi neuron có một tập trọng số khác nhau nên có bao nhiêu neuron sẽ sản sinh ra bấy nhiêu tín hiệu khác nhau. Một nhóm neuron như vậy được gọi là một lớp mạng. Một mạng neuron bao gồm nhiều lớp mạng (hay còn gọi là tầng mạng), các neuron trong một lớp chỉ được nối với các neuron ở lớp tiếp theo, không cho phép các liên kết giữa các neuron cùng một lớp. Lớp nhận các tín hiệu đầu vào X gọi là lớp vào, lớp chứa các tín hiệu ra Y của mạng được gọi là lớp ra, bất kỳ lớp nào nằm giữa hai lớp trên được gọi là lớp ẩn, lớp ẩn là thành phần nội tại của mạng không có tiếp xúc với môi trường ngoài. Số lượng lớp ẩn có thể từ 0 đến vài lớp.
Hình : Một mô hình của mạng neural
Mạng neuron nhân tạo gồm có 3 thành phần sau:
+ Tập trọng số liên kết đặc trưng cho các khớp thần kinh.
+ Bộ cộng để thực hiện phép tính tổng các tích của tín hiệu vào với trọng số liên kết tương ứng.
+ Hàm kích hoạt hay hàm chuyển đổi quy định giới hạn đầu vào của neuron.
Mỗi neuron trong mô hình neuron nhân tạo được nối với các neuron khác và nhận được tín hiệu xi từ chúng với các trọng số wi. Tổng thông tin đầu vào trọng số là:
∑
= wjxj Net
Giả sử mạng có N nút vào: x = (x0, x1, x2,… xN-1) với các vector trong số w0
= (w00, w01, w02,… x0N-1), w1 = (w10, w11, w12,… x1N-1),… wM-1 = (wM-10, wM-11, wM- 12,… xM-1N-1) và M đầu ra phi tuyến của mạng là y = (y0, y1, y2,… yM-1) được biểu diễn bởi: ∑− = + = 1 0 N i i i ij j w x b Net 0≤ j ≤M −1 ) ( j j f Net y = xi, yi, wij, bi, là các số thực, các bi gọi là độ lệch “bisa”.
Hàm f là một hàm phi tuyến, gọi là hàm truyền.
2.1.2 Phân loại mạng neuron
Có nhiều phương pháp để phân loại mạng neuron: phân loại dựa vào kiểu liên kết hoặc số lớp. Người ta nghiên cứu và đưa ra sử dụng các loại mạng neuron sau:
+ Mạng neuron truyền thẳng: Trong mạng neuron truyền thẳng các liên kết neuron đi theo một hướng nhất định, không tạo thành chu trình.
+ Mạng neuron hồi quy: Các mạng hồi quy cho phép các neuron tạo thành chu trình.
+ Mạng Hopfield: Có một lớp ra với số neuron bằng số tín hiệu vào. Các liên kết neuron là đầy đủ. Mạng Hopfield có hàm kích hoạt là hàm dấu.
+ Mạng kiểu bộ nhớ hai chiều kết hợp thích nghi ABAM: Có một lớp mạng và có số tín hiệu ra có thể ít hơn nhiều số tín hiệu vào.
+ Mạng Kohomen: Thuộc vào nhóm mạng một lớp, các neuron được phân bố trong mặt phẳng hai chiều theo kiểu lưới vuông hay lục giác.
+ Mạng Perceptron: Là mạng truyền thẳng một lớp có một hay nhiều đầu ra. + Mạng neuron nhiều lớp lan truyền ngược sai số.
+ Mạng neuron có tích hợp các hệ mờ.
2.2. Mạng neural với thuật giải lan truyền ngược 2.2.1 Giới thiệu chung
Mạng lan truyền ngược đôi khi còn được coi như là mạng đa tầng hướng tiến (feedforward).
Hiện nay được sử dụng rộng rãi trong mô hình mạng Neuron. Mạng lan truyền ngược đạt được tính tổng quát bởi vì kỹ thuật cơ bản trong lan truyền ngược là cập nhật trọng số theo hướng giảm gradient.
Một mạng lan truyền tổng quát là mạng có n (n > 2) lớp: Lớp thứ nhất gọi là lớp vào, lớp thứ n là lớp ra, và (n-2) là lớp ẩn. Trong mạng lan truyền mỗi nút ở lớp thứ i (0 < i < n) liên kết với nút ở lớp thứ (i+1) và các nút trong cùng một lớp không liên kết với nhau.Mỗi cung trong mạng được gắn một trọng số W.
Hình 8: Mạng lan truyền tổng quát
Mạng lan truyền chỉ có thể ở 1 trong 2 trạng thái: trạng thái lan truyền và trạng thái học. Trạng thái lan truyền, thông tin lan truyền từ lớp nhập đến lớp xuất. Trạng thái học, thông tin lan truyền theo hai chiều nhiều lần để học các trọng số.Trạng thái lan truyền, mạng xử lý mỗi lần một mẫu.
Trước tiên giá trị của các biến độc lập chuyển tới các nút vào của mạng. Các nút của lớp vào không tính toán gì cả. Các nút của lớp ẩn tính tổng trọng hóa của tất cả các dữ liệu bằng cách cộng dồn tất cả các tích giữa giá trị nút ẩn với trọng số của cung liên kết giữa nút nhập và nút ẩn.
Kế tiếp, một hàm truyền được áp dụng trên tổng trọng hóa này cùng với ngưỡng của nút ẩn nào đó để cho ra giá trị thực cho nút ẩn. Sau khi nén tổng trọng hóa của nó, đến lượt mình, mỗi nút ẩn sẽ gửi đến tất cả các nút của lớp ra.
Mỗi nút của lớp ra thực hiện các công việc tương tự như đã thực hiện trong nút ẩn để cho ra giá trị của nút xuất. Giá trị của các nút xuất chính là giá trị thực, nghĩa là giá trị của các biến phụ thuộc cần xác định.
Bản chất ánh xạ do mạng thực hiện tùy thuộc vào giá trị các trọng số trong mạng. Lan truyền ngược là một phương pháp cho phép xác định tập trọng số tốt nhất trong mạng giải quyết một bài toán được cho. Việc áp dụng phương pháp lan truyền ngược là một quá trình lặp đi lặp lại nhiều lần hai tiến trình: Lan truyền tiến và lan truyền ngược sai số. Hai tiến trình này được áp dụng trên tập mẫu xác định. Ta gọi chung tiến trình này là luyện mạng hay còn gọi là học.
Quá trình luyện mạng được bắt đầu với các giá trị trọng số tùy ý, có thể là các số ngẫu nhiên và tiến trình lặp đi lặp lại. Mỗi lần lặp được gọi là một thế hệ. Trong mỗi thế hệ, mạng điều chỉnh các trọng số sao cho sai số giảm dần (sai số là độ lệch giữa các kết xuất thực và kết xuất đích). Tiến trình điều chỉnh nhiều lần giúp cho trọng số dần đạt được tập hợp các giá trị tối ưu. Thường mạng cần thực hiện nhiều thế hệ trước khi việc luyện mạng hoàn tất.
Để cập nhật trọng số trong mỗi thế hệ, mạng phải xử lý tất cả các mẫu trong tập mẫu. Đối với từng mẫu, mạng thực hiện phép toán sau đây:
Trước tiên, mạng thực hiện quá trình lan truyền tiến, nghĩa là mạng ánh xạ các biến nhập của mẫu hiện hành các giá trị xuất như đã trình bày ở trên, sử dụng các giá trị của trọng số hiện hành. Ở các thế hệ đầu, các kết xuất thường chưa chính xác vì các trọng số ban đầu chưa có gì là đúng.
Kế tiếp sai số được tính dựa trên giá trị kết xuất và giá trị đích. Trên cơ sở sai số tính toán được, mạng sẽ cập nhật lại các trọng số theo nguyên tắc lan truyền ngược sai số gọi là giai đoạn lan truyền ngược.
Như vậy, để học một mẫu, mạng thi hành hai bước: Lan truyền tiến – thực hiện ánh xạ và lan truyền ngược sai số - cập nhật lại các trọng số.
2.2.2 Nội dung giải thuật lan truyền ngược
Khi mạng muốn học một mẫu học (X, Y) trong đó X là các vectơ tín hiệu đầu vào và Y là các vectơ tín hiệu đầu ra mong muốn. Các thành phần xi của X sẽ được đưa vào các Neuron tương ứng của lớp vào. Vì các Neuron của lớp vào chỉ có trách nhiệm nhận tín hiệu vào, không có bất kỳ xử lý nào, cho nên đầu ra của các Neuron lớp vào cũng chính là các giá trị xi.
Các tín hiệu đầu ra của lớp vào sẽ được truyền cho các Neuron của lớp ẩn. Vì các Neuron lớp vào liên kết với các Neuron lớp ẩn bởi các trọng số wịj cho nên mỗi Neuron thứ j của lớp ẩn sẽ nhận được tổng tín hiệu đầu vào có trọng số netj
được tính theo công thức:
∑= = = m i i ij j w x net 1
Sau khi nhận được tổng tín hiệu vào có trọng số netj, hàm kích hoạt (hay còn gọi là hàm truyền) sẽ được sử dụng để biến đổi tạo ra tín hiệu ra của các Neuron ẩn. Giả sử hàm truyền sigmoid đơn cực (ký hiệu là g()) được dùng để xử lý các tín hiệu vào của mỗi Neuron thì tín hiệu ra zj của mỗi Neuron j được tính như sau: ( ) = = ∑ = m i i ij j j g net g w x z 1
Các tín hiệu ra zj cùng với các trọng số liên kết wjk lại tiếp tục được truyền cho Neuron thứ k của lớp ra:
∑= = = l j j jk k w z net 1
Tín hiệu ra ok của mỗi Neuron thứ k của lớp ra sẽ là:
( )= = ∑ = ∑ = l j jk j k k g net g w z o 1
Như vậy, với đầu vào là vectơ X, sau khi lan truyền tiến qua mạng, ta sẽ nhận được đầu ra là vectơ O. Tín hiệu đầu ra O này không thể trung khớp hoàn toàn với tín hiệu đầu ra mong muốn Y. Sai số tổng thể E của mạng được tính dựa trên sai lệch giữa O và Y theo công thức bình phương:
( ) ∑ = − = n k k k o y E 1 2 2 1
Để điều chỉnh cho các tín hiệu ra ok tiến gần đến các tín hiệu yk, các trọng số liên kết giữa các Neuron cần được cập nhật lại. Theo quy tắc Delta (hay còn gọi là phương pháp giảm theo hướng dốc nhất), các trọng số liên kết từ Neuron thứ j