PHẦN MỞ ĐẦU Mạng nơ-ron nhân tạo được thiết kế để mô hình một số tính chất của mạng nơ-ron sinhhọc, tuy nhiên, khác với các mô hình nhận thức, phần lớn các ứng dụng lại có bản chất kỹ
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÁO CÁO THU HOẠCH HỆ HỖ TRỢ RA QUYẾT ĐỊNH
NEURAL NETWORK VÀ ỨNG DỤNG HỖ TRỢ RA QUYẾT
ĐỊNH DỰ BÁO
GVHD : PGS TS ĐỖ PHÚC HVTH : NGÔ VĂN LINH MSHV : CH1301021
TP.HCM - 2014
Trang 2MỤC LỤC
PHẦN MỞ ĐẦU 3
PHẦN NỘI DUNG 4
CHƯƠNG 1 – GIỚI THIỆU CHUNG VỀ NEURAL NETWORK 4
1.1 – GIỚI THIỆU VỀ PERCEPTRON 4
1.1.1 – Lịch sử mạng neural nhân tạo Perceptron 4
1.1.2 – So sánh mạng neural nhân tạo với máy tính truyền thống 4
1.1.3 – Neural sinh học và Neural nhân tạo 5
1.1.4 – Giới thiệu về mạng Perceptron 7
1.2 – MẠNG NHIỀU TẦNG TRUYỀN THẲNG 12
CHƯƠNG 2 – HUẤN LUYỆN VÀ XÂY DỰNG MẠNG NƠRON 14
2.1 – HUẤN LUYỆN MẠNG NEURAL 14
2.1.1 – Các phương pháp học 14
2.1.2 – Học có giám sát trong các mạng neural 15
2.1.3 – Thuật toán lan truyền ngược 15
2.2 – MỘT SỐ VẤN ĐỀ TRONG XÂY DỰNG MẠNG LAN TRUYỀN THẲNG 16
2.2.1 – Chuẩn bị dữ liệu 16
2.2.2 – Xác định tham số cho mạng 18
2.3 – MỘT SỐ ỨNG DỤNG CỦA MẠNG NEURAL 20
CHƯƠNG 3 – ỨNG DỤNG MẠNG NEURAL TRONG DỰ BÁO 21
3.1 – GIỚI THIỆU BÀI TOÁN 21
3.2 – CÀI ĐẶT CHƯƠNG TRÌNH 21
3.3 – KẾT QUẢ THỬ NGHIỆM 23
PHẦN KẾT LUẬN 25
TÀI LIỆU THAM KHẢO 26
Trang 3PHẦN MỞ ĐẦU
Mạng nơ-ron nhân tạo được thiết kế để mô hình một số tính chất của mạng nơ-ron sinhhọc, tuy nhiên, khác với các mô hình nhận thức, phần lớn cá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ộtloại mạng neutron gọi là perceptron Đóng góp quan trọng của Rosenblatt là giới thiệu một luậthọc để huấn luyện các mạng perceptron để giải quyết vấn đề nhận dạng mẫu
Nhờ các ưu điểm như có cấu trúc xử lý song song, khả năng học và ghi nhớ, khả năng tự
tổ chức và tổng quát hóa, mạng nơ-ron nhân tạo ANN (Artificial Newal Networks) đã đượcnghiên cứu và ứng dụng thành công trong rất nhiều lĩnh vực như: xấp xỉ hàm nhận dạng mẫu, dựbáo Bài toán nhận dạng với sự trợ giúp của mạng nơ-ron ngày nay đã không còn dừng ở mức độnghiên cứu nữa mà nó trở thành một lĩnh vực để áp dụng thực tế Các bài toán nhận dạng đượcnghiên cứu nhiều nhất hiện nay tập trung vào nhận dạng mẫu hình học (vân tay, mặt người, hìnhkhối, …), nhận dạng tiếng nói và nhận dạng chữ viết Chúng được ứng dụng rất nhiều trong cáclĩnh vực như y học, dự báo thời tiết, dự báo cháy rừng, các lĩnh vực tự động hóa như điều khiểnrobot, điều khiển thiết bị bằng giọng nói,
Trong bài báo cáo này ứng dụng đơn giản mạng nơ-ron vào việc dự báo thời tiết, giúpngười sử dụng có thể ra quyết định hợp lý cho công việc của mình
Trang 4PHẦN NỘI DUNG
CHƯƠNG 1 – GIỚI THIỆU CHUNG VỀ NEURAL NETWORK
1.1 – GIỚI THIỆU VỀ PERCEPTRON
Định nghĩa: Mạng nơron nhân tạo, Artificial Neural Network (ANN) gọi tắt là mạng
nơron, neural network, là một mô hình xử lý thông tin phỏng theo cách thức xử lý thông tin củacác hệ nơron sinh học Nó được tạo lên từ một số lượng lớn các phần tử (gọi là phần tử xử lý haynơron) kết nối với nhau thông qua các liên kết (gọi là trọng số liên kết) làm việc như một thểthống nhất để giải quyết một vấn đề cụ thể nào đó
Một mạng nơron nhân tạo được cấu hình cho một ứng dụng cụ thể (nhận dạng mẫu, phânloại dữ liệu, ) thông qua một quá trình học từ tập các mẫu huấn luyện Về bản chất học chính làquá trình hiệu chỉnh trọng số liên kết giữa các nơron
1.1.1 – Lịch sử mạng neural nhân tạo Perceptron
- Năm 1943 MC Cullock, Pitts đưa ra mô hình mạng nơ- ron đầu tiên
- Năm 1957 Rosenblatt đề xuất Perceptron và một thuật toán huấn luyện rất đơn giản Đếnnăm 1962, Novikoff chứng minh rằng thuật toán huấn luyện này luôn dừng sau một số hữu hạnbước lặp nếu tập mẫu học phân tách tuyến tính được
1.1.2 – So sánh mạng neural nhân tạo với máy tính truyền thống
Các mạng nơron có cách tiếp cận khác trong giải quyết vấn đề so với máy tính truyềnthống Các máy tính truyền thống sử dụng cách tiếp cận theo hướng giải thuật, tức là máy tínhthực hiện một tập các chỉ lệnh để giải quyết một vấn đề Vấn đề được giải quyết phải được biết vàphát biểu dưới dạng một tập chỉ lệnh không nhập nhằng Những chỉ lệnh này sau đó phải đượcchuyển sang một chương trình ngôn ngữ bậc cao và chuyển sang mã máy để máy tính có thể hiểuđược
Trừ khi các bước cụ thể mà máy tính cần tuân theo được chỉ ra rõ ràng, máy tính sẽ khônglàm được gì cả Điều đó giới hạn khả năng của các máy tính truyền thống ở phạm vi giải quyếtcác vấn đề mà chúng ta đã hiểu và biết chính xác cách thực hiện Các máy tính sẽ trở lên hữu íchhơn nếu chúng có thể thực hiện được những việc mà bản thân con người không biết chính xác làphải làm như thế nào
Các mạng nơron xử lý thông tin theo cách thức giống như bộ não con người Mạng đượctạo nên từ một số lượng lớn các phần tử xử lý được kết nối với nhau làm việc song song để giảiquyết một vấn đề cụ thể Các mạng nơron học theo mô hình, chúng không thể được lập trình đểthực hiện một nhiệm vụ cụ thể Các mẫu phải được chọn lựa cẩn thận nếu không sẽ rất mất thờigian, thậm chí mạng sẽ hoạt động không đúng Điều hạn chế này là bởi vì mạng tự tìm ra cáchgiải quyết vấn đề, thao tác của nó không thể dự đoán được
Trang 5Các mạng nơron và các máy tính truyền thống không cạnh tranh nhau mà bổ sung chonhau Có những nhiệm vụ thích hợp hơn với máy tính truyền thống, ngược lại có những nhiệm vụlại thích hợp hơn với các mạng nơron Thậm chí rất nhiều nhiệm vụ đòi hỏi các hệ thống sử dụng
tổ hợp cả hai cách tiếp cận để thực hiện được hiệu quả cao nhất (thông thường một máy tínhtruyền thống được sử dụng để giám sát mạng nơron)
1.1.3 – Neural sinh học và Neural nhân tạo
a Neural sinh học
Qua quá trình nghiên cứu về bộ não, người ta thấy rằng: bộ não con người bao gồmkhoảng 1011 nơron tham gia vào khoảng 1015 kết nối trên các đường truyền Mỗi đường truyềnnày dài khoảng hơn một mét Các nơron có nhiều đặc điểm chung với các tế bào khác trong cơthể, ngoài ra chúng còn có những khả năng mà các tế bào khác không có được, đó là khả năngnhận, xử lý và truyền các tín hiệu điện hóa trên các đường mòn nơron, các con đường này tạo nên
hệ thống giao tiếp của bộ não
Hình 1 – Neural sinh học
Mỗi nơron sinh học có 3 thành phần cơ bản:
• Các nhánh vào hình cây ( dendrites)
• Thân tế bào (cell body)
• Sợi trục ra (axon)
Các nhánh hình cây truyền tín hiệu vào đến thân tế bào Thân tế bào tổng hợp và xử lýcho tín hiệu đi ra Sợi trục truyền tín hiệu ra từ thân tế bào này sang nơron khác Điểm liên kếtgiữa sợi trục của nơron này với nhánh hình cây của nơron khác gọi là synapse Liên kết giữa cácnơron và độ nhạy của mỗi synapse được xác định bởi quá trình hóa học phức tạp Một số cấu trúccủa nơron được xác định trước lúc sinh ra Một số cấu trúc được phát triển thông qua quá trìnhhọc Trong cuộc đời cá thể, một số liên kết mới được hình thành, một số khác bị hủy bỏ
Trang 6Như vậy nơron sinh học hoạt động theo cách thức sau: nhận tín hiệu đầu vào, xử lý các tínhiệu này và cho ra một tín hiệu output Tín hiệu output này sau đó được truyền đi làm tín hiệuđầu vào cho các nơron khác.
Dựa trên những hiểu biết về nơron sinh học, con người xây dựng nơron nhân tạo với hyvọng tạo nên một mô hình có sức mạnh như bộ não
b Neural nhân tạo
Một nơron là một đơn vị xử lý thông tin và là thành phần cơ bản của một mạng nơron.Cấu trúc của một nơron được mô tả trên hình dưới
Hình 2 - Mạng Neural nhân tạo
Các thành phần cơ bản của một nơron nhân tạo bao gồm:
♦ Tập các đầu vào: Là các tín hiệu vào (input signals) của nơron, các tín hiệu này thường
được đưa vào dưới dạng một vector N chiều
♦ Tập các liên kết: Mỗi liên kết được thể hiện bởi một trọng số (gọi là trọng số liên kết –
Synaptic weight) Trọng số liên kết giữa tín hiệu vào thứ j với nơron k thường được kí hiệu là
wkj Thông thường, các trọng số này được khởi tạo một cách ngẫu nhiên ở thời điểm khởi tạomạng và được cập nhật liên tục trong quá trình học mạng
♦ Bộ tổng (Summing function): 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ủa nó
♦ Ngưỡng (còn gọi là một độ lệch - bias): Ngưỡng này thường được đưa vào như một
thành phần của hàm truyền
♦ Hàm truyền (Transfer function) : Hàm này được dùng để giới hạn phạm vi đầu ra của
mỗi nơron Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng đã cho Thông thường, phạm viđầu ra của mỗi nơron được giới hạn trong đoạn [0,1] hoặc [-1, 1] Các hàm truyền rất đa dạng, cóthể là các hàm tuyến tính hoặc phi tuyến Việc lựa chọn hàm truyền nào là tuỳ thuộc vào từng bàitoán và kinh nghiệm của người thiết kế mạng Một số hàm truyền thường sử dụng trong các môhình mạng nơron được đưa ra trong bảng 1
♦ Đầu ra: Là tín hiệu đầu ra của một nơron, với mỗi nơron sẽ có tối đa là một đầu ra
Trang 7Xét về mặt toán học, cấu trúc của một nơron k, được mô tả bằng cặp biểu thức sau:
(x1, wk1), (x2, wk2),…, (xp, wkp)
trong đó: x1, x2, , xp: là các tín hiệu vào; (wk1, wk2, , wkp) là các trọng số liên kếtcủa nơron thứ k; uk là hàm tổng; bk là một ngưỡng; f là hàm truyền và yk là tín hiệu đầu ra củanơron
Như vậy tương tự như nơron sinh học, nơron 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ả tới hàmtruyền), và cho một tín hiệu đầu ra ( là kết quả của hàm truyền)
Trang 8• Perceptron là mô hình đơn giản nhất của mạng nơ- ron (chỉ có một tầng)
• Perceptron bằng một nơ- ron nhân tạo
• Perceptron nhận tín hiệu từ dữ liệu nhập , xử lý và truyền ký hiệu ra bên ngoài
Thuật toán huấn luyện Perceptron: Thuật toán ở dạng trực tuyến (online), ta lần lượt
cung cấp cho thuật toán các mẫu học trong P, có thể lặp lại nhiều lần Mỗi lần có mẫu học mới,thuật toán sẽ chỉnh sửa (w, b)để cố gắng phân lớp được mẫu học này
Mô hình toán của mạng perceptron
…
b Kiến trúc mạng
Hình 3 - Kiến trúc mạng Perceptron đơn lớp
Output Input
Trang 9Hình 4 - Kiến trúc mạng Perceptron đa lớp
Dữ liệu vào: (P1, t1) (P2, t2) , (P3, t3) …(Pq, tq) với t_i là mục tiêu
Nếu a_i = t_i với mọi i thì w_new = w_old Nếu a= 0; t= 1
n = wp +b
a= hardlim (n)
Tăng trọng số: w_n = w_0 +p;
Nếu a= 1, t=0;
Trang 10Ra : a_i = t_i với mọi i
Bước 1: Khởi tạo giá trị w (ngẫu nhiên)Bước 2: Với mọi tín hiệu vào p_i tính : a_i (đầu ra thực tế)Bước 3: So sánh : a_i và t_i
If ( a_i = t_i) thì w_n = w_0 (giữ nguyên trọng số)
If (a_i ≠ t_i) thì
W_n = w_0 + ( t – a ) p B_n = b_0 + ( t – a ) * 1Bước 4: Lặp lại bước 2, bước 3 cho đến khi a_i = t_i với mọi i
Ví dụ: Để nhận dạng hai loại quả táo và cam qua kích thước, vỏ và cân nặng
Trang 11Hình 5 - Ví dụ về huấn luyện perceptron
Khởi tạo giá trị w = (0, 0, 0); b=1;
Trang 12e Khả năng của perceptron
Xem như một siêu phẳng trong không gian n chiều, phân lớp tuyến tính dữ liệu
Có thể thể hiện cho một số hàm boll cơ sở: AND, OR, NAND, NOR…
1.2 – MẠNG NHIỀU TẦNG TRUYỀN THẲNG
Mô hình mạng nơron được sử dụng rộng rãi nhất là mô hình mạng nhiều tầng truyềnthẳng (MLP: Multi Layer Perceptron) Một mạng MLP tổng quát là mạng có n (n≥2) tầng (thôngthường tầng đầu vào không được tính đến): trong đó gồm một tầng đầu ra (tầng thứ n) và (n-1)tầng ẩn
Hình 6 - Mạng neural truyền thẳng tổng quát
Kiến trúc của một mạng MLP tổng quát có thể mô tả như sau:
♦ Đầu vào là các vector (x1, x2, , xp) trong không gian p chiều, đầu ra là các vector (y1, y2, , yq) trong không gian q chiều Đối với các bài toán phân loại, p chính là kích thước của mẫu đầu vào, q chính là số lớp cần phân loại Xét ví dụ trong bài toán nhận dạng chữ số: với mỗi mẫu ta lưu tọa độ (x,y)
Trang 13của 8 điểm trên chữ số đó, và nhiệm vụ của mạng là phân loại các mẫu này vào một trong 10 lớp tương ứng với 10 chữ số 0, 1, …, 9 Khi đó p là kích thước mẫu và bằng 8 x 2 = 16; q là số lớp và bằng 10
♦ Mỗi nơron thuộc tầng sau liên kết với tất cả các nơron thuộc tầng liền trước nó
♦ Đầu ra của nơron tầng trước là đầu vào của nơron thuộc tầng liền sau nó
Hoạt động của mạng MLP như sau: tại tầng đầu vào các nơron nhận tín hiệu vào xử lý (tính tổng trọng số, gửi tới hàm truyền) rồi cho ra kết quả (là kết quả của hàm truyền); kết quả này sẽ được truyền tới các nơron thuộc tầng ẩn thứ nhất; các nơron tại đây tiếp nhận như là tín hiệu đầu vào, xử lý và gửi kết quả đến tầng ẩn thứ 2;…; quá trình tiếp tục cho đến khi các nơron thuộc tầng ra cho kết quả
Một số kết quả đã được chứng minh:
♦ Bất kì một hàm Boolean nào cũng có thể biểu diễn được bởi một mạng MLP 2 tầng trong đó các nơron sử dụng hàm truyền sigmoid
♦ Tất cả các hàm liên tục đều có thể xấp xỉ bởi một mạng MLP 2 tầng sử dụng hàm truyềnsigmoid cho các nơron tầng ẩn và hàm truyền tuyến tính cho các nơron tầng ra với sai số nhỏ tùy
ý
♦ Mọi hàm bất kỳ đều có thể xấp xỉ bởi một mạng MLP 3 tầng sử dụng hàm truyền sigmoid cho các nơron tầng ẩn và hàm truyền tuyến tính cho các nơron tầng ra.
Trang 14CHƯƠNG 2 – HUẤN LUYỆN VÀ XÂY DỰNG MẠNG NƠRON
2.1 – HUẤN LUYỆN MẠNG NEURAL
2.1.1 – Các phương pháp học
Khái niệm: Học là quá trình thay đổi hành vi của các vật theo một cách nào đó làm cho
chúng có thể thực hiện tốt hơn trong tương lai
Một mạng nơron được huyấn luyện sao cho với một tập các vector đầu vào X, mạng cókhả năng tạo ra tập các vector đầu ra mong muốn Y của nó Tập X được sử dụng cho huấn luyện
mạng được gọi là tập huấn luyện (training set) Các phần tử x thuộc X được gọi là các mẫu huấn luyện (training example) Quá trình huấn luyện bản chất là sự thay đổi các trọng số liên kết của
mạng Trong quá trình này, các trọng số của mạng sẽ hội tụ dần tới các giá trị sao cho với mỗivector đầu vào x từ tập huấn luyện, mạng sẽ cho ra vector đầu ra y như mong muốn
Có ba phương pháp học phổ biến là học có giám sát (supervised learning), học không giám sát (unsupervised learning) và học tăng cường (Reinforcement learning):
♦ Học có giám sát: Là quá trình học có sự tham gia giám sát của một “thầy giáo” Cũng
giống như việc ta dạy một em nhỏ các chữ cái Ta đưa ra một chữ “a” và bảo với em đó rằng đây
là chữ “a” Việc này được thực hiện trên tất cả các mẫu chữ cái Sau đó khi kiểm tra ta sẽ đưa ramột chữ cái bất kì (có thể viết hơi khác đi) và hỏi em đó đây là chữ gì?
Với học có giám sát, tập mẫu huấn luyện được cho dưới dạng D = {(x,t) | (x,t) ∈ [IRN xRK]}, trong đó: x = (x1, x2, , xN) là vector đặc trưng N chiều của mẫu huấn luyện và t = (t1, t2, , tK) là vector mục tiêu K chiều tương ứng, nhiệm vụ của thuật toán là phải thiết lập được mộtcách tính toán trên mạng như thế nào đó để sao cho với mỗi vector đặc trưng đầu vào thì sai sốgiữa giá trị đầu ra thực sự của mạng và giá trị mục tiêu tương ứng là nhỏ nhất Chẳng hạn mạng
có thể học để xấp xỉ một hàm t = f(x) biểu diễn mối quan hệ trên tập các mẫu huấn luyện (x, t)
Như vậy với học có giám sát, số lớp cần phân loại đã được biết trước Nhiệm vụ của thuậttoán là phải xác định được một cách thức phân lớp sao cho với mỗi vector đầu vào sẽ được phânloại chính xác vào lớp của nó
♦ Học không giám sát: Là việc học không cần có bất kỳ một sự giám sát nào
Trong bài toán học không giám sát, tập dữ liệu huấn luyện được cho dưới dạng: D = {(x1,x2, , xN)}, với (x1, x2, , xN) là vector đặc trưng của mẫu huấn luyện Nhiệm vụ của thuậttoán là phải phân chia tập dữ liệu D thành các nhóm con, mỗi nhóm chứa các vector đầu vào cóđặc trưng giống nhau
Như vậy với học không giám sát, số lớp phân loại chưa được biết trước, và tùy theo tiêu
chuẩn đánh giá độ tương tự giữa các mẫu mà ta có thể có các lớp phân loại khác nhau
♦ Học tăng cường: đôi khi còn được gọi là học thưởng-phạt (reward-penalty learning), là sự tổ
hợp của cả hai mô hình trên Phương pháp này cụ thể như sau: với vector đầu vào, quan sát vector đầu ra