Tìm hiểu thuật toán rosenblatt để huấn luyện mạng perceptron và cài đặt ứng dụng
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO BÀI TẬP LỚN
4 Nguyễn Thị Thoan
Trang 2A Lời nói đầu 3
B Thuật toán Rosenblatt để huấn luyện mạng Perceptron 3
I Lịch sử 3
II Luât học 5
1 Luật học có giám sát: 5
2 Luật học gia tăng: 5
3 Luật học không giám sát: 6
III Kiến trúc Perceptron 6
1 Perceptron một noron: 8
2 Perceptron nhiều noron 12
IV Luật học Perceptron 13
1 Kiểm tra vấn đề: 13
2 Xây dựng Luật học: 15
3 Luật học thống nhất 19
4 Huấn luyện mạng perceptron nhiều noron 20
C Phần mềm tư vấn mua máy tính nhờ áp dụng thuật huấn luyện Perceptron 23
1 Giới thiệu về phần mềm 23
2 Hướng dẫn sử dụng phần mềm 24
3 Code sử dụng trong bài về thuật toán Rosenblatt huấn luyện Perceptron 24
D Tài liệu tham khảo: 25
Trang 3A Lời nói đầu
Mạng nơ-ron nhân tạo được thiết kế để mô hình một số tính chất củamạng nơ-ron sinh học, tuy nhiên, khác với các mô hình nhận thức, phần lớncác ứng dụng lại có bản chất kỹ thuật Vào cuối những năm 1950, Frank
Rosenblatt và một số nhà nghiên cứu khác đã phát triển một loại mạng noron
gọi là perceptron Đóng góp quan trọng của Rosenblatt là giới thiệu một luật
học để huấn luyện các mạng perceptron để giải quyết vấn đề nhận dạng mẫu.Trong báo cáo này, ngoài việc tìm hiểu và đi sâu về mạng Perceptron, chúng
em xin giới thiệu phần mềm tư vấn chơi tennis nhờ áp dụng thuật huấn luyệnPerceptron Nội dung báo cáo gồm 2 phần chính sau:
Thuật toán Rosenblatt để huấn luyện mạng Perceptron
Phần mềm tư vấn mua máy tính nhờ áp dụng thuật toán Rosenblatt huấnluyện Perceptron
Trong báo cáo có gì sai sót mong thầy cô và các bạn đóng góp ý kiến để đề tài của chúng em được hoàn thiện hơn Xin cảm ơn!
Perceptron.
I Lịch sử
Trong năm 1943, Warren McCulloch và Walter Pitts giới thiệu mộttrong những noron nhân tạo đầu tiên Các tính năng chính của mô hìnhnoron của họ là sự tổng hợp có trọng số của tín hiệu đầu vào được so sánhvới ngưỡng để tìm đầu ra của noron
Trang 4logic Không giống như các mạng sinh học, các thông số mạng của chúngđược thiết kế mà không có phương pháp đào tạo có sẵn Tuy nhiên, mốiquan hệ giữa sinh học và máy tính kỹ thuật số tạo ra rất nhiều sự quantâm.
Trong cuối những năm 1950, Frank Rosenblatt và một số nhànghiên cứu khác phát triển một lớp học về mạng noron là perceptrons.Các noron trong mạng này cũng tương tự như của McCulloch và Pitts.Đóng góp quan trọng của Rosenblatt là giới thiệu một luật học để huấnluyện các mạng perceptron để giải quyết vấn đề nhận dạng mẫu Ông đãchứng minh rằng luật học của mình sẽ luôn luôn hội tụ về các trọng sốmạng chính xác, nếu trọng số tồn tại để giải quyết vấn đề Sự huấn luyện
đã được đơn giản và tự động
Tuy nhiên, mạng perceptron có nhiều hạn chế Những hạn chế này đãđược công bố trong cuốn Perceptrons của Marvin Minsky và SeymourPapert
Họ đã chứng minh rằng mạng perceptron đã không có khả năngthực hiện một số chức năng cơ bản Mãi đến những năm 1980 những hạnchế này mới được khắc phục với các mạng perceptron cải tiến (nhiều lớp)
và những luật học liên quan
Ngày nay các perceptron vẫn còn được xem như là một mạng quantrọng Nó vẫn còn là một mạng nhanh và đáng tin cậy cho các vấn đề mà
nó có thể giải quyết Ngoài ra, sự hiểu biết về hoạt động của perceptron sẽ
Trang 5II Luât học
Luật học là một thủ tục để sửa đổi các trọng số và hệ số hiệu chỉnhcủa mạng noron (Thủ tục này cũng có thể được gọi là một thuật toánhuấn luyện.) Mục đích của luật học là huấn luyện mạng để thực hiện một
số nhiệm vụ Có nhiều loại luật học huấn luyện mạng noron Chúng gồm
ba loại chính: luật học có giám sát, luật học không giám sát và luật họcgia tăng (hoặc phân loại)
2 Luật học gia tăng:
Tương tự luật học có giám sát, ngoại trừ việc, thay vì đưa ra cácđầu ra chính xác cho mỗi đầu vào mạng, thuật toán chỉ cho một lớp Lớp
là thước đo cho sự hoạt động của mạng trên một chuỗi đầu vào Đây làloại luật học hiện nay ít phổ biến hơn so với luật học có giám sát Nódường như là phù hợp nhất để kiểm soát các ứng dụng hệ thống
Trang 6thực tế Làm thế nào bạn có thể huấn luyện một mạng nếu bạn không biết
nó phải làm gì? Hầu hết các thuật toán thực hiện sự hoạt động phân cụm.Chúng được luyện để phân loại các mô hình đầu vào thành một số hữuhạn các lớp Điều này đặc biệt hữu ích trong các ứng dụng như là lượng tửhóa vector
III Kiến trúc Perceptron
Các mạng nơron mà trong mỗi nơron chỉ được liên kết với tất cảcác nơron ở lớp kế tiếp và tất cả các mối liên kết chỉ được xây dựng từ tráisang phải được gọi là mạng nhiều lớp truyền thẳng (perceptrons)
Đầu ra của mạng được cho bởi:
Để thuận tiện cho sự xem xét các phần tử riêng lẻ của vector đầu ra Hãyxem xét ma trận trọng số:
Trang 7Chúng tôi sẽ xác định một vector gồm các phần tử của hàng thứ i của W:
Ma trận trọng số trở thành:
Phần tử thứ i của vector đầu ra mạng:
Mà hàm truyền harlim được định nghĩa như sau:
Trang 8Vì vậy, tích trong hàng thứ i của ma trận trọng số với vecto đầu vào lớnhơn hoặc bằng -bi , thì đầu ra sẽ là 1, trái lại đầu ra sẽ là 0
Vì thế mỗi neuron trong mạng chia không gian đầu vào thành haikhu vực Nó rất hữu ích để điều tra các ranh giới giữa các khu vựcnày Chúng tôi sẽ bắt đầu với các trường hợp đơn giản của một perceptronđơn lớp với hai đầu vào
1 Perceptron một noron:
Chúng ta hãy xem xét một perceptron hai đầu vào:
Đầu ra của mạng này được xác định bởi
Ranh giới phân loại các vector đầu vào được xác định bởi
Trang 9Cụ thể hơn, chúng ta hãy chỉ định các giá trị của trọng số và hệ số hiệuchỉnh là:
Ranh giới quyết định sẽ là:
Điều này xác định 1 đường trong không gian đầu vào Trên một bên củađường đầu ra sẽ là 0 ; trên đường và phía bên kia của đường đầu ra sẽ là
Trang 10Lưu ý: Ranh giới luôn luôn là trực giao với 1w , và được xác định bởi:
Đối với tất cả các điểm nằm trên ranh giới, tích trong của các vector đầuvào với các vector trọng số là như nhau Ngoài ra, bất kỳ vector trong khuvực bóng mờ của hình 4.3 sẽ có tích trong lớn hơn -b, và vector trong khuvực không có bóng mờ sẽ có tích trong ít hơn -b Vì vậy vector trọng số
1w sẽ luôn luôn hướng về phía khu vực nơi mà đầu ra của mạng là 1
Sau khi đã chọn một vector trọng số với định hướng góc chính xác,
hệ số hiệu chỉnh có thể được tính bằng cách chọn một điểm trên ranh giới
và thỏa mãn Eq (4,15)
Trang 11Chúng ta sẽ áp dụng một trong những khái niệm thiết kế mạng perceptron
để thực hiện một hàm logic đơn giản: các cổng AND Các cặp đầuvào/mục tiêu cho các cổng AND là:
Hình dưới minh họa cho vấn đề bằng đồ thị Mỗi vector đầu vào sẽ đượcdán nhãn theo mục tiêu Các vòng tròn đen chỉ ra rằng mục tiêu là 1, vàcác vòng tròn trắng cho mục tiêu là 0
Bước đầu tiên của thiết kế là chọn một ranh giới quyết định Chúng tamuốn có một đường phân cách giữa vòng tròn đen và những vòng tròntrắng Có vô số các giải pháp cho vấn đề này Giải pháp hợp lý nhất để lựachọn đường nằm giữa hai loại đầu vào, như thể hiện trong hình dưới:Tiếp theo chúng ta muốn chọn một vector trọng số trực giao với ranh giớiquyết định Các vector trọng số có thể có chiều dài bất kỳ, vì vậy có thểchọn bất kỳ, VD chọn:
Trang 12Cuối cùng, chúng ta cần phải tìm ra hệ số hiệu chỉnh Chúng ta có thể làmđiều này bằng cách chọn một điểm trên ranh giới quyết định và đáp ứng
Eq (4,15) Nếu chúng ta sử dụng để tìm
Bây giờ có thể kiểm tra lại mạng trên bằng một trong các cặp đầuvào/mục tiêu Nếu chúng ta áp dụng p2 vào mạng , đầu ra sẽ là:
bằng với đầu ra đích t 2 Các cặp còn lại co thể kiểm tra tương tự như trên.
2 Perceptron nhiều noron
Lưu ý rằng đối với mạng perceptron nhiều noron, như trong hình 4.1, sẽ
có một ranh giới quyết định cho từng noron Ranh giới quyết định cho noron
i sẽ được xác định bởi:
Trang 13Một perceptron đơn lớp có thể phân loại các vector đầu vào thành hai loại,
vì đầu ra của nó có thể là 0 hoặc 1 Một perceptron nhiều lớp có thể phân loạiđầu vào thành nhiều loại Mỗi loại được đại diện bởi một vector đầu ra khácnhau Vì mỗi phần tử của vector đầu ra có thể là 0 hoặc 1, có tổng cộng 2s
loại có thể, trong đó S là số noron
IV Luật học Perceptron
Luật học này là một ví dụ về luật học có giám sát, trong đó các luật học
đưa ra một tập hợp các mẫu theo quy tắc của mạng:
Tại pq là một đầu vào mạng và tq tương ứng với đầu ra chính xác (mục tiêu) Khi các đầu vào được áp dụng vào mạng, các kết quả đầu ra mạng được so sánh với các mục tiêu Luật học sau đó được sử dụng để điều chỉnh trọng số và hệ số hiệu chỉnh của mạng để dịch chuyển đầu ra gần với các mục tiêu hơn
Trang 14Các mạng giải quyết cho vấn đề này cần phải có hai đầu vào và một đầu ra.
Để đơn giản hóa việc khai triển các luật học, chúng ta sẽ bắt đầu với mộtmạng lưới mà không có hệ số hiệu chỉnh Mạng lưới sẽ có 2 thông số, w1,1 và
w1,2, như trong hình 4.4
Hình 4.4 Vấn đề kiểm tra mạng Bằng cách bỏ đi hệ số hiệu chỉnh, chúng ta có mạng như hình:
Trang 15Ranh giới quyết định phải đi qua gốc tọa độ Chúng ta cần phải chắc chắnrằng mạng lưới này vẫn có thể giải quyết vấn đề kiểm tra Cần phải tìm mộtranh giới quyết định cho phép tách các vectơ p2 và p3 từ vectơ p1 Hình minhhọa trên giải thích cho sự vô hạn của ranh giới
Hình trên cho thấy các vec tơ trọng số tương ứng với các ranh giới quyếtđịnh Chiều dài của các vector trọng số không quan trọng, chỉ có hướng của
nó là quan trọng
2 Xây dựng Luật học :
Huấn luyện bắt đầu bằng cách chỉ định một số giá trị ban đầu cho các thông
số mạng Trong trường hợp này chúng tôi đang huấn luyện một mạng lưới 2 đầu vào/1 đầu ra mà không có hệ số hiệu chỉnh, vì vậy chúng tôi chỉ có thể thiết lập giá trị ban đầu với 2 trọng số của nó Ở đây chúng tôi đặt các phần
tử của vector trọng số 1w ngẫu nhiên với các giá trị sau :
1wT = [ 1.0 -0.8] ( 4.21 )
Trang 16Mạng không trả về giá trị chính xác Đầu ra của mạng là 0, trong khi yêu cầucần đáp ứng, t1, là 1.
Chúng ta có thể xem những gì đã xảy ra bằng cách nhìn vào biểu đồ sau:
Các giá trị ban đầu đã chọn của vector trọng số phân lớp không chính xác cho vector p1 Vì vậy chúng ta cần phải thay đổi vector trọng số để nó có vị trí gần vector p1hơn, để trong tương lai nó có cơ hội phân loại chính xác hơn
Để giải quyết vấn đề ta có thể thiết lập 1w xấp xỉ bằng p1 Quy tắc này đơn giản và đảm bảo để p1 được phân loại chính xác cho vấn đề này Tuy nhiên,
ta có thể dễ dàng xây dựng nên một vấn đề mà không thể áp dụng quy tắc này Đồ thị dưới cho thấy một vấn đề mà không thể giải quyết trực tiếp được
Trang 17Nếu lần nào chúng ta cũng áp dụng quy tắc 1w = p cho một trong hai vec tơ thì sẽ phân loại sai, trọng số của mạng chỉ đơn giản là sẽ dao động qua lại và
sẽ không bao giờ tìm thấy được một giải pháp đúng đắn
Một khả năng khác là cộng p1 với 1w Cộng p1 cho 1w làm cho các điểm của
1w gần p1 hơn Quy luật này có thể được trình bày như sau :
Áp dụng quy tắc này cho vấn đề trên ta được giá trị mới của 1w :
Hình minh họa:
Trang 18Áp dụng vào vấn đề ta được:
Trang 20Dưới đây là ba quy tắc, bao gồm tất cả các tổ hợp của giá trị đầu ra và mục tiêu thích hợp :
3 Luật học thống nhất
Ba quy tắc trên có thể được viết lại thành 1 biểu thức đơn giản Đầu tiên chúng ta
sẽ định nghĩa 1 biến số mới được gọi là sai số perceptron e:
Trang 21Các quy tắc được viết lại như sau:
Ta thấy trong 2 quy tắc đầu thì dấu của p và e là giống nhau Hơn nữa quy tắc 3 không chứa p tương ứng với e = 0 Do đó ta có thể viết lại 3 quy tắc thành 1 quy tắc thống nhất như sau:
Quy tắc trên có thể mở rộng để huấn luyện hệ số hiệu chỉnh bằng cách coi hệ số hiệu chỉnh như 1 trọng số đơn giản với đầu vào luôn là 1 Ta có thể thay đầu vào p trong biểu thức 4.34 như đầu vào luôn mang giá trị 1 để huấn luyện hệ số hiệu chỉnh:
4 Huấn luyện mạng perceptron nhiều noron
Các quy tắc perceptron, được cho bởi biểu thứcb (4,34) và (4,35), cập nhật vector trọng trọng cho perceptron một noron Chúng ta có thể khái quát hóa quy tắc này cho các perceptron nhiều neuron của Hình 4.1 như sau Để cập nhật hàng thứ i của ma trận trọng số ta có:
Để cập nhật phần tử thứ i của vecto sa hệ số hiệu chỉnh ta áp dụng biểu thức:
Trang 22ví dụ:
Để kiểm tra luật học perceptron, chúng ta sẽ xem xét lại ví dụ về táo/cam Các cặp đầu vào/đầu ra sẽ được các vector mẫu thử nghiệm:
Giả sử giá trị ban đầu của ma trận trọng số và hệ số hiệu chỉnh là
Bước đầu tiên chúng ta sẽ áp dung vector p1 vào mạng:
Tiếp theo là tính giá trị sai số e:
Trang 23Bản cập nhật trọng lượng:
Bản cập nhật hệ số hiệu chỉnh là:
Trang 25Bước 3 lặp lại một lần nữa với các vector đầu vào đầu tiên p1:
Nếu tiếp tục lặp đi lặp lại sẽ thấy rằng cả hai vectơ đầu vào bây giờ sẽ được phân loại một cách chính xác Thuật toán đã hội tụ về một phương pháp
Lưu ý: Ranh giới quyết định cuối cùng không giống như ranh giới mà chúng ta trình bày trong Chương 3, mặc dù cả hai ranh giới đều phân loại chính xác các vectơ hai đầu vào
C Phần mềm tư vấn mua máy tính nhờ áp dụng thuật huấn luyện Perceptron.
1 Giới thiệu về phần mềm
Sản phẩm được xây dựng trên ngôn ngữ lập trình Visual C# 2008.Bằng việc áp dụng giải thuật huấn luyện Perceptron của Frank Rosenblatt,
Trang 26sử dụng và thân thiện với người dùng.
2 Hướng dẫn sử dụng phần mềm
Trước hết bạn mở và chạy chương trình Giao diện chính của phần mềm
sẽ hiện lên như sau:
Trang 27Nhập dữ liệu và thông tin cá nhân Click vào nút Tư vấn Thông báo về
thông tin tư vấn sẽ hiện lên đưa ra lời khuyên dành cho bạn hợp lí nhất
Trang 293 Code sử dụng trong bài về thuật toán Rosenblatt huấn luyện
txtw1.Text = txtw1.Text + w1.ToString();
txtw2.Text = txtw2.Text + w2.ToString();
txtw3.Text = txtw3.Text + w3.ToString();
txtw4.Text = txtw4.Text + w4.ToString();
txtb.Text = txtb.Text + b.ToString();
txtsolanlap.Text = interation.ToString();
}