Do các ưu điểm của mạng Neural nhân tạo đem lại mà nó đã được áp dụng vào trong nhiều lĩnh vực khác nhau như: - Phân tích đầu tư: dự đoán giá cổ phiếu, giá vàng… từ các dữ liệu đã có trư
Trang 1NHẬN XÉT CỦA GIẢNG VIÊN
Trang 2
MỤC LỤC
LỜI CÁM ƠN - 1
LỜI NÓI ĐẦU - 2
CHƯƠNG 1: MẠNG NEURAL NHÂN TẠO - 3
I Tổng quan về mạng Neural nhân tạo - 3
1 Giới thiệu - 3
2 Lịch sử phát triển của mạng neural: - 4
3 Biểu diễn một mạng Neural - 4
4 Các vấn đề thích hợp cho việc học bằng mạng Neural - 5
II Cơ sở lý thuyết cho Mạng Neural - 6
1 Dữ liệu huấn luyện: - 6
2 Neural nhân tạo (Đơn vị xử lý): - 6
3 Mạng Neural Nhân tạo: - 10
4 Các kiến trúc của mạng Neural: - 10
5 Đào tạo Huấn luyện Mạng Neural: - 12
III Thuật toán lan truyền ngược: - 14
1 Thuật toán Backpropagation: - 14
2 Chứng minh - Đạo hàm của thuật toán lan truyền ngược: - 15
3 Thuật toán lan truyền ngược với đơn vị signmoid: - 17
IV Đánh giá mạng Neural: - 20
1 Các bài toán thích hợp với mạng Neural: - 20
2 Ưu nhược điểm của mạng Neural: - 21
CHƯƠNG 2 : GIẢI THUẬT DI TRUYỀN - 23
I Tổng quan về thuật giải di truyền - 23
II Các thao tác cơ bản: - 24
1 Mã hóa: - 24
2 Phát sinh quần thể ban đầu: - 25
3 Hàm đánh giá và hàm thích nghi: - 25
4 Các toán tử di truyền: - 26
5 Các tham số của thuật giải: - 27
III Các toán tử và kỹ thuật di truyền nâng cao - 28
1 Thể lưỡng bội (Diploidy), thể trội (Dominicance) và thể khuyết (Abeyance): - 28
2 Thể đa bội (Multiploid): - 30
3 Một số toán tử vi mô tái thiết lập thứ tự: - 31
Trang 35 Tối ưu hóa đa mục tiêu: - 42
6 Tối ưu tổ hợp: - 43
CHƯƠNG 3: BÀI TOÁN PHÁT THƯ TPHCM - 44
I Giới thiệu Bưu Điện Thành Phố: - 44
II Bài toán lấy thư hằng ngày: - 46
KẾT LUẬN - 56
TÀI LIỆU THAM KHẢO - 57
Trang 4LỜI CÁM ƠN
Đầu tiên, em xin chân thành cám ơn thầy GS.TSKH Hoàng Kiếm đã truyền đạt hết sức nhiệt tình cho chúng em những kiến thức quý báu trong môn Công nghệ tri thức và ứng dụng để em hoàn thành đề tài này
Em cũng xin gửi lời cám ơn chân thành đến các thầy cô trong trường Đại học Công Nghệ Thông Tin đã tận tình giúp đỡ em trong thời gian học vừa qua
Xin cảm ơn tất bạn bè đã và đang động viên, giúp đỡ tôi trong quá trình học tập và hoàn thành đề tài này
Trang 5LỜI NÓI ĐẦU
Cuộc sống của chúng ta luôn có rất nhiều vấn đề được đặt ra đòi hỏi ta cần phải giải quyết Máy tính giúp chúng ta giải quyết các vấn đề một cách chính xác và thông minh
Sau khi hoàn thành môn học Công nghệ tri thức và ứng dụng do thầy Hoàng Kiếm
phụ trách em đã nắm bắt được một số kiến thức quan trọng về nghiên cứu phân tích tri thức
và ứng dụng vào các bài toán trong thực tế
Trong bài báo cáo này em xin được nếu một vài điểm tìm hiểm về mạng neural nhân tạo
và thuật giải di truyền Từ thuật giải di truyền em đã xây dựng một chương trình demo giải bài toán phát thư cho khu vực TPHCM
Trang 6CHƯƠNG 1: MẠNG NEURAL NHÂN TẠO
I Tổng quan về mạng Neural nhân tạo
1 Giới thiệu
Nghiên cứu về mạng Neural đã được quan tâm từ những năm 40 của thế kỉ 20 Khoảng những năm 1990, mạng Neural được đặc biệt chú ý vì những khả năng ứng dụng rộng của nó Chỉ tính riêng ở Mỹ có đến 50 tổ chức trong các viện nghiên cứu cũng như trường đại học nghiên cứu về mạng Neural
Lý thuyết mạng Neural được xây dựng dựa trên mô hình các Neural của não bộ con người Trong đó, mỗi Neural sẽ kết nối với rất nhiều các Neural khác để tạo nên một mạng lưới các Neural được kết nối rất phức tạp Mặc dù tốc độ chuyển đổi nhanh nhất của các Neural trong não người chỉ là 10-3 giây, khá chậm khi so sánh với tốc độ của máy tính là
10-10 giây, nhưng con người lại có khả năng đưa ra quyết định trong thời gian rất nhanh Điều này có nghĩa là hệ thống mạng lưới sinh học này đã xử lý thông tin song song trên nhiều Neural cùng lúc Dựa vào đó, người ta cũng đã phát triển ra các mô hình tính toán phân tán trên mạng Neural nhân tạo Mặc dù mạng Neural nhân tạo dựa trên hệ thống Neural sinh học, tuy nhiên hệ thống sinh học vẫn tỏ ra cực kỳ phức tạp mà không thể được
mô hình hóa trong mạng nhân tạo
Tương tự như hoạt động của não bộ, mạng Neural nhân tạo không thể được lập trình trước để đưa ra cách giải quyết cho một vấn đề như các phương pháp thông thường Mạng Neural học bằng cách rèn luyện qua các ví dụ Các ví dụ này cũng phải được chọn lọc và chuẩn hóa cẩn thận để tránh việc lãng phí thời gian hoặc thậm chí làm cho cả hệ thống hoạt động không chính xác
Do các ưu điểm của mạng Neural nhân tạo đem lại mà nó đã được áp dụng vào trong nhiều lĩnh vực khác nhau như:
- Phân tích đầu tư: dự đoán giá cổ phiếu, giá vàng… từ các dữ liệu đã có trước đó
- Phân tích chữ ký viết tay
- Điều khiển các quy trình trong công nghiệp và doanh nghiệp
- Quản lý - theo dõi: ví dụ theo dõi trạng thái động cơ máy bay
- Marketing: tìm ra mối liên hệ giữa dữ liệu về khách hàng đó và các phản ứng của khách hàng sau khi nhận được quảng cáo
Trang 72 Lịch sử phát triển của mạng neural:
Các quá trình phát triển của mạng Neural được chia làm 4 giai đoạn :
Giai đoạn 1: Mạng Neural bắt đầu từ nghiên cứu của William(1980) về tâm lý học và
sự liên kết các Neural thần kinh Đến năm 1940, Mc Culloch và Pitts đã chứng minh các Neural có thể mô hình hóa như những thiết bị giới hạn ( hay thiết bị ngưỡng) để giải quyết các phép tính logic và mô hình mạng Neural của Mc Culloch – Pitts cùng với giải thuật huấn luyên của Hebb ra đời 1943
Giai đoạn 2: Vào khoảng 1960 một số mô hình Neural hoàn thiện hơn ra đời như mô
hình Perceptron do Rosenblatt (1958), Adalile của Widrow(1962),… Cả hai mô hình này cho đến hiện nay vẫn được dùng rộng rãi nhưng nó có một số nhược điểm Ví dụ như mô hình Perceptron, theo Marvin Minsky và Seymour Papert của MIT chứng minh nó không dùng được cho các hàm logic phức(1969).Còn Adalie là mô hình tuyến tính, tự điều chỉnhđược dùng rộng rãi trong điều khiển thích nghi, tách nhiễu
và phát triển cho đến nay
Giai đoạn 3: Giai đoạn này có thể tính là bắt đầu từ thập niên 80 Chúng ta có thể kể
đến những đóng góp của Grossberg, Kohonen, Rumelhart, Hopfield…Đặc biệt là đóng góp của Hopfield gồm 2 mạng phản hồi: Mạng rời rạc 1982 và mạng liên tục
1984
Giai đoạn 4: Từ năm 1987 đến nay, hàng năm thế giới đều mở ra các hội nghị toàn
cầu chuyên ngành Neural IJCNN Rất nhiều công trình được nghiên cứu để ứng dụng mạng Neural vào các lĩnh vực như: kỹ thuật tính, điều khiển, bài toán tối ưu …
3 Biểu diễn một mạng Neural
Hình dưới đây là một ví dụ tiêu biểu cho mạng Neural được Pomerleu đề xuất trong hệ thống ALVINN, hệ thống này là hệ thống lái xe tự động trên đường cao tốc Dữ liệu đầu vào của mạng Neural này là một ảnh gồm 30x32 ô, mỗi ô là 1 pixel thu từ camera được gắn phía trước xe Hệ thống này được huấn luyện để bắt chước cách lái xe của người lái xe trong khoảng 5 phút sau đó ALVINN đã tự động lái xe được quãng đường 90 dặm với tốc độ trung bình 70 dặm một giờ
Trang 8Hình bên trái cho
dữ liệu này được
đưa vào 4 đơn vị ẩn
kết nối với 30 đơn
vị đầu ra Biểu đồ
phía bên phải thể
hiện các giá trị
trọng số của một trong những đơn vị ẩn trong mạng này Ma trận lớn phía dưới thể hiện cho 30x32 trọng số của các dữ liệu đầu vào, trong đó ô màu trắng thể hiện cho trọng số dương, còn ô màu đen thể hiện trọng số âm Trọng số khi dữ liệu truyền từ các đơn vị ẩn cho các đơn vị đầu ra được thể hiện bằng khối chữ nhật nhỏ phía bên trên
4 Các vấn đề thích hợp cho việc học bằng mạng Neural
Mạng Neural thích hợp để giải quyết các vấn đề mà có dữ liệu huấn luyện có nhiễu,
dữ liệu phức tạp từ các cảm biến (như từ camera hoặc microphone) Ngoài ra mạng Neural cũng có thể được áp dụng cho các vấn đề mà các biểu diễn mô hình thường dùng, ví dụ Decision Tree
Thuật toán BackPropagation là thuật toán được dùng thông dụng nhất trong các kĩ thuật học của mạng Neural Nó thích hợp cho những vấn đề có các đặc điểm sau:
- Các dữ liệu huấn luyện được biểu diễn bằng các cặp thuộc tính-giá trị
- Giá trị của hàm mục tiêu có thể là giá trị rời rạc, liên tục hoặc là một vector của các giá trị rời rạc hoặc liên tục
- Trong các dữ liệu học có thể chứa lỗi
- Cho phép học trong thời gian dài
- Ước lượng nhanh các hàm mục tiêu
- Con người không cần phải hiểu hàm mục tiêu
Mạng Neural trong hệ thống ALVINN
Trang 9II Cơ sở lý thuyết cho Mạng Neural
1 Dữ liệu huấn luyện:
Đặc điểm của mạng Neural đó là phải trải qua giai đoạn huấn luyện dựa trên một tập hợp các dữ liệu huấn luyện.Dữ liệu huấn luyện là một cặp < > mà ở đó mỗi input cho ta một output tương ứng Đối với mạng Neural nhân tạo, là vector chứa các giá trị rời rạc hoặc liên tục, còn là một giá trị liên tục hoặc rời rạc duy nhất
2 Neural nhân tạo (Đơn vị xử lý):
Neural nhân tạo là Neural mô phỏng theo Neural sinh học Nó là đơn vị cơ bản của mạng Neural Cũng giống như Neural sinh học ở chỗ nếu như Neural sinh học có nhiều dây thần kinh để có thể tiêp nhận đồng thời nhiều dữ liệu thì Neural nhân tạo cũng có nhiều tín hiệu đầu vào.Mỗi tín hiệu đầu vào của Neural nhân tạo được gán cho một trọng số wij Nó tiếp nhận các đầu vào, xử lí các tín hiệu đầu vào này và cho một tín hiệu đầu ra tương ứng để truyền đến các Neural (Đơn vị xử lí khác)
Trang 10Trong mô hình một Neural nhân tạo như trên, thì:
- U i là tích = x 1 w 1 + x 2 w 2 + … x n w n
- f(U i ) là hàm kích hoạt của Neural Hàm kích hoạt có nhiệm vụ chuyển tổng
các tích của dữ liệu đầu vào và trọng số thành một giá trị duy nhất Hai hàm thông dụng
được dùng đó là hàm ngưỡng và hàm xích ma
Bên cạnh các giá trị đầu vào có từ dữ liệu huấn luyện, các Neural nhân tạo này còn kèm theo một giá trị đầu vào cố định gọi là giá trị bias x0 = 1 Bởi vì như ta biết trong mạng Neural nhân tạo thì có hai tham số có thể được điều chỉnh: các trọng số wi và giá trị ngưỡng của hàm kích hoạt Điều này là không thực tế và sẽ dễ dàng hơn nếu chỉ có một tham số cần phải điều chỉnh Để giải quyết điều này, người ta đưa giá trị bias thêm vào Khi đó, tổng các giá trị đầu vào sẽ được tính là:
U = x 0 w 0 + x 1 w 1 + x 2 w 2 + … + x n w n
2.1 Perceptron:
Perceptron là một loại đơn vị xử lý của một mạng Neural do Rosenblatt đề xuất Perceptron có vai trò giống như một Neural nhân tạo Perceptron nhận vào 1 vector các giá trị thực, sau đó tổ hợp tuyến tính vector này được 1 giá trị y Perceptron có một đầu ra
(output), giá trị của đầu ra là sgn(y)
Trang 11Mô hình toán học của Perceptron:
2.2 Đơn vị xích ma (Sigmoid Unit):
Sự hạn chế của Perceptron là không thể biểu diễn các hàm phi tuyến tính vì hàm ngưỡng của
nó Thế nên Hàm xích ma được đề xuất ra để
giải quyết vấn đề này Đơn vị xích ma sử dụng
Trang 12Đặc điểm của hàm là không tuyến tính và ta có thể lấy đạo hàm rất dễ dàng Đơn vị xích ma khá giống với Perceptron, nhưng có hàm kích hoạt dựa trên một hàm ngưỡng trơn
Trang 13Hàm này cũng có những đặc tính khá thuận lợi giống như hàm Xích ma nhưng nó làm
việc tốt với đầu ra nằm trong khoảng [-1,1]
3 Mạng Neural Nhân tạo:
Mạng Neural nhân tạo (Artificial Neural Network - ANN) là là một cấu trúc mạng được hình thành nên bởi nhiều Neural nhân tạo liên kết với nhau và xử lý các thông tin bằng cách thay đổi trạng thái của nó theo dữ liệu đầu vào
Với việc giả lập các hệ thống sinh học, các cấu trúc tính toán mạng Neural có thể giải quyết được các lớp bài toán nhất định như: bài toán lập lịch, bài toán tìm kiếm, bài toán nhận dạng mẫu, bài toán xếp loại,… Mạng Neural còn giải quyết được lớp bài toán sử dụng
dữ liệu không đầy đủ, xung đột mờ hoặc không chắc chắn Những bài toán này được đặc trưng bởi một số hoặc tất cả các tính chất sau: i) Sử dụng không gian nhiều chiều, các tương tác phức tạp, chưa biết hoặc không thể theo dõi về mặt toán học giữa các biến; ii) Không gian nghiệm có thể rỗng , có nghiệm duy nhất hoặc một có một số nghiệm bình đẳng như nhau Ngoài ra còn thích hợp để tìm nghiệm của những bài toán mà đầu vào là những cảm nhận bởi con người như: Tiếng nói, nhìn,và nhận dạng,…Tuy nhiên việc ánh xạ từ một bài toán bất kì sang mạng Neural nhân tạo lại là một việc không phải đơn giản
Mạng Neural là một cấu trúc xử lí song song, thông tin phân tán và có các đặc trưng nổi bật sau:
- Bao gồm một số lượng lớn các Neural liên kết với nhau với nhiều cấu trúc khác nhau – tùy theo yêu cầu bài toán
- Là mô hình dựa trên bản chất của Neural sinh học
- Có khả năng học và khái quát hóa dữ liệu học thông qua việc gán và hiệu chỉnh các tring số liên kết
- Tổ chức theo kiểu riêng biệt mang lại cho Neural khả năng tính toán rất lớn, Trong
đó không noron nào mang thông tin riêng biệt
4 Các kiến trúc của mạng Neural:
4.1 Mạng truyền thẳng:
Là mô hình liên kết cơ bản và đơn giản nhất của một tập hợp các Neural Các Neural này tổ chức lại với nhau tạo thành các lớp, tìn hiệu được truyền lần lượt qua các lớp theo 1 hướng nhất định
Trang 14Mạng truyền thẳng có thể có một hoặc nhiều lớp, thế nhưng mạng truyền thẳng 1 lớp với cấu trúc đơn giản rất khó để có thể biểu diễn những bài toán phức tạp và các hàm phức tạp nên các mạng truyền thẳng thường được sử dụng nhiều lớp
Các lớp của mạng truyền thẳng là :
- Lớp đầu vào : Là các lớp nhận tín hiệu (input layer)
- Lớp đầu ra : Là các lớp đưa tín hiệu ra ngoài (output layer)
- Lớp ẩn : là các lớp trung gian giữa lớp đầu vào và lớp đầu ra (hidden layer)
Trang 15Các mô hình mạng hồi quy thường gây cho ta khó khăn khi phân tích và thiết kế các thuật toán học cho nó so với các mạng truyền thẳng
5 Đào tạo Huấn luyện Mạng Neural:
Ngày nay để giải quyết các bài toán, các vấn đề đặt ra trong các lĩnh vực trong đời sống
xã hội người ta vẫn sử dụng đến máy tính với những chương trình đặt thù Có nhiều cách tiếp cận để giải quyết các vấn đề, các bài toán Cách thông dụng nhất là lập trình Thế nhưng lập trình đòi hỏi tư duy, kinh nghiệm của con người, giải quyết cho từng trường hợp và từng vấn đề cụ thể Một cách khác để giải quyết các vấn đề trong các hệ sinh học đó là đào tạo - huấn luyện (training) Ta lấy một ví du : bản thân con người không được lập trình nhưng có thể làm 1 bài toán đơn giản dựa vào các ví dụ đã cho sẵn ,… Dĩ nhiên, để làm được điều này thì máy tính phải có có khả năng học và chúng ta phải có những dữ liệu huấn luyện (example training) phù hợp Mộ trong những giải pháp để giúp máy tính đạt được những khả năng đó là Mạng Neural với những tính chất sau:
- Các mạng Neural hoạt động như các hệ thông tin có thể đào tạo được, thích nghi và thậm chí là tự tổ chức cho chính mình
- Các mạng Neural phát triển các chức năng dựa trên dữ liệu đào tạo mẫu
- Các mạng Neural có thể được cung cấp những kiến trúc tính toán dựa trên đào tạo hơn là thiết kế
Việc đào tạo và huấn luyện mạng Neural là quá trình làm cho mạng Neural có thêm những chức năng dựa trên những dữ liệu mẫu có sẵn thông qua các thuật toán học hay các luật học đã được cài đặt sẵn cho mạng Neural
Luật học:
Các luật học đóng vai trò quyết định trong việc đào tạo huấn luyện các mạng Neural nhân tạo.Nó quyết định trực tiếp đến khả năng học, thích nghi cảu mạng Neural Một khác niệm đơn giản về việc học của mạng Neural là cập nhật các trọng số trên cơ sở các mẫu Luật học qui tắc chung để cập nhật các trọng số này Hiểu theo nghĩa rộng hơn thì học có
thể được chia làm 2 loại: Học tham số và học cấu trúc
Học tham số:
Là các luật học mà ở đó mạng Neural tìm kiếm các trọng số sao cho mạng có khả năng đưa ra dự báo sát với thực tế.Dạng chung của luật học tham số là :
Trang 16Với : là độ tăng của trọng số liên kết từ Neural j đến Neural i
là tín hiệu vào Neural j
là tốc độ học ( hay là mức học, learning rate)
r là hằng số học
Việc tìm giá trị r phù hợp để hiệu chỉnh trọng số của mạng Neural là vô cùng quan
trọng
Ta có thể chia học tham số ra thành các trường hợp thành một số nhánh nhỏ sau : Học
có chỉ đạo, học tăng cường và học không có chỉ đạo:
- Học có chỉ đạo: Là quá trình học dựa vào sai số giữa đầu ra thực và đầu ra mong muốn làm cơ sở cho việc hiệu chỉnh trọng số.Các luật học điển hình của nhánh này
là luật Delta của Widrow(1962) nêu ra dùng để xấp xỉ trọng số của Adaline (1 dạng mạng Neural truyền thẳng) theo nguyên tắc giảm gradient, luật học Perceptron của Rosenblatt(1958), Luật Oja (cải tiến và nâng cấp từ luật Delta), luật lan truyền ngược – phát triển từ luật Delta dùng cho mạng nhiều lớp
- Học có tín hiệu chỉ đạo: Luật học này sử dụng đầu ra của mạng làm cơ sở hiệu chỉnh trọng số liên kết Điển hình cho nhánh này là luật Hebb(1949) thường dùng cho các mạng tự liên kết Luật LVQ(Learning Vector Quantization) thường dùng cho các mạng tự tổ chức một lớp ánh xạ đặc trưng của Kohonen
- Học tăng cường: Trong một số trường hợp, thông tin phản hồi chỉ là những tín hiệu cho biết đầu ra của mạng là đúng hay sai.Quá trình học dựa theo những hướng dẫn như vậy gọi là học tăng cường và tín hiệu phản hồi là tín hiệu củng cố cho quá trình học Nó cũng gần như là học có tín hiệu chỉ đạo
Học Cấu trúc:
Là quá trình học bằng cách đi tìm các tham số của cấu trúc của mạng để từ đó xây dựng nên một cấu trúc hợp lí nhất cho mạng Neural giúp mạng hoạt động tốt nhất Nhưng trong thực tế việc này tốn rất nhiều thời gian ngay cả với mạng có kích thước nhỏ.Thường sử dụng các giải thuật di truyền hay kĩ thuật gọt tỉa
Trang 17III Thuật toán lan truyền ngƣợc:
Thuật toán lan truyền ngược được đề xuất bởi Rumelhart, Hinton và Williams năm
1986 Nhằm tính toán các trọng số, là cơ sở cho việc huấn luyện các mạng Perceptron nhiều lớp Nó mở đường cho việc sử dụng các Mạng Neural nhân tạo bởi vì trước đó
1 Thuật toán Backpropagation:
Đầu vào:
- Dữliệuhuấnluyện H
- Tốc độc học :
- Số lượng đơn vị đầu vào nin
- Số lượng đơn vị đầu ra nout
- Tạo một mạng truyền thẳng với các khai báo , nin ,nout,nlayer,nlayer(i) i[1 nlayer]
- Khởi tạo các giá trị wji ban đầu ngẫu nhiên phù hợp (Các giá trị này cố gắng để gần với độ tụ nhằm rút ngắn thời gian hội tụ)
Thuật toán: Cho đến khi gặp điều kiện dừng thì thực hiện các lệnh sau:
- Với mỗi cặp < > trong tập dữ luyện huấn luyên H, thực thi:
Lan truyền thẳng theo từng đơn vị dọc theo mạng:
a) Tính các ou của mỗi đơn vị khi input vào mạng đầu vào b) Với mỗi đầu ra của mạng ta tính các giá trị k theo công thức
Với f là hàm ngưỡng của Đơn vị xử lý c) Với mỗi đơn vị ẩn tính k theo công thức:
Trang 18Với Downstream(j) là tập hợp các đơn vị liên kết trưc tiếp với đơn vị j và nhận đầu ra của đơn vị j là đầu vào
d) Tính lại các trọng số theo công thức:
2 Chứng minh - Đạo hàm của thuật toán lan truyền ngƣợc:
Ta gọi tổng lỗi trên ví dụ d của 1 giả thuyết là ½ tổng bình phương độ chênh lệch giữa các tín hiệu đầu ra của 1 đơn vị xử lí lớp output và mục tiêu của t của nó (E là thước đo độ lỗi, E được tính 1 cách tương đối theo công thức dưới)
Theo đó thuật toán lan truyền ngược sẽ làm giảm đi Ed nhằm giảm đi dần độ lỗi của các lớp output này tức là giảm đi độ chênh lệch của các output ok so với mục tiêu tk
Để làm giảm độ chênh lệch này thì thuật toán thực hiện thủ tục:
Theo đó sẽ được tính theo công thức
(1) Vì:
Và độ giảm của E :
Phân tích công thức (1) theo cách tính đạo hàm của hàm hợp ta có :
(2) Trong đó net j là tích vector đầu vào và vector trọng số vào đơn vị xử lí j
X ji là tín hiệu đầu vào từ đơn vị xử lí i vào đơn vị xử lí j
Trang 19Trường hợp 1: Nếu như đơn vị xử lí là đơn vị output
Ta sử dụng luật tính đạo hàm hợp, ta được:
Mà:
(Vì kj thì đạo hàm bằng 0) Đạo hàm ra ta được :
Trang 20Ta kí hiệu rằng i (với i là đơn vị ẩn) có giá trị là thì sẽ có giá trị là :
Ta có hàm sigmoid :
Và đạo hàm của hàm signmoid :
Vì vậy Các giá trị được viết lại như sau :
Với j là các đơn vị output ta có:
Với j là các đơn vị ẩn ta có:
Trang 213.2 Phát biểu thuật toán lan truyền ngƣợc với mạng truyền thẳng đơn vi Signmoid:
3.2.1 Thuật toán Backpropagation
Đầu vào:
- Dữ_liệu_huấn_luyện H
- Tốc độc học :
- Số lượng đơn vị đầu vào nin
- Số lượng đơn vị đầu ra nout
- Tạo một mạng truyền thẳng với các khai báo , nin ,nout,nlayer,nlayer(i) i[1 nlayer]
- Khởi tạo các giá trị wji ban đầu ngẫu nhiên phù hợp (Các giá trị này cố gắng để gần với độ tụ nhằm rút ngắn thời gian hội tụ)
Thuật toán: Cho đến khi gặp điều kiện dừng thì thực hiện các lệnh sau:
- Với mỗi cặp < > trong tập dữ luyện huấn luyên H, thực thi:
Lan truyền thẳng theo từng đơn vị dọc theo mạng
a) Tính các ou của mỗi đơn vị khi input vào mạng đầu vào b) Với mỗi đầu ra của mạng ta tính các giá trị k theo công thức
c) Với mỗi đơn vị ẩn tính k theo công thức:
Với Downstream(j) là tập hợp các đơn vị liên kết trưc tiếp với đơn vị j và nhận đầu ra của đơn vị j là đầu vào
Trang 23IV Đánh giá mạng Neural:
1 Các bài toán thích hợp với mạng Neural:
Bài toán phân lớp (classification)
- Dùng trong việc quản lí các đối tượng đa biến là phân loại (phân lớp các đối tượng trong vào các nhóm, nhóm con, hay chủng loại) Vi dụ : phân loại ảnh, nhận dạng mẫu,…
- Khi phân loại một quyết định phức tạp, chúng ta phải bắt đầu với việc nghiên cứu các mối liên quan giứa nhiều đối tượng đối tượng và các yếu tố tạo nên sự khác biệt giữa các lớp Có thể nói việc xây dựng 1 lớp và các quyết định phải được thực hiện trươc skhi thủ tục học được tiến hành Nếu kết quả cuối cùng không thỏa mãn chúng
ta cần phải xem xét lại cách biểu diễn các cây phân lớp hoặc thay đổi cả hai
Mô hình hóa (modening):
- Các hệ thống phân định các câu trả lời rời rạc như có, không hoặc một số nguyên định danh các đối tượng đầu vào thuộc lớp nào Mô hình hóa yêu cầu hệ thống phải sản sinh ra các câu trả lời mang tính liên tục Trong quá trình mô hình hóa cần một
số lượng nhỏ các số liệu để xây dựng mô hình Mô hình này có thể đưa ra các dự báo cho tất cả các đối tượng đầu vào.Việc tìm ra 1 đường phù hợp với các số liệu thực nghiệm là một tring những ứng dung thuộc dạng này Trong bất kỳ loại mô hình nào cũng phải tuân theo một giả định là : các thay đổi nhỏ của tín hiệu đầu vào cũng chỉ gây rấtt hay đổi nhỏ trong tín hiệu đầu ra
- Trong các phương pháp mô hình hóa cổ điển, các hệ số có thể có 1 ý nghĩa nào đó nhưng mạng Neural thì các trọng số của nó không có ý nghĩa gì với vấn đề cần giải quyết Nhưng nhìn nhận ở một mặt nào đó ta có thể thấy ưu thế hơn hẳn của mạng Neural so với những phương pháp cổ điển
- Đối với việc chọn dữ liệu huấn luyện, chúng ta cần quan tâm tới sự phân bổ của các đối tượng dùng để học Nếu số lượng đối tượng dùng cho việc học là it và được phân bố đều trong toán không gian, khi đó số liệu có thể được dùng để mô hình ngay Nếu không, nếu các đối tượng là nhiều và phân bố ngẫu nhiên trong không gian biếnthì ta phải giảm thiểu sao cho chúng bao trùm cả không gian, sau đó mới
sử dụng được số liệu
Biến đổi, thực hiện ánh xạ từ không gian đa biến này vào không gian đa biến khác tương ứng (transformation add mapping):
Trang 24- Gần như đây là những phép biến đổi 1-1 Các dữ liệu huấn cấn phải có đủ các trường hợp biến đổi và sự phân bố phải đều như nhau trong dữ liệu huấn luyện thì mạng mới có khả năng học chính xác dựa vào dữ liệu đó
Liên kết và kĩ thuật chuyển cửa sổ aosiation and moving window):
- Liên kết là tìm đối tượng đích có mối quan hệ với một đối tượng khác hoặc thậm chí ngay khi đối tượng vào bị hỏng hoặc hoàn toàn không biết Theo một nghĩa nào đó, thì liên kết cũng coi như là phân loại Thủ tục học cho vấn đề này có tín hiệu chỉ đạo
- Kỹ thuật dịch chuyển cửa sổ có thể được sử dụng đề giải quyết các vấn đề chuỗi các
sự kiện và đối tượng như trong các lĩnh vực về môi trường theo thời gian, kiểm soát
- Xử lý tín hiệu : Phân tích tín hiệu địa chấn và hình thái học
- Nhận dạng mẫu: Gồm việc phân tách các nét đặc biệt của mẫu, phân loại và phân tích tín hiệu của Rada,…
- Y học : phân tích điện tâm đồ, chuẩn đoán bệnh,…
- Quân sự : Các hệ phát hiện thủy lôi, phân loại luồng rada, nhận dạng người nói,…
- Các hệ phân tích tài chính
- Trí tuệ nhân tạo : hệ chuyên gia ,…
- Dự đoán
- Quy hoạch, kiểm tra và tìm kiếm
2 Ƣu nhƣợc điểm của mạng Neural:
2.1 Ƣu điểm:
- Xử lý song song: các thao tác tính toán trong mạng Neural nhân tạo có thể được
thực hiện song song cùng lúc Các phần cứng và phần mềm chuyên dụng có thể được thiết
kế để tận dụng tính năng này
-Thiết kế hệ thống tích nghi
-Không đòi hỏi đặc trưng của bài toán, chỉ dựa trên dữ liệu học tập
Trang 252.2 Nhƣợc điểm
- Không có các quy tắc hoặc hướng dẫn thiết kế cấu trúcmạng Neural cho từng ứng
dụ cụ thể Việc lựa chọn số lượng lớp (layer) và số đơn vị trong mỗi lớp là chủ yếu dựa vào thực nghiệm
-Không có cách tổng quát để đánh giá hoạt động bên trong mạng
-Việc học đối với mạng có thể khó (hoặc không thể) thực hiện
-Khó mà đoán trước được hiệu quả của mạng trong tương lai Có thể bộ dữ liệu huấn luyện được cung cấp cho mạng chưa đầy đủ, như vậy có thể dẫn đến mạng hoạt động sai
-Không gần gũi với tư duy của con người Hầu như chúng ta không thể theo dõi và hiểu được sự thay đổi của các tham số bên trong mạng Chúng ta chỉ hy vọng sau khi được huấn luyện, mạng Neural sẽ có thể giải quyết được vấn đề ta đang gặp phải
Trang 26CHƯƠNG 2 : GIẢI THUẬT DI TRUYỀN
I Tổng quan về thuật giải di truyền
Thuật giải di truyền là một kỹ thuật của khoa học máy tính được dùng để tìm kiếm lời giải cho các bài toán tối ưu tổ hợp hay các bài toán chưa có thuật toán để tìm chính xác lời giải Thuật giải di truyền sử dụng ngôn ngữ máy tính để mô phỏng lại quá trình tiến hóa
tự nhiên của một tập các đối tượng trừu tượng (gọi là quần thể) Mỗi đối tượng trừu tượng (gọi là các nhiễm sắc thể) đại diện cho một giải pháp khả dĩ (gọi là cá thể) của bài toán tối
ưu hóa Ngoài ra, mỗi giải pháp thường liên quan đến nhiều yếu tố, gọi là các biến Vì thế, các nhiễm sắc thể tương ứng cũng gồm nhiều phần tử, mỗi phần tử được gọi là một gen
Tập các giải pháp này sẽ tiến triển theo hướng chọn lọc những giải pháp tốt hơn Việc xác định giải pháp nào tốt hơn được thực hiện bởi một hàm gọi là hàm mục tiêu hoặc hàm thích nghi Các giải pháp tốt được kết hợp với nhau với hi vọng sẽ tạo ra các giải pháp tốt hơn
Quá trình tiến hóa bắt đầu từ một tập các cá thể ngẫu nhiên, và do đó, hầu hết chúng không phải là các lời giải tốt Qua từng thế hệ, độ thích nghi của từng cá thể được xác định Các cá thể được chọn lọc theo cách có định hướng (chọn cá thể tốt theo độ thích nghi) từ tập hiện thời Sau đó, các cá thể này được biến đổi bằng cách lai ghép hay đột biến để tạo ra các
cá thể mới Việc này được thực hiện lặp đi lặp lại qua các thế hệ tiếp theo và cuối cùng, giải thuật cho ra lời giải tối ưu hoặc gần tối ưu
Một thuật giải di truyền có thể chia ra làm 5 bước, được mô tả qua thủ tục sau:
procedure GeneticAlgorithms
begin
T = 0; // Thế hệ thứ TKhởi tạo quần thể P(T);
Đánh giá độ thích nghi cho các cá thể trong P(T);
while (not Điều_Kiện_Kết_Thúc) do
Trang 27T = T + 1;
Chọn lọc P(T) từ P(T-1);
Kết hợp các cá thể (bằng lai ghép & đột biến) trong P(T);
Đánh giá độ thích nghi cho các cá thể trong P(T);
end end
Các toán tử và kỹ thuật được áp dụng trong thủ tục trên sẽ được mô tả chi tiết hơn trong các phần tiếp theo
II Các thao tác cơ bản:
Để giải một bài toán tối ưu bằng cách áp dụng thuật giải di truyền, ta thường phải giải quyết 5 vấn đề:
Biểu diễn di truyền hay chọn cách mã hóa các lời giải của bài toán
Phát sinh quần thể ban đầu P(0)
Chọn hàm đánh giá để xác định mức độ thích nghi của lời giải
Áp dụng các toán tử di truyền (lai ghép, đột biến) để tạo ra các cá thể mới
Xác định các tham số đầu vào của thuật giải Chẳng hạn như kích thước quần thể, xác suất lai ghép, xác suất đột biến,…
1 Mã hóa:
Mã hóa là việc xác định cách thức biểu diễn di truyền đối với lời giải của bài toán Việc mã hóa phụ thuộc nhiều vào từng bài toán cụ thể Một số cách biểu diễn thông dụng:
Biểu diễn nhị phân: mỗi nhiễm sắc thể là một dãy số nhị phân Mỗi gen có thể được
mã hóa nhờ một số lượng bit nào đó
Biểu diễn theo số tự nhiên: mỗi nhiễm sắc thể là một dãy các số tự nhiên Phương pháp này được dùng nhiều trong các bài toán tối ưu tổ hợp hay hoán vị
Biểu diễn số dấu chấm động: Mỗi gen trong nhiễm sắc thể được mã hóa bởi một số ở dạng dấu chấm động Cách biểu diễn này giải quyết được một số nhược điểm của biểu diễn nhị phân và biểu diễn được miền giá trị lớn
Trang 28 Một số cách khác: Biểu diễn số ở hệ Octal (hay Hexa), biểu diễn bởi chuỗi ký tự, hay kết hợp các dạng trên
Cách biểu diễn Nhị phân Số tự nhiên Số thực Cách khác
2314506 (Octal) ABCDE (Hexa / chuỗi)
Một số cách biểu diễn nhiễm sắc thể
2 Phát sinh quần thể ban đầu:
Thông thường, việc khởi tạo các cá thể trong quần thể ở thế hệ đầu tiên là phát sinh ngẫu nhiên và/hoặc có thêm một số ràng buộc (chẳng hạn sinh ra một hoán vị) Do đó, hầu hết chúng có độ thích nghi thấp hay không phải là lời giải tối ưu Trong một số trường hợp, việc phát sinh ngẫu nhiên có thể làm quá trình tiến hóa chậm (chẳng hạn như với bài toán người du lịch)
Một cách khởi tạo khác cũng hay được áp dụng, đó là sử dụng phương pháp tham lam (greedy) Tùy vào đặc trưng của từng bài toán cụ thể, ta có thể phát sinh ra các cá thể sao cho có khả năng gần với lời giải nhất có thể Ví dụ, với bài toán người du lịch, tại gen thứ k, ta chọn đỉnh gần nhất với đỉnh trong gen thứ k-1 và chưa được chọn
3 Hàm đánh giá và hàm thích nghi:
Trong hầu hết các bài toán áp dụng thuật giải di truyền, ta quy về việc tối ưu cực đại
(hoặc cực tiểu) một hàm một hoặc nhiều biến Khi đó, độ tốt của cá thể là giá trị hàm tương
ứng của cá thể đó Như vậy, nếu chọn một cá thể là nghiệm của bài toán thì cá thể càng tốt
khi giá trị hàm càng gần với giá trị tối ưu (cực đại hoặc cực tiểu) càng tốt Hàm để đánh giá
độ tốt của cá thể hay lời giải gọi là hàm mục tiêu
Tuy nhiên, để chọn lọc các cá thể di truyền cho thế hệ tiếp theo, ta cần phải biến đổi
hàm mục tiêu sang hàm thích nghi Điều này cũng tương tự như trong tự nhiên, các cá thể
thích nghi tốt với môi trường sống sẽ được bảo tồn cho thế hệ kế tiếp
Độ thích nghi của cá thể được định nghĩa là khả năng cá thể đó được chọn lọc vào
thế hệ sau hoặc được chọn cho việc lai ghép, tạo ra cá thể mới
Trang 29Hàm mục tiêu là cơ sở để đánh giá độ thích nghi của các cá thể Việc ánh xạ từ hàm mục tiêu sang hàm thích nghi tùy thuộc vào mục đích của bài toán thực tế
4 Các toán tử di truyền:
Chọn lọc là quá trình chọn một cách ngẫu nhiên các cặp cá thể trong quần thể để
thực hiện việc lai tạo ra cá thể con cho thế hệ sau Mục đích của chọn lọc là chú trọng vào các cá thể có độ thích nghi cao với hi vọng rằng, các con của chúng sẽ có độ thích nghi cao hơn nữa Một số cơ chế chọn lọc thường được áp dụng:
Chọn lọc theo vòng Roulette (Roulette wheel selection)
Chọn lọc cạnh tranh (Tournament selection)
Chọn lọc thứ tự (Rank selection)
Elitism selection
Lai ghép là quá trình lấy hai giải pháp bố - mẹ và sinh ra con của chúng Sau quá
trình chọn lọc (sinh sản), quần thể được làm giàu bởi các cá thể tốt hơn Lai ghép tạo ra bản sao của các cá thể tốt chứ không tạo ra các cá thể mới vì lai ghép chỉ sao chép giá trị gen
giữa cặp cá thể bố - mẹ để tạo ra cá thể con Toán tử lai ghép được áp dụng vào tổ hợp sinh
sản với hi vọng tạo ra được thế hệ con tốt hơn
a Lai ghép đa điểm b Lai ghép đồng nhất c Lai ghép thứ tự
Một số kiểu lai ghép
Các kỹ thuật lai ghép thường được áp dụng:
Trang 30 Lai ghép một điểm (Single-point Crossover)
Lai ghép đa điểm (Multi-point Crossover)
Lai ghép đồng nhất (Uniform Crossover)
Lai ghép chu trình (CX – Cycle Crossover)
Lai ghép thứ tự (OX – Ordered Crossover)
Lai ghép so khớp từng phần (PMX – Partially Matched Crossover)
Đột biến là thay đổi một cách ngẫu nhiên giá trị của một hoặc vài gen trong nhiễm
sắc thể Nếu lai ghép được xem là khám phá các giải pháp hiện thời để tìm ra các giải pháp
tốt hơn thì đột biến được cho là để giúp thăm dò toàn bộ không gian tìm kiếm Đột biến được xem như một toán tử nền tảng để duy trì tính đa dạng di truyền trong quần thể Đột biến giúp thoát khỏi cái bẫy của cực tiểu cục bộ và duy trì tính đa dạng trong quần thể
Có nhiều dạng đột biến khác nhau tùy thuộc vào cách mã hóa hay biểu diễn của nhiễm sắc thể Sau đây là một số kỹ thuật đột biến thường dùng:
Đột biến đảo bit (Flipping): Thay thế giá trị của gen bằng một giá trị khác
Đột biến đổi chổ (Interchanging): Hoán vị giá trị của hai gen
Đột biến đảo ngược (Reversing): Đảo ngược một đoạn gen trong nhiễm sắc thể
Flipping Interchanging Reversing Parent 1 0 0 1 0 1 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 0 1 0 0 0
Child 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 1 0
Một số dạng đột biến
5 Các tham số của thuật giải:
Kích thước quần thể (PopSize) là số lượng cá thể trong mỗi thế hệ tiến hóa Giá trị
của nó phụ thuộc vào sự phức tạp của từng bài toán cụ thể Kích thước quần thể lớn có thể giúp khám phá nhanh toàn bộ không gian tìm kiếm Tuy nhiên, nó yêu cầu chi phí cho việc tính toán, bộ nhớ và cả thời gian thực thi Trong thực tế, giá trị này thường được chọn là 100
Xác suất lai ghép (pc) là tham số mô tả mức độ thường xuyên mà phép lai ghép được