3.2.1. Khái niệm Logic mờ
Logic truyền thống chỉ quan tâm đến 2 giá trị tuyệt đối (đúng hoặc sai). Logic truyền thống luôn tuân theo 2 giả thuyết. Một là tính thành viên của tập hợp: Với một phần tử và một tập hợp bất kỳ, thì phần tử hoặc là thuộc tập hợp đó, hoặc thuộc phần bù của tập đó. Giả thiết thứ hai là định luật loại trừ trung gian, khẳng định một phần tử không thể vừa thuộc một tập hợp vừa thuộc phần
tập hợp. Giữa hai nhiệt độ 45 và 55 độ C, logic này không thể hiện được nhiệt độ nào nóng hơn nhiệt độ nào.
Ngoài ra, logic này còn có một nhược điểm khác quan trọng hơn đó là không thể biểu diễn được các dữ kiện mang tính mơ hồ, không chính xác mà trong thực tế lại có rất nhiều phát biểu bằng ngôn ngữ tự nhiên ở dạng này; chẳng hạn như: John thì khá cao => như vậy John có thuộc tập hợp những người cao hay không? Hoặc: John thì rất cao => như thế nào là rất cao? Vì vậy, logic truyền thống không thể hỗ trợ cho những suy luận trên những thông tin mang tính mơ hồ, thiếu chính xác như vậy.
Để khắc phục khuyết điểm của logic truyền thống, Lotfi Zadeh đã đưa ra lý thuyết mới về logic gọi là logic mờ (fuzzy logic). Lý thuyết của Zadeh biểu diễn tính mờ hay tính thiếu chính xác trong các phát biểu (như ở mục trên) theo cách định lượng bằng cách đưa ra một hàm thành viên (membership function) nhận giá trị thực giữa 0 và 1.
3.2.2. Các khái niệm cơ bản của logic mờ 3.2.2.1. Tập mờ (Fuzzy Set) 3.2.2.1. Tập mờ (Fuzzy Set)
Tập mờ A trong không gian U được định nghĩa bởi một cặp thứ tự: A = { (x, µA(x)) / x U},
µA(x) được gọi là hàm thuộc (membership function) xác định “mức độ thuộc” tập mờ A của x.
µA(x) trả về giá trị thuộc (membership value) nằm trong khoảng [0, 1] của mỗi giá trị x ( Dx) .
Ví dụ : cho x là một thuộc tính với miền xác định Dx, hàm thuộc µA(x) có dạng sau : µA(x) : Dx [0,1]
Hàm thuộc có một số dạng thông dụng như sau : Hàm thuộc tam giác
Hàm thuộc hình thang
Biểu diễn tập mờ: Cho tập U = {x, x1, x2, …, xn}. Cho tập mờ A có hàm thành viên µA
Tập mờ A được biểu diễn: A = { (x1, µA(x1)), (x2, µA(x2)), …, (xn, µA(xn)) } Nếu U rời rạc thì A có thể viết:
A = µ1/x1 + µ2/x2 + … + µn/xn =
n i 1
µi/xi, phép “+” là phép hội của các phần tử. Nếu U liên tục thì A biểu diễn: A =
U
3.2.2.2. Các toán tử logic trên tập mờ
Logic mờ không quan tâm đến cách thức các tập mờ được tạo ra như thế nào, mà quan tâm đến các luật hỗ trợ cho việc suy luận trên các tập mờ này. Phần này sẽ trình bày các phép toán thao tác trên các tập mờ, đó là phép bù (complement) phép hợp (union), phép giao (intersection).
- Phép hợp hay toán tử OR: Hợp của hai tập mờ (A B) thể hiện mức độ một phần tử thuộc về một trong hai tập là bao nhiêu.
Công thức: μAB(x) = max (μA(x) , μB(x) )
- Phép giao hay toán tử AND: Giao của hai tập mờ (AB) thể hiện mức độ một phần tử thuộc về cả hai tập là bao nhiêu.
Công thức: μAB(x) = min (μA(x) , μB(x) )
- Phép bù hay toán tử NOT: Bù của một tập mờ thể hiện mức độ một phần tử không thuộc về tập đó là bao nhiêu. Công thức: μ ¬A(x) = 1 - μA(x) Nhận xét: Logic mờ không tuân theo các luật về tính bù của logic truyền thống: μ¬AA(x) 1 và μ ¬A A(x) 0
3.2.2.3. Biến ngôn ngữ và biến mờ
- Biến ngôn ngữ (Linguistic Variables): Biến ngôn ngữ là một khái niệm quan trọng trong logic mờ và lập luận xấp xỉ. Biến ngôn ngữ là một biến mà giá trị của nó là từ (word) hay câu (sentence) trong ngôn ngữ tự nhiên.
- Biến mờ (Fuzzy variable): mô tả bởi bộ ba (X, U, R(X)), X: tên của biến, U: tập xác định, R(X): tập mờ con của U, biểu diễn một giới hạn mờ (fuzzy restriction) áp đặt trên X.
Biến ngôn ngữ có thứ bậc cao hơn biến mờ: Nó lấy các biến mờ làm giá trị của mình. Một biến ngôn ngữ mô tả bởi bộ năm: (x, T(x), U, G, M), x: tên của biến, T(x): tập hợp các tên của biến ngôn ngữ của x mà giá trị của nó là các biến mờ trên U, G: luật cú pháp để sinh ra tên của các giá trị của x, M: luật ngữ nghĩa để kết hợp mỗi giá trị của x với nghĩa của nó.
3.2.2.4. Hệ Điều khiển/Quyết định mờ(Fuzzy logic Control/Decision System)
Hình 3.3: Mô hình hệ thống Điều khiển/Quyết định mờ
Trong hệ thống trên, với các giá trị đầu vào x, hệ mờ sẽ cho kết quả đầu ra y. Nếu y là một hành động điều khiển cho một thiết bị, thì hệ thống trên là hệ điều khiển mờ. Còn không, đó là hệ quyết định mờ.
Bộ mờ hóa (Fuzzifier) chuyển các dữ liệu được đo lường rõ thành các giá trị ngôn ngữ thích hợp. Cơ sở luật mờ (Fuzzy rule base) giữ những tri thức vận hành tiến trình của các chuyên gia trong lĩnh vực đó. Động cơ suy diễn (Inference Engine) là cốt lõi của hệ thống. Nó có khả năng mô phỏng việc ra quyết định của con người bằng cách lập luận xấp xỉ, để từ đó, đạt được chiến lược điều khiển mong muốn. Bộ khử mờ (Defuzzifier) sẽ sinh ra các quyết định hoặc các điều khiển “rõ” từ kết quả mờ cung cấp bởi động cơ suy diễn.
1. Mờ hóa: Tính toán các giá trị mờ từ các giá trị chính xác ở đầu vào.
2. Cơ sở luật mờ: Một luật mờ là một biểu thức if- then được phát biểu ở dạng ngôn ngữ tự nhiên thể hiện sự phụ thuộc nhân quả giữa các biến. Luật mờ có dạng: Rj: IF x là Ai, … AND y là Bi THEN z = Ci (i=1, 2, …, n), với x, y, z là các biến ngôn ngữ mô tả trạng thái của hệ thống và A, B, C là các giá trị ngôn ngữ tương ứng. Một cách viết khác của luật mờ: Rj: IF x là Ai , …, AND y là Bi THEN z = fi(x, …, y), với f là hàm của các biến mô tả trạng thái hệ thống.
3. Suy diễn mờ: Áp dụng tất cả các luật mờ có thể áp dụng để tính ra giá trị mờ cho kết luận, sau đó kết hợp các kết quả đầu ra.
4. Khử mờ: Xác định giá trị chính xác từ kết quả mờ có được ở bước 2. Có nhiều kỹ thuật Khửmờ có thể áp dụng được, phương pháp thông dụng nhất là phương pháp trọng tâm (centriod method).
3.2.2.5. Các ưu điểm của áp dụng tập mờ để rời rạc hoá dữ liệu
Ưu điểm thứ nhất: Giải quyết được vấn đề “điểm biên gãy” nhờ tập mờ có thể phân khoảng mịn hơn nhờ vào “độ trơn” của hàm thuộc.
Ưu điểm thứ hai: Rời rạc hoá bằng phân khoảng đôi khi tạo ra số khoảng rất lớn và do đó số thuộc tính nhị phân cũng rất lớn. Còn khi sử dụng tập mờ thì số lượng tập mờ gắn với mỗi thuộc tính là không đáng kể.
Ưu điểm thứ ba: Tập mờ cho phép chúng ta biểu diễn luật kết hợp dưới dạng tự nhiên hơn và gần gũi hơn với người sử dụng.
Ưu điểm thứ tư: Giá trị thuộc tính sau khi rời rạc hoá (sau khi tính qua hàm thuộc) biến thiên trong khoảng [0, 1] cho biết “mức độ thuộc” ít hay nhiều trong khi đó các thuộc tính nhị phân trước đây chỉ có một trong hai giá trị 0, 1. Điều này cho chúng ta khả năng ước lượng chính xác hơn “độ đóng góp” của các bản ghi trong cơ sở dữ liệu vào một tập phổ biến nào đó.
Một ưu điểm nữa đối với rời rạc hoá dựa vào tập mờ là nó có thể áp dụng tốt cho cả hai dạng cơ sở dữ liệu : cơ sở dữ liệu quan hệ (relation databases) và cơ sở dữ liệu dạng giao tác (transactional databases).
3.3. Cây Quyết định Mờ
Điểm không thuận lợi của cây quyết định là tính ko ổn định của nó. Cây quyết định được thừa nhận như một cách phân lớp dễ thay đổi bậc nhất về khía cạnh phụ thuộc vào dữ liệu huấn luyện. Cấu trúc của cây quyết định có thể khác hoàn toàn nếu có thay đổi nào đó trong tập dữ liệu. Để khắc phục vấn đề này, một số nhà nghiên cứu đã đưa ra Cây quyết định Mờ bằng cách sử dụng lý thuyết tập mờ để diễn tả mức độ quan hệ của các giá trị của thuộc tính, điều này có thể phân biệt chính xác sự phù hợp của các quan hệ phụ thuộc giữa các ví dụ huấn luyện khác nhau và mọi giá trị của thuộc tính.
Ban đầu, Fuzzy ID3 chỉ là mở rộng của thuật toán ID3 bằng cách áp dụng tập mờ. Nó sinh ra một cây quyết định Mờ sử dụng các tập mờ định nghĩa bởi một người dùng cho tất cả các thuộc tính và dùng entropy mờ tối thiểu để lựa chọn các thuộc tính mở rộng [15].
Tuy nhiên, kết quả của thuật toán Fuzzy ID3 này khá hạn chế về độ chính xác trong việc học. Để giải quyết vấn đề này, hai tham số then chốt là tham số điều khiển mờ r và ngưỡng quyết định lá n được đưa ra. Bên cạnh entropy mờ tối thiểu, nhiều tiêu chuẩn khác nhau được đưa ra để chọn ra các thuộc tính mở rộng như là sự nhập nhằng phân loại tối thiểu, mức độ quan trọng của sự đóng góp của thuộc tính vào việc phân loại.
Năm 2004, một hệ phương pháp khác được đưa ra với ý tưởng về việc kết hợp mờ và sự không chắc chắn theo xác suất. Ý tưởng này là để kết hợp entropy theo thống kê và entropy mờ thành một khái niệm có tên là Entropy mờ thống kê (Statistical Fuzzy Entropy -SFE) trong một cơ cấu của các xác suất hoàn toàn xác định trong các sự kiện mờ. SFE là một sự kết hợp của không gian mẫu đã xác định và entropy mờ. Sử dụng khái niệm SFE, thuật toán ID3 Mờ Xác suất- Probabilistic Fuzzy ID3 algorithm (PFID3) được đưa ra. Trên thực tế, PFID3 là một trường hợp đặc biệt của Fuzzy ID3, nó được gọi là PFID3 khi sự phân vùng mờ được xác định rõ [16]. Luận văn sẽ tập trung nghiên cứu và so sánh hai phương pháp này.
chắn. Nó áp dụng lý thuyết tập mờ để biểu diễn tập dữ liệu và kết hợp trong phát triển cây và tỉa cành để xác định cấu trúc của cây.
3.3.1.1. Dữ liệu mẫu với biểu diễn mờ
Nhìn chung, tồn tại hai loại thuộc tính khác nhau là rời rạc và liên tục. Nhiều thuật toán đòi hỏi dữ liệu với các giá trị rời rạc. Không dễ dàng gì để thay thế một miền liên tục với một miền rời rạc. Điều này đòi hỏi sự phân vùng và gộp nhóm. Và cũng rất khó để định nghĩa ranh giới của các thuộc tính liên tục. Ví dụ, làm thế nào để định nghĩa đoạn tắc đường là dài hay ngắn? Có thể cho rằng đoạn tắc đường 3km là dài và 2,9 km là ngắn? Có thể nói rằng trời lạnh với nhiệt độ là 9OC, trời ấm áp với nhiệt độ là 10OC ? Do vậy, một số nhà nghiên cứu đã đưa khái niệm mờ vào thuật toán ID3, thay thế dữ liệu mẫu với biểu diễn mờ và hình thành nên thuật toán Fuzzy ID3.
Ví dụ: việc một người quyết định tự lái xe ôtô (Car Driving) hay dùng phương tiện công cộng khác để đi làm phụ thuộc vào thời tiết như nhiệt độ (Tempereture), gió (Wind) và tình hình giao thông có tắc đường (Traffic-Jam) dài không. Ta có tập dữ liệu mẫu như bảng dưới:
Với thuộc tính Traffic-Jam về đoạn đường tắc là Dài- Long hay Ngắn - Short có thể định nghĩa hàm thuộc như sau
(3.9)
(3.10)
Hình 3.4: Hình biểu diễn hàm thuộc của thuộc tính Traffic-Jam
Với thuộc tính Temperature về nhiệt độ là Nóng – Hot, Mát mẻ - Cool hay Ấm áp – Mild có thể định nghĩa hàm thuộc như sau:
Với thuộc tính Wind về gió Mạnh- Strong hay Yếu- Weak có thể định nghĩa hàm thuộc như sau:
Ta thu được biểu diễn mờ của tập mẫu như bảng dưới đây (Ký hiệu: MF- Membership Function là hàm thuộc)
Như ví dụ ở trên, ta đã phân vùng tập mẫu thành những khoảng khác nhau. Sự phân vùng này là đầy đủ (mỗi giá trị trong miền là thuộc vào ít nhất một tập con) và là không nhất quán (một giá trị trong miền có thể tìm thấy trong nhiều hơn một tập con)
Ví dụ : Nếu đoạn đường tắc Traffic-Jam là <3 km, giá trị của hàm thuộc Long là null, còn giá trị của hàm thuộc Short là 1.
3.3.1.2. Entropy mờ và độ đo thông tin mờ
Tiếp theo, ta sẽ tính toán entropy mờ và độ đo thông tin của tập dữ liệu mờ để mở rộng cây. Công thức của entropy Hf cho các thuộc tính và Information Gain Gf có một số khác biệt vì biểu diễn mờ của dữ liệu. Định nghĩa của chúng được xác định bên dưới với giả thiết tập dữ liệu S= {x1,x2,…xj}[7].
(3.11)
(3.12) Trong đó μij là giá thuộc của mẫu thứ j vào lớp thứ i
Hf(S) đại diện cho entropy của tập ví dụ huấn luyện S trong nút đó.
|Sv| là số phần tử của tập con Sv của các ví dụ huấn luyện xj với thuộc tính v, Sv
S
|S| là số phần tử của tập S
Gain của thuộc tính Wind được tính như sau:
Gain của thuộc tính Traffic-Jam được tính như sau:
Cũng giống như với thuật toán ID3, thuộc tính có Gain cao nhất được chọn để mở rộng cây.
3.3.1.3. Định nghĩa ngưỡng
Nếu việc học của cây quyết định mờ dừng lại chỉ khi tất cả các dữ liệu mờ trong mỗi nút lá thuộc vào một lớp thì cây hạn chế về độ chính xác. Để cải thiện độ chính xác, việc học phải được dừng lại sớm hơn hoặc được giới hạn bằng cắt nhánh. Do vậy, có 2 ngưỡng được định nghĩa:
- Ngưỡng tham số điều khiển mờ r : nếu tỉ lệ của tập dữ liệu của lớp Ck là lớn hơn hoặc bằng ngưỡng r , ngừng mở rộng cây. Ví dụ: nếu trong tập dữ liệu con, tỉ lệ của lớp 1 là 90%, tỉ lệ của lớp 2 là 10% và r là 85% thì ngừng mở rộng cây.
- Ngưỡng quyết định lá n : Nếu số lượng của một tập dữ liệu là nhỏ hơn ngưỡng n thì ngừng mở rộng nút. Ví dụ: tập dữ liệu có 600 mẫu và n là 2%. Nếu số lượng mẫu trong nút ít hơn 12 (2% của 600) thì ngừng mở rộng nút.
Mức của những ngưỡng này có những ảnh hưởng lớn trên kết quả của cây. Cần định nghĩa chúng ở nhiều mức để tìm thấy những giá trị tối ưu.
Hơn nữa, nếu không có nhiều thuộc tính hơn cho phân lớp, giải thuật không tạo ra một nút mới.
3.3.1.4. Thủ tục xây dựng cây quyết định mờ
Tạo ra một nút Gốc có tập mờ của tất cả dữ liệu với giá trị thuộc là 1.
Với kết quả của các tính toán ở trên, ta sử dụng sự thuộc tính Traffic-Jam để
mở rộng cây. Tạo hai nút con với các ví dụ, nơi giá trị thuộc tại những nút con này là sản kết quả của những giá trị thuộc ban đầu tại Gốc và những giá trị thuộc của thuộc tính Traffic-Jam. Ví dụ bị bỏ qua nếu giá trị thuộc của nó là null.
Ví dụ: với nút con trái với giá trị thuộc tính Long, giá trị thuộc của dữ
liệu 1 (D1) μl là 0.25. Giá trị thuộc mới của D1 ở nút này là 0.25 theo tính toán
sau: μNew = μl * μOld = 0.25 *1 =0.25
Tiếp theo ta phải tính toán tỉ lệ của lớp Ck. Đó là phép chia của tổng những giá trị thuộc của lớp Ck cho tổng của mọi giá trị thuộc. Sau đó, so sánh tỉ lệ này và số lượng tập dữ liệu với r và n. Nếu chúng nhỏ hơn và nếu đó cũng là những thuộc tính cho phân lớp thì ta tạo ra một nút mới. Lặp lại những quá trình này cho đến những điều kiện dừng được định nghĩa trong 3.3.1.3. thỏa mãn.
Ví dụ: trong nút con trái, tỉ lệ của lớp No là 1.13/2.09=54%. Số lượng tập dữ liệu là 7. Tỉ lệ của lớp Yes trong nút con phải là 77%. Nếu tham số điều khiển mờ do người dùng định ra là 70%, ta ngừng mở rộng nút này. Trong