Thuật toán cây tự tổ chức SoT

Một phần của tài liệu Các thuật toán phân cụm dữ liệu và ứng dụng trong phân loại protein (Trang 48 - 55)

CHƯƠNG 2. CÁC THUẬT TOÁN PHÂN CỤM

2.6. Thuật toán cây tự tổ chức SoT

Ý tưởng chính của cây tự tổ chức SoT là bổ sung thêm chiều phân cấp vào mạng SOM (Self- Organizing- Maps) (Hình 2.9), nghĩa là tạo ra tập các cây đƣợc tổ chức theo một cấu trúc topo nào đó. Mạng vẫn bảo toàn cấu trúc topo trong quá trình phân cụm dữ liệu theo phân cấp. Các nút (đỉnh) trên cây SoT tương ứng với dữ liệu đầu vào. Thuật toán được đề xuất ở đây để phát hiện các cụm và biểu diễn chúng dưới dạng các cấu trúc

40

topo phân cấp. Mỗi cây ở đây không chỉ là một cụm mà một cây con của một nhánh nào đó còn là một cụm con tương ứng.

(a) Mạng SOM (b) Cấu trúc topo và phân cấp: SoT Hình 2.9. Kiến trúc khác nhau giữa SOM và SoT

Trong cấu trúc topo và phân cấp, độ tương tự giữa các cặp dữ liệu được thể hiện thông qua các liên kết (links) phân cấp, còn khoảng cách giữa các cụm phụ thuộc vào liên kết topo.

Ta ký hiệu:

+ xi là đối tƣợng dữ liệu đầu vào hoặc vector đặc trƣng và nút của cây.

+ Cụm, nút mạng Ci và nguyên mẫu wi.

+ Cỡ của lưới (grid) W được ký hiệu là K = p * q, được cho trước.

Với mỗi nút Ck W được liên kết tương ứng với nguyên mẫu được biểu diễn là treek. Nhƣ vậy, sau khi khởi tạo, chúng ta sẽ có K cây trên mạng.

Với mỗi cặp treec và treer trên W, mối tương tác giữa chúng được định nghĩa bằng

KT (δ(Cc, Cr)) = exp(−δ(Cc,Cr)/T). (3.1)

Dựa vào công thức (3.1) để viết lại hàm phí tổn mới theo công thức (3.2) dưới đây.

R( , W) =

K

c i tree K

r

r i r x T

c

i C x w

subtree K

1 1

||2

||

)) ), (

( (

(3.2)

41 Trong đó, là hàm đƣợc xác định nhƣ sau:

(3.3)

subtreexichứa xi và tất cả các nút của cây được liên kết đệ qui với xi. Lưu ý rằng, dữ liệu trong cây con này là tương tự nhau và được thực hiện theo luật tự tụ tập. Đây chính là ƣu thế để giảm độ phức tạp của thuật toán. Bổ đề sau cho phép phân cụm đồng thời các đối tƣợng dữ liệu thành các nhóm.

Bổ đề 3.1

(3.4) Chứng minh. Giả thiết d(xi, Cc) là khoảng cách từ xi đến wc và giả sử Cc =

)

(xi , chúng ta sẽ có d(xi, Cc) < d(xi, Ck), k = 1, 2, …, K.

Bởi xj

xi

subtree nên xi và xj là tương tự nhau (trong cùng một cụm), và do vậy khoảng cách của chúng là bằng 0, nghĩa là lim

j i

x x d(xi, xj) = 0.

Vậy, ta có: d(xj, Cc) d(xj, xi) + d(xi, Cc) < d(xi, Ck) + d(xj, xi) d(xj, Ck)

) (xi

= Cc hoặc (xj)= (xi)= Cc.

Tiếp theo chúng ta sử dụng luật tự tụ tập đƣợc nêu trong thuật toán AntTree cho các mô hình topo, bao gồm cả SOM. Trong quá trình học, các trạng thái nút của cây có thể đƣợc thực hiện kết nối với nhau hoặc tách ra tùy thuộc vào các luật tương ứng. Mỗi nút của cây có thể ở một trong ba trạng thái sau:

1. Bắt đầu: Trạng thái mặc định trước khi huấn luyện;

2. Kết nối: Nút của cây hiện thời đƣợc kết nối với nút khác;

42

3. Tách ra: Nút của cây đã đƣợc kết nối ít nhất một lần và hiện tại lại đƣợc tách ra.

Thuật toán SoT

Input: K nguyên mẫu các đối tƣợng dữ liệu Output: Cây phân cụm các đối tƣợng dữ liệu

1. Khởi tạo K nguyên mẫu

2. while (Điều kiện dừng chƣa thỏa) do 3. Khởi tạo danh sách list;

4. while(list != ỉ) do

5. xi là phần từ đầu tiên trong list;

6. c = (xi) // Tìm ra nút mạng phù hợp nhất 7. if(xi là giá trị ban đầu)

8. treec = constructTree(treec, xi) ; //Kết nối xi vào treec

9. else

10. subtreexi = {xi và tất cả các nút đƣợc kết nối đệ qui và tạm thời với xi};

11. if(xi đã tách ra)

12. tree = constructTree(treec,

xi

subtree ); //Kết nối xi hoặc

xi

tree vào treec

13. else if(xi đƣợc kết nối và c cold ) 14.

xi

subtree = ngắt kết nối

xi

subtree khỏi

cold

subtree ;

15. treec= construct(treec, subtreexi ); // kết nối treec với

xi

subtree

16. endif 17. endif

18. if( xi không đƣợc kết nối)

43

19. list = {list, xi}; // Đƣa xi vào cuối danh sách list 20. else

21. list = list \ subtreexi ; //loại bỏ

xi

subtree khỏi danh sách list 22. endif

23. endwhile

24. for c = 1 to K do

25. ;

26. end while

list ký hiệu danh sách các nút của cây. Trước khi huấn luyện, list chỉ chứa những nút của cây ban đầu, và khi một nút của cây đƣợc kết nối thì ngay lập tức nó đƣợc xóa khỏi danh sách list, nhƣng ngƣợc lại, khi một nút của cây và các con của nó bị tách ra thì lại đƣa chúng vào danh sách list.

Thuật toán SoT thực hiện ba bước chính:

1. Phân việc (Assignment). Từ các công thức (3.2) và (3.3) suy ra có hai trường hợp phân việc tách biệt:

a. Đối với một đối tƣợng đơn xi thì có thể xem nó nhƣ là một cây con có một nút (đỉnh). Khi đó có thể xi là nút khởi tạo (dòng lệnh 6.) hoặc nút tách ra (dòng lệnh 11.). Công việc đƣợc phân theo công thức:

b. Đối với cây con

xi

subtree (cây con có xi là gốc) sẽ phân việc theo công thức (3.2) thực hiện ở dòng lệnh 13.

44

Hình 2.10. Phân việc từ cây

cold

tree cho treec

Hình trên thể hiện việc nhiều nút của cây đƣợc phân việc đồng thời. Sau lần cập nhật lần cuối, subtreex có 3 nút con vi phạm và cần phải tách ra, không đƣợc liên kết tiêp với

cold

tree . Chúng ta cần xác định cây treec sánh tốt nhất với nút x của cây theo hàm (subtreex).

2. Kiến thiết cây (Tree construction). Bước này được thực hiện theo hàm constructTree() bằng cách sử dụng các luật nhƣ ở thuật toán AntTree.

Hàm này tìm vị trí tốt nhất trong cấu trúc cây để liên kết nút xi. Một cây con có thể được tái liên kết nếu trước đó nó đã bị tách ra. Việc tách ra các nút của cây xảy ra 2 trường hợp phân biệt:

a. Phân việc cho những nút bị tách ra (Dòng lệnh 14.),

b. Tách ra nút của cây theo Rule 2 (Dòng lệnh 7. trong thuật toán AntTree).

Hình 2.11. Tách subtreex khỏi cây

cold

tree và đƣa vào list

45

Khi một nút của cây đƣợc tách ra khỏi một cây thì phải kiểm tra xem có những nút con khác hay không ở trong

xi

subtree . Nếu có thì phải tách tất cả các nút đó. Hình 2.11 mô tả cách tách một nhóm các nút (cây con). Cho trước

cold

tree , cây con x có 3 nút vi phạm và cần phải tách ra khỏi cây. Khi đó, tất cả các nút đƣợc liên kết với x (2 nút con của x) cũng cần phải tách ra khỏi cây. Do vậy, cây con x sẽ đƣợc tách ra và đƣa vào danh sách list. Sau khi bị tách ra, những nút này sẽ đƣợc liên kết lại vào cây theo hàm constructTree(). Giả sử ở thời điểm hiện thời, xi cần liên kết, thì tất cả các nút con của nó cũng sẽ đƣợc liên kết lại theo luật tụ tập. Nhƣ trên Hình 2.11, sau lần đƣợc phân việc, x sẽ đƣợc liên kết với treec. Dẫn đến là cả cây con của x cũng sẽ được liên kết vào treec và kết quả là như ở dưới đây.

Hình 2.12. Tái liên kết subtreex vào treec

3. Cập nhật (Update). Bước này cần thực hiện để xác định những nguyên mẫu mới. Để cập nhật các vector nguyên mẫu, chúng ta sử dụng giống nhƣ thuật toán Batch SOM.

Bổ đề 3.2. Thuật toán SoT có độ phức tạp tính toán θ(NiterN log N), trong đó Niter là số lần lặp tổng thể để quá trình học kết thúc.

Chứng minh. SoT thực hiện Niter vòng lặp để thỏa mãn điều kiện dừng của thuật toán. Trong mỗi lần lặp, đều thực hiện 3 bước: phân việc, kiến thiết

46

cây và cập nhật. Số các bước phân việc được thực hiện ngay từ đầu và giảm dần theo cấu trúc của cây (các nút của cây con đƣợc phân việc sau nút gốc), để giảm thời gian thực hiện. Để huấn luyện xong N đối tƣợng và ra khỏi vòng lặp thứ hai (Dòng lệnh 4.), thì cần phải thực hiện NlogN phép toán.

Đó chính là độ phức tạp tính toán của thuật toán AntTree [5].

Một phần của tài liệu Các thuật toán phân cụm dữ liệu và ứng dụng trong phân loại protein (Trang 48 - 55)

Tải bản đầy đủ (PDF)

(82 trang)