TIẾP CẬN KẾT NỐI: MẠNG NEURON
Giới thiệu Các mô hình học theo tiếp cận này bắt chước theo cách học của các hệ thần kinh sinh vật. Các hệ thống theo mô hình này có khi còn được gọi là các hệ kết nối (connectionist systems), tính toán neural (Neural ...
Giới thiệu
Các mô hình học theo tiếp cận này bắt chước theo cách học của các hệ thần kinh sinh vật. Các hệ thống theo mô hình này có khi còn được gọi là các hệ kết nối (connectionist systems), tính toán neural (Neural computing), mạng neural (Neural Networks), các hệ xử lý phân tán song song (parallel distributed processing – PDP).
Không giống như các giải thuật của tiếp cận ký hiệu, các mô hình này không sử dụng ký hiệu một cách tường minh để giải quyết vấn đề. Thay vào đó, chúng giữ cho trí tuệ phát triển trong các hệ thống gồm các thành phần (neuron sinh học hay neuron nhân tạo) đơn giản, tương tác thông qua một quá trình học hay thích nghi mà nhờ đó kết nối giữa các thành phần này được điều chỉnh. Việc xử lý của các hệ thống này được phân tán trên một tập hợp các lớp neuron. Các hệ thống này giải quyết vấn đề song song theo nghĩa rằng tất cả các neuron trong tập hợp hay trong các lớp sẽ xử lý tín hiệu vào một cách đồng thời và độc lập.
Trong khi các giải thuật của tiếp cận ký hiệu sử dụng ký hiệu để mô tả các mẫu của bài toán như ta đã thấy trong giải thuật ID3 thì những nhà thiết kế mạng neuron phải tạo ra một sơ đồ mã hóa các mẫu (pattern) của bài toán thành các đại lượng số để đưa vào mạng. Việc chọn lựa một sơ đồ mã hóa thích hợp đóng vai trò quyết định cho sự thành công hay thất bại trong việc học của mạng.
Các mẫu (pattern) của bài toán được mã hóa thành các vector số. Các kết nối giữa các thành phần, hay neuron, cũng được biểu diễn bằng các giá trị số. Cuối cùng, sự biến đổi của các mẫu cũng là kết quả của các phép toán số học, thông thường là phép nhân ma trận. Sự chọn lựa kiến trúc kết nối của nhà thiết kế mạng neuron góp phần vào tính thiên lệch quy nạp (inductive bias) của hệ thống.
Các giải thuật và kiến trúc dùng để cài đặt mạng neuron thường được huấn luyện (trained) hay tạo điều kiện (conditioned) chứ không được lập trình một cách tường tận. Và đây chính là sức mạnh chủ yếu của tiếp cận này.
Các phương pháp của tiếp cận này phát huy sức mạnh của chúng trong các bài toán mà khó có thể giải quyết bằng các mô hình ký hiệu. Tiêu biểu là các bài toán đòi hỏi các kỹ năng dựa vào nhận thức, hay các bài toán thiếu một cú pháp định nghĩa rõ ràng.
Các bài toán thích hợp với tiếp cận kết nối thường là:
- Bài toán phân loại (classification): quyết định một giá trị đưa vào thuộc loại hay nhóm nào,
- Bài toán nhận dạng mẫu (pattern recognition): nhận dạng cấu trúc trong các dữ liệu có thể là bị nhiễu.
- Bài toán dự đoán (prediction): chẳng hạn như nhận dạng bệnh từ các triệu chứng, nhận dạng tác nhân từ các hiệu ứng,…
- Bài toán tối ưu (optimization): tìm một tổ chức ràng buộc tốt nhất
- Bài toán lọc nhiễu (Noise filtering): hay phân biệt các tín hiệu với nền, tìm ra các thành phần không quan trọng trong một tín hiệu.
Cơ bản về mạng kết nối:
Thành phần cơ bản của một mạng neuron là một neuron nhân tạo, như mô tả trong hình 9.6 sau đây.
Một neuron nhân tạo
Hình 9. 6 minh họa một neuron nhân tạo bao gồm:
Hình 9.6 - Một neuron nhân tạo.
- Các tín hiệu đầu vào, xi. Các dữ liệu này có thể đến từ môi trường, hay được kích hoạt từ các neuron khác. Các mô hình khác nhau có thể có miền giá trị của đầu vào khác nhau; thông thường các giá trị đầu vào này là các số rời rạc (discrete) lấy từ tập {0,1} hay {-1,1} hay số thực.
- Một tập các trọng số (weight) có giá trị thực, wi. Các trọng số này dùng để mô tả sức mạnh kết nối, hay sức mạnh của các kết nối thiên lệch (bias link)
- Một mức kích hoạt (activation level) hay hàm kích hoạt Σwixi. Mức kích hoạt của một neuron được xác định bởi sức mạnh tích lũy từ các tín hiệu đầu vào của nó nơi mà mỗi tín hiệu đầu vào được tỷ lệ lại bằng trọng số kết nối wi ở đầu vào đó. Vì vậy, mức kích họat được tính toán bằng cách lấy tổng các giá trị đầu vào sau khi được tỉ lệ hóa, Σwixi.
- Một hàm ngưỡng (threshold function), f. Hàm này tính kết quả đầu ra của neuron bằng cách xác định xem mức kích hoạt nằm dưới hay trên một giá trị ngưỡng là ít hay nhiều. Hàm ngưỡng này có khuynh hướng tạo ra trạng thái tắt/mở của các neuron.
Các đặc trưng của một mạng Neuron
Ngoài các tính chất của một neuron đơn lẻ, một mạng neuron còn được đặc trưng bởi các tính chất toàn cục như sau:
- Hình thái mạng (network topology): là mô hình hay mẫu kết nối giữa các neuron đơn lẻ.
Hình 9.7 - Các hình thái mạng neuron khác nhau.
- Giải thuật học (learning algorithm): là giải thuật dùng để điều chỉnh các trọng số ở các đầu vào của các neuron. Trong các phần tiếp theo của chương này sẽ trình bày một số giải thuật học tiêu biểu.
- Sơ đồ mã hóa (encoding schema): Bao gồm việc thông dịch dữ liệu thực tế thành các giá trị đầu vào của mạng, và việc thông dịch giá trị đầu ra của mạng thành một kết quả có ý nghĩa.
Mạng neuron McCulloch-Pitts
Ví dụ đầu tiên về tính toán neural được MacCulloch và Pitts đưa ra vào 1943. Đầu vào của một neuron McCulloch-Pitts là +1 (kích thích) hoặc –1 (ức chế). Hàm kích hoạt nhân mỗi đầu vào với giá trị trọng số tương ứng và cộng chúng lại; nếu tổng lớn hơn hay bằng không, thì neuron trả về 1, ngược lại, là –1.
McCulloch-Pitts cho thấy các neuron này có thể được xây dựng để tính toán bất cứ hàm logic nào, chứng minh rằng các hệ thống gồm các neuron này cung cấp một mô hình tính toán đầy đủ.
Hình 9.8 minh họa các neuron McCulloch-Pitts dùng để tính hàm logic and và or.
Hình 9.8 - Các neuron McCulloch-Pitts dùng để tính toán các hàm logic and và or .
Các neuron này có 3 đầu vào: x và y là các giá trị cần đưa vào, còn đầu vào thứ ba, đôi khi còn được gọi là một thiên lệch (bias), có giá trị hằng là +1.
Ba đầu vào của neuron and có 3 trọng số tương ứng là +1, +1 và –2. Vì vậy, với các giá trị bất kỳ của x, y, neuron tính giá trị x+y-2; nếu giá trị này nhỏ hơn 0, nó trả về –1. Ngược lại trả về 1.
Bảng bên dưới minh họa cho tính toán neuron x and y.
Bảng 9.2 - Mô hình McCulloch-Pitts cho logic and.
Mặc dù McCulloch-Pitts chứng minh cho sức mạnh của tính toán neural, nhưng sức hấp dẫn của tiếp cận này chỉ thực sự bắt đầu khi các giải thuật học thực tế bắt đầu phát triển. Phiên bản đầu tiên của mạng neuron có kèm giải thuật học được Frank Rosenblatt đưa ra vào cuối thập niên 1950, có tên gọi là perceptron.
Học perceptron
Giải thuật học perceptron
Perceptron là mạng neuron đơn tầng. Cách lan truyền tín hiệu của perceptron tương tự với neuron McCulloch-Pitts. Các giá trị đầu vào và các mức kích hoạt của perceptron là -1 hoặc 1; trọng số là các số thực. Mức kích hoạt được xác định qua tổng tổngwixi. Perceptron sử dụng một hàm ngưỡng giới hạn cứng, khi một kích hoạt nằm bên trên ngưỡng, hàm sẽ cho kết quả là 1, và -1 nếu ngược lại. Cho trước các giá trị đầu vào xi, các trọng số wi, và một ngưỡng, t, hàm ngưỡng f của perceptron sẽ trả về:
1 nếu ∑wixi >= t -1 nếu ∑wixi < t
Perceptron sử dụng một hình thức đơn giản của học có giám sát (supervised learning). Sau khi perceptron cố gắng giải quyết một mẫu bài toán (mẫu này rút ra từ tập dữ liệu rèn luyện – training data), chương trình đóng vai trò như một người thầy giáo sẽ cung cấp cho nó kết quả đúng của mẫu bài toán đó (giá trị này cũng lấy từ tập dữ liệu rèn luyện). Dựa vào sự khác biệt giữa kết quả đúng được cung cấp và kết quả mà perceptron tính toán được, nó sẽ tự điều chỉnh các trọng số của nó để làm thu hẹp khoảng cách lỗi. Perceptron sử dụng luật như sau: với c là một hằng số cho trước, hằng số này thể hiện tốc độ học và d là giá trị đầu ra mong muốn, perceptron sẽ điều chỉnh trọng số trên thành phần thứ i của vectơ đầu vào một lượng deltawi:
f(tổngwixi) chính là giá trị đầu ra của perceptron, nó có giá trị +1 hoặc -1. Vì vậy, hiệu giữa d và f(tổngwixi) là 0, 2 hoặc -2. Vì vậy, với mỗi thành phần của vectơ đầu vào:
- Nếu giá trị đầu ra mong muốn và giá trị đầu ra thật bằng nhau, thì không làm gì cả.
- Nếu giá trị đầu ra thực là -1 và 1 là giá trị mong muốn, thì tăng trọng số của đường thứ i lên 2cxi.
- Nếu giá trị đầu ra thực là 1 và -1 là giá trị mong muốn, thì giảm trọng số của đường thứ i -2cxi
Sở dĩ c được gọi là hằng số thể hiện tốc độ học vì nếu c lớn thì các giá trị điều chỉnh deltawi sẽ lớn, như vậy, đẩy nhanh quá trình wi hội tụ về giá trị đúng của nó.
Sau khi được huấn luyện bằng một tập hợp khá lớn các ví dụ rèn luyện cho trước, thủ tục này sẽ sinh ra một tập các trọng số có tính chất làm giảm thiểu trung bình lỗi trên toàn tập ví dụ rèn luyện. Theo Minsky và Papert 1969, nếu tồn tại một tập hợp các trọng số đem lại đầu ra đúng cho mọi ví dụ rèn luyện, thì thủ tục học perceptron sẽ học được nó.
Sử dụng mạng perceptron cho bài toán phân loại
Bài toán phân loại
Hình 9.9 - Một hệ thống phân loại đầy đủ.
Hình trên đưa ra một cái nhìn khái quát về bài toán phân loại. Dữ liệu thô từ một không gian các điểm có thể có sau khi qua bộ chuyển đổi (transducer) sẽ được chọn và chuyển đổi thành một không gian các dữ liệu hay mẫu mới. Trong không gian mẫu mới này, bộ trích lọc đặc trưng (feature extractor) sẽ chọn ra các đặc trưng của dữ liệu, và cuối cùng, dữ liệu thể hiện qua các đặc trưng sẽ được đưa vào máy phân loại (classifier) để cho ra kết quả lớp phân loại (class) của dữ liệu đó.
Trong dây chuyền này, mạng perceptron nói riêng và mạng neuron nói chung đóng vai trò như một máy phân loại.
Một dữ liệu đầu vào sẽ được biểu diễn như một vectơ gồm n thành phần (thể hiện cho n đặc trưng) x1, x2, …, xn. Các dữ liệu này có thể thuộc 1 trong m lớp class1, class2, … classm. Máy phân loại sẽ có nhiệm vụ xác định xem dữ liệu đầu vào thuộc về lớp nào.
Ví dụ perceptron
Trong ví dụ đơn giản dưới đây, bộ chuyển đổi và bộ trích lọc đặc trưng đã chuyển thông tin của bài toán thành các tham số của không gian hai chiều. Bảng 9.3 thể hiện dữ liệu rèn luyện của perceptron gồm có 2 đặc trưng (x1 và x2) mang giá trị thực, và kết quả mong muốn (output) gồm hai giá trị 1 hoặc -1, thể hiện cho hai lớp phân loại của dữ liệu. Hình 9.10 thể hiện hình ảnh của các điểm dữ liệu trong bảng 9.3 cùng với đường phân cách hai lớp dữ liệu được tạo ra sau khi mạng percpetron được huấn luyện trên tập dữ liệu này.
Perceptron dùng để phân loại bài toán này được thiết kế như sau:
Hình 9.11- Mạng perceptron cho ví dụ của bảng 9.3.Tín hiệu đầu vào: 2 tham số x1 và x2, cùng với một đầu vào thiên lệch (bias) luôn có giá trị 1.
Mức kích hoạt:
net = w1x1 + w2x2 + w3
Hàm ngưỡng f(net) là một hàm dấu, hay còn gọi là hàm ngưỡng hai cực tuyến tính
f(net) = +1, nếu net>0f(net) = -1, nếu net<=0
Tín hiệu thiên lệch phục vụ cho việc chuyển dịch hàm ngưỡng trên trục tung. Phạm vi của chuyển dịch này sẽ được học bằng cách điều chỉnh trọng số w3 trong khi huấn luyện mạng.
Bây giờ chúng ta sử dụng các điểm dữ liệu của bảng 9.3 để luyện tập perceptron của hình 9.6.
Giả thiết ban đầu các trọng số wi có giá trị ngẫu nhiên lần lượt là: [0.75,0.5,-0.6]
Sử dụng giải thuật học perceptron trình bày ở trên với tốc độ học c được chọn là một số dương nhỏ 0.2
Chúng ta bắt đầu bằng ví dụ đầu tiên trong bảng 9.3:
f(net)1 = f(0.75 * 1 + 0.5 * 1 – 0.6 *1 ) = f(0.65) = 1
Ta thấy f(net)1 có giá trị đúng với giá trị đầu ra mong muốn, nên ta không điều chỉnh trọng số. Cho nên W2 = W1 , W là vectơ trọng số đại diện cho 3 trọng số w1,w2,w3.
Đến ví dụ thứ 2:
f(net)2 = f(0.75 * 9.4 + 0.5 * 6.4 – 0.6 *1 ) = f(9.65) = 1
Nhưng giá trị mong đợi ở đây là -1, vì vậy, ta cần điều chỉnh trọng số theo luật học:
Wt = Wt-1 + c( dt-1 – f(net)t-1)Xt-1
trong đó: c là hằng số học
W, X: là vectơ trọng số, và vectơ dữ liệu đầu vào
t là thời điểm
Trong trường hợp này: c = 0.2, d2 = -1, và f(net)2 = 1
Áp dụng luật học trên, ta có:
Bây giờ chúng ta xét ví dụ thứ 3:
f(net)3 = f(-3.01 * 2.5 -2.06 * 2.1 – 1.0 *1 ) = f(-12.84) = -1
Trong khi giá trị mong đợi của ví dụ này là 1, nên các trọng số tiếp tục được điều chỉnh
Cứ tiếp tục như thế, sau 10 lần lặp, đường phân cách tuyến tính như trong hình 9.10 xuất hiện. Sau khi lặp lại việc huấn luyện perceptron trên tập dữ liệu đã cho, khoảng 500 lần lặp tổng cộng, vectơ trọng số hội tụ về giá trị [-1.3, -1.1, 10.9]. Và đây chính là các hệ số của phương trình đường phân cách tuyến tính trong hình 9.10:
-1.3 * x1 – 1.1 * x2 + 10.9 = 0.
Giới hạn của perceptron – tính tách rời tuyến tính của bài toán
Ban đầu, mạng perceptron được chào đón một cách nhiệt tình. Tuy nhiên, Nils Nilsson (1965) và những người khác đã phân tích những giới hạn của mô hình perceptron. Họ chứng minh rằng perceptron không thể giải quyết một lớp các bài toán khó, cụ thể là các bài toán mà các điểm dữ liệu không thể tách rời tuyến tính. Một ví dụ cho bài toán phân loại không tuyến tính đó là phép toán ex-or. Ex-or có bảng chân lý như sau:
Từ đồ thị hình 9.12, ta thấy không thể tìm được bất cứ một đường thẳng nào có thể tách rời các điểm dữ liệu của lớp 0: {(0,0), (1,1)} ra khỏi các điểm dữ liệu của lớp 1: {(0,1),(1,0)}.
Chúng ta có thể quan niệm tập hợp các giá trị dữ liệu đối với một mạng neuron như dùng để định nghĩa một không gian. Mỗi tham số của dữ liệu đầu vào tương ứng với một chiều trong không gian, và mỗi giá trị đầu vào sẽ định nghĩa một điểm trong không gian đó. Trong bài toán ex-or trên, bốn giá trị đầu vào, được đánh chỉ số theo các tọa độ x1, x2, tạo thành các điểm dữ liệu trong hình 9.12. Bài toán học một phân loại nhị phân của các dữ liệu rèn luyện rút lại thành bài toán tách các điểm này thành hai nhóm. Như vậy, đối với một không gian n chiều, một sự phân loại là phân tách được một cách tuyến tính nếu như các lớp của nó có thể được tách ra bởi một mặt phẳng n-1 chiều. (Trong không gian hai chiều thì mặt siêu phẳng n-1 chiều là một đường thẳng, trong không gian 3 chiều thì nó là một mặt phẳng, …).
Luật Delta
Một cách dễ dàng để tổng quát hóa mạng perceptron là thay hàm ngưỡng giới hạn cứng bằng một hàm kích hoạt kiểu khác. Chẳng hạn như, hàm kích hoạt liên tục (để có khả năng lấy vi phân) tạo điều kiện cho các giải thuật học phức tạp hơn.
Hình 9.13 - Các hàm ngưỡng.
Hình 9.13 minh họa đồ thị của một số hàm ngưỡng: hình 9.13a là một hàm ngưỡng hai cực, hình 9.13b minh họa một hàm kích hoạt sigmoidal thông dụng (hàm sigmoidal là hàm có hình cong như chữ S), được gọi là hàm logistic, hàm này có công thức như sau:
f(net) = 1/(1 + e-l*net) với net = tổngi wixi
Cũng như các hàm định nghĩa trước đây, xi là đầu vào của đường thứ i, wi là trọng số trên đường vào i, và λ là “tham số nén” được sử dụng để điều chỉnh độ cong của đường. Khi λ càng lớn, thì đường cong càng tiệm cận với hàm ngưỡng tuyến tính (trong hình 9.13a). Khi càng tiến gần đến 1, nó càng gần như là một đường thẳng.
Hàm logistic có một tính chất đặc biệt là, đạo hàm của hàm này có một công thức rất đơn giản:
f ’(net) = f(net) * (1- f(net)) (1-1)
Từ hình 9.13 ta thấy với các hàm ngưỡng liên tục, neuron sẽ cho kết quả chính xác hơn nhờ vào việc điều chỉnh tham số λ.
Việc đưa ra các hàm kích hoạt liên tục đã làm đề xuất các tiếp cận mới để làm giảm lỗi trong khi học. Qui luật học do Widrow-Hoff đưa ra vào khoảng 1960 độc lập với hàm kích hoạt, tối thiểu hóa bình phương của lỗi giữa giá trị đầu ra mong muốn và kích hoạt của neuron, neti = WXi. Một trong số luật học quan trọng cho các hàm kích hoạt liên tục là luật delta (Rumelhart et al. 1986).
Để sử dụng luạt delta, mạng phải sử dụng mootj hàm ngưỡng liên tục để có thể lấy vi phân. Hàm logistic đã trình bày bên trên có được tính chất này. Khi đó công thức học theo luật delta cho việc điều chỉnh trọng số ở đầu vào thứ j của nút thứ i là:
deltaw = c(di – Oi) f’(neti)xj
trong đó, c là hằng số điều khiển tốc độ học, di và Oi là các giá trị đầu ra thực sự và mong muốn của nút thứ i. f’(neti) là đạo hàm của hàm kích hoạt cho nút thứ i, và xj là đầu vào thứ j của nút thứ i. Thay thế công thức đạo hàm (1-1) của hàm logistic f’(net), ta được công thức để điều chỉnh trọng số như sau:
deltaw = c(di – Oi) Oi( 1 – Oi) xj (1-2)
Từ công thức này cho thấy, công thức điều chỉnh trọng số này chỉ có thể áp dụng cho các nút của mạng perceptron đơn tầng, vì tại đó ta mới có các giá trị đầu ra mong muốn di.
Học Lan truyền ngược:
Như đã phân tích ở trên, ta thấy các mạng perceptron đơn tầng có khả năng giới hạn, chúng không thể phân loại được các bài toán không tách rời tuyến tính. Trong phần tiếp theo, chúng ta sẽ thấy rằng các mạng đa tầng có thể giải quyết được các bài toán này.
Hình 9.14 - Học lan truyền ngược trong mạng kết nối có một tầng ẩn.
Các neuron trong một mạng đa tầng (xem hình 9.14) được kết nối với nhau theo từng lớp, trong đó các neuron ở tầng k sẽ truyền kích hoạt của chúng chỉ cho các neuron ở tầng k+1. Xử lý tín hiệu đa tầng có nghĩa là các lỗi nằm sâu bên trong mạng có thể lan ra và phát triển một cách phức tạp thông qua các tầng liên tiếp. Vì vậy, việc phân tích nguyên nhân gây ra lỗi ở tầng ra (output layer) là rất phức tạp. Giải thuật học lan truyền ngược sẽ cung cấp một phương pháp điều chỉnh trọng số trong trường hợp này.
Giải thuật học lan truyền ngược
Từ lập luận cho rằng tại các nút của một mạng đa tầng, lỗi mà một nút phải chịu trách nhiệm cũng phải được chia phần cho các nút ở tầng ẩn trước nó và vì vậy các trọng số phải được điều chỉnh một cách phù hợp.
Giải thuật lan truyền ngược bắt đầu tại tầng ra và truyền các lỗi ngược về xuyên qua các tầng ẩn (như hình 9.14).
Hình 9.15 - tổng j –delta j *w ij là tổng đóng góp của nút i vào lỗi ở tầng ra.
Luật delta tổng quát để điều chỉnh trọng số của đầu vào thứ k của nút thứ i:
deltawk = c(di – Oi) Oi (1 – Oi) xk cho nút ở tầng ra
deltawk = c tổngj (deltaj wij) Oi (1 – Oi) xk cho nút ở tầng ẩn
với deltaj = (dj – Oj) Oj (1 – Oj)
j chạy trên các nút của tầng kế tiếp mà tại đó nút i truyền các đầu ra của nó.
Đối với mạng có nhiều hơn một tầng ẩn, ta cũng áp dụng thủ tục tương tự một cách đệ quy để truyền lỗi từ tầng ẩn thứ n vào tầng ẩn thứ n-1.
Ví dụ 1: Mạng NetTalk
Mạng NETtalk là một ví dụ hay cho việc sử dụng giải pháp mạng neuron để giải quyết một vấn đề học khó. NETtalk học để đọc được văn bản tiếng Anh. Đây là một nhiệm vụ khó khăn đối với tiếp cận học dựa trên ký hiệu, vì phát âm trong tiếng Anh mang tính bất quy tắc. Mặc dù có các chương trình dựa trên luật (rule-based) đã được viết để giải quyết vấn đề này, nhưng chúng đều phức tạp và thực hiện chưa hoàn hảo.
NETtalk học để đọc một chuỗi văn bản và trả về một âm vị cùng với trọng âm liên hệ cho mỗi chữ cái trong chuỗi. Vì phát âm của một chữ cái đơn nhất phụ thuộc vào các chữ cái xung quanh nó, người ta đưa vào NETtalk một cửa sổ gồm 7 ký tự. Khi văn bản dịch chuyển qua cửa sổ này, NETtalk trả về một cặp âm vị/trọng âm cho mỗi chữ cái.
Hình 9.15 minh họa kiến trúc của mạng NETtalk. Mạng gồm có 3 tầng neuron. Các neuron đầu vào tương ứng với cửa sổ 7 ký tự của văn bản. Mỗi vị trí trong cửa sổ được biểu diễn bởi 29 neuron đầu vào, 26 neurons cho 26 ký tự alphabet, và 3 neurons cho dấu và khoảng trắng. Ký tự ở mỗi ví trí trong cửa sổ sẽ kích hoạt neuron tương ứng. Các neuron đầu ra mã hóa âm sử dụng 21 đặc điểm khác nhau của cách phát âm của con người. 5 neurons còn lại mã hóa dấu nhấn và giới hạn âm tiết. NETtalk có 80 neuron ở tầng ẩn, 26 giá trị đầu ra và 18.629 kết nối.
Hình 9.15 - Hình thái mạng của NETtalk.
Kết quả của NETtalk là có thể phát âm đúng 60% sau khi rèn luyện với một tập dữ liệu rèn luyện gồm 500 ví dụ và lặp lại 100 lượt.
Ngoài kết quả đạt được trên, NETtalk còn cho thấy một số tính chất đáng chú ý của mạng neuron, có nhiều tính chất trong số đó phản ánh bản chất tự nhiên của việc học ở người. Chẳng hạn như, việc học, khi được đo bằng phần trăm câu trả lời đúng, sẽ tiến triển nhanh lúc đầu, sau đó chậm dần khi tỉ lệ đúng tăng lên. Và cũng như con người, khi neuron càng học phát âm được nhiều từ, thì nó càng phát âm đúng các từ mới nhiều hơn.
Ví dụ 2: Exclusive–or
Một ví dụ khác cho mạng đa tầng là dùng để giải quyết bài toán Ex-or mà mạng đơn tầng không thể phân loại được.
Hình 9.16 minh họa mạng với hai đầu vào, một nút ẩn và một nút đầu ra. Mạng cũng có hai đầu vào thiên lệch (bias), một đi vào nút ẩn và một đi vào nút đầu ra. Một điểm đặc biệt là các đầu vào cũng được nối trực tiếp vào nút đầu ra. Liên kết thêm vào này cho phép nhà thiết kế mạng neuron đạt được một mạng với ít nút hơn trên tầng ẩn và hội tụ nhanh hơn.
Giá trị net cho nút ẩn và nút đầu ra cũng được tính như cách thông thường, là tổng của các tích giữa giá trị đầu nhân với trọng số. Các trọng số được điều chỉnh theo giải thuật học lan truyền ngược và sử dụng hàm kích hoạt sigmoidal.
Thật ra, mạng neuron trong hình 9.16 không phải là một mạng duy nhất có thể giải quyết bài toán này.
Hình 9.16 - Một mạng lan truyền ngược dùng để giải quyết bài toán exclusive-or.
Mạng này được rèn luyện với 4 ví dụ: (0,0) → 0; (1,0) → 1; (0,1) → 1; (1,1) → 0
Sau khi được huấn luyện 1400 lượt với 4 dữ liệu trên, các trọng số hội tụ về các giá trị như sau:
WH1 = -7.0 WHB = 2.6 WO1 = -5.0 WH2 = -7.0
WOB = 7.0 WO2 = -4.0 WHO = -11.0
Với giá trị đầu vào là (0,0), giá trị đầu ra của nút ẩn sẽ là:
f(0 * (-7.0) + 0 * (-7.0) + 1* 2.6 ) = f(2.6) → 1
Kết quả trả về của nút đầu ra cho (0,0) sẽ là:
f(0 * (-5.0) + 0 * (-4.0) + 1 * (-11.0) + 1 * (7.0)) = f(-4.0) → 0
Như vậy, ta thấy rằng mạng lan truyền ngược đã phân loại được các điểm dữ liệu không tuyến tính.
Nhận xét chung về mạng neuron
Nói chung các mạng đa tầng là đầy đủ về mặt tính toán (computationally complete), có nghĩa là có thể giải quyết được mọi bài toán. Tuy nhiên, để thiết kế một mạng neuron đa tầng thì nhà thiết kế phải giải quyết được những vấn đề sau:
- Làm sao để chọn số nút ẩn và số tầng ẩn thích hợp?
- Khi nào sử dụng các nút thiên lệch?
- Cách chọn một tập rèn luyện?
- Điều chỉnh các trọng số như thế nào?
- Nên chọn tốc độ học như thế nào?
Nói chung, không có một quy luật nào về tất cả những điều này, nó phụ thuộc vào kinh nghiệm của nhà thiết kế, cũng như là kết quả của quá trình thử-sai lặp đi lặp lại.