Có nhiều phương pháp tiếp cận, giải thuật nhằm ứng dụng công nghệ khai phá dữ liệu vào công tác quản lý nguồn tài liệu văn bản trong đó giải thuật di truyền làmột hướng đi mới có nhiều ư
Trang 1của PGS.TS Bùi Thế Hồng Toàn bộ phần mềm do chính tôi lập trình và kiểm thử.
Tôi xin chịu trách nhiệm về lời cam đoan của mình
Các số liệu và thông tin sử dụng trong luận văn này hoàn toàn là trung thực
Tác giả
Trần Thị Thanh
Trang 2MỤC LỤC
Trang 3DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT Các từ viết tắt Nghĩa tiếng anh Nghĩa tiếng việt
KDD Knowledge Discovery and Data
Mining Kỹ thuật phát hiện tri thứcvà khai phá dữ liệu
SVM Support Vector Machine Bộ phân loại Vector hỗ trợ
SMO Sequential Minimal Optimization Tối ưu hóa tuần tự cực tiểu
WFST Weighted Finite State Transducer Mô hình WFST kết hợp
mạng Noron
Trang 4DANH MỤC CÁC BẢNG
Trang 5DANH MỤC CÁC HÌNH VẼ
Trang 6MỞ ĐẦU
Chúng ta đang sống trong một thế giới có nền khoa học phát triển rất hiện đại.Thế kỷ 21 là thế kỷ của công nghệ thông tin nói chung và của tin học nói riêng Đó
là một trong những thành tựu vĩ đại nhất mà con người đã đạt được trong thiên niên
kỷ này Tin học giữ vai trò đặc biệt quan trọng trong các hoạt động của toàn nhânloại Nhân loại ứng dụng tin học vào phục vụ cho nghiên cứu khoa học, cho côngnghệ sản xuất, phục vụ cho nghành quản lý kinh tế, sản xuất kinh doanh, du lịch, y
tế tạo điều kiện cho nền sản xuất xã hội ngày càng phát triển đồng thời giảm bớtđáng kể sức lao động của con người, đưa mức sống con người ngày càng cao
Kỹ thuật phát hiện tri thức và khai phá dữ liệu (KDD - Knowledge Discoveryand Data Mining) đã và đang được nghiên cứu, ứng dụng trong nhiều lĩnh vực khácnhau ở các nước trên thế giới
Tại Việt Nam, kỹ thuật này tương đối còn mới mẻ tuy nhiên cũng đang được nghiêncứu và dần đưa vào ứng dụng Bước quan trọng nhất của quá trình này là Khai phá
dữ liệu, giúp người sử dụng thu được những tri thức hữu ích từ những cơ sở dữ liệuhoặc các nguồn dữ liệu khổng lồ khác
Lý do của điều này là sự phát triển của công nghệ thông tin và việc ứng dụngcông nghệ thông tin trong nhiều lĩnh vực của đời sống, kinh tế xã hội trong nhiềunăm qua cũng đồng nghĩa với lượng dữ liệu đã được các cơ quan thu thập và lưu trữngày một nhiều Theo thống kê thì chỉ có một lượng nhỏ của những dữ liệu này(khoảng từ 5% đến 10%) được phân tích, trong khi số còn lại không được khai thác
và vẫn tiếp tục thu thập nên rất tốn kém với ý nghĩ lo sợ rằng sẽ có cái gì đó quantrọng đã bị bỏ qua sau này có lúc cần đến nó Mặt khác, trong môi trường cạnhtranh, người ta ngày càng cần có nhiều thông tin với tốc độ nhanh để trợ giúp việc
ra quyết định và ngày càng có nhiều câu hỏi mang tính chất định tính cần phải trảlời dựa trên một khối lượng dữ liệu khổng lồ đã có Với những lý do như vậy, cácphương pháp quản trị và khai thác cơ sở dữ liệu truyền thống ngày càng không đáp
Trang 7ứng được Yêu cầu thực tế đã làm phát triển một khuynh hướng kỹ thuật mới đó là
Kỹ thuật phát hiện tri thức và khai phá dữ liệu như đã nêu trên
Có nhiều phương pháp tiếp cận, giải thuật nhằm ứng dụng công nghệ khai phá
dữ liệu vào công tác quản lý nguồn tài liệu văn bản trong đó giải thuật di truyền làmột hướng đi mới có nhiều ưu điểm trong kỹ thuật tìm kiếm lời giải tối ưu đáp ứngyêu cầu của nhiều bài toán xử lý văn bản
Luận văn cấu trúc gồm 3 chương:
Chương 1:
Chương 1 chúng ta tìm hiểu tổng quan về khai phá dữ liệu, quá trình khaiphá dữ liệu, các hướng tiếp cận và các phương pháp khai phá dữ liệu Đặc điểm củacác bài toán khai phá dữ liệu và qui trình khám phá tri thức trong cơ sở dữ
Chương 2:
Chương 2 nghiên cứu giải thuật di truyền và ứng dụng vào phân loại tài liệudạng văn bản Trong chương này chúng ta tìm hiểu về các phép toán di truyền vàcác tham số của giải thuật di truyền Quá trình phân loại văn bản, bài toán phân loạivăn bản, các phương pháp biểu diễn văn bản và các thuật toán phân loại văn bản
Trang 8sót Em kính mong các thầy cô giáo và bạn đọc đóng góp ý kiến để đề tài được hoànthiện hơn
Trang 9CHƯƠNG 1: TÌM HIỂU VỀ KHAI PHÁ DỮ LIỆU
1.1 Giới thiệu chung
1.1.1 Giới thiệu
Trong những năm gần đây, sự phát triển mạnh mẽ của công nghệ thông tin vàngành công nghiệp phần cứng đã làm cho khả năng thu thập và lưu trữ thông tin củacác hệ thống thông tin tăng nhanh một cách chóng mặt Bên cạnh đó việc tin họchóa nhanh chóng các hoạt động sản xuất, kinh doanh cũng như nhiều lĩnh vực hoạtđộng khác đã tạo ra cho chúng ta một lượng dữ liệu lưu trữ khổng lồ
Hàng triệu CSDL đã được sử dụng trong các hoạt động sản xuất, kinh doanh,quản lý trong đó có nhiều CSDL cực lớn Sự bùng nổ này dẫn tới một yêu cầu cấpthiết là cần có những kỹ thuật và công cụ mới để tự động chuyển đổi lượng dữ liệukhổng lồ kia thành tri thức có ích Từ đó các kỹ thuật khai phá dữ liệu đã trở thànhmột lĩnh vực thời sự của nền công nghệ thông tin thế giới hiện nay
1.1.2 Khái niệm
Thuật ngữ khai phá dữ liệu ra đời vào những năm cuối của thập kỷ 1980 TheoGiáo sư Tom Mitchell “Khai phá dữ liệu là việc sử dụng dữ liệu lịch sử để khámphá những quy tắc và cải thiện những quyết định trong tương lai”
Với cách tiếp cận ứng dụng hơn, Tiến sỹ Fayyad đã phát biểu: “Khai phá dữ liệu,thường được xem là việc khám phá tri thức trong các cơ sở dữ liệu, là một quá trìnhtrích xuất những thông tin ẩn trước đây chưa biết và có khả năng hữu ích, dưới dạngcác quy luật, ràng buộc, quy tắc trong cơ sở dữ liệu” Tóm lại, khai phá dữ liệu làmột quá trình học tri thức mới từ những dữ liệu đã thu thập được Ngoài thuật ngữkhai phá dữ liệu còn có một số thuật ngữ khác được sử dụng với nghĩa tương đươngnhư: khai phá tri thức cơ sở dữ liệu (Knowlegde Mining from Databases), trích lọc
dữ liệu (Knowlegde Extraction), phân tích dữ liệu/ mẫu (Data/Pattern Analysis),khảo cổ dữ liệu (Data Archaeology), nạo vét dữ liệu (Data Dredging) Thực ra, Khaiphá dữ liệu là một bước chính trong quá trình Khám phá tri thức trong CSDL(Knowlegde Discovery in Databases - KDD)
Trang 101.1.3 Đặc điểm của bài toán khai phá dữ liệu
* Khai phá dữ liệu là giai đoạn chủ yếu của quá trình phát hiện tri thức.
Nếu phát hiện tri thức là toàn bộ quá trình xuất tri thức từ CSDL thì khai phá
dữ liệu là một giai đoạn chủ yếu của quá trình đó Thông thường, quá trình pháthiện tri thức từ dữ liệu phải trải qua rất nhiều giai đoạn Có thể kể một vài giai đoạnquan trọng là: tìm hiểu lĩnh vực ứng dụng và mục đích khai phá, xác định dữ liệuliên quan và nhiệm vụ khai phá, tiền xử lý dữ liệu, chọn thuật toán khai phá vàchuyển dữ liệu về dạng phù hợp, thực hiện khai phá và sau đó là tinh lọc và ứngdụng tri thức tìm được
Khai phá dữ liệu là để tìm ra các mẫu có ý nghĩa được tiến hành trên tập dữliệu mà ta hy vọng sẽ thích hợp với nhiệm vụ khai phá hiện thời Khai phá dữ liệukhông phải là tìm kiếm từ dữ liệu trong một thời gian đủ dài để cho ra những mẫukhông thực sự có ích như việc thống kê đã làm trước đây Khai phá dữ liệu thườngbao gồm việc thử tìm mô hình phù hợp với tập dữ liệu và tìm kiếm các mẫu từ tập
dữ liệu theo mô hình đó
* Mẫu tìm được từ quá trình khai phá dữ liệu phải có tính mô tả và dự đoán.
Mục đích chính của khai phá dữ liệu là chiết xuất tri thức từ dữ liệu Những trithức này được sử dụng cho lợi ích cạnh tranh trên thương trường và trong nghiêncứu khoa học Dự đoán ở đây có nghĩa là trên cơ sở những điều đã biết trong quákhứ để dự đoán trước những gì sẽ xảy ra trong tương lai Còn mô tả tập trung vào ýnghĩa hàm chứa trong mẫu tìm được và điều này là có nghĩa trong lĩnh vực ứngdụng Các mẫu cuối cùng tìm được do khai phá dữ liệu sẽ có một trong hai hoặc cảhai tính chất này
* Khai phá dữ liệu là quá trình trong đó con người làm trung tâm.
Mặc dù khai phá dữ liệu sử dụng nhiều phương pháp khác nhau và với sự hỗtrợ của công cụ tin học nhưng trong bất cứ giai đoạn nào của quá trình khai phá, conngười vẫn luôn đóng vai trò quan trọng Hệ thống không thể làm việc một cáchhoàn toàn tự động mà không có sự trợ giúp của con người
Trang 11Thật vậy, để quá trình khai phá cho ra kết quả tốt, cần phải có sự phối hợp trợgiúp thường xuyên của các chuyên gia cả về lĩnh vực tin học lẫn lĩnh vực ứng dụng.
Sở dĩ có yêu cầu này là vì dữ liệu đầu vào và yêu cầu của bài toán khai phá thay đổi
vô chừng Các chuyên gia về lĩnh vực ứng dụng sẽ giúp các chuyên gia về tin họchiểu được điều họ mong muốn là gì Sau đó, trách nhiệm của các chuyên gia tin học
là biên dịch lại những yêu cầu đó để hệ thống khai phá hiểu và tìm ra được điều mà
họ mong muốn
Các thông tin đầu vào cho hệ thống khai phá là rất quan trọng Thông tin cóđầy đủ, chính xác, đúng đắn và phù hợp với yêu cầu thì kết quả khai phá mới có thểgiúp ích cho người dùng được Các thông tin này chỉ có thể được cung cấp bởi cácchuyên gia về lĩnh vực ứng dụng Đó có thể là tập dữ liệu còn cần thiết, các tiêuchuẩn dùng trong quá trình tìm kiếm tri thức, cả những kinh nghiệm được biểu diễnbằng một ngôn ngữ nào đó mà hệ thống có thể hiểu được Có thể khẳng định mộtđiều rằng, nếu quá trình khai phá tri thức không có sự phối hợp tích cực của cácchuyên gia tin học và các chuyên gia về lĩnh vực ứng dụng thì sẽ không đạt đượckết quả gì cả
* Khai phá dữ liệu là quá trình tìm kiếm tri thức chỉ từ dữ liệu.
Lý luận và thực tiễn thực hiện các quá trình phát hiện tri thức mà ta xét ở đây
là sự tiếp thu, sử dụng và phát triển nhiều thành tựu và công cụ của các lĩnh vực đãphát triển trước đó như: lý thuyết nhận dạng, hệ chuyên gia, trí tuệ nhân tạo… Dùvậy, đặc điểm cơ bản giúp phân biệt việc phát hiện tri thức với các ngành đã có từtrước là phát hiện tri thức là quá trình tìm kiếm tri thức trực tiếp từ dữ liệu Ví dụ:một hệ chuyên gia thì cơ sở tri thức được hình thành từ kinh nghiệm và kiến thứccủa các chuyên gia là chủ yếu Trong khi bài toán nhận dạng dùng tập mẫu chotrước…
* Khai phá dữ liệu mang tính chất hướng nhiệm vụ.
Khai phá phải nhằm vào việc giải quyết tốt một số nhiệm vụ đề ra nào đó Trithức mà ta đề cập đến trong bài toán khai phá dữ liệu là tri thức rút ra từ CSDL,thường để phục vụ cho việc giải quyết một loạt các nhiệm vụ nhất định trong một
Trang 12lĩnh vực nhất định Không thể có các yêu cầu cho một hệ thống phát hiện tri thức –trong đó khai phá dữ liệu là giai đoạn chủ yếu – là tìm mọi tri thức có thể có về lĩnhvực đó Ngoài ra, mỗi lĩnh vực đều có đặc thù riêng về dữ liệu và những yêu cầucủa lĩnh vực đó, sẽ không thể có một hệ thống phát hiện tri thức dùng cho mọi lĩnhvực.
1.2 Quá trình khám phá tri thức trong cơ sở dữ liệu
Muốn thực hiện khai phá dữ liệu, đầu tiên phải tìm hiểu nghiệp vụ ứng dụng
và xác định mục tiêu khai phá Điều này xuất phát từ nhu cầu thực tế của nhữngngười làm trong lĩnh vực cần khai thác dữ liệu Đó có thể là các tri thức chiết xuấtđược sử dụng cho lợi ích cạnh tranh trên thương trường hoặc các lợi ích trongnghiên cứu khoa học Đây là một bước rất quan trọng giúp định hướng cho toàn bộquá trình khai phá Có hiểu rõ vấn đề và xác định đúng đắn mục tiêu thì các bướcsau mới được thực hiện tốt và bài toán khai phá dữ liệu mới có thể cho kết quả tốtđược Ngoài ra, việc hiểu rõ tri thức đã có của người dùng cũng rất quan trọng vìqua đó sẽ hiểu rõ lĩnh vực ứng dụng hơn Và những tri thức này thực sự giúp íchđược rất nhiều trong khi thực hiện khai phá lẫn khi thực hiện hậu xử lý kết quả đạtđược của quá trình khai phá luật nhằm lọc ra các luật thật sự giúp ích được chongười dùng
Sau khi tìm hiểu các lĩnh vực ứng dụng và xác định mục đích khai phá dữ liệumột cách đúng đắn, sẽ bước vào quá trình khám phá tri thức trong cơ sở dữ liệu nhưhình 1.1
Trang 131.2.2 Trích lọc dữ liệu
Tập hợp dữ liệu từ nhiều nguồn khác nhau vào trong một cơ sở dữ liệu
+ Chỉ chọn những dữ liệu cần thiết cho tiến trình khai phá dữ liệu
Trang 14+ Loại bỏ dữ liệu dư thừa và trùng lặp.
+ Phát hiện và giải quyết các mâu thuẫn trong dữ liệu
* Dữ liệu dư thừa, trùng lặp:
+ Một thuộc tính là thừa nếu nó có thể suy ra từ các thuộc tính khác.+ Cùng một một thuộc tính có thể có nhiều tên trong các cơ sở dữ liệukhác nhau (ví dụ: năm sinh, tuổi)
+ Một số mẫu tin dữ liệu bị lặp lại
Cần tìm cách loại bỏ những dữ liệu dư thừa để tăng độ chính xác
1.2.3 Làm sạch, tiền xử lý và chuẩn bị trước dữ liệu
Làm sạch dữ liệu là vấn đề quan trọng nhất của nhà kho dữ liệu
Các nhiệm vụ của công đoạn làm sạch dữ liệu:
+ Điền các giá trị còn thiếu
+ Xác định các sai biệt và khử dữ liệu tạp nhiễu
+ Sửa chữa các dữ liệu mâu thuẫn
- Bỏ qua các mẫu tin có giá trị thiếu: dễ nhưng không hiệu quả, đặc biệt khi
tỷ lệ giá trị thiếu của thuộc tính cao
- Điền các giá trị thiếu bằng tay: không khả thi
- Điền các giá trị thiếu tự động:
+ Thay thế bằng hằng số chung ví dụ: “không biết” có thể thành lớpmới trong dữ liệu
+ Thay thế bằng giá trị trung bình của thuộc tính
Bởi vậy, đây là một quá trình rất quan trọng vì dữ liệu này nếu không được
“làm sạch - tiền xử lý - chuẩn bị trước” thì sẽ gây nên những kết quả sai lệchnghiêm trọng
Trang 15Các giải thuật tiền xử lý bao gồm:
a Xử lý dữ liệu bị thiếu/mất: Các dữ liệu bị thiếu sẽ được thay thế bởi các giátrị thích hợp
b Khử sự trùng lặp: Các đối tượng dữ liệu trùng lặp sẽ bị loại bỏ đi Kỹ thuậtnày không được sử dụng cho các tác vụ có quan tâm đến phân bố dữ liệu
c Giảm nhiễu: Nhiễu và các đối tượng tách rời khỏi phân bố chung sẽ bị loại
đi khỏi dữ liệu
d Chuẩn hóa: miền giá trị của dữ liệu sẽ được chuẩn hoá
e Rời rạc hóa: các dữ liệu số sẽ được biến đổi ra các giá trị rời rạc
f Rút trích và xây dựng đặc trưng mới từ các thuộc tính đã có
g Giảm chiều: các thuộc tính chứa ít thông tin sẽ được loại bớt
h Kiểm tra tính toàn vẹn của dữ liệu
1.2.4 Chuyển đổi dữ liệu
Tiếp theo là giai đoạn chuyển đổi dữ liệu, dữ liệu đưa ra có thể sử dụng vàđiều khiển được bởi việc tổ chức lại nó tức là dữ liệu sẽ được chuyển đổi về dạngphù hợp cho việc khai phá bằng cách thực hiện các thao tác nhóm hoặc tập hợp.Thông thường người ta đưa dữ liệu về dạng chuẩn, đó là dạng nhị phân Việcchuyển dữ liệu về dạng nhị phân không làm thay đổi thông tin của dữ liệu đầu vào.Đây có thể xem như là một cách thể hiện khác của dữ liệu ban đầu
Thực tế, có hai cách để thể hiện lại dữ liệu (dạng nhị phân và dạng số) trướckhi dùng như là đầu vào của thuật toán Cách chuyển dữ liệu về dạng nhị phân nóitrên sẽ làm tăng số chiều dữ liệu nhưng bù lại thuật toán dùng để khai phá trở nênđơn giản hơn Cách còn lại không chuyển dữ liệu về dạng nhị phân mà chuyển vềdạng số, không làm thay đổi số chiều của dữ liệu nhưng thuật toán khai phá phải xử
lý dữ liệu phức tạp hơn
1.2.5 Khai phá dữ liệu - Phát hiện và trích mẫu dữ liệu
Đây là bước quan trọng nhất của quá trình khám phá tri thức Ở giai đoạn nàynhiều thuật toán khác nhau đã được sử dụng để trích ra các mẫu từ dữ liệu Thuật
Trang 16toán thường dùng là nguyên tắc phân loại, nguyên tắc kết hợp hoặc các mô hình dữliệu tuần tự,.v.v.
1.2.6 Đánh giá kết quả mẫu
Ở giai đoạn này, các mẫu dữ liệu được chiết xuất ra bởi phần mềm khai phá
dữ liệu Không phải bất cứ mẫu dữ liệu nào cũng đều hữu ích, đôi khi nó còn bị sailệch.Vì vậy, cần phải ưu tiên những tiêu chuẩn đánh giá để chiết xuất ra các tri thứccần chiết xuất Đánh giá sự hữu ích của các mẫu biểu diễn tri thức dựa trên một sốphép đo Sau đó sử dụng các kỹ thuật trình diễn và trực quan hoá dữ liệu để biểudiễn tri thức khai phá được cho người sử dụng
Trên đây là 6 giai đoạn trong quá trình khám phá tri thức, trong đó giai đoạn 5
là giai đoạn được quan tâm nhiều nhất hay còn gọi đó là Data Mining
Mối quan hệ chặt chẽ giữa các giai đoạn trong quá trình khám phá tri thứctrong CSDL là rất quan trọng cho việc nghiên cứu trong khai phá dữ liệu Bởi vìmột giải thuật trong khai phá dữ liệu không thể được phát triển độc lập, không quantâm đến bối cảnh áp dụng mà thường được xây dựng để giải quyết một mục tiêu cụthể Do đó, sự hiểu biết bối cảnh vận dụng là rất cần thiết Thêm vào đó, các kỹthuật được sử dụng trong các giai đoạn trước có thể ảnh hưởng đến hiệu quả của cácgiải thuật sử dụng trong các giai đoạn tiếp theo
1.3 Khái quát các kỹ thuật khai phá dữ liệu
Kỹ thuật khai phá dữ liệu có thể được chia làm 2 nhóm chính kỹ thuật khaiphá dữ liệu dự đoán và kỹ thuật khai phá dữ liệu mô tả
1.3.1 Kỹ thuật khai phá dữ liệu dự đoán
Kỹ thuật này có nhiệm vụ đưa ra các dự đoán dựa vào các suy diễn trên dữliệu hiện thời Nó sử dụng các biến hay các trường trong cơ sở dữ liệu để dự báo cácgiá trị không biết hay các giá trị tương lai Các kỹ thuật này gồm có: phân lớp, hồiquy…
1.3.1.1 Phân lớp dữ liệu
Phân lớp dữ liệu là kĩ thuật dựa trên tập dữ liệu huấn luyện cho trước và sựhuấn luyện của con người, các giải thuật phân lớp sẽ học ra bộ phân lớp dùng để
Trang 17phân dữ liệu mới vào một trong những lớp đã được xác định trước Phân lớp cũng làtiên đoán loại lớp của nhãn Bên cạnh kĩ thuật phân lớp có một hình thức tương tự
là kĩ thuật tiên đoán, kĩ thuật tiên đoán khác với phân lớp ở chỗ phân lớp chỉ liênquan đến tiên đoán loại lớp của nhãn còn kĩ thuật tiên đoán mô hình những hàmđánh giá liên tục
Quá trình phân lớp dữ liệu thường gồm 2 bước: Xây dựng mô hình và sử dụng
mô hình để phân lớp dữ liệu
* Bước 1: Xây dựng mô hình
Một mô hình sẽ được xây dựng dựa trên việc phân tích các mẫu dữ liệu sẵn có.Mỗi mẫu tương ứng với một lớp, được quyết định bởi một thuộc tính gọi là thuộctính lớp Các mẫu dữ liệu này còn được gọi là tập dữ liệu huấn luyện Mô hình đượcbiểu diễn là những luật phân lớp, cây quyết định và những công thức toán học Cácnhãn lớp của tập dữ liệu huấn luyện đều phải được xác định trước khi xây dựng môhình, vì vậy phương pháp này còn được gọi là học có thầy khác với phân cụm dữliệu là học không có thầy
* Bước 2: Sử dụng mô hình để phân lớp dữ liệu
Trước hết chúng ta phải tính độ chính xác của mô hình, trong đó nhãn được
Income Debt
biết của mẫu kiểm tra được so sánh với kếtquả phân lớp của mô hình, độ chính xác là phần trăm của tập mẫu kiểm tra mà phânloại đúng bởi mô hình, tập kiểm tra là độc lập với huấn luyện Nếu độ chính xác làchấp nhận được, mô hình sẽ được sử dụng để dự đoán nhãn lớp cho các mẫu dữ liệukhác trong tương lai
Hình 1.2: Các đường biên phân loại đối với một láng giềng gần nhất
Trang 18Hình 1.3: Đường biên phân loại học bởi phân loại không tuyến tính
1.3.1.2 Hồi quy
Phương pháp hồi qui khác với phân lớp dữ liệu ở chỗ, hồi qui dùng để dự đoán
về các giá trị liên tục còn phân lớp dữ liệu thì chỉ dùng để dự đoán về các giá trị rờirạc
Hồi quy là học một hàm ánh xạ một mục dữ liệu vào một biến dự báo giá trịthực Các ứng dụng hồi quy có nhiều, ví dụ như đánh giá xác xuất một bệnh nhân sẽchết mang lại các kết quả của một tập các xét nghiệm chẩn đoán, dự báo nhu cầucủa người tiêu dùng đối với một sản phẩn mới như một hoạt động quảng cáo tiêudùng Hình 1.4 cho thấy kết quả của hồi quy tuyến tính tại đó "total debt - tổng nợ"phù hợp như một hàm tuyến tính của "income - thu nhập": sự phù hợp là nghèo nànnày do vậy chỉ có một mối tương quan yếu giữa hai biến
Hình 1.4: Một hồi quy tuyến tính đơn giản với tập dữ liệu vay nợ
Trang 191.3.2 Kỹ thuật khai phá dữ liệu mô tả
Kỹ thuật này có nhiệm vụ mô tả về các tính chất hoặc các đặc tính chung của
dữ liệu trong CSDL hiện có Kỹ thuật này bao gồm: Phân cụm (clustering), tóm tắt(summerization), trực quan hóa (visualiztion), phân tích sự phát triển và độ lệch(Evolution and deviation analyst), phân tích luật kết hợp (association rules)…
1.3.2.1 Phân cụm dữ liệu
Các kỹ thuật phân cụm dữ liệu sẽ nhóm các đối tượng dữ liệu có tính chấtgiống nhau vào cùng một nhóm.Các đối tượng được gom cụm sao cho mức độtương tự giữa các đối tượng trong cùng một cụm là cực đại và mức độ tương tự giữacác đối tượng nằm trong các cụm khác nhau là cực tiểu Các cụm được đặc trưngbằng các tính chất chung của tất cả các đối tượng trong cụm
Phân cụm dữ liệu là một ví dụ của phương pháp học không có thầy Khônggiống như phân lớp dữ liệu, phân cụm dữ liệu không đòi hỏi phải định nghĩa trướccác mẫu dữ liệu huấn luyện Vì thế có thể coi phân cụm dữ liệu là một cách họcbằng quan sát, trong khi phân lớp dữ liệu là học bằng ví dụ Trong phương pháp nàybạn sẽ không biết kết quả của các cụm thu được sẽ như thế nào khi bắt đầu quátrình Vì vậy, thông thường cần có một chuyên gia về lĩnh vực đó để đánh giá cáccụm thu được Phân cụm dữ liệu được sử dụng nhiều trong các ứng dụng về phânloại thị trường, phân đoạn khách hàng, nhận dạng mẫu, phân loại trang Web…Khảo sát các cụm sẽ giúp khái quát, tổng kết nhanh chóng nội dung của khối dữ liệulớn, do đó phân cụm dữ liệu còn có thể được sử dụng như một bước tiền xử lý chocác thuật toán khai phá dữ liệu khác
Trang 20Hình 1.5: Một phép phân cụm đơn giản của tập dữ liệu vào 3 cụm
1.3.2.2 Tóm tắt
Liên quan đến các phương pháp tìm kiếm một mô tả tóm tắt cho một tập con
dữ liệu Ví dụ như việc lập bảng các độ lệch chuẩn và trung bình cho tất cả cáctrường Các phương pháp phức tạp hơn liên quan đến nguồn gốc của các luật tómtắt, khai thác mối liên hệ hàm giữa các biến Các kỹ thuật tóm tắt thường được ápdụng cho các phân tích dữ liệu tương tác có tính thăm dò và tạo báo cáo tự động
1.3.3 So sánh các tiếp cận khai phá dữ liệu: phân cụm - phân lớp
Hai kỹ thuật khai phá dữ liệu phổ biến để tìm ra các mẫu ẩn trong dữ liệu đó làphân cụm và phân lớp Mặc dù phân lớp và phân cụm thường được đề cập trongcùng một breath, chúng vẫn là các tiếp cận phân tích khác nhau Ở đây ta đề cập tớicác khía cạnh giống và khác nhau giữa chúng
Tưởng tượng một cơ sở dữ liệu bao gồm các bản ghi về hoạt động mượn sáchtại thư viện Nó bao gồm các thuộc tính như: MaSach, SoThe, NgayMuon,NgayTra
Phân cụm tự động xử lý cụm các bản ghi có liên quan với nhau Các bản ghi
có liên quan được nhóm lại với nhau trên cơ sở có các giá trị tương đồng tại một sốthuộc tính Đây là cách tiếp cận phân đoạn cơ sở dữ liệu theo phương pháp phâncụm thường được dùng như là một kỹ thuật khai thác bởi nó không cần người dùngđầu cuối mà nhà phân tích cho biết trước là có bao nhiêu bản ghi có liên quan tớinhau Trong thực tế, mục tiêu của phép phân tích thường để phát hiện ra các đoạnhay các cụm và sau đó kiểm tra các thuộc tính và các giá trị mà định nghĩa các cụmhay các đoạn Như vậy là cụm các tài liệu thường được học viên mượn và mượn kếthợp sẽ trở nên rõ ràng hơn Điều này sẽ được dùng để điều chỉnh việc bố trí, sắpxếp tài liệu cho hợp lý Hay trong việc phân cụm các khách hàng có thể được dùng
để điều chỉnh chiến lược marketing và quảng cáo tới từng cụm khách hàng cụ thể
Có rất nhiều giải thuật khác nhau được dùng để phân cụm nhưng tất cả chúngđều tham gia, chia sẻ, đặc tính lặp ấn định các bản ghi tới một cụm, tính toán một
độ đo (thường là tương đồng hoặc sự khác biệt), các bản ghi ấn định lại vào các
Trang 21cụm cho tới khi các độ đo được tính toán không thay đổi nhiều, chỉ ra rằng xử lý đãhội tụ tới các đoạn ổn định Các bản ghi trong phạm vi một cụm có sự tương đồngvới nhau hơn và khác biệt nhiều so với các bản ghi ở các cụm khác Tuỳ thuộc vàothực thi đặc thù, độ đo sự tương đồng có nhiều dạng (như dựa trên khoảng cáchkhông gian, dựa trên độ biến thiên thống kê) nhưng toàn bộ chúng đều có chungmục đích là nhóm lại các bản ghi có liên quan.
1.3.4 Ứng dụng phân cụm
Trong xử lý ảnh (phân đoạn ảnh, rút gọn độ phân giải của ảnh)
Phân cụm các tài liệu liên quan để dễ tìm kiếm
Khoa học kinh tế (đặc biệt nghiên cứu tiếp thị)
Phân cụm các gene và protein có cùng chức năng
Phân cụm các vùng theo lượng mưa
1.3.5 Ví dụ
Hình 1.6: Phân cụm các điểm trong không gian
Trang 22
Hình 1.7: Phân cụm các ngôi nhà dựa vào khoảng cách địa lý
Kỹ thuật phân lớp khác với phân cụm Phân lớp giống phân cụm ở chỗ cũngphân đoạn các bản ghi khách hàng vào trong các đoạn riêng biệt gọi là các lớp.Nhưng không giống như phân cụm, phân lớp đòi hỏi người dùng cuối/nhà phân tíchbiết trước là có bao nhiêu lớp được định nghĩa Ví dụ các lớp được định nghĩa đểbiết được là có nên cho học viên mượn sách tiếp không, dựa trên trườngNgayMuon, NgayTra, nếu đã trả sách cũ thì mới được mượn sách mới Từng bảnghi trong tập dữ liệu cần được dùng để xây dựng người phân lớp đã có một giá trịđối với thuộc tính được dùng để định nghĩa các lớp Bởi mỗi bản ghi có một giá trịđối với thuộc tính được dùng để định nghĩa các lớp và bởi người dùng cuối quyếtđịnh trên thuộc tính được dùng, phân lớp khai thác ít hơn phân cụm
Đối tượng của một người phân lớp là không khai thác dữ liệu vào các đoạnđược tìm ra, nhưng phần nào quyết định được có bao nhiêu bản ghi mới cần phânlớp
Phân lớp thông thường trong khai phá dữ liệu cũng dùng rất nhiều các giảithuật và giải thuật đặc thù đã dùng có thể tác động tới cách các bản ghi mới đượcphân lớp Một tiếp cận phổ biến đối với các bộ phân loại là sử dụng các cây quyếtđịnh để phân chia và phân đoạn các bản ghi Các bản ghi mới có thể được phân lớpbằng cách đi theo cây từ gốc, qua các nhánh và các nút, tới một lá đại diện cho mộtlớp Đường đi mà một bản ghi có được qua một cây quyết định có thể được biểu thịnhư là một luật Nhưng bởi theo trật tự tự nhiên của cách một cây quyết định chiacác bản ghi (tức là thuộc tính phân tách tốt nhất - các giá trị xuất hiện sớm trong
Trang 23cây) có thể cho kết quả trong một cây quyết định là quá nhạy cảm cho các phân chiaban đầu Bởi vậy, khi đánh giá tính chất thích hợp của một cây, điều quan trọng làphải kiểm tra tỷ lệ lỗi đối với từng nút lá (tỷ lệ các bản ghi phân lớp không đúng).Một đặc tính thú vị của các bộ phân loại cây quyết định đó là bởi đường đi có thểđược biểu diễn như các luật, khi đó nó có thể sử dụng các phép đo để đánh giá khảnăng của các luật như Support, Confidence và Lift cũng để đánh giá tính hữu ích,năng lực, usefulness của cây.
Cuối cùng, mặc dù phân cụm và phân lớp thường được dùng vì mục đích phânđoạn các bản ghi dữ liệu, chúng có các mục tiêu khác nhau và có được các kết quảphân đoạn theo nhiều cách khác nhau
1.4 Ý nghĩa thực tiễn và tình hình ứng dụng
1.4.1 Ý nghĩa thực tiễn
Hiện nay các hoạt động sản xuất, kinh doanh, quản lý… đều ứng dụng côngnghệ thông tin, các thiết bị lưu trữ ngày càng tăng dung lượng nên hàng triệu CSDLđược tạo ra, và hàng ngày khối lượng dữ liệu lại tăng lên không ngừng, yêu cầutrong việc khai thác dữ liệu ngày càng cao hơn Ngoài đòi hỏi về năng suất, tínhlinh hoạt, sự chuyên môn hóa trong vấn đề khai thác, CSDL cần phải mang lại trithức hơn là chính dữ liệu đó Trước những yêu cầu này cách khai thác CSDL truyềnthống cho thấy sự hạn chế của mình Phương pháp học máy chủ yếu được áp dụngtrong các CSDL đầy đủ, ít biến động và tập dữ liệu không quá lớn, trong khi đókhối lượng dữ liệu tăng lên không ngừng
Phương pháp thống kê tuy là một trong những nền tảng của khai phá dữ liệu,nhưng phương pháp thống kê còn tồn tại một số điểm yếu: các phương pháp thống
kê hoạt động hoàn toàn theo dữ liệu, nó không sử dụng tri thức sẵn có về lĩnh vực,kết quả có thể rất nhiều và khó có thể làm rõ được…
Khai phá dữ liệu ra đời đã khắc phục được những khó khăn này
Trang 241.4.2 Tình hình ứng dụng
Với những ưu điểm của mình, khai phá dữ liệu đang được áp dụng một cáchrộng rãi trong nhiều lĩnh vực kinh doanh và đời sống khác nhau như: marketing, tàichính, ngân hàng, bảo hiểm, khoa học, y tế, an ninh, viễn thông…
Rất nhiều tổ chức và công ty lớn trên thế giới đã áp dụng kỹ thuật khai phá dữliệu vào các hoạt động sản xuất kinh doanh của mình và thu lợi ích to lớn như:British Telecom đã phát hiện ra những nhóm người thường xuyên gọi cho nhaubằng mobile và thu lại được hàng triệu USD; IBM Surf-Aid áp dụng khai phá dữliệu phân tích các lần đăng nhập Web vào các trang có liên quan đến thị trường đểphát hiện sở thích khách hàng, phục vụ việc đánh giá tiếp thị qua Web…
Một số ứng dụng khai phá dữ liệu đã có hiệu quả cao:
- Khai phá dữ liệu được vận dụng hiệu quả để giải quyết các bài toán phức tạptrong các ngành đòi hỏi kỹ thuật cao như tìm kiếm dầu mỏ từ ảnh viễn thám, xácđịnh các vùng gãy trong ảnh địa chất để dự đoán thiên tai, cảnh báo hỏng hóc trong
Trang 25CHƯƠNG 2: TÌM HIỂU VỀ THUẬT GIẢI DI TRUYỀN
2.1 Tổng quan về giải thuật di truyền
2.1.1 Giới thiệu
Trong ngành khoa học máy tính, tìm kiếm lời giải tối ưu cho các bài toán làvấn đề được các nhà khoa học máy tính đặc biệt rất quan tâm Mục đích chính củacác thuật toán tìm kiếm lời giải là tìm ra lời giải tối ưu nhất cho bài toán trong thờigian nhỏ nhất Các thuật toán như tìm kiếm không có thông tin/vét cạn (tìm kiếmtrên danh sách, trên cây hoặc đồ thị) sử dụng phương pháp đơn giản nhất và trựcquan nhất hoặc các thuật toán tìm kiếm có thông tin sử dụng Heurictics để áp dụngcác tri thức về cấu trúc của thông gian tìm kiếm nhằm giảm thời gian cần thiết choviệc tìm kiếm được sử dụng nhiều nhưng chỉ với không gian tìm kiếm nhỏ và khônghiệu quả khi tìm kiếm trong không gian tìm kiếm lớn
Trong thực tiễn có rất nhiều bài toán tối ưu với không gian tìm kiếm rất lớncần phải giải quyết Vì vậy, việc đòi hỏi thuật giải chất lượng cao và sử dụng kỹthuật trí tuệ nhân tạo đặc biệt rất cần thiết khi giải quyết các bài toán có không giantìm kiếm lớn Giải thuật di truyền là một trong những kỹ thuật tìm kiếm lời giải tối
ưu đã đáp ứng được yêu cầu của nhiều bài toán và ứng dụng
Từ những năm 1962, tại Mỹ, J.H.Holland đã đưa ra các khái niệm đầu tiên củagiải thuật di truyền Tại Đức, vấn đề được nghiên cứu dưới tên gọi giải thuật tiếnhóa bởi các nhà nghiên cứu Rechenberg và Schwefel Tuy có tên gọi và được tiếpcận với cách khác nhau nhưng các nghiên cứu trên đều bắt nguồn từ các nguyên tắctiến hóa của tự nhiên
Sau đây là mô hình giải quyết bài toán dựa trên các giải thuật di truyền
Trang 26
Hình 2.1: Giải quyết vấn đề bằng giải thuật di truyền.
2.1.2 Các tính chất quan trọng của giải thuật di truyền
Giải thuật di truyền lập luận mang tính chất ngẫu nhiên để tìm giải pháp tối ưucho những vấn đề phức tạp, thay vì xác định như toán học giải tích Tuy nhiên đây
là hình thức ngẫu nhiên có hướng dẫn bởi trị số thích nghi Chính hàm số thích nghigiúp giải thuật di truyền tìm giải pháp tối ưu trong rất nhiều giải pháp có thể có.Giải thuật di truyền không chú ý đến chi tiết vấn đề, trái lại chỉ chú ý đến giảipháp cho vấn đề, hay tìm điều kiện tối ưu cho việc điều hành, và phân nhóm nhữnggiải pháp có được
Giải thuật di truyền được sử dụng đặc biệt cho những bài toán yêu cầu tìmkiếm tối ưu toàn cục với không gian tìm kiếm lớn và không thể kiểm soát nhờ khảnăng duyệt qua không gian tìm kiếm đại diện mà không thực sự đi qua từng điểmcủa toàn bộ không gian
Ưu điểm của giải thuật di truyền là tính song song Giải thuật di truyền duyệttrong không gian tìm kiếm với nhiều đơn thể, vì thế hiếm khi chúng bị tắc nghẽn ởcực trị cục bộ như những phương pháp khác Chúng còn dễ cài đặt, một khi bạn có
Trang 27một giải thuật di truyền nào đó, bạn chỉ cần viết nhiễm sắc thể mới để giải bài toánkhác Với cùng cách mã hoá, chỉ việc thay đổi hàm thích nghi ta cũng có thể giảibài toán Tuy nhiên, việc chọn cách mã hoá và hàm thích nghi có thể khó khăn.Nhược điểm của giải thuật di truyền là thời gian tính toán Chúng có thể chậmhơn các phương pháp khác Nhưng với máy tính ngày nay thì đây không phải là vấn
đề quá lớn
2.1.3 Cơ sở sinh học của giải thuật di truyền
Giải thuật di truyền được xây dựng từ lý thuyết tiến hoá của Darwin, nguyên
lý cơ bản của những giải thuật này là duy trì một quần thể các gen có cấu trúc xácđịnh làm đại diện cho các phương pháp giải quyết một vấn đề Quần thể này đượcphát triển trên cơ sở cạnh tranh lẫn nhau trong điều kiện biến động có kiểm soát,bao gồm sự tái tổ hợp hay còn gọi là lai giống, và đột biến gen của các cá thể trongquần thể Quá trình này tạo ra sự tiến hóa của các quần thể với một tính chất quantrọng là: thế hệ sau luôn thích nghi với môi trường tốt hơn so với thế hệ trước.Những cá thể có độ thích nghi cao hơn sẽ được lựa chọn cho thế hệ sau Khi giảithuật kết thúc, người ta đã chứng minh được rằng những cá thể ưu tú nhất, có mức
độ thích nghi cao nhất với yêu cầu của bài toán sẽ được chọn Các hoạt động laighép và đột biến gen sẽ góp phần tạo ra những bộ gen mới, làm thay đổi bộ mặt củaquần thể Tuy xảy ra với tần số thấp, nhưng với số lượng cá thể lớn và kéo dài quanhiều thế hệ, những hoạt động này bảo đảm sẽ không bỏ sót những giải pháp tối ưukhông được tạo ra ngay ban đầu
2.1.4 Sơ đồ thực hiện giải thuật di truyền
Giải thuật di truyền đơn quần thể:
Giả sử chúng ta đã có phương pháp mã hóa di truyền cho bài toán và xây dựnghàm lượng giá độ thích nghi cho các cá thể Giải thuật di truyền bao gồm các bướcsau:
Bước 1: Khởi tạo quần thể ban đầu.
Bước 2: Lượng giá hàm mục tiêu hay tính độ thích nghi cho từng nhiễm sắc
thể trong quần thể
Trang 28Điều kiện tối ưu
Bước 3: Kiểm tra điều kiện tối ưu Nếu điều kiện tối ưu được thỏa mãn thì
chuyển sang bước 5 Nếu không chuyển sang bước 4
Bước 4: Thực hiện tạo quần thể mới bằng cách thực hiện các cơ chế di truyền
như chọn lọc, lai ghép, đột biến Các cá thể mới sinh ra được thay thế cho các cặpcha mẹ trong quần thể cũ
Bước 5: Khi điều kiện tối ưu được thoả mãn, giải thuật dừng và trả lại cá thể
tốt nhất
Hình 2.2: Sơ đồ giải thuật di truyền.
Mô phỏng giải thuật di truyền:
Trang 29Cấu trúc của một giải
mới (tức ở lần lặp thứ t + 1) được hình thành bằng cách chọn và giữ lại những cáthể thích nghi nhất Một số cá thể của quần thể này trải qua những biến đổi nhờ laighép và đột biến hình thành nên những lời giải mới
Một quá trình đơn quần thể như trình bày trên là khá mạnh và có thể được ápdụng tốt cho một lớp lớn các bài toán Tuy nhiên chúng ta có thể thu được kết quảtốt hơn nếu như sử dụng không chỉ một mà là nhiều quần thể, hay còn gọi là cácquần thể con Mỗi quần thể con sẽ tạo ra một vài thế hệ cô lập trước khi có sự traođổi một hay nhiều cá thể giữa các quần thể với nhau Lúc này, giải thuật di truyềnđược gọi là đa quần thể và việc mô phỏng sẽ gần gũi với tự nhiên hơn giải thuật đơnquần thể
2.1.5 Ứng dụng
Giải thuật di truyền mặc dù mới được phát triển trong thời gian gần đây nhưng
đã thu được những thành công lớn ở nhiều ngành khác nhau, cả trên lý thuyết vàthực tiễn, trong các lĩnh vực như khoa học, kinh doanh và giải trí Đặc biệt người ta
có thể kết hợp giải thuật di truyền với những giải thuật khác để tạo thành một cơchế điều khiển tự động nhiều tầng, cho phép giải những bài toán tối ưu phức tạpmột cách nhanh chóng với độ chính xác có thể chấp nhận được
Begin
t = 0; // biến lưu trữ giá trị quần thể thứ t Khởi tạo quần thể ban đầu P(t);
Tính độ thích nghi cho các cá thể thuộc P(t);
Lặp (Khi chưa thỏa điều khiển dừng)
t = t + 1;
Tái sinh P ’ (t) từ P(t); // Replication Lai ghép Q(t) từ P(t-1); // Crossover Đột biến R(t) từ R(t-1); // Mutation Chọn lọc P(t) từ P; // Selection Kết thúc lặp
End.
Trang 30Một số lĩnh vực giải thuật di truyền đã được ứng dụng thành công:
- Phân tích dữ liệu và mô hình dự báo
- Thiết kế mạng nơron
- Quy hoạch chiến lược
- Quỹ đạo cho người máy
- Lập trình di truyền
- Tìm dạng của các phân tử protein
- Bài toán người du lịch (Travelling Salesman Problems) và lập thời gian biểu
- Giải những bài toán khó
2.2 Các khái niệm chung về giải thuật di truyền
2.2.1 Chuỗi nhiễm sắc thể
Giải thuật di truyền là giải thuật tìm kiếm dựa trên sự mô phỏng di truyền học
tự nhiên thông qua các cơ chế chọn lọc tự nhiên và sự tiến hóa của các gen Các genliên kết với nhau tạo thành chuỗi nhiễm sắc thể
Một chuỗi nhiễm sắc thể S là một xâu có độ dài cố định thành lập trên bảng
mã di truyền A như sau:
S = (d0, d1, …dn)
A d A
S∈ n, i∈
Trên tập hợp các chuỗi nhiễm sắc thể ta định nghĩa các hàm
* Hàm len trả lại độ dài của chuỗi
S = (d0, d1, …dn) => S
n
* Hàm ⊕ thực hiện ghép hai chuỗi
A = (a1, a2, … an)
B = (b1, b2, … bm)
A⊕B=
(a1, a2, … an, b1, b2, … bm)
Nói chung, trong giải thuật di truyền các chuỗi nhiễm sắc thể là các chuỗi bit nhị phân Khi đó
A = {0,1}
Trang 31* Khoảng cách Hamming giữa hai chuỗi A và B là
|
| )
2.2.3 Phương pháp mã hóa
Mỗi cá thể I có một bộ gen S thể hiện bởi chuỗi nhiễm sắc thể của I Tương ứng với mỗi bộ gen S thì cá thể I có một kiểu hình M nhất định Trong khi đó, các
bài toán chúng ta cần giải quyết đều được biểu diễn thông qua kiểu hình của cá thể
trong quần thể Do đó cần phải có phương pháp chuyển đổi từ M sang S Phương
pháp này còn gọi là phương pháp mã hóa di truyền cho bài toán
Quần thể ban đầu có thể khởi tạo bằng cách tạo ra p xâu ngẫu nhiên bất kỳ có
độ dài l đóng vai trò chuỗi nhiễm sắc thể của các cá nhân ban đầu Hoặc chúng ta có
thể khởi tạo quần thể bằng cách tạo ra các cá thể có kiểu hình nhất định rồi từ đótìm ra kiểu gen của từng cá thể Tuỳ theo bài toán phương pháp được sử dụng làkhác nhau nhưng đều phải đưa đến kết quả là tạo ra quần thể ban đầu P0 có chấtlượng tốt nhằm tối thiểu hóa thời gian tính toán
Trang 322.2.5 Hàm thích nghi
Hàm thích nghi f(I) là hàm lượng giá khả năng thích nghi của cá thể I đối với môi trường Hàm thích nghi f(I) được sử dụng để định hướng, điều khiển quá trình
tiến hóa của cả quần thể theo một hướng nhất định
2.2.6 Lai ghép, đột biến, tái sinh và chọn lọc
Một cá thể mới sinh ra trong quá trình tiến hóa có thể mang những đặc tính,tính trạng của cha mẹ hoặc có thể mang những đặc tính hoàn toàn mới Tuy nhiênhiện tượng đột biến xảy ra với xác suất nhỏ hơn rất nhiều so với hiện tượng ditruyền nhưng di truyền và đột biến là hai cơ chế có vai trò quan trọng như nhautrong quá trình tiến hóa Các thuật toán tiến hóa đều mô phỏng bốn quá trình cơ bảnsau: Lai ghép, đột biến, sinh sản và chọn lọc
* Lai ghép: Lai ghép là quá trình hình thành nhiễm sắc thể trên cơ sở các nhiễm sắc
thể cha mẹ bằng cách ghép một hay nhiều đoạn gen của hai hay nhiều nhiễm sắc thểcha mẹ với nhau Quá trình lai ghép được mô phỏng: Chọn ngẫu nhiên hai haynhiều cá thể bất kỳ trong quần thể Giả sử các nhiễm sắc thể của cha mẹ đều có mgen Tạo một số ngẫu nhiên trong khoảng từ 1 đến m-1 ta gọi là điểm lai Điểm laichia các chuỗi cha mẹ dài m thành hai nhóm chuỗi con dài m1 và m2 Hai chuỗinhiễm sắc thể con mới sinh sẽ là m11 + m22 và m21 + m12 Đưa hai cá thể này vàoquần thể để tham gia quá trình tiến hóa tiếp theo
* Đột biến: Đột biến là hiện tượng cá thể con mang một số tính trạng không có
trong mã hóa di truyền của cha mẹ Phép đột biến được mô tả: Chọn ngẫu nhiên
một cá thể bất kỳ trong quần thể có m gen Tạo một số ngẫu nhiên k trong khoảng từ
1 đến m Thay đổi gen thứ k của cá thể và trả cá thể này về quần thể để tham gia quá
trình tiến hóa tiếp theo
* Tái sinh: Tái sinh là quá trình trong đó các cá thể được sao chép trên cơ sở độ
thích nghi của nó Mô tả: Tính độ thích nghi của từng cá thể trong quần thể hiện
hành f(I), cộng dồn độ thích nghi ký hiệu là F m Tạo một số ngẫu nhiên F trong đoạn từ 0 đến F m Chọn một cá thể thứ k thỏa mãn F ≥ Fk đưa vào quần thể của thế
hệ mới
Trang 33* Chọn lọc: là quá trình loại bỏ các cá thể xấu trong quần thể để chỉ giữ lại trong
quần thể các cá thể tốt Mô tả: Sắp xếp quần thể theo thứ tự độ thích nghi giảm dần.Loại bỏ các cá thể cuối dãy để chỉ giữ lại các cá thể tốt nhất mong muốn
2.3 Các phép toán di truyền.
2.3.1 Mã hóa
Giải thuật di truyền bắt đầu với quần thể, tập của nhiều cá thể (nhiễm sắc thể).Nhiễm sắc thể bằng cách nào đó chứa thông tin về nghiệm mà nó biểu diễn
Mã hóa nhiễm sắc thể là một trong những vấn đề cực kỳ quan trọng khi chúng
ta bắt đầu giải quyết bài toán bằng giải thuật di truyền Sự mã hóa các biến phụthuộc vào từng bài toán, làm sao để chọn ra một phương pháp mã hóa tốt để giảiquyết bài toán là vấn đề khó Ta đưa ra hai nguyên tắc để chọn mã trong giải thuật
di truyền là: nguyên tắc các khối xây dựng có ý nghĩa và nguyên tắc ký tự tối thiểu.Nguyên tắc các khối xây dựng có ý nghĩa như sau: “Người dùng nên chọn một
mã sao cho các sơ đồ ngắn, bậc thấp thì thích hợp đối với bài toán cơ bản và khôngliên quan tới vị trí cố định khác”
Nguyên tắc ký tự tối thiểu: “Người dùng nên chọn những bộ ký tự tối thiểucho phép thể hiện được tính tự nhiên của bài toán”
Phần này giới thiệu một vài phương pháp mã hóa đã sử dụng thành công
Trang 34Trong mã hóa hoán vị mọi nhiễm sắc thể là một chuỗi các số biểu diễn trongmột dãy.
từ số nguyên, số thực, ký tự cho đến những đối tượng phức tạp hơn
Ví dụ:
Nhiễm sắc thể A 1.2324 5.3243 0.4556 2.3293.4545
Nhiễm sắc thể B ABDJEIFJDHDIERJFDLDFLFEGT
Nhiễm sắc thể C (back), (back), (right), (forward), (left)
2.3.1.4 Mã hóa theo cây
Mã hóa theo cây được dùng chủ yếu cho các chương trình (hoặc biểu thức)tiến hóa, cho lập trình di truyền
Trong mã hóa theo cây, mọi nhiễm sắc thể là một cây chứa các đối tượngchẳng hạn như hàm hoặc lệnh trong một ngôn ngữ lập trình nào đó
Trang 35Mã hóa theo cây thích hợp cho những chương trình tiến hóa Ngôn ngữ lậptrình di truyền thường được dùng vì chương trình được biểu diễn dưới dạng này cóthể dễ dàng phân giải cây, vì thế lai giống và đột biến có thể thực hiện một cáchtương đối dễ dàng.
2.3.2 Quá trình lai ghép
Sau khi quyết định cách mã hóa, chúng ta chuyển sang lai ghép Đây là việcchọn các gen từ các nhiễm sắc thể của bố mẹ và tạo ra con mới Quá trình lai ghépđược chia làm 2 loại: lai ghép giá trị thực và lai ghép giá trị nhị phân
Trang 36Lai ghép trung gian là phương pháp chỉ áp dụng cho các giá trị thực, trong đógiá trị của cá thể con được chọn xung quanh và ở giữa của các cá thể cha mẹ.
Giá trị của cá thể cha mẹ được tính theo luật sau:
Con = cha-mẹ-1 +α (cha-mẹ-2 – cha-mẹ-1)
Với α là một hệ số tỉ lệ được chọn ngẫu nhiên trong khoảng [-d, 1+ d] Tốt nhất nênchọn d = 0.25
Ví dụ: Xét hai cá thể, mỗi cá thể có 3 gen:
Trang 372.3.2.2 Lai ghép giá trị nhị phân
* Lai ghép đơn điểm
Trong lai ghép đơn điểm (lai ghép chéo), một điểm lai ghép k [1,2,…,Nvar 1] (với Nvar là số gen của một cá thể) được chọn ngẫu nhiên và các gen trên nhiễmsắc thể của các cá thể cha mẹ được đổi chỗ cho nhau tính từ vị trí k để tạo ra 2 conmới
Hình 2.3: Nguyên tắc thực hiện lai ghép chéo
* Lai ghép đa điểm
Với phương pháp lai ghép đa điểm, chúng ta có m vị trí lai ghép ki [1, 2, …,Nvar - 1] (i = 1,…,m) được chọn ngẫu nhiên sao cho không lặp lại và được sắp thứtự
Sau khi chọn vị trí lai ghép ta thao tác tại từng vị trí lai ghép giống như vớitrường hợp lai ghép chéo
Ý tưởng của phương pháp lai ghép đa điểm và cả phương pháp lai ghép khác
là nhiễm sắc thể của các cá thể con được tạo thành từ các nhiễm sắc thể cha mẹ trên
cơ sở có sự tráo đổi một hay nhiều phần của nhiễm sắc thể
Trang 382.3.3.1 Đột biến các giá trị thực
Thao tác đột biến thực hiện như sau:
Biến được đột biến = giá trị biến + range * delta
Trang 392.3.3.2 Đột biến các giá trị nhị phân
Với các chuỗi nhiễm sắc thể nhị phân, đột biến có nghĩa là lật trạng thái củamột gen nào đó Giả sử xét một cá thể có 11 gen và xảy ra đột biến gen số 4 Ta cóbảng sau:
Bảng 2.1: Biểu diễn cá thể trước và sau đột biến
2.3.4 Phép chọn lọc
Quá trình chọn lọc nhằm chọn ra các cá thể sẽ thực hiện tái sản xuất ra các cáthể con Các cá thể được chọn phải là các cá thể có đặc tính tốt nhất, thích nghi nhấtvới môi trường Bước đầu tiên được thực hiện là lượng giá độ thích nghi của các cáthể Mỗi cá thể trong quần thể nhận được một giá trị biểu diễn khả năng thích nghicủa nó phụ thuộc vào giá trị hàm mục tiêu tương ứng với cá thể đó và tương quangiá trị hàm mục tiêu của tất cả các cá thể trong quần thể Độ thích nghi sẽ đượcdùng làm căn cứ cho các phương pháp thực hiện chọn lọc trình bày sau đây
Có rất nhiều phương pháp thực hiện chọn lọc, các phương pháp này được sosánh với nhau trên các tiêu chí sau:
* Độ tích cực chọn lọc: chênh lệch giữa xác suất chọn được cá thể tốt nhất
với xác xuất trung bình chọn cá thể bất kỳ
* Độ lệch: chênh lệch giữa độ thích nghi của một cá thể với xác suất được
lựa chọn của nó
2.3.4.1 Phương pháp chọn lọc dùng bánh xe Roulette
Đây được coi là phương pháp chọn lọc đơn giản nhất, được tiến hành như sau:Các cá thể được ánh xạ vào các đoạn thẳng liên tiếp sao cho kích thước củamỗi phần đoạn thẳng đó bằng độ thích nghi của cá thể tương ứng Sau đó một sốngẫu nhiên sẽ được tạo ra và những cá thể nào mà đoạn thẳng tương ứng với nóchứa giá trị vừa tạo ra sẽ được chọn Quá trình tiếp tục lặp lại đến khi chọn được sốlượng cần thiết các cá thể
Trang 40Ví dụ: Xét một quần thể gồm 11 cá thể, có độ thích nghi và xác suất đượcchọn thể hiện trong bảng sau:
Bảng 2.2: Độ thích nghi và xác suất của cá thể
Độ thích nghi 2.0 1.8 1.6 1.4 1.2 1.0 0.8 0.6 0.4 0.2 0.0Xác suất thích nghi 0.18 0.16 0.15 0.13 0.11 0.09 0.07 0.06 0.03 0.02 0.0Giả sử ta cần lựa chọn 6 cá thể để thực hiện lai ghép, khi đó ta cần tạo ra 6 sốngẫu nhiên có giá trị rải rác giữa 0 và 1 Chẳng hạn các số sau: 0.81, 0.32, 0.96,0.01, 0.65, 0.42 Hình vẽ sau mô tả quá trình chọn lọc các cá thể
Hình 2.6: Quá trình chọn lọc cá thể bằng phương pháp bánh xe Roulette
Sau đó, ta nhận được các cá thể mang số thứ tự sau: 1, 2, 3, 5, 6, 9
2.3.4.2 Phương pháp chọn lọc Stochastic Universal Sampling
Thực hiện giống như phương pháp bánh xe Roulette, nhưng cách chọn các giátrị ngẫu nhiên như sau: giả sử cần chọn ra N cá thể, khi đó khoảng cách giữa các látcắt là 1/N Chúng ta chọn 1 số ngẫu nhiên trong đoạn [0, 1/N] rồi từ đó xác định cáclát cắt Xét ví dụ trên, chúng ta cần tìm 6 cá thể nên khoảng cách giữa các lát cắt là1/6 = 0.16 Chọn một giá trị ngẫu nhiên trong khoảng [0, 0.16] chẳng hạn 0.1 ta cóthao tác như sau:
Hình 2.7: Quá trình chọn lọc cá thể bằng phương pháp Stochastic Universal Sampling.