CHƯƠNG 3: PHƯƠNG PHÁP NGHIÊN CỨU VÀ CÔNG CỤ NGHIÊN CỨU
3.2 Công cụ nghiên cứu
3.2.3 Lập luận theo tình huống (CBR)
3.2.3.1 Quá trình hình thành và phát triển:
Roger Schank và các sinh viên của ông tại Đại học Yale là những người đầu tiên đưa ra những cơ sở đầu tiên về LLTTH vào thập niên 1980.
Hệ thống đầu tiên được xem là một ứng dụng của LLTTH là CYRUS, được phát triển bởi Janet Kolodner, một thành viên trong nhóm của Roger Schank, vào năm 1983.
Một hệ thống khác được phát triển bởi nhóm của Bruce Porter vào năm 1989 tại Đại học Texas là PROTOS, hệ thống này đã tích hợp thành công lập luận theo tri thức tổng quát (general domain knowledge) và LLTTH thể hiện trong một cấu trúc.
LLTTH là một trong những ứng dụng kỹ thuật trí tuệ nhân tạo thành công trong những năm gần đây. Các ứng dụng thông dụng là trong các hệ thống chẩn đoán và ước lượng.
HVTH: Lê Xuân Khánh (13080026) Trang 15 3.2.3.2 Khái niệm:
“CBR là phương pháp kĩ thuật giải quyết vấn đề, thực hiện giải quyết các vấn đề mới bằng việc sử dụng lại những giải pháp đã có của những vấn đề trước. Những vấn đề trước đây được mã hóa gọi là các tình huống (case), mỗi tình huống chứa những thuộc tính đặc trưng của vấn đề đó và giải pháp cho nó. Một tập các tình huống được gọi là tập tình huống cơ sở (case-base), là kiến thức nền tảng đã qua trải nghiệm, tập tình huống cơ sở được sử dụng cho quá trình đưa giải pháp cho vấn đề mới” [24].
CBR thực hiện theo một chu trình gồm các tiến trình sau [24] (được mô tả trong Hình 3.2):
1. “Truy xuất (Retrieve) từ tập tình huống cơ sở những tình huống tương đồng với tình huống mới (tình huống cần được đưa ra giải pháp).
2. Sử dụng lại (Reuse) những tình huống trên để đưa ra giải pháp cho tình huống mới.
3. Kiểm tra và điều chỉnh (Revise) lại giải pháp cho tình huống mới (nếu cần).
4. Giữ lại (Retain) giải pháp đã được giải quyết đó để giải quyết những vấn đề mới tiếp theo”.
Hình 3. 2: Quy trình thực hiện Case-based Reasoning
Quy trình thực hiện như sau: “Khi có một vấn đề mới cần phải giải quyết, vấn đề đó sẽ được biểu diễn dưới dạng tình huống. Tình huống mới này sẽ được so sánh với các tình huống trong tập tình huống cơ sở, những tình huống có độ tương đồng cao nhất với tình huống mới sẽ được trích ra từ tập tình huống cơ sở. Tập hợp tình huống được trích ra đó sẽ được sử dụng lại nhằm phân tích để đưa ra giải pháp cho tình huống mới. Giải pháp đưa ra cho tình huống mới có thể sẽ được kiểm tra lại, nếu giải pháp đó chưa được thỏa đáng thì thực hiện tính toán lại và điều chỉnh để đưa ra giải pháp thỏa đáng hơn. Giải pháp cho vấn đề mới sẽ được lưu lại vào tập hợp các vấn đề đã có giải pháp” [24].
HVTH: Lê Xuân Khánh (13080026) Trang 16 3.2.3.3 Ưu điểm của CBR:
“Case-based reasoning có nhiều ưu điểm hơn so với những phương pháp kĩ thuật học máy khác. Phương pháp này có ưu điểm đó là những mẫu huấn luyện mới có thể được thêm vào một cách rất dễ dàng. Sự hạn chế của việc học này là tất cả các mẫu được sử dụng cần phải lưu trữ và hệ thống có thể truy cập được mỗi khi có yêu cầu.
Để thực hiện các tiến trình xử lý khi có yêu cầu đòi hỏi tính toán nhiều. Tuy nhiên tốc độ phát triển của phần cứng máy tính rất nhanh do đó sự hạn chế này dễ dàng khắc phục được”[24].
3.2.3.4 Một số kỹ thuật chi tiết trong cách tính độ tương tự giữa các tình huống lập luận:
Một trong những vấn đề khó khăn nhất trong lập luận theo kinh nghiệm là tính độ tương tự giữa các tình huống lập luận trong pha tìm kiếm lại.
Hàm tính độ tương tự có ảnh hưởng rất lớn đến hiệu quả và độ chính xác của cả hệ thống.
Phương pháp tính độ tương tự giữa các tình huống lập luận:
Công thức tính toán độ tương tự giữa các tình huống lập luận:
Đơn vị tri thức của một hệ thống lập luận theo kinh nghiệm là các tình huống lập luận (cases).
Giả thiết rằng thuộc tính mỗi tình huống lập luận trong tập tình huống cơ sở được biểu diễn dưới dạng các vecto thuộc tính – giá trị có dạng i=(1, 2,…., p), với p là số các thuộc tính biểu diễn tình huống lập luận.
Hàm tính độ tương tự giữa hai tình huống có thể được tính bằng các phương thức khác nhau: Weighted sum, Euclidean, Minimum, Maximum. Không thể đánh giá phương thức nào là tốt nhất trong các phương thức trên, vì nó tùy thuộc vào dữ liệu của bài toán. Và phương thức Weighted sum là phương thức được sử dụng thông dụng nhất. Độ tương tự giữa hai tình huống lập luận i và j được tính theo công thức sau:
j
1 i ij
1
w w
p
k p
k k
k k
S CS
(3.1) Trong đó:
p là số lượng các thuộc tính
Sijk là hàm tính độ tương tự giữa thuộc tính k của 2 tình huống lập luận i và j wk là trọng số xác định tầm quan trọng của thuộc tính k.
Tính toán hàm tương tự của thuộc tính (Sijk):
Xây dựng các hàm tương đồng của thuộc tính (Sijk) tùy thuộc vào từng bài toán cụ thể với phạm vi ứng dụng cụ thể. Cách tính toán chi tiết cho nghiên cứu này được nêu rõ trong mục 3.2.3.5.2
Xác định được các trọng số wk.
HVTH: Lê Xuân Khánh (13080026) Trang 17 Khó khăn nhất của việc tính độ tương tự giữa các tình huống lập luận là xác định được các trọng số wi. Trong thực tế, việc gán các trọng số này được thực hiện một cách cảm tính theo kinh nghiệm các chuyên gia. Việc này rất khó chính xác và cho kết quả phù hợp. Để khắc phục khuyết điểm này chúng ta sẽ dựa vào nhận xét của chuyên gia về độ tương tự giữa các trường hợp, từ đó xây dựng bộ trọng số tối ưu cho hàm tương tự.
Cách thực hiện của phương pháp là dựa trên các tình huống lập luận và ý kiến đánh giá của các chuyên gia, xây dựng một hàm mục tiêu đánh giá độ sai lệch trung bình giữa: các giá trị hàm tương tự (hàm tính độ tương tự trên tập ca lập luận) và đánh giá của các chuyên gia, sau đó sử dụng phương pháp giảm độ dốc (Gradient Descent) và giải thuật di truyền (Genetic Algorithms-GA) để tối ưu hàm mục tiêu này.
o Xây dựng hàm mục tiêu
Giả sử có n tình huống lập luận, ma trận đánh giá của chuyên gia:
Y=(yi,j)n,n=
11 1
1
n
n nn
y y
y y
yi,j là đánh giá độ tương tự giữa hai tình huống lập luận thứ i và j trong tập các tình huống lập luận huấn luyện.
Ký hiệu U=[0,1], E là một ánh xạ từ U vào đoạn [0,1]:
E : U 0,1
wE(w)
ij i
1
1
j 2 1
2 ( 1)
n n
i j i
E w CS y
n n
(3.2) Trong đó:
CSij là độ tương tự giữa 2 tình huống lập luận thứ i và thứ j Hàm E(w) như trên có các tính chất sau:
Nhận wk, k=1, 2, …, p là các biến
Khi các CSij tiến gần tới yij thì E(w) sẽ tiến tới cực tiểu
E thỏa mãn được các yêu cầu đặt ra cho một hàm đánh giá bộ trọng số, nó thể hiện sai số trung bình bình phương giữa các giá trị độ tương tự tính được nhờ công thức (3.1) với các giá trị đánh giá tương ứng của các chuyên gia. Vấn đề là làm sao để có thể tối thiểu được hàm E? Có 2 phương pháp:
o Phương pháp giảm độ dốc (Gradient descent)
Giảm Gradient là phương pháp tìm lời giải tối ưu cục bộ dựa trên các thông tin đạo hàm mục tiêu;
Giả sử ta có hàm mục tiêu E với p tham số đầu vào, mục tiêu của ta là tìm được giá trị các tham số đầu vào tại vị trí “lim” nhất của E, tức là có giá trị nhỏ nhất;
Phương pháp giảm độ dốc (Gradient descent) bao gồm các bước sau:
Chọn ngẫu nhiên một điểm x0 trong không gian nghiệm;
HVTH: Lê Xuân Khánh (13080026) Trang 18
Tính độ dốc của mặt E tại điểm x0;
Cập nhật các trọng số theo hướng dốc nhất của mặt E;
Xem điểm này như điểm x0 mới.
Áp dụng vào CBR:
E là hàm đánh giá với các tham số đầu vào là w=(w1, w2, w3, …, wp);
Giả sử có 2 tình huống lập luận i, j khi đó độ tương tự giữa i và j được tính theo công thức (3.1);
Khi đó độ dốc mặt lồi tại w được tính như sau:
w w
E
Trong đó: là tốc độ học
Cập nhật w w w , tức là với mỗi 1 k p , wk wk wk với:
ij ij
wk wk wk
E CS E
CS
(3.3)
Thuật toán thực hiện được mô tả như sau:
Bước 1: chọn ;
Bước 2: khởi tạo ngẫu nhiên wk trong đoạn 0,1 ;
Bước 3: tính wkvới mỗi k theo công thức (3.3);
Bước 4: tính lại wk wk wkvới mỗi k;
Bước 5: lặp lại bước 3, 4 tới khi hội tụ, đó là cho tới khi giá trị của E một ngưỡng cho trước, hoặc tới khi số các bước lặp tới một giới hạn định trước.
o Phương pháp dùng giải thuật di truyền (GA).
GA là một thuật giải mô phỏng các hiện tượng tự nhiên: kế thừa và đấu tranh sinh tồn để cải tiến lời giải và khảo sát không gian lời giải;
GA được dùng dựa trên quan điểm: quá trình tiến hóa tự nhiên là quá trình hoàn hảo nhất, hợp lý nhất và tự nó mang tính tối ưu, thế hệ sau bao giờ cũng tốt hơn thế hệ trước;
Để tìm nghiệm tối ưu của bài toán, GA sẽ thực hiện các bước sau:
Bước 1: khởi tạo ngẫu nhiên một quần thể ban đầu gồm một số các cá thể;
Bước 2: thực hiện các phép di truyền là lai ghép, đột biến và tái sinh;
Bước 3: thực hiện phép chọn lọc tự nhiên;
Bước 4: lặp lại bước 2 và 3 cho tới khi tìm ra một cá thể tốt nhất hoặc tới khi số thế hệ vượt qua một ngưỡng nào được cho trước;
Áp dụng GA cho CBR:
Biểu diễn mỗi cá thể (case) là một nghiệm bởi một vecto S có p thành phần (tương ứng p thuộc tính trong tình huống lập luận) và cá thể thứ k được biểu diễn với vecto Sk=(1, 2,…, p), mỗi Su là một dãy m bit tương ứng với trọng số wu;
HVTH: Lê Xuân Khánh (13080026) Trang 19
Nếu độ chính xác cần đạt là 3 số lẻ trong khi các giá trị của Su chỉ thuộc đoạn 0,1 thì ta cần phải chia đoạn thành 1.103 khoảng và độ dài m=10bit;
Hàm định nghĩa độ thích nghi hay (hàm đánh giá) là hàm E tính trung bình bình phương (độ lệch) sinh ra bởi mỗi cá thể Sk: (3.3)
1 ( ) 2
1
i j
1
j i
2 ( 1)
k
n n
S k
i j i
E S CS y
n n
Trong đó:
ij (Sk)
CS là độ tương tự giữa hai ca lập luận thứ i và j trong tập ca lập luận với vecto trọng số Sk.
Để tính đượcCS(Sk)ij, ta cần phải ánh xạ mỗi Su trong Sk thành một số thực wv trong đoạn 0,1 , cách tính như sau:
Với mỗi chỉ số v trong Sk:
Biến đổi chỗ bit sv từ cơ số 2 sang cơ số 10, giả sử rằng w'v
Tìm số thực wvtương ứng với w'v
Các tham số khác cho giải quyết bài toán này là tùy chọn.
Các quá trình lai ghép, đột biến, chọn lọc được thực hiện như giải thuật di truyền cổ điển.
Trong Luận văn này sử dụng phương pháp GA để tìm trọng số, phương pháp này được trình bày chi tiết ở mục 3.2.3.4.3.
Ngoài ra để xác định trọng số wk có thể dùng phương phương phân tích hồi qui (Sang-Yong Kim , Jae-Won Choi, Gwang-Hee Kim và Kyung-In Kang, 2005) [2].
o Phương pháp phân tích hồi qui
Phương pháp này cho kết quả chính xác hơn phương pháp giảm hệ số dốc (Gradient descent). Cốt lõi của phân tích hồi qui là phân tích sự tác động của các biến độc lập tới biến phụ thuộc. Phân tích hồi quy là một phân tích thống kê để xác định xem các biến độc lập quy định các biến phụ thuộc như thế nào. Mô hình phân tích hồi quy sẽ mô tả hình thức của mối liên hệ và qua đó giúp dự đoán được giá trị của biến phụ thuộc khi biết trước giá trị của biến độc lập.
3.2.3.5 Các bước xây dựng Lập luận theo tình huống (CBR) Lập bảng tính mô phỏng CBR.
Trong nghiên cứu này, bảng tính mô phỏng CBR được thiết lập trên nền Microsoft Excel. Bảng tính mẫu dùng để dự đoán chi phí xây dựng của dự án được hình thành thông qua 6 bước sau:
Bước 1: Tổ chức và định dạng dữ liệu (Organizing and formatting)
Dữ liệu được tổ chức theo dạng 2 ma trận được trình bày như Hình 3.3. Trong đó, một ma trận là các tình huống thử nghiệm (test case) cần ƯLCPXD và một ma trận là các tình huống đầu vào dùng làm CSDL (input case). Dùng khoảng 10% trong tổng số các tình huống được thu thập làm tình huống thử nghiệm.
HVTH: Lê Xuân Khánh (13080026) Trang 20 Các tình huống thử nghiệm (test case) và các tình huống đầu vào dùng làm CSDL (input case) được bố trí theo hàng. Những thuộc tính của các tình huống đầu vào dùng làm CSDL (input case) được bố trí theo cột.
Giá trị những thuộc tính của các tình huống thử nghiệm và tình huống đầu vào được kí hiệu lần lượt là Iik và I’jk. Trong đó Iik là giá trị của thuộc tính (attribute) k (k=1, 2, …, p) của tình huống thử nghiệm i (i=1, 2, …, m), I’jk là giá trị của thuộc tính (attribute) k (k=1, 2, …, p) của tình huống đầu vào j (j=1, 2, …, n).
Các trọng số (weights) của các thuộc tính wk (k=1, 2,…, p) được bố trí ở đầu ma trận dưới dạng hàng. Cách để xác định trọng số này được trình bày ở bước 3. Sau khi định dạng xong, thêm giá trị cụ thể của những thuộc tính của các tình huống, giá trị này có 2 dạng: số (numerical) hoặc phân loại (categorical).
1 A B C D E F
2 Weights w1 w2 w3 … wp
3 Case No.
4 1 2 3 … p
5 Case 1 I11 I12 I13 … I1P
6 Case 2 I21 I22 I23 … …
7 … …
8 Case m Im1 Im2 Im3 … Imp
9 Case No.
10 1 2 3 … p
11 Case 1 I'11 I'12 I'13 … I'1P
12 Case 2 I'21 I'22 I'23 … …
13 … …
14 Case n I'n1 I'n2 I'n3 … I'np
15
TEST CASEBASE Attributes
INPUT CASEBASE Attributes
Hình 3. 3: Định dạng và tổ chức dữ liệu thành một bảng tính.
Bước 2: Tính toán độ tương đồng của thuộc tính (Calculating attribute similarities)
Trong nghiên cứu này, điểm tương đồng của thuộc tính được xác định dựa vào giá trị của thuộc tính. Theo Sang-Yong Kim & ctg [2]. Giá trị của thuộc tính có 2 dạng: số (numerical) và phân loại (categorical). Đối với thuộc tính có giá trị dạng phân loại, khi hai giá trị của thuộc tính giống hệt nhau thì Sijk = 1, nếu khác Sijk = 0 (3.4). Đối với giá trị dạng số, được xác định theo công thức sau :
ij
min ,
max ,
TestCase InputCase k
TestCase InputCase
I I
S I I (3.5)
Trong đó:
- ITestCaselà giá trị thuộc tính của tình huống mới cần tìm lời giải;
- IInputCaselà giá trị thuộc tính của tình huống trong kho CSDL;
Áp dụng vào bảng tính CBR như sau:
HVTH: Lê Xuân Khánh (13080026) Trang 21 Hàm tương đồng của các thuộc tính dùng để xác định giá trị tương đồng của thuộc tính với nhau. Độ tương đồng của các thuộc tính được xác định dựa vào giá trị thuộc tính của tình huống thử nghiệm và giá trị từng thuộc tính của các tình huống được truy xuất từ CSDL. Ví dụ tính toán độ tương đồng của dữ liệu dạng số (numerical) và phân loại (categorical) của thuộc tính được trình bày trong Hình 3.3. Độ tương tự của thuộc tính được kí hiệu Sijk. Trong đó: i là các tình huống thử nghiệm (i=1, 2, …,m), j là các tình huống đầu vào (j=1, 2, …, n) và k là thuộc tính (k=1, 2, …, p).
Giả thiết rằng: giá trị của thuộc tính đầu tiên ứng với tình huống thử nghiệm đầu tiên là I11 (ở ô B5 trong Hình 3.3) có dạng là phân loại, tương ứng thì giá trị của thuộc tính đầu tiên ứng với tình huống đầu vào đầu tiên là I’11 (ở ô B11 trong Hình 3.3) cũng có dạng là phân loại thì độ tương tự của thuộc tính trong 2 tình huống được tính như sau: Nếu I11 giống với I’11 thì S111=1, nếu I11 khác với I’11 thì S111=0.
Giả thiết rằng: giá trị của thuộc tính thứ 3 ứng với tình huống thử nghiệm đầu tiên là I13 (ở ô D5 trong Hình 3.3) có dạng là số, tương ứng thì giá trị của thuộc tính thứ 3 ứng với tình huống đầu vào đầu tiên là I’13 (ở ô D11 trong Hình 3.3) cũng có dạng là số thì độ tương tự của thuộc tính trong 2 tình huống được tính như đã nêu ở mục 3.2.3.4.2 theo công thức (3.5). Chi tiết tính toán cụ thể được trình bày trong Hình 3.4:
1 J K L M N O
2 Input Case No. Attributes
3 1 2 3 … p
4 Case 1
S111 S112 S113 … S11P
5 Case 2 S122 … S12P
6 … … … … … …
7 8 9 10 11 12 13
14 Case n S1n1 S1n2 S1n3 … S1nP
15
Hình 3. 4: Tính toán độ tương tự của thuộc tính của Test Case với từng Input Case.
Bước 3: Thiết lập những trọng số của các thuộc tính (Establishing attribute weights)
HVTH: Lê Xuân Khánh (13080026) Trang 22 Trọng số của các thuộc tính được xác định bằng phương pháp giải thuật di truyền (Genetic Algorithm - GA).
o Giới thiệu giải thuật di truyền
Giải thuật di truyền đã được đề cập trong rất nhiều tài liệu, trong đó có các công trình của D.E. Goldberg [15] và Thomas Back [16]. Phần này chỉ trình bày các khái niệm căn bản của giải thuật di truyền cũng như khả năng ứng dụng của nó.
Từ trước đến nay, trong các nghiên cứu và ứng dụng tin học đã xuất hiện nhiều bài toán chưa tìm ra được phương pháp giải nhanh và hợp lý. Phần lớn đó là các bài toán tối ưu nảy sinh trong các ứng dụng. Để giải các bài toán này người ta thường phải tìm đến một giải thuật hiệu quả mà kết quả thu được chỉ là xấp xỉ tối ưu. Trong nhiều trường hợp chúng ta có thể sử dụng giải thuật xác suất, tuy không bảo đảm kết quả tối ưu nhưng có thể chọn các giá trị sao cho sai số đạt được sẽ nhỏ như mong muốn.
Theo lời giải xác suất, việc giải bài toán quy về quá trình tìm kiếm trên không gian tập hợp các lời giải có thể. Tìm được lời giải tốt nhất và quá trình được hiểu là tối ưu.
Với miền tìm kiếm nhỏ, một số thuật toán cổ điển được sử dụng. Tuy nhiên đối với các miền lớn, phải sử dụng các kỹ thuật trí tuệ nhân tạo đặc biệt, giải thuật di truyền là một trong những công cụ đó. Ý tưởng của GA là mô phỏng những gì mà tự nhiên đã thực hiện. GA hình thành dựa trên quan niệm cho rằng: quá trình tiến hoá tự nhiên là quá trình hoàn hảo nhất, hợp lý nhất và tự nó đã mang tính tối ưu.
Giải thuật di truyền áp dụng quá trình tiến hóa tự nhiên để giải các bài toán tối ưu trong thực tế (từ tập các lời giải có thể ban đầu thông qua nhiều bước tiến hóa hình thành các tập hợp mới với lời giải tốt hơn và cuối cùng sẽ tìm được lời giải gần tối ưu) [16].
Những vấn đề căn bản được đặt ra là: Áp dụng di truyền tự nhiên vào giải thuật di truyền như thế nào? Cách biểu diễn tập hợp các lời giải ra sao? Chúng ta sẽ tìm hiểu chi tiết vấn đề này trong phần tiếp theo.
Tư tưởng chính của giải thuật di truyền
“Giải thuật di truyền là một loại thuật toán mô phỏng các hiện tượng tự nhiên: kế thừa và đấu tranh sinh tồn để cải tiến lời giải và khảo sát không gian lời giải.
Khái niệm kế thừa và đấu tranh sinh tồn được giải thích qua ví dụ về sự tiến hoá của một quần thể thỏ như sau:
Có một quần thể thỏ. Trong số đó có một số con nhanh nhẹn và thông minh hơn những con khác. Những chú thỏ nhanh nhẹn và thông minh có xác suất bị chồn, cáo ăn thịt nhỏ hơn, do đó chúng tồn tại để làm những gì tốt nhất có thể: tạo thêm nhiều thỏ tốt. Dĩ nhiên, một số thỏ chậm chạp, đần độn cũng sống chỉ vì may mắn. Quần thể những chú thỏ còn sống sót sẽ bắt đầu sinh sản. Việc sinh sản này sẽ tạo ra một hỗn hợp tốt về “nguyên liệu di truyền thỏ”: Một số thỏ chậm chạp có con với những con thỏ nhanh, một số thỏ nhanh với thỏ nhanh, một số thỏ thông minh với thỏ đần độn,…
Và trên tất cả, thiên nhiên thỉnh thoảng lại ném vào một con thỏ “hoang dã” bằng cách làm đột biến nguyên liệu di truyền thỏ. Những chú thỏ con, do kết quả này sẽ nhanh hơn và thông minh hơn những con trong quần thể gốc vì có nhiều bố mẹ nhanh nhẹn và thông minh hơn đã thoát chết khỏi chồn, cáo. (Thật hay là những con chồn cáo cũng trải qua những tiến trình tương tự, nếu không những con thỏ sẽ trở nên nhanh chóng và thông minh đến nỗi những con chồn, cáo không thể bắt chúng được)” [25].