Luận văn với đề tài “Sử dụng mạng neural trong việc dự đoán kết quả đậu đại học” đi sâu nghiên cứu tìm hiểu một số vấn đề về mạng neural và giải thuật lan truyền ngược để xây dựng chươn
Trang 1LỜI CAM ĐOAN
Tôi xin cam đoan đề tài khoa học “Sử dụng mạng neural trong việc dự
đoán kết quả đậu đại học” này là công trình nghiên cứu của bản thân tôi Các số
liệu và kết quả nghiên cứu trong luận văn này là trung thực, được trích dẫn từ các tài liệu tham khảo như đã trình bày trong luận văn và đã được giáo viên hướng dẫn khoa học thông qua nội dung và đồng ý cho ra bảo vệ trước hội đồng khoa học Người thực hiện luận văn
Thái Trung Hải
Trang 2MỤC LỤC Trang phụ bìa
Lời cam đoan
Mục lục
Danh mục các từ viết tắt
Danh mục các hình vẽ
MỞ ĐẦU 1
1 Lời mở đầu 1
2 Mục tiêu và nội dung của đề tài 1
Chương I TỔNG QUAN VỀ MẠNG NEURAL 3
1.1 Giới thiệu chung về mạng Neural sinh học 3
1.2 Neural nhân tạo 4
1.2.1 Định nghĩa 4
1.2.2 Mô hình Neural 4
1.2.2.1 Mô hình cấu trúc một Neural với đại lượng vô hướng 4
1.2.2.2 Cấu trúc một Neural với vectơ nhập 5
1.3 Mạng Neural nhân tạo 6
1.3.1 Định nghĩa 6
1.3.2 Mô hình mạng nhiều lớp Neural 7
1.3.3 Một số chức năng của mạng neural nhân tạo 7
1.3.3.1 Chức năng phân loại mẫu 7
1.3.3.2 Học và tổng quát hóa 7
1.4 Kiến trúc mạng neural 8
1.4.1 Kiến trúc mạng neural nhân tạo 8
1.4.2 Các tầng của ANN 8
1.4.3 Các dạng mạng neural của một ANN 9
1.5 Hoạt động của một mạng neural 9
1.6 Các phương pháp học trong ANN 10
1.6.1 Học có giám sát (Supervised Learning) 10
1.6.2 Học không có giám sát (Unsupervised Learning) 12
1.6.3 Học tăng cường (Hydrid Learning) 12
Chương II GIỚI THIỆU MẠNG NEURAL ĐA LỚP TRUYỀN THẲNG VÀ
GIẢI THUẬT LAN TRUYỀN NGƯỢC 13
Trang 32.1 Tổng quan về mạng neural đa lớp truyền thẳng (Multilayer Perceptrons -
MLP) 13
2.2 Kiến trúc mạng 13
2.3 Mạng lan truyền ngược (Neural Backpropagation) 14
2.4 Các kỹ thuật cải tiến thuật toán lan truyền ngược 17
2.4.1 Khởi tạo và cố định tốc độ học (Fixed calculation of the learning rate) 17
2.4.2 Giảm tốc độ học theo quá trình học (Decreasing learning rate) 17
2.4.3 Điều chỉnh tốc độ học theo mỗi mẫu luyện (Learning rate adaptation for each training pattern) 17
2.4.4 Tiến hóa tốc độ học (Evolutionary adapted learning rate) 18
2.4.5 Điều chỉnh tốc độ học bằng thay đổi tín hiệu gradient (Learning rate adaptation by sign changes) 18
2.4.6 Ngăn lỗi bão hòa (Error Saturation Prevention) 19
Chương III: ỨNG DỤNG MẠNG NEURAL XÂY DỰNG CHƯƠNG TRÌNH DỰ ĐOÁN ĐIỂM VÀ KHỐI THI 23
3.1 Phát biểu bài toán 23
3.2 Phân tích bài toán 23
3.3 Giải quyết bài toán 24
3.3.1 Xây dựng mạng neural 24
3.3.2 Xây dựng chương trình 25
3.4 Chương trình thực nghiệm 26
3.4.1 Quá trình huấn luyện mạng 26
3.4.2 Hệ thống chương trình 28
3.4.2.1 Giao diện chương trình 28
3.4.2.2 Chạy chương trình 29
3.4.2.3 Một số kết quả dự đoán 31
3.4.3.Tính độ chuẩn xác của chương trình 32
3.4.3.1 Phương pháp tính 32
3.4.3.2 Kết quả tính độ chuẩn xác của chương trình 33
3.4.3.3 Biểu đồ so sánh kết quả dự đoán 34
KẾT LUẬN 35 TÀI LIỆU THAM KHẢO
PHỤ LỤC
Trang 4DANH MỤC CÁC TỪ VIẾT TẮT
ANN: Artificial Neural Networks
BP: Backpropagation
ESP: Error Saturation Prevention
GD&ĐT: Giáo dục và đào tạo
MLP: Mutilayer Perceptron
PSP: Post Synapic Potential function
THPT: Trung học phổ thông
Trang 5DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Mô hình neural sinh học 3
Hình 1.2 Cấu trúc một neural với đầu vào vô hướng 5
Hình 1.3 Cấu trúc một neural với vectơ nhập 5
Hình 1.4 Một lớp gồm nhiều neural 5
Hình 1.5 Mô hình mạng nhiều lớp neural 7
Hình 1.6 Ví dụ một ANN với một tầng ẩn 8
Hình 1.7 Cấu tạo một neural 9
Hình 1.8 Mô hình hóa mạng neural 10
Hình 1.9 Sơ đồ khối mô tả luật học có giám sát 11
Hình 2.1 Các giá trị vào – ra tại một nút 15
Hình 3.1 Neural nhân tạo 24
Hình 3.2 Mạng neural nhân tạo 24
Hình 3.3 Lưu đồ hoạt động của hàm huấn luyện 25
Hình 3.4 Giao diện giới thiệu chương trình 28
Hình 3.5 Giao diện màn hình chạy khi huấn luyện 30
Hình 3.6 Giao diện nhập thông tin dự đoán 30
Hình 3.7 Giao diện kết quả chương trình sau khi dự đoán 31
Hình 3.8 Giao diện chương trình dự đoán file năm 2013 32
Hình 3.9 Biểu đồ so sánh kết quả dự đoán điểm thi tốt nghiệp 34
Hình 3.10 Biểu đồ so sánh kết quả dự đoán điểm thi đại học 34
Trang 6MỞ ĐẦU
1 Lời mở đầu
Giáo dục và đào tạo giữ vai trò đặc biệt cần thiết đối với sự phát triển của mỗi con người và của cả xã hội GD&ĐT được xem là quốc sách hàng đầu của Đảng và Nhà nước ta trong thời kì đổi mới Nghị quyết hội nghị lần thứ II Ban chấp hành Trung ương khóa VIII đã nhấn mạnh: Thực sự coi giáo dục – đào tạo là quốc sách hàng đầu Nhận thức sâu sắc giáo dục – đào tạo cùng với khoa học công nghệ
là nhân tố quyết định tăng trưởng kinh tế và phát triển xã hội Đầu tư cho giáo dục – đào tạo là đầu tư cho phát triển
Thật vậy Bước vào thế kỉ XXI, việc học và việc lựa chọn nghề nghiệp trong
xã hội có những chuyển biến nhiều so với giai đoạn trước đây Cuộc cách mạng khoa học và công nghệ đang tạo điều kiện để nhân loại tiến từ nền kinh tế công nghiệp sang nền kinh tế tri thức Trong hoàn cảnh đất nước ta hiện nay, để đạt được mục tiêu trên, chúng ta cần một lực lượng lao động có đủ trình độ năng lực và làm chủ được công nghệ kĩ thuật của đất nước, đủ điều kiện đảm bảo hoàn thành tốt công việc trong mọi lĩnh vực của đời sống xã hội
Vì vậy việc nâng cao trình độ học vấn, trình độ văn hóa cho nhân dân, đặc biệt là việc định hướng bậc học và định hướng nghề nghiệp cho thế hệ trẻ hiện nay, chủ nhân tương lai của đất nước, cần được quan tâm hơn bao giờ hết Thế nhưng hiện nay việc cân đối giữa các ngành nghề trong xã hội là một vấn đề nan giải Vì việc lựa chọn cho mình một nghề nghiệp phù hợp luôn được coi là một trong nhiều yếu tố quan trọng quyết định đến tương lai mỗi con người
Luận văn với đề tài “Sử dụng mạng neural trong việc dự đoán kết quả đậu đại học” đi sâu nghiên cứu tìm hiểu một số vấn đề về mạng neural và giải thuật lan
truyền ngược để xây dựng chương trình giúp các nhà quản lý dự đoán trước tỉ lệ đậu đại học ở trường mình từ đó các nhà quản lý có thể đề ra phương hướng và kế hoạch nâng cao chất lượng dạy và học ở các trường THPT trong những năm tiếp theo
2 Mục tiêu và nội dung của đề tài
Mục tiêu của luận văn là:
Trang 7- Tìm hiểu cơ sở lý thuyết của các phương pháp mạng neural (ANN), giải thuật lan truyền ngược (BP), kết hợp giải thuật lan truyền ngược và mạng neural (BP – ANN)
- Thử nghiệm ứng dụng các phương pháp ANN, BP, BP – ANN giải bài toán
dự đoán điểm thi tốt nghiệp và điểm thi đại học của từng học sinh, đồng thời từ số điểm đó ta có thể dự đoán học sinh có thể đậu các trường đại học nào
Với hai mục tiêu trên cấu trúc của luận văn gồm 3 chương với các nội dung
cơ bản sau:
Chương I Tổng quan về mạng neural: Giới thiệu tổng quan về mạng neural,
kiến trúc, chức năng của mạng neural, hoạt động của mạng neural và các phương pháp học trong mạng neural
Chương II Giới thiệu về mạng neural đa lớp truyền thẳng và giải thuật lan
truyền ngược
Chương III Ứng dụng mạng neural xây dựng chương trình dự đoán điểm và
khối thi đại học
Mặc dù đã hết sức nỗ lực, song do thời gian và kinh nghiệm nghiên cứu khoa học còn hạn chế nên không thể tránh khỏi những thiếu sót Em rất mong nhận được
sự góp ý của các thầy cô và bạn bè đồng nghiệp để hiểu biết của mình ngày một hoàn thiện hơn
Qua luận văn này em xin chân thành cảm ơn: TS Phạm Trần Vũ – Khoa Khoa học và kỹ thuật máy tính, trường Đại học Bách Khoa TP Hồ Chí Minh đã chỉ dẫn tận tình giúp em có thể hoàn thành luận văn này Em xin chân thành cảm ơn các Thầy cô trong khoa công nghệ thông tin đã có những góp ý hữu ích giúp em hoàn thành bản luận văn này Và em cũng vô cùng cảm ơn sự giúp đỡ và động viên khích
lệ của người thân trong gia đình em, bạn bè và đồng nghiệp trong suốt quá trình thực hiện luận văn này
Trang 8
Chương I TỔNG QUAN VỀ MẠNG NEURAL 1.1 Giới thiệu chung về mạng Neural sinh học
Bộ não người chứa khoảng 1011 tế bào thần kinh (còn gọi là neural) và mỗi kết nối có 104 neural nên con người có khả năng đưa ra những quyết định phức tạp
và nhanh chóng Mỗi tế bào thần kinh gồm 3 thành phần chính: soma, dendrites và
axon[4]
Nguồn[Ben Krose and Patrick van der Smagt, 1996]
Hình 1.1 Mô hình neural sinh học
Trong đó :
- Các soma là thân của neural
- Các dendrites là các dây mảnh, dài, gắn liền với soma, chúng truyền dữ liệu (dưới dạng xung điện thế) đến cho soma xử lý Bên trong soma các dữ liệu đó được tổng hợp lại Có thể xem gần đúng sự tổng hợp ấy như là một phép lấy tổng tất cả các dữ liệu mà neural nhận được
- Một loại dây dẫn tín hiệu khác cũng gắn với soma là các axon Khác v ới dendrites, axons có khả năng phát các xung điện thế, chúng là các dây dẫn tín hiệu
từ neural đi các nơi khác Chỉ khi nào điện thế trong soma vượt quá một giá trị ngưỡng nào đó (threshold) thì axon mới phát một xung điện thế, còn nếu không thì
nó ở trạng thái nghỉ
- Axon nối với các dendrites của các neural khác thông qua những khớp nối đặc biệt gọi là synapse Khi điện thế của synapse tăng lên do các xung phát ra từ axon thì synapse sẽ nhả ra một số chất hoá học (neurotransmitters); các chất này mở "cửa" trên dendrites để cho các ions truyền qua Chính dòng ions này làm thay đổi điện thế trên dendrites, tạo ra các xung dữ liệu lan truyền tới các neural khác
Trang 91.2 Neural nhân tạo
1.2.1 Định nghĩa
Neural nhân tạo (ANN - Artificial Neural Networks)[4,7] là sự mô phỏng lại
một cách đơn giản nhất của neural sinh học Mỗi một neural nhân tạo được tạo ra sẽ
có nhiệm vụ tổng hợp các thông tin đầu vào và chuyển đổi thành thông tin một tín hiệu ở đầu ra
Mỗi neural nhân tạo có thể có nhiều đầu vào nhưng chỉ có một đầu ra Mỗi đầu
vào được gắn liền với một hệ số nhân bất kì nào đó gọi chung là trọng số (weight)
Các trọng số có ý nghĩa hết sức quan trọng, được ví như mức liên kết tại các khớp nối trong neural sinh học Trọng số có thể là các số dương hoặc âm, giống như các khớp nối kích thích và khớp nối ức chế trong các neural sinh học
Mỗi neural nhân tạo có một giá trị ngưỡng Chức năng đầu vào của mỗi neural là tính tổng các tín hiệu đầu vào với các trọng số liên kết đồng thời kết hợp
với giá trị ngưỡng để tạo ra một giá trị nhất định là tín hiệu đầu vào net input Sự kết hợp này được thực hiện bằng một tổng hay theo một số tài liệu gọi là hàm PSP (Post
Synapic Potential function) - hàm thế sau khớp nối
Mỗi neural nhân tạo cho ra một giá trị ở đầu ra, và giá trị đầu ra này phụ
thuộc vào hàm truyền dẫn (transfer function) Hàm này sẽ nhận tín hiệu đầu vào net
input sau đó tính toán và cho ra kết quả là đầu ra của neural
1.2.2 Mô hình Neural
Mạng neural nhân tạo gồm hai thành phần Phần thứ nhất là các nút (đơn vị xử
lý, neural) và phần thứ hai là các liên kết giữa chúng được gán một trọng số bất kỳ đặc trưng thể hiên mật độ liên kết của mạng
1.2.2.1 Mô hình cấu trúc một Neural với đại lượng vô hướng
Đầu vào một neural có thể là các đại lượng vô hướng (p) hoặc có hướng, các đại lượng này được nhân với các trọng số (w) tương ứng của nó mà trên từng neural
có sẵn và có thể cộng thêm một ngưỡng (b) (bias) (thường b=1) Ta có thể tự điều chỉnh các trọng số, ngưỡng trên các neural để đạt được giá trị mong muốn nào đó, quá trình hiệu chỉnh đó gọi là huấn luyện mạng[7]
Trang 10Nguồn[tác giả]
Hình 1.2 Cấu trúc một Neural với ngõ vào vô hướng 1.2.2.2 Cấu trúc một Neural với vectơ nhập
Một neural với vector nhập[7] p = [p 1 , p 2 ,…., p R ], trọng số W = w 1,1 , w 1,2 , …
W 1,R , ngưỡng b và hàm truyền f Tổng đối số và ngưỡng tạo ở ngõ ra n là:
b p w p
w p w
n 1,1 1 1,2 2 1,R R
Hay nwpb
Nguồn[tác giả]
Hình 1.3 Cấu trúc một neural với vectơ nhập
Tuy nhiên, khi một lớp gồm nhiều neural ta sẽ có công thức sau:
Trang 11Chức năng của mạng được xác định bởi: cấu trúc mạng, quá trình xử lý bên trong của từng neural, và mức độ liên kết giữa các neural
Mức độ liên kết giữa các neural được xác định thông qua quá trình học của mạng (quá trình huấn luyện mạng) Có thể xem các trọng số là các phương tiện để lưu trữ thông tin dài hạn trong mạng neural Nhiệm vụ của quá trình huấn luyện mạng
là cập nhật các trọng số khi có thông tin về các mẫu học
- Tri thức có được thông qua quá trình học
- Các giá trị liên kết giữa các neural được dùng như một phương tiện lưu trữ thông tin
Một mạng neural, là một tập hợp các tế bào vật lý, được liên kết với nhau
Trang 12nhằm mục đích thu thập, lưu trữ và sử dụng tri thức, kinh nghiệm một cách tốt nhất để
có thể tạo ra được các tri thức mới tốt nhất
1.3.2 Mô hình mạng nhiều lớp Neural
Nguồn[Robert J.Schallkoff, 1997]
Hình 1.5 Mô hình mạng nhiều lớp neural
Mạng có nhiều lớp, mỗi lớp có một ma trận W, một ngưỡng b và một vector ngõ ra a Thông thường giá trị ra của một lớp là giá trị vào của lớp tiếp theo Mỗi
lớp trong mạng đảm nhận vai trò khác nhau, lớp cho kết quả ở đầu ra của mạng được gọi là lớp ngõ ra (output layer), tất cả các lớp còn lại gọi là lớp ẩn (hidden layer) Mạng đa lớp có khả năng xử lý rất lớn
1.3.3 Một số chức năng của mạng neural nhân tạo
1.3.3.1 Chức năng phân loại mẫu
Phân loại mẫu[1,7] là sự phân chia các mẫu ra thành các nhóm khác nhau, các nhóm này sẽ có chung một số đặc điểm nhất định nào đó Mạng neural có thể tự phân lại các mẫu đầu vào và tạo ra các mẫu đầu ra có phân loại Khi cho một mẫu đầu vào thì mạng neural sẽ tạo ra được một mẫu đầu ra đúng với phân loại của chúng Ta có thể nói neural là một bộ phân loại mẫu Điểm khác của mạng neural với các bộ phân loại mẫu khác là khả năng tự học và tổng quát hóa từ các mẫu đã có
1.3.3.2 Học và tổng quát hóa
Học là việc mạng neural thu thập được các thông tin, các mẫu, các tri thức ở đầu vào và các thông tin, các mẫu, các tri thức tương ứng ở đầu ra và mạng có thể học
để phân loại được chúng cho thật là chính xác
Tổng quát hóa là mạng không chỉ nhận dạng chính xác được các mẫu của chung
đã học, mà từ các mẫu đã học phải rút ra những đặc tính riêng của từng mẫu và tạo ra một tri thức mới từ đó mạng có thể tự nhận biết và phân loại được các mẫu mới mà
Trang 13chưa từng được học
Chức năng này của mạng cho thấy được tính “linh động” của mạng neural nó
có thể giải quyết một số vấn đề tính toán hoặc suy luận khi thiếu thông tin, hoặc có rất
ít thông tin hay thông tin không đầy đủ Quan trọng nhất là phải xây dựng được một
mô hình mạng thật tốt và phải có một phương pháp học cho thật phù hợp với tình hình thực tế
Không những vậy mạng neural còn có khả năng được học để trở thành hàm liên tục bất kỳ có giá trị xấp xỉ[1,7]
1.4 Kiến trúc mạng neural
1.4.1 Kiến trúc mạng neural nhân tạo
Kiến trúc mạng neural nhân tạo[3] được xác định bởi:
- Số lượng các tín hiệu đầu vào/ đầu ra
- Số lượng tầng trong mạng
- Số lượng các neural trong mỗi tầng
- Số lượng các trọng số (các liên kết) đối với mỗi neural
- Cách liên kết giữa các neural (trong một tầng hoặc giữ các tầng) với nhau
- Những neural nhận các tín hiệu điều chỉnh lỗi
1.4.2 Các tầng của ANN
- Một tầng đầu vào (input layer): tiếp nhận các tín hiệu đầu vào
- Một tầng đầu ra (output layer): phát tín hiệu ra khi mạng cho ra kết quả “đáp lại” tín hiệu nhận từ lớp đầu vào
- Tầng ẩn (hidden layer): đóng vai trò như bộ lọc “thông minh”
Trang 141.4.3 Các dạng mạng neural của một ANN
- Mạng liên kết đầy đủ (fully connected): nếu mọi đầu ra từ một tầng liên kết với mọi neural của tầng kế tiếp
- Mạng lan truyền tiến (feedforward network): nếu không có bất kỳ đầu ra của một nút là đầu vào của một nút khác thuộc cùng tầng (hoặc thuộc một tầng phía trước)
- Mạng phản hồi (feedback network): nếu có đầu ra của một nút liên kết ngược lại làm các đầu vào của một nút thuộc cùng tầng (hoặc thuộc một tầng phía trước)
- Mạng hồi quy (recurrent network): nếu các mạng phản hồi có các vòng lặp kín (closed loops)
1.5 Hoạt động của một mạng neural
Mỗi neural là một tế bào đặc biệt, nó có khả năng truyền các tính hiệu Một neural có cấu trúc rễ ngõ vào, thân tế bào và cấu trúc rễ ngõ ra (sợi thần kinh) Các sợi thần kinh của một tế bào kết nối với các tế bào khác thông qua synapse (khớp thần kinh) Khi một neural kích hoạt nó tạo ra xung điện hóa học dọc theo sợi thần kinh, tín hiệu này đi qua các synapse đến các neural khác và tiếp tục bị kích hoạt Neural chỉ hoạt động khi tất cả các tín hiệu nhận được ở thân tế bào thông qua rễ ngõ vào vượt một mức nào đó (gọi là ngưỡng hoạt động) Cường độ tín hiệu thu được của neural phụ thuộc vào độ nhạy của synapse và có thể thay đổi được cường
độ kết nối synapse thông qua việc học
Nguồn[tác giả]
Hình 1.7 Cấu tạo 1 neural
Mỗi neural nhận dữ liệu đầu vào (từ dữ liệu gốc hoặc từ các neural khác trong mạng) Mỗi kết nối đến ngõ vào được gán một cường độ (hay trọng số) Các trọng số này có thể nhận giá trị âm, khi đó các synapse có tác dụng kiềm chế hơn là kích hoạt neural Tín hiệu được truyền qua hàm kích hoạt (hay gọi là hàm truyền) tạo ra giá trị ngõ ra neural
Xi
Wi
F(net)
Trang 151.6.1 Học có giám sát (Supervised Learning)
Một thành phần không thể thiếu của phương pháp này[1,3] là sự có mặt của một người hướng dẫn(ở bên ngoài mạng) Người hướng dẫn học này có nhiệm vụ tìm kiếm và tập hợp tất cả tri thức ở bên ngoài môi trường Các tri thức này lá các cập thông tin đầu vào và thông tin đầu ra tương ứng Hệ thống học (ở đây là mạng neural) sẽ học dựa vào các cập dữ liệu đầu vào và đầu ra có trước này bằng cách thay đổi các trọng số và các ngưỡng để tạo nên một ánh xạ có khả năng ánh xạ các đầu vào thành các đầu ra mong muốn Sự thay đổi các trọng số và ngưỡng này được tiến hành nhờ việc so sánh giữa đầu ra thực sự của mạng và đầu ra mong muốn
Trong việc học có giám sát được cung cấp một tập hợp các mẫu chuẩn
(training set) thể hiện mối quan hệ giữa thông tin đầu vào và thông tin đầu ra của mạng
{p1 , t1} , { p2 , t2} , , {pq , tq}
Trang 16với pi là một đầu vào của mạng và ti là tương ứng với đầu ra thực đã thu thập mà đầu
ra của mạng muốn đạt được sau quá trình học Khi dữ liệu đầu vào được đưa vào mạng thì ta thu được đầu ra của mạng và được so sánh với đầu ra thu thập có trước Sai số giữa đầu ra của mạng được so sánh với đầu ra thu thập có trước được sử dụng để điều chỉnh các trọng số và hệ số bias của mạng sao cho di chuyển đầu ra của mạng về gần hơn với đầu ra đúng đã có thu thập được
Có hai cách sử dụng tập mẫu học, là học lần lượt từng mẫu một cho thành thạo rồi chuyển sang mẫu khác, hoặc học tất cả các mẫu cùng một lúc cho đến khi thành thạo các mẫu
Nguồn[tác giả]
Hình 1.9 Sơ đồ khối mô tả luật học giám sát
Để đánh giá sự chính xác giữa vectơ đầu ra của mạng neural và đầu ra đúng
thực tế người ta dùng hàm để đánh giá sai số (error function) Hàm sai số phổ thường được dùng nhất là hàm tổng bình phương sai số (sum square error function), hàm
này có mục đích tính tổng bình phương các sai số tại đầu ra của các neural lớp ra
Một khái niệm khác liên quan đến vấn đề đánh giá sai số là mặt sai số (error
surface) Mỗi một trọng số và hệ số bias của mạng tương ứng với một chiều trong
không gian, giả sử mạng có tất cả N trọng số và hệ số bias, thì chiều thứ nhất N+1 biểu diễn sai số của mạng Mỗi một bộ trọng số và hệ số bias, thì chiều thứ N+1 biểu diễn sai số của mạng Mỗi một bộ trọng số và hệ số bias của mạng sẽ ứng với một điểm của mặt sai số Mục tiêu của luật học là tìm được bộ trọng số và hệ số bias ứng với điểm
thấp nhất (điểm cực tiểu) của mặt đa chiều này
Mạng neural
Tính sai số Hiệu chỉnh
Đầu ra của mạng
Đầu ra đúng Đầu vào của mạng
Trang 171.6.2 Học không có giám sát (Unsupervised Learning)
Trong học không có giám sát[1], ta được cho trước một số dữ liệu p và hàm chi phí cần được cực tiểu hóa có thể là một hàm bất kỳ của dữ liệu p và đầu ra của mạng, f – hàm chi phí được quyết định bởi phát biểu của bài toán Phần lớn các ứng
dụng nằm trong vùng của các bài toán ước lượng như mô hình hóa thống kê, nén, lọc, phân cụm
1.6.3 Học tăng cường (Hydrid Learning)
Các mẫu p thường không được tạo trước mà trong quá trình một agent tương tác với môi trường thì tạo ra các mẫu dữ liệu p Tại mỗi thời điểm t, agent thực hiện hành động q t và môi trường tạo một quan sát m t với một chi phí tức thời C t, theo một quy trình động nào đó (thường là không được biết) Mục tiêu là một kế hoạch lựa chọn các hành động để làm cực tiểu hóa một chi phí lâu dài nào đó, nghĩa là chi phí tích lũy mong đợi Quy trình hoạt động của môi trường và chi phí lâu dài cho mỗi kế hoạch thường không được biết, nhưng có thể ước lượng được Mạng neural nhân tạo thường được dùng trong học tăng cường như một phần của thuật toán toàn cục Các bài toán thường được giải quyết bằng học tăng cường là các bài toán điều khiển, trò chơi và các nhiệm vụ quyết định tuần tự (sequential decision making) khác[1]
Trang 18Chương II GIỚI THIỆU MẠNG NEURAL ĐA LỚP TRUYỀN THẲNG VÀ
GIẢI THUẬT LAN TRUYỀN NGƯỢC 2.1 Tổng quan về mạng neural đa lớp truyền thẳng (Multilayer Perceptrons - MLP)
Có nhiều mô hình mạng neural đã được nghiên cứu, trong đó mạng neural đa lớp truyền thẳng với thuật toán lan truyền ngược là mô hình đơn giản và hay được
sử dụng nhất Trong luận văn này, ta chỉ tìm hiểu và áp dụng mạng neural đa lớp truyền thẳng với thuật toán lan truyền ngược
ANN là mô hình học từ dữ liệu có trước dựa trên cơ chế tổ chức và xử lý thông tin giống trong bộ não người Thông qua quá trình học các mẫu dữ liệu trong tập dữ liệu cho trước thu thập được, ANN tự thay đổi chính minh và càng lúc càng tích lũy thêm nhiều kinh nghiệm để giải quyết tất cả các vấn đề
ANN có thể ví nó như là một đồ thị định hướng có trọng số đặc biệt Trong
đó các nút chứa các trọng số được phân vào các lớp Lớp nhập có nhiệm vụ nhận thông tin đầu vào, các lớp ẩn thì có nhiệm vụ thực hiện các biến đổi (tổng hợp, nén) thông tin lan truyền qua các nút ẩn và kết quả đạt được của ANN sẽ được cho ra ở lớp xuất Bằng cách hiệu chỉnh trọng số ở các nút (giảm sai số giữa kết quả của ANN với kết quả mong muốn trên các mẫu dữ liệu), ANN có thể học và đưa ra được các quy luật từ các tập tập dữ liệu đã thu thập có trước (sai số trên tập dữ liệu
có thể rất nhỏ)
2.2 Kiến trúc mạng
Mạng Perceptron là mạng neural có kiến trúc truyền thẳng và đa lớp: có thể
có một hoặc nhiều lớp ẩn Mỗi lớp trong mạng có một ma trận trọng số W, vectơ bias b, vectơ net input n và vectơ đầu ra a Để có thể phân biệt giữa các lớp trong mạng với nhau người ta dùng thêm các chỉ số phụ cho mỗi biến Do đó, W i để chỉ ma
trận trọng số của lớp i, b i chỉ vectơ bias của lớp i Hàm truyền f cũng có thể có
nhiều dạng không phải chỉ là hàm sigmoid
n e x
1
1 ) ( , các neural trong cùng một lớp thường sẽ có cùng một hàm truyền
Có cấu trúc mạng Perceptron có R đầu vào, có S 1 neural ở lớp thứ nhất, S 2
neural ở lớp thứ hai Đầu ra của lớp thứ nhất là đầu vào của lớp thứ hai Lớp thứ hai
có đầu vào là gồm S 1 phần tử trong vectơ ra a 1 , có ma trận w 1 với kích thước của ma
Trang 19trận là S 2 x S 1 Lớp cuối cùng đưa ra kết quả của cuối cùng của mạng gọi là lớp ra (output) Các lớp còn lại trừ lớp đầu vào và lớp đưa ra kết quả cuối cùng của mạng gọi là các lớp ẩn
2.3 Mạng lan truyền ngƣợc (Neural Backpropagation)
Năm 1986, Rumelhart và McClelland giới thiệu thuật toán lan truyền ngược (BP) cho mô hình mạng nhiều lớp Mô hình mạng lan truyền ngược thường dùng có
dạng: một lớp nhập – một lớp ẩn – một lớp xuất Giả sử cho một tập luyện K mẫu
{(x i ,y i ),…, (x k ,y k ) }, thuật toán lan truyền ngược cung cấp kỹ thuật hiệu chỉnh các
trọng số W ij trong mạng nhằm phân lớp các giá trị đầu vào một cách chính xác, hay nói cách khác: mạng có thể “học” và “hiểu” được dữ liệu đưa vào
Để đo lường sự trùng khớp giữa ánh xạ cần xây dựng với hàm đích cho trước (hay nói cách khác là để đánh giá khả năng “học” của mạng) ta sử dụng sai số trung
bình bình phương E
Cho tập mẫu gồm N mẫu {(X k ,T)}={x 1 , x 2 , …, x k , t} (n) ; n = 1, …, N;
Gọi Z = NN(X k ) = {z 1 , z 2 , …, z N } là giá trị ước tính qua mạng neural, thì sai số
trung bình bình phương E được tính:
N
n n E
N
n
t Z
2
1
(1) Trong trường hợp mô hình mạng neural là hàm phi tuyến, việc xác định được
tập trọng số W để mô hình đạt được sai số ít nhất là rất khó Chính vì thế phương
pháp giảm gradient thường được sử dụng trong các trường hợp phức tạp này[1]
Phương pháp giảm gradient bao gồm các bước cơ bản sau:
B1: Chọn ngẫu nhiên một điểm x 0 trong không gian trọng số
B2: Tính độ dốc của mặt lỗi tại x 0
B3: Cập nhật các trọng số theo hướng dốc nhất của mặt lỗi
B4: Xem điểm này như điểm x 0 mới
Phương pháp này thực hiện lặp đi lặp lại từ bước 2 đến bước 4 cho đến khi các giá trị của bộ trọng số tiếp cận được điểm thấp nhất trong mặt lỗi
Biến thiên trọng số ở mỗi bước (bước t) sẽ được tính theo công thức:
Trang 20Với , là hai hằng số dương đặc trưng cho tốc độ học và moment của quá trình học (giảm lỗi) Tuy nhiên có một số cải tiến cho phép thay đổi các hệ số,
trong từng giai đoạn học, cũng như theo từng mẫu học để việc luyện mạng đạt hiệu quả cao nhất[8]
Nguồn[tác giả]
Hình 2.1 Các giá trị vào – ra tại một nút
Nói tóm lại, thuật toán lan truyền ngược có thể được tóm tắt thành hai quá trình chính: lan truyền tiến (forward), lan truyền ngược (backward)
Lan truyền tiến: là quá trình tính giá trị đầu ra {z 1 , z 2 , …, z N } dựa trên những
trọng số có sẵn Giả sử tại một nút mạng như hình 2.1, giá trị xuất Z j được tính:
Hàm hyperbol:
u u
e
e u
Hàm tang-hyperbol:
u u
u u
e e
e e