Ở đây chúng tôi chỉ muốn giới thiệu cho các bạn sơ qua về mạng nơron để các bạn có thể hiểu được chúng ta có thể làm được những gì với mạng nơron trong tay, ngoài ra qua chương này chúng
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐÀO TẠO SAU ĐẠI HỌC
TIỂU LUẬN MÔN CHUYÊN ĐỀ
ĐỀ TÀI:
AN ILLUSTRATIVE EXAMPLE
Giảng viên hướng dẫn : TS.LÊ DŨNG Học viên cao học : LÊ HOÀI VIỆT
LƯƠNG HỒNG QUÝ ĐINH VĂN HƯỜNG Lớp : KTTT1B
Trang 2“Neural Network Design”
(Martin T Hagan, Howard B Demuth, Mark Beale Thomson Learning, 1996)
Chương 3: Một ví dụ minh họa Mục đích:
Chương này chỉ đơn giản muốn đưa đến cho các bạn một vấn đề cơ bản và chỉ ra cách giải quyết nó dựa trên kiến trúc của ba mạng nơron Chương này cũng chỉ ra cho các bạn cách ứng dụng những kiến thức về kiến trúc của ba mạng nơron đã nói đến trong các chương trước vào thực tiễn Tuy nhiên các bạn cũng đừng kỳ vọng sau khi đọc xong chương này chúng ta sẽ hiểu hết được toàn bộ về ba mạng nơron này Ở đây chúng tôi chỉ muốn giới thiệu cho các bạn sơ qua về mạng nơron để các bạn có thể hiểu được chúng ta
có thể làm được những gì với mạng nơron trong tay, ngoài ra qua chương này chúng tôi cũng muốn chứng minh rằng chúng ta có rất nhiều cách giải quyết vấn đề ứng với mỗi một kiến trúc mạng nơron khác nhau đối với một bài toán cho trước
Ba mạng nơron trong chương này đại diện cho các mạng nơron được thảo luận trong phần còn lại của cuốn sách: mạng feedforward (đại diện bởi mạng perceptron), mạng cạnh tranh (đại diện bởi mạng Hamming), và mạng liên kết bộ nhớ hồi quy (đại diện bởi mạng Hopfield)
Nguyên lý và các ví dụ
Đặt vấn đề
Một nhà buôn nọ có một kho để chứa rất nhiều rau và hoa quả Khi hoa quả được mang đến kho, chúng bị trộn lẫn vào nhau Nhà buôn này muốn có một chiếc máy có thể giúp ông ta phân loại được các hoa quả này Sẽ có một băng chuyền để đưa các loại hoa quả đó vào, băng chuyền này sẽ đưa các hoa quả cần phân loại đi qua một bộ cảm biến,
bộ cảm biến này có nhiệm vụ nhận dạng hoa quả dựa trên 3 đặc tính của chúng gồm: hình dạng, kết cấu và trọng lượng Các bộ cảm biến này chỉ nhận dạng được hoa quả một cách khá thô sơ Bộ cảm biến hình dạng trong đó sẽ đưa ra kết quả là 1 nếu hình dạng của hoa quả đó xấp xỉ tròn và đưa ra kết quả là -1 nếu hình dạng của hoa quả là dạng elip Bộ cảm biến kết cấu sẽ đưa ra kết quả là 1 nếu bề mặt của hoa quả nhẵn và -1 nếu bề mặt này xù
xì Bộ cảm biến trọng lượng sẽ đưa ra kết quả là 1 nếu trọng lượng của hoa quả là lớn hơn 1 pound và -1 nếu trọng lượng của hoa quả nhỏ hơn 1 pound
Kết quả đưa ra từ các bộ cảm biến này sẽ trở thành đầu vào cho một mạng nơron Mục đích của mạng nơron này là để quyết định xem loại quả trên băng chuyền là quả gì
Trang 3để sau đó chuyển trực tiếp chúng đến nơi lưu trữ Để đơn giản hóa vấn đề, chúng ta sẽ giả
sử rằng chỉ có hai loại hoa quả ở trên băng truyền là cam và táo
Mỗi một loại quả sau khi đi qua bộ cảm biến sẽ được biểu diễn bằng một véc tơ ba thành phần Thành phần thứ nhất sẽ mô tả hình dạng, thành phần thứ hai mô tả kết cấu và thành phần thứ ba mô tả trọng lượng
[
]
(3.1)
Do đó, một quả cam sẽ được nhận một véc tơ có giá trị như sau
[
Còn một quả táo sẽ nhậ được một véc tơ có giá trị
[
Mạng nơron sẽ nhận được một véc tơ ( hoặc ) cho mỗi loại quả đang được vận chuyển trên băng truyền, sau đó sẽ dựa vào đó để đưa ra quyết định quả đó là cam hay táo
Trang 4Như vậy là chúng ta đã định nghĩa xong một hệ thống nhận dạng đơn giản, chúng
ta sẽ phân tích chi tiết hơn về các mạng nơron khác nhau có thể được dùng để giải quyết bài toán này Chính sự đơn giản trong bài toán này sẽ giúp chúng ta hiểu rõ hơn về hoạt động của các loại mạng nơron
Perceptron
Mạng đầu tiên mà chúng ta nói tới ở đây sẽ là mạng perceptron Hình 3.1 biểu diễn một mạng perceptron một lớp với hàm đối xứng hard-lims
Hình 3.1 Perceptron một lớp
Trường hợp hai đầu vào
Trước khi chúng ta sử dụng perceptron để giải quyết bài toán nhận dạng cam và táo (bài toán này yêu cầu phải có một mạng perceptron 3 đầu vào), chúng ta sẽ nghiên cứu một mạng perceptron 2 đầu vào được minh họa trong hình 3.2
Hình 3.2 Mạng perceptron nơron đơn hai đầu vào
Trang 5Một mạng perceptron nơron phân loại các vec tơ đầu vào thành 2 loại Ví dụ với một perceptron 2 đầu vào, nếu thì:
( ) ([ ] ) (3.4)
Do đó nếu một phần tử của ma trận khối lượng (trong trường hợp này thì nó chỉ là một hàng) có vec tơ đầu vào có giá trị lớn hơn hoặc bằng –b, đầu ra của nó sẽ là 1 Ngược lại, nó sẽ có giá trị là -1 Điều này sẽ chia không gian đầu vào thành 2 phần Hình 3.3 mô
tả trường hợp khi b = -1 Đường thẳng màu xanh trong hình đại diện cho tất cả các điểm
có đầu vào lưới n bằng 0
([ ] ) (3.5) Chú ý rằng sự quyết định ngưỡng luôn luôn trực giao với ma trận khối lượng và vị trí của mức ngưỡng có thể bị thay đổi bằng cách thay đổi b Trong trường hợp tổng quát,
W là một ma trận bao gồm một số các vec tơ hàng, mỗi véc tơ hàng được sử dụng trong một phương trình tương tự như phương trình (3.5) Sẽ có một mức ngưỡng khác nhau đối với mỗi hàng trong ma trận W Chương 4 sẽ nói rõ hơn về trường hợp này
Hình 3.3 Mức ngưỡng trong perceptron
Đặc tính quan trọng nhất của mạng perceptron nơron đơn là chúng có thể phân chia được các vec tơ đầu vào thành 2 loại Sự quyết định mức ngưỡng phân biệt giữa hai loại này được quy định bởi phương trình
Bởi vì mức ngưỡng bắt buộc phải là một đường thẳng, mạng perceptron một lớp chỉ được sử dụng để phân biệt các mẫu có thể “phân tách thẳng” với nhau Khái niệm này
sẽ được nói rõ hơn ở chương 4
Trang 6Ví dụ về việc nhận ra mẫu
Bây giờ chúng ta sẽ quay trở lại bài toán nhận dạng táo và cam Bởi vì ở đây yêu cầu chỉ là nhận dạng hai mẫu do đó chúng ta có thể sự dụng mạng perceptron nơron đơn Véc tơ đầu vào có 3 chiều, do đó phương trình percheptron sẽ là
([ ] [ ] ) (3.7) Chúng ta muốn chọn độ lệch b và các phần tử của ma trận trọng lượng để mạng perceptron có thể phân biệt được táo và cam Ví dụ chúng ta muốn đầu ra của perceptron
sẽ là 1 khi đưa vào một quả táo và -1 khi chúng ta đưa vào một quả cam Sử dụng khái niệm được mô tả trong hình 3.3, chúng ta sẽ đi tìm một đường thẳng mức ngưỡng để phân biệt giữa táo và cam Hai véc tơ mẫu đầu tiên (sử dụng phương trình (3.2) và (3.3)) được vẽ ở trong hình 3.4 Từ hình này chúng ta có thể thấy rằng đường thẳng mức ngưỡng chia hai véc tơ này một cách đối xứng sẽ là mặt phẳng chứa
Hình 3.4 Véc tơ mẫu ban đầu
Mặt phẳng , mặt phẳng mức ngưỡng của chúng ta, sẽ được mô tả bởi phương trình
hoặc
Trang 7[ ] [ ] (3.9)
Từ đó ta suy ra ma trận trọng lượng và độ lệch b sẽ là
[ ] (3.10)
Ma trận trọng lượng trực giao với mức ngưỡng và trỏ đến vùng chứa vec tơ (táo),vùng mà chúng ta muốn đầu ra của perceptron là 1 Độ lệch là 0
Chúng ta sẽ kiểm tra hoạt động của mạng phân tách mẫu perceptron Dễ dàng thấy cách phân chia này hoạt động tốt và phân loại đúng táo với cam vì:
Với cam:
([ ] [
] ) ( ) (3.11) Với táo
([ ] [
] ) ( ) (3.12) Nhưng câu hỏi đặt ra ở đây là chuyện gì sẽ xảy ra khi chúng ta đưa vào một quả cam “không thực sự giống cam” vào bộ phân loại Ví dụ chúng ta đưa vào một quả cam
có hình elip đi qua bộ cảm biến hình dạng, khi đó véc tơ đầu vào sẽ là
[
Đáp ứng ra lúc này của mạng perceptron sẽ là
([ ] [
] ) ( ) (3.14) Tóm lại bất kỳ véc tơ đầu vào nào có dạng gần với vec tơ cam nguyên mẫu hơn là véc tơ táo nguyên mẫu đều sẽ được phân loại là “cam” và ngược lại
Ví dụ trên đây đã chứng minh một số tính năng của mạng perceptron Nhưng chúng ta sẽ không nói quá nhiều về mạng perceptron ở chương này, vấn đề này sẽ được nghiên cứu sâu hơn ở các chương tiếp theo
Trong ví dụ trên chúng ta đã sử dụng đồ thị để thiết kế một mạng perceptron có mức ngưỡng phân biệt rất rõ ràng 2 khu vực cần phân biệt Tuy nhiên vấn đề sẽ được giải quyết thế nào đối với bài toán thực tế khi số lượng đầu vào có thể lớn hơn? Trong chương
Trang 84, 7, 10 và 11 chúng ta sẽ học một phương pháp đại số được sử dụng để huấn luyện mạng giải quyết các vấn đề phức tạp bằng cách sử dụng một số lượng lớn các mẫu khởi tạo hành vi
Đặc tính quan trọng nhất của mạng perceptron một lớp là tạo ra một mức ngưỡng phẳng để phân biệt hai loại mẫu Điều gì sẽ xảy ra khi mức ngưỡng này không phẳng? Câu hỏi này sẽ được trả lời trong chương 11 khi chúng tôi giới thiệu cho các bạn về một mạng perceptron đa lớp Mạng đa lớp có khả năng giải quyết bài toán phân loại ở một mức độ phức tạp hơn
Mạng Hamming
Phần này chúng ta sẽ xem xét nghiên cứu mạng Hamming, mạng này được thiết kế
để giải quyết vấn đề nhận dạng mẫu ảnh nhị phân ( tại đó mỗi thành phần của vecto đầu vào chỉ có 2 thành phần giá trị ) Mạng này rất đáng chú ý vì nó có thể sử dụng cả cho lớp hồi tiếp hiện tại và tiếp theo ( phần này đã được đề cập trong chương 2 ) Hình 3.5 minh họa một mạng Hamming tiêu chuẩn, chú ý rằng số lượng noron trong lớp đầu tiên bằng với số lượng noron trong lớp thứ hai,
Mục tiêu của mạng Hamming là để quyết định xem loại vecto nào giống nhất đối với vecto đầu vào Quyết định này được được đưa ra bởi đầu ra của lớp hiện tại , sẽ có 1 noron trong trong lớp hiện tại cho mỗi loại mẫu nhận dạng, chính noron này sẽ chỉ ra loại mẫu nào sẽ gần giống nhất đối với vecto đầu vào Chũng ta sẽ xem xét chi tiết hai lớp của mạng Hamming trong hình minh họa
Hình 3.5 Sơ đồ mạng Hamming
Trang 9Lớp tiếp nhận :
Lớp tiếp nhận hoạt động như một bộ tương quan hoặc là một sản phẩm bên trong mạng, giữa chúng có các loại mẫu và mẫu đầu vào Để cho lớp tiếp nhận hoạt động chính xác thì số lượng hàng của ma trận trọng số trong lớp này được thiết lập làm một loại mẫu nhận dạng Đối với ví dụ phân biệt táo và cam của chúng ta thì ta sẽ có ma trận như sau
= [ ] = [
]
(3.15)
Lớp tiếp nhận sử dụng hàm biến đổi tuyến tính và mỗi thành phần sẽ có độ lệch R, với R là số lượng các thành phần của vecto đầu vào, trong ví dụ chúng ta xem xét thì vecto lệch có thể là:
Với những sự lựa chọn đó về ma trận trọng số và vecto độ lệch đầu ra của lớp tiếp nhận sẽ là:
= p + = [ ] + [ ] = [
]
(3.17)
Chú ý rằng đầu ra của lớp tiếp nhận bằng với các giá trị bên trong của mỗi loại mẫu với đầu vào cộng them R
Độ dài tương đương của hai vecto và các giá trị bên trong sẽ là lớn nhất khi mà vecto điểm giống một cách trực tiếp và sẽ có giá trị nhỏ nhất khi mà các điểm đối ngược nhau Bằng việc thêm vào giá trị R vào các thành phần bên trong của lớp chúng ta có thể đảm bảo rằng các đầu ra của lớp tiếp nhận không bao giờ là phủ định
Mạng này mang tên Hamming bởi vì các noron trong lớp tiếp nhận với số lượng đầu ra lớn nhất sẽ đáp ứng lại các loại mẫu khoảng cách Hamming là lớn nhất đối với các mẫu đầu vào.( Giá trị khoảng cách Hamming giữa hai vecto chính bằng số lượng các thành phần khác nhau và chúng chỉ được định nghĩa đối với vecto nhị phân) Chúng ta có kết quả là số lượng đầu ra của lớp tiếp nhận chính bằng 2R trừ đi 2 lần khoảng cách Hamming giữa loại mẫu có sẵn và mẫu đưa vào trong lớp
Lớp hồi quy
Lớp hồi quy của mạng Hamming được biết đến là lớp so sánh, các noron trong lớp này sẽ được khởi tạo với các đầu ra của lớp tiếp nhận , chúng chỉ ra sự tương quan giữa mẫu chuẩn hóa và mẫu đầu vào Sau đó các noron sẽ so sánh với từng thành phần khác
Trang 10nhau để quyết định giá trị nào lớn hơn, khi thực hiện so sánh xong chỉ 1 noron sẽ có kết quả đầu ra khác 0 Noron đứng đầu đó sẽ chỉ ra loại của đầu vào được đưa tới mạng ( như trong ví dụ của chúng ta là hai loại táo và cam) Các phương trình diễn tả quá trình so sánh như sau:
(0) = ( Điều kiện khởi tạo) (3.18)
và
(t+1) = poslin ( (t)) (3.19) Hàm biến đổi Poslin là một hàm biến đổi tuyến tính các giá trị dương và bằng 0 đối với các giá trị âm, ma trận trọng số có dạng sau:
= [
Trong đó € là một số nhỏ hơn 1/(S-1) và S là số lượng noron có trong lớp hồi quy Quá trình lặp của lớp hồi quy theo phương trình sau :
(t+1) = poslin([
] ( ))= poslin ([
( ) ( ) ( ) ( )])
(3.21)
Mỗi thành phần sẽ được trừ đi một lượng với cùng 1 hệ số, giá trị lớn nhất sẽ bị trừ đi một lượng nhỏ và giá trị nhỏ sẽ bị trừ đi một lượng lớn hơn do đó thì sự khác nhau càng gia tăng thêm Hậu quả của việc này đó là làm cho lớp hồi quy sẽ đưa giá trị 0 tại tất
cả các noron đầu ra ngoại trừ 1 với giá trị khởi tạo lớn nhất ( cái mà đáp ứng với loại mẫu giống với khoảng cách Hamming nhất tại đầu ra ) Để minh họa cho hoạt động của mạng Hamming chúng ta xem xét lại khuôn dạng ta sử dụng để kiểm tra :
P = [
Khi đó đầu ra của lớp tiếp nhận sẽ là :
= [
] [
] + [ ] = [ ] (3.23)
Giá trị ở trên sẽ trở thành giá trị khởi tạo cho lớp hồi quy
Ma trận trọng số cho lớp hồi quy được cho bởi công thức bên trên sẽ có giá trị ½ ( bất kỳ giá trị nào nhỏ hơn 1 cũng có thể được sử dụng ) Quá trình lặp của lớp hồi quy được thể hiện như sau :
Trang 11(1) = poslin { (0)} = { ([
] [ ]) ([ ]) [ ]
(3.24)
Quá trình tiếp theo được khởi tại dựa vào quá trình đầu tiên :
(2) = poslin { (1)} ={
( [
] [ ]) ([ ]) [ ]
(3.25)
Bởi vì đầu ra của tất cả các quá trình khởi tạo đều giống nhau do đó quá trình là hội tụ Mẫu số một là quả cam được lựa chọn để hoàn toàn chính xác bởi vì đầu ra luôn luôn khác 0 Sự chính xác này có được là do chúng ta đã lựa chọn khoảng cách Hamming cho loại cam là số 1 và khoảng cách Hamming cho táo là số 2
Có một số lương lớn các mạng có thể hoạt động dựa trên những nguyên tắc giống nhau như là của mạng Hamming , tại các mạng đó theo sau các lớp mạng tiếp nhận sẽ là lớp mạng hồi quy so sánh động, các mạng so sánh chúng ta sẽ nghiên cứu thêm trong các chương sau, các mạng này còn có tên gọi là các mạng tự tổ chức vì chúng có thể điều chỉnh được loại vecto cơ bản của chúng dựa trên sự thay đổi của đầu vào
Mạng Hopfield
Mạng cuối cùng mà chúng tôi sẽ thảo luận trong phần tóm tắt này là mạng Hoplfield Đây là một mạng lặp mà tương tự như trong các mối liên quan tới tầng lặp của mạng Hamming nhưng nó có thể thực hiện một cách có hiệu quả các hoạt động của cả các tầng của mạng Hamming Sơ đồ của mạng Hopfield được biểu diễn như hình 3.6 (trên thực tế, sơ đồ này không khác nhiều so với sơ đồ chuẩn của mạng Hopfield Chúng
ta sử dụng sơ đồ này vì nó đơn giản hơn để miêu tả và giải thích các khái niệm cơ bản)
Những nơ ron trong mạng này được khởi động với vec tơ đầu vào sau đó mạng sẽ lặp lại cho đến khi đầu ra hội tụ Khi mạng hoạt động một cách đúng đắn (không có lỗi) thì việc dẫn đến đầu ra nên là một trong các vec tơ nguyên mẫu Vì thế, ngược lại trong mạng Hamming nơ ron khác 0 sẽ chỉ ra mẫu nguyên mẫu được chọn, thậm chí mạng Hopfield tạo các mẫu nguyên mẫu được lựa chọn ở đầu ra của chính nó