Mạng Neural nhân tạo Artificial Neural Network- ANN là một mô phỏng xử lý thông tin, được nghiên cứu ra từ hệ thống thần kinh của sinh vật, giống như bộ não để xử lý thông tin.. Các ứng
Trang 1LỜI CẢM ƠN
Lời đầu tiên chúng em xin gửi lời cảm ơn đến Cô Nguyễn Thị Thu Hà người
đã cung cấp tài liệu và hướng dẫn tận tình chúng em trong suốt quá trình thựchiện bài tập lớn
Chúng em cũng xin gửi lời cảm ơn tới toàn thể các Thầy, Cô, cán bộ - côngnhân viên trong Trường Đại Học Điện Lực những người đã dạy bảo em trongsuốt những năm học qua tại mái trường than yêu Đặc biệt là các Thầy, Côtrong khoa CNTT những người mang đến cho chúng em những nguồn tri thứcquý báu và những lời khuyên bổ ích để giúp chúng em có thêm hành trangbước vào cuộc sống
Đồ án môn học là cơ hội để chúng em áp dụng, tổng kết những kiến thức mà mìnhhọc hỏi, đồng thời rút ra những kinh nghiệm thực tế quý giá trong suốt quá trìnhthực hiện đề tài
Và cuối cùng em xin gửi lời cảm ơn tới bố mẹ, anh chị của em Những ngườiluôn miệt mài bên cạnh em, giúp đỡ, chăm lo và an ủi em, giành cho em nhữngtình cảm đặc biệt
Kính chúc thầy cô mạnh khỏe, hạnh phúc
Hà Nội, tháng 12 năm 2011
Nhóm sinh viên : Nguyễn Trọng Thắng
Bùi Thanh Tân Hoàng Tùng
Trang 2Xây dựng và cài đặt chương trình.
Kiểm tra và viết báo cáo
Mục tiêu của đề tài
Tìm hiểu lý thuyết mạng neural, nghiên cứ cơ chế, phương thức hoạt động của mạng neural và xây dựng chương trình mô phỏng hoạt động của mạng neural
Cấu trúc của đề tài
Cấu trúc của đề tài gồm có 3 chương :
Chương 1 Tổng quan về mạng neural
Chương 2 Phương thức hoạt động của mạng neural
Chương 3 Chương trình mô phỏng hoạt động của mạng neural
Trang 3MỤC LỤC
LỜI CẢM ƠN 1
TÓM TẮT NỘI DUNG 2
MỤC LỤC 3
DANH MỤC HÌNH VẼ 4
LỜI NÓI ĐẦU 5
CHƯƠNG I TỔNG QUAN VỀ MẠNG NEURAL 6
1.1 Lịch sử phát triển mạng neural 6
1.2 Thành phần cấu thành mạng neural 7
1.3 Đơn vị xử lý 8
1.4 Ứng dụng 9
CHƯƠNG II PHƯƠNG THỨC HOẠT ĐỘNG CỦA MẠNG NEURAL 11
2.1 Mạng neural sinh học 11
2.2 Mô hình mạng neural nhân tạo 12
2.3 Nguyên lý hoạt động 15
2.4 Phân loại 17
2.4.1 Mạng dẫn tiến một lớp 17
2.4.2 Mạng neural nhiều lớp 17
2.4.3 Mạng neural hồi quy 18
2.4.4 Mạng neural Hopfield 18
2.4.5 Mạng BAM 20
CHƯƠNG III CHƯƠNG TRÌNH MÔ PHỎNG HOẠT ĐỘNG MẠNG NEURAL 23
3.1 Giao diện chính của chương trình: 23
3.1.1 Form tổng thể của chương trình: 23
3.1.2 Mẫu file excel ghi tọa độ điểm của mạng neural đi qua 23
3.2 Công cụ sử dụng 24
3.3 Mô tả dữ liệu 24
3.4 Kết quả thực nghiệm 24
KẾT LUẬN 25
Trang 4TÀI LIỆU THAM KHẢO 26
DANH MỤC HÌNH VẼ
Hình 1.1 Đơn vị xử lý (Processing unit)
Hình 2.1 Mô hình mạng Neural sinh học
Hình 2.2 Sự liên kết các Neural sinh học
Hình 2.3 Mô hình một mạng Neural nhân tạo
Trang 5LỜI NÓI ĐẦU
Hiện nay nước ta đang trong giai đoạn tiến hành công nghiệp hóa hiện đạihóa Công nghệ thông tin và là một trong những nghành mũi nhọn
Việc phát minh ra những con rô bốt thông minh hay những con chip siêunhỏ có thể điều khiển được một bộ máy như tòa nhà, càng cho chúng ta thấy sựphát triển vượt bậc của nghành công nghệ thông tin Thật vậy từ lâu con người đãphát minh ra chiếc máy tính có khả năng thực hiện rất nhiều phép tính trên giây.Ngày nay thì những sản phẩm đó ngày càng hoàn thiện và đạt tới đỉnh cao củacông nghệ
Tuy nhiên, một máy tính, dù có mạnh đến đâu chăng nữa, đều phải làm việc theomột chương trình chính xác đã được hoạch định trước bởi các chuyên gia Trongkhi đó con người làm việc bằng cách học tập và rèn luyện Trong khi làm việc conngười có khả năng liên tưởng, kết nối sự việc này với sự việc khác, và quan trọnghơn hết, họ có thể sáng tạo
Từ lâu các nhà khoa học đã nhận thấy những ưu điểm ấy của bộ óc con người vàtìm cách bắt chước để thực hiện những máy tính có khả năng học tập, nhận dạng vàphân loại Các mạng neural nhân tạo (Artificial Neural Network, ANN) đã ra đời
từ những nỗ lực đó ANN là một lãnh vực nghiên cứu rộng lớn và chỉ mới pháttriển mạnh khoảng 15 năm gần đây thôi
Mạng Neural nhân tạo (Artificial Neural Network- ANN) là một mô phỏng
xử lý thông tin, được nghiên cứu ra từ hệ thống thần kinh của sinh vật, giống như
bộ não để xử lý thông tin Nó bao gồm số lượng lớn các mối gắn kết cấp cao để xử
lý các yếu tố làm việc trong mối liên hệ giải quyết vấn đề rõ ràng ANNs giốngnhư con người, được học bởi kinh nghiệm, lưu những kinh nghiệm hiểu biết và sửdụng trong những tình huống phù hợp
Các ứng dụng của mạng Neural được sử dụng trong rất nhiều lĩnh vực như điện,điện tử, kinh tế, quân sự… để giải quyết các bài toán có độ phức tạp và đòi hỏi có
độ chính xác cao như điều khiển tự động, khai phá dữ liệu, nhận dạng… Việc ứngdụng mạng Neural trong thực tế phục thuộc thuộc rất nhiều vào cơ chế hoạt độngmạng Neural Trong nội dung đề tài này chúng em chủ yếu tập trung vào nghiên
Trang 6cứu các tác nhân ảnh hưởng đến hoạt động của mạng Neural và mô phỏng quátrình hoạt động của mạng Neural.
CHƯƠNG I TỔNG QUAN VỀ MẠNG NEURAL
hề đưa ra những mô hình toán học cụ thể mô tả hoạt động của các Neural
- Mọi chuyện thực sự bắt đầu vào những năm 1940 với công trình của WarrenMcCulloch và Walter Pitts Họ chỉ ra rằng về nguyên tắc, mạng của cácNeural nhân tạo có thể tính toán bất kỳ một hàm số học hay logic nào
- Tiếp theo hai người là Donald Hebb, ông đã phát biểu rằng việc thuyết lậpluận cổ điển (classical conditioning) (như Pavlov đưa ra) là hiện thực bởi docác thuộc tính của từng Neural riêng biệt Ông cũng nêu ra một phương pháphọc của các Neural nhân tạo
- Ứng dụng thực nghiệm đầu tiên của các Neural nhân tạo có được vào cuốinhững năm 50 cùng với phát minh của mạng nhận thức (perceptron network)
và luật học tương ứng bởi Frank Rosenblatt Mạng này có khả năng nhậndạng các mẫu Điều này đã mở ra rất nhiều hy vọng cho việc nghiên cứumạng Neural Tuy nhiên nó có hạn chế là chỉ có thể giải quyết một số lớphữu hạn các bài toán
- Cùng thời gian đó, Bernard Widrow và Ted Hoff đã đưa ra một thuật toánhọc mới và sử dụng nó để huấn luyện cho các mạng Neural tuyến tính thíchnghi, mạng có cấu trúc và chức năng tương tự như mạng của Rosenblatt.Luật học Widrow-Hoff vẫn còn được sử dụng cho đến nay
- Tuy nhiên cả Rosenblatt và Widrow-Hoff đều cùng vấp phải một vấn đề doMarvin Minsky và Seymour Papert phát hiện ra, đó là các mạng nhận thứcchỉ có khả năng giải quyết các bài toán khả phân tuyến tính Họ cố gắng cảitiến luật học và mạng để có thể vượt qua được hạn chế này nhưng họ đã
Trang 7không thành công trong việc cải tiến luật học để có thể huấn luyện được cácmạng có cấu trúc phức tạp hơn
- Do những kết quả của Minsky-Papert nên việc nghiên cứu về mạng Neuralgần như bị đình lại trong suốt một thập kỷ do nguyên nhân là không có đượccác máy tính đủ mạnh để có thể thực nghiệm
- Mặc dù vậy, cũng có một vài phát kiến quan trọng vào những năm 70 Năm
1972, Teuvo Kohonen và James Anderson độc lập nhau phát triển một loạimạng mới có thể hoạt động như một bộ nhớ Stephen Grossberg cũng rấttích cực trong việc khảo sát các mạng tự tổ chức (Self organizing networks)
- Vào những năm 80, việc nghiên cứu mạng Neural phát triển rất mạnh mẽcùng với sự ra đời của máy tính Có hai khái niệm mới liên quan đến sự hồisinh này, đó là:
o Việc sử dụng các phương pháp thống kê để giải thích hoạt động của mộtlớp các mạng hồi quy (recurrent networks) có thể được dùng như bộ nhớliên hợp (associative memory) trong công trình của nhà vật lý học JohhHopfield
o Sự ra đời của thuật toán lan truyền ngược (back-propagation) để luyện cácmạng nhiều lớp được một vài nhà nghiên cứu độc lập tìm ra như: DavidRumelhart, James McCelland Đó cũng là câu trả lời cho Minsky-Papert
1.2 Thành phần cấu thành mạng neural
Bộ não con người chứa khoảng 1011 các phần tử liên kết chặt chẽ với nhau(khoảng 104 liên kết đối với mỗi phần tử) gọi là các Neural Dưới con mắt củanhững người làm tin học, một Neural được cấu tạo bởi các thành phần: tế bào hìnhcây (dendrite) - tế bào thân (cell body) – và sợi trục thần kinh (axon) Tế bào hìnhcây có nhiệm vụ mang các tín hiệu điện tới tế bào thân, tế bào thân sẽ thực hiệngộp (Sum) và phân ngưỡng (Thresholds) các tín hiệu đến Sợi trục thần kinh làmnhiệm vụ đưa tín hiệu từ tế bào thân ra ngoài
Điểm tiếp xúc giữa một sợi trục thần kinh của Neural này và tế bào hình câycủa một Neural khác được gọi là khớp thần kinh (synapse) Sự sắp xếp của cácNeural và mức độ mạnh yếu của các khớp thần kinh được quyết định bởi các quátrình hóa học phức tạp, sẽ thiết lập chức năng của mạng Neural
Một vài Neural có sẵn từ khi sinh ra, các phần khác được phát triển thông quaviệc học, ở đó có sự thiết lập các liên kết mới và loại bỏ các liên kết cũ
Trang 8Cấu trúc của mạng Neural luôn luôn phát triển và thay đổi Các thay đổi sau này
có khuynh hướng bao gồm chủ yếu là việc làm tăng hay giảm độ mạnh của các mốiliên kết thông qua các khớp thần kinh
Mạng Neural nhân tạo không tiếp cận đến sự phức tạp của bộ não Mặc dù vậy,
có hai sự tương quan cơ bản giữa mạng Neural nhân tạo và sinh học Thứ nhất, cấutrúc khối tạo thành chúng đều là các thiết bị tính toán đơn giản (mạng Neuralnhân tạo đơn giản hơn nhiều) được liên kết chặt chẽ với nhau Thứ hai, các liênkết giữa các Neural quyết định chức năng của mạng
Cần chú ý rằng mặc dù mạng Neural sinh học hoạt động rất chậm so với cáclinh kiện điện tử (10-3 giây so với 10-9 giây), nhưng bộ não có khả năng thực hiệnnhiều công việc nhanh hơn nhiều so với các máy tính thông thường Đó một phần
là do cấu trúc song song của mạng Neural sinh học: toàn bộ các Neural hoạt độngmột cách đồng thời tại một thời điểm
Mạng Neural, đôi khi được xem như là các mô hình liên kết (connectionistmodels), là các mô hình phân bố song song (parallel-distributed models) có các đặctrưng phân biệt sau:
- Tập các đơn vị xử lý
- Trạng thái kích hoạt hay là đầu ra của đơn vị xử lý
- Liên kết giữa các đơn vị Xét tổng quát, mỗi liên kết được định nghĩa bởi mộttrọng số wjk cho ta biết hiệu ứng mà tín hiệu của đơn vị j có trên đơn vị k
- Một luật lan truyền quyết định cách tính tín hiệu ra của từng đơn vị từ đầuvào của nó;
- Một hàm kích hoạt, hay hàm chuyển (activation function, transfer function),xác định mức độ kích hoạt khác dựa trên mức độ kích hoạt hiện tại;
- Một đơn vị điều chỉnh (độ lệch) (bias, offset) của mỗi đơn vị;
- Phương pháp thu thập thông tin (luật học - learning rule);
- Môi trường hệ thống có thể hoạt động
1.3 Đơn vị xử lý
Một đơn vị xử lý (hình vẽ), cũng được gọi là một Neural hay một nút (node),thực hiện một công việc rất đơn giản: nó nhận tín hiệu vào từ các đơn vị phía trướchay một nguồn bên ngoài và sử dụng chúng để tính tín hiệu ra sẽ được lan truyềnsang các đơn vị khác
Trang 9Hình 1.1 Đơn vị xử lý (Processing unit)
trong đó:
xi : các đầu vào
wji : các trọng số tương ứng với các đầu vào
θj : độ lệch (bias) j : độ lệch (bias)
aj : đầu vào mạng (net-input)
zj : đầu ra của Neural
g(x): hàm chuyển (hàm kích hoạt)
Trong một mạng Neural có ba kiểu đơn vị:
Các đơn vị đầu vào (Input units), nhận tín hiệu từ bên ngoài
Các đơn vị đầu ra (Output units), gửi dữ liệu ra bên ngoài
Các đơn vị ẩn (Hidden units), tín hiệu vào (input) và ra (output) của nó nằmtrong mạng
Mỗi đơn vị j có thể có một hoặc nhiều đầu vào: x0, x1, x2, … xn, nhưng chỉ cómột đầu ra zj
Một đầu vào tới một đơn vị có thể là dữ liệu từ bên ngoài mạng, hoặc đầu ra củamột đơn vị khác, hoặc là đầu ra của chính nó
1.4 Ứng dụng
Cùng với thời gian phát triển và hình thành thì mạng neural nhân tạo đã córất nhiều ứng dụng trong nhiều lĩnh vực:
Trang 10Dùng mạng neural nhân tạo (Artificial neural networks) để điều khiển thiết bị bằnggiọng nói tiếng Việt Phép biến đổi Fourier thời gian ngắn – STSF (Short timeFourier Transform) được áp dụng để trích các đặc trưng cơ bản của tín hiệu tiếngnói Một mạng neural nhân tạo được huấn luyện để nhận dạng tiếng nói Việt củabất kỳ người nào, khi họ đọc một trong 4 từ lệnh ‘Trái’, ‘Phải’, ‘Tới’, ‘Lui’ (ápdụng để điều khiển robot) Kết quả nghiên cứu được kiểm chứng qua việc điềukhiển từ xa một xe vô tuyến Độ chính xác được ước lượng xấp xĩ 90% và khảnăng mở rộng tập lệnh là rất cao.
Aerospace: Phi công tự động, giả lập đường bay, các hệ thống điều khiển lái máybay, bộ phát hiện lỗi
Automotive: Các hệ thống dẫn đường tự động cho ô tô, các bộ phân tích hoạt độngcủa xe
Banking: Bộ đọc séc và các tài liệu, tính tiền của thẻ tín dụng
Defense: Định vị - phát hiện vũ khí, dò mục tiêu, phát hiện đối tượng, nhận dạngnét mặt, các bộ cảm biến thế hệ mới, xử lý ảnh radar
Electronics: Dự đoán mã tuần tự, sơ đồ chip IC, điều khiển tiến trình, phân tíchnguyên nhân hỏng chip, nhận dạng tiếng nói, mô hình phi tuyến
Financial: Định giá bất động sản, cho vay, kiểm tra tài sản cầm cố, đánh giá mức
độ hợp tác, phân tích đường tín dụng, chương trình thương mại qua giấy tờ, phântích tài chính liên doanh, dự báo tỷ giá tiền tệ
Trang 11CHƯƠNG II PHƯƠNG THỨC HOẠT ĐỘNG CỦA MẠNG NEURAL 2.1 Mạng neural sinh học
Trong bộ não con người có vô số các neural, liên kết lại với nhau tạo thành mạngneural
Mỗi một neural bao gồm 4 thành phần: Dendrites, soma, axon, và synapses
Dendrites: là phần nhận tín hiệu đầu vào
Soma: là hạt nhân
Axon: là phần dẫn ra tín hiệu xử lý
Synapses: là đường tín hiệu điện hóa giao tiếp giữa các Neural
Kiến trúc cơ sở này của bộ não con người có một vài đặc tính chung Một cáchtổng quát, thì một Neural sinh học nhận đầu vào từ các nguồn khác nhau, kết hợpchúng tại với nhau, thực thi tổ hợp phi tuyến chúng để cho ra kết quả cuối cùng ởđầu ra Hình 2 chỉ ra mối quan hệ giữa bốn phần tử của một Neural sinh học
Hình 2.1 Mô hình mạng Neural sinh học
Một Neural sinh học chỉ có một số chức năng cơ bản như vậy, ta nhận thấy khảnăng xử lý thông tin của nó là rất yếu Để có được khả năng xử lý thông tin hoànhảo như bộ não con người, thì các Neural phải kết hợp và trao đổi thông tin vớinhau Ta hình dung sơ đồ liên kết, và trao đổi thông tin giữa hai Neural như hình 3
Trang 12Hình 2.2 Sự liên kết các Neural sinh học
2.2 Mô hình mạng neural nhân tạo
Mạng nơ ron nhân tạo là một mô phỏng xử lý thông tin, được nghiên cứu ra từ
hệ thống thần kinh của sinh vật, giống như bộ não để xử lý thông tin Nó bao gồm
số lượng lớn các mối gắn kết cấp cao để xử lý các yếu tố làm việc trong mối liên
hệ giải quyết vấn đề rõ ràng ANNs giống như con người, được học bởi kinhnghiệm, lưu những kinh nghiệm hiểu biết và sử dụng trong những tình huống phùhợp
Đầu tiên ANN được giới thiệu năm 1943 bởi nhà thần kinh học WarrenMcCulloch và nhà logic học Walter Pits Nhưng với những kỹ thuật trong thời giannày chưa cho phép họ nghiên cứu được nhiều Những năm gần đây mô phỏngANN xuất hiện và phát triển Các nghiên cứu ứng dụng đã được thực hiện trongcác ngành: điện, điện tử, kỹ thuật chế tạo, y học, quân sự, kinh tế và mới nhất làcác nghiên cứu ứng dụng trong lĩnh vực quản lý dự án xây dựng Tại Việt Namviệc nghiên cứu ứng dụng ANN vào quản lý xây dựng chỉ mới bắt đầu trong vàinăm gần đây và cần được phát triển
Cấu trúc mạng neural: Mỗi neural (nút) là một đơn vị xử lý thông tin của mạngneural, là yếu tố cơ bản để cấu tạo nên mạng neural:
Trang 13Hình 2.3 Mô hình một mạng Neural nhân tạo
Các thành phần cơ bản:
X1,X2,….,Xm: Các tín hiệu Input
Wpk: Trọng số của từng input
f(.): Hàm hoạt động
Yk: Kết xuất của neural
Hàm tổng: Thường dùng để tính tổng của tích các đầu vào với trọng số liên kết củanó
Về mặt toán học, cấu trúc của một Neural i được mô tả bằng cặp biểu thức sau:
Như vậy, tương tự như Neural sinh học, Neural nhân tạo cũng nhận các tín hiệuđầu vào, xử lý (nhân các tín hiệu này với trọng số liên kết, tính tổng các tích thuđược rồi gửi kết quả đến hàm truyền), và cho một tín hiệu đầu ra (là kết quả củahàm truyền)