Monday, August 4, 2008

Developing bioinformatics computer skills - 14.7

14.7 Khai khóang dữ liệu và thông tin sinh học

Một trong những lĩnh vực hứng thú nhất của sinh học hiện đại là việc ứng dụng khai khoáng dữ liệu vào các cơ sở dữ liệu sinh học. Rất nhiều phương pháp trong số này cũng đồng thời rơi vào lĩnh vực máy học (máy học - tên gọi phổ biến trong lĩnh vực trí tuệ nhân tạo, chỉ các chương trình thay đổi dần hoạt động để thích nghi với dữ liệu được tiếp xúc). Ở đây giới thiệu tóm tắt một vài phương pháp đã xuất hiện gần đây trong những công trình liên quan đến tin - sinh học. Danh sách này chưa đầy đủ, nhưng cũng hy vọng tạo một điểm xuất phát để bước vào lĩnh vực đang phát triển này.

Xin lưu ý rằng: cách nói nhân cách hóa đã thâm nhập khá sâu vào lĩnh vực khai khoáng dữ liệu và máy học. Tuy nhiên, không có gì bí ẩn ở đây. Các chương trình 'học' hay 'được huấn luyện', chỉ có nghĩa là chúng tuân theo những bộ lệnh được định nghĩa rõ ràng. Cũng như với bất kì công cụ nào được giới thiệu trong quyển sách này, công cụ khai khoáng dữ liệu chỉ nhằm hỗ trợ, chứ không thay thế, cho kiến thức và trực giác của con người. Không có chương trình nào đủ thông minh đến mức có thể lấy vào một mớ dữ liệu thô rồi phát sinh ra những kết quả thú vị và có đủ chất lượng để công bố trên tạp chí khoa học. Như đã nhấn mạnh , việc tạo ra những câu hỏi có ý nghĩa, thiết kế thí nghiệm và diễn giải kết quả hoàn toàn là trách nhiệm của bạn.

14.7.1 Các vấn đề trong khai khoáng dữ liệu và máy học

Các chủ để khai khóang dữ liệu đã được các nhà thống kê học và toán học ứng dụng nghiên cứu trong nhiều thập kỷ. Chính vì vậy, ranh giới giữa thống kê và khai khoáng dữ liệu trở nên cực kỳ mờ nhạt. Nếu bạn làm việc với các kỹ thụât khai khoáng dữ liệu hay phương pháp máy học, bạn sẽ muốn đào sâu vào các kỹ thuật thống kê cổ điển. Nếu vấn đề của bạn có thể giải quyết bằng thuật tóan khai khoáng dữ liệu mới nhất hay một phép tính thống kê đơn giản, rất có thể bạn sẽ chọn phép tính đơn giản. Tương tự như vậy, hãy tránh bị cám dỗ bởi việc tự thiết lập các phương pháp tính điểm của riêng bạn trước khi tham khảo một quyển sách thống kê để xem liệu một phương pháp thích hợp đã có hay chưa. Trong cả hai trường hợp, sẽ dễ dàng hơn cho bạn khi tìm lỗi cũng như khi lý giải lựa chọn của bạn đối với người cộng tác.

14.7.1.1 Máy học có-hướng-dẫn và không-hướng-dẫn

Các phương pháp máy học có thể được chia thành 2 nhóm lớn: học có-hướng-dẫn và không-hướng-dẫn. Học có-hướng-dẫn là trường hợp một thuật toán máy học được đưa vào các dữ liệu mẫu đã gắn nhãn đúng để làm dữ liệu luyện, và được kiểm tra bằng các mẫu chưa gắn nhãn. Học không-hướng-dẫn là trường hợp chỉ cung cấp dữ liệu mà hòan tòan không có thêm thông tin gì về dữ liệu. Mục tiêu của thuật toán là tìm ra các mô hình chung hoặc các xu hướng của dữ liệu, nhằm hỗ trợ cho việc hiểu dữ liệu. Ví dụ như chương trình MEME giới thiệu trong chương 8 là một chương trình học không-hướng-dẫn, mục tiêu tìm ra các motif trình tự từ những trình tự chưa được sắp gióng, tức là trong điều kiện không rõ trình tự có dạng chung hay không, xác định xem dạng chung nằm ở đâu và như thế nào.

Phân tích cluster là một dạng khác của máy học không-hướng-dẫn. Phương pháp này đã được chú ý trong lĩnh vực phân tích dữ liệu microarray. Clustering là một thủ tục phân loại dữ liệu sao cho các thành phần giống nhau nằm trong cùng một nhóm, trong điều kiện chưa biết thực tế có những nhóm như thế nào. Đây là một phương pháp chuẩn để làm việc với dữ liệu đa chiều.

14.7.2 Một số phương pháp khai khoáng dữ liệu

Trong phần này, chúng tôi mô tả một số phương pháp khai khoáng dữ liệu thường được báo cáo trong các tài liệu tin - sinh học. Mục tiêu của phần này là tóm lược các kỹ thuật phức tạp dùng trong phân tích dữ liệu. Chúng tôi không mong bạn có thể cài đặt các thuật toán này bằng cách sử dụng một ngôn ngữ lập trình nào đó. Tuy nhiên, nếu bắt gặp bất cứ phương pháp nào trong số này được sử dụng trong một báo cáo khoa học, bạn sẽ có thể nhận ra phương pháp và nếu cần, có thể đánh giá cách chúng được áp dụng. Cũng như bất kì kỹ thuật nào trong sinh học thực nghiệm, quan trọng là bạn phải hiểu những phương pháp máy học để biết được chúng có được áp dụng hợp lý và đúng đắn hay không.

14.7.2.1 Cây quyết định

Ở dạng đơn giản nhất, một cây quyết định là một loạt các câu hỏi có-không được sắp xếp phân cấp để dẫn đến một quyết định. Ví dụ, để quyết định liệu một đoạn DNA có phải là gene hay không, chúng ta sẽ cần một cây quyết định giống như trong hình 14.6.

Một cây quyết định như thế này rất dễ chạy, vì chúng có một số xác định các khả năng tại mỗi điểm nhánh, và mọi con đường đi qua cây đều đưa đến một quyết định. Cấu trúc cây và các quy luật tại mỗi nhánh được xác định từ dữ liệu, bằng thuật toán máy học. Phương pháp luyện một cây quyết định được mô tả bởi Leo Breiman và đồng sự vào đầu những năm 1980, sau trở nên phổ biến nhờ J. R. Quinlan, tác giả của phần mền C4.5 miễn phí và C5 - những phần mềm chuẩn mực trong lĩnh vực cây quyết định.

Một ưu điểm chính của cây quyết định là chúng tạo ra các kết quả mà con người có thể diễn giải được. Đây là một đặc điểm quan trọng, vì các chuyên gia có thể nhìn vào một cây quyết định và đánh giá liệu một mô hình đã học có đúng trong các điều kiện thực hay không. Trong sinh học có xu hướng các hàm phân loại dạng cây trong các vấn đề tìm mẫu chung (pattern regconition), ví dụ như tìm các vị trí splice của gene, xác định họ cho các protein chưa được phân loại. MORGAN genefinder được phát triển bởi Steven Salzberg và đồng sự là một ví dụ vế ứng dụng cây quyết định trong tìm kiếm gene.

14.7.2.2 Mạng neuron

Mạng neuron là mô hình thống kê sử dụng trong pattern regconition và phân loại. Được phát triển đầu tiên vào năm 1940 như một mô hình toán học của trí nhớ, mạng neuron đôi khi còn được gọi là mô hình kết nối, vì chúng được biểu diễn bằng các node (thường là các biến) được nối với nhau bằng các hàm có trọng số. Hình 14.7 thể hiện quá trình xây dựng một mạng neuron. Chú ý rằng, không có gì liên quan đến neuron trong mô hình này, các node và liên kết giữa chúng cũng không phải là thực thể vật lý. Ý tưởng đằng sau mạng neuron là, bằng cách làm việc phối hợp, các phần tử xử lý đơn giản có thể thực hiện được những phép tính phức tạp hơn.

Một mạng neuron bao gồm một tập hợp các node liên kết nhau theo một dạng hình học xác định, trong đó mỗi node đều có liên kết vào và liên kết ra đối với các node khác. Tổng quát, một mạng neuron sẽ nhận tín hiệu vào , thiết lập giá trị cho các node ở lớp đầu tiên; các giá trị này được phát tán nhờ các hàm chuyển (các liên kết) để đến lớp tiếp theo... cho đến khi chạm đến lớp tín hiệu ra. Dạng của tín hiệu ở lốp đầu ra chính là kết quả của mạng.

Mạng neuron được dùng rất nhiều trong các vấn đề sinh học, ví dụ như PHD, PSIPRED trong dự đoán cấu trúc bậc 2, GRAIL genefinder (chương 7).

14.7.2.3 Thuật toán di truyền

Thuật toán di truyền là thuật toán tối ưu hoá. Chúng tìm trong một lượng lớn các giải pháp khả dĩ để đưa ra giải pháp tốt nhất, trong đó 'tốt nhất' được xác định thông qua hàm chi phí hay hàm phù hợp. Cũng như mạng neuron, những mô hình nảy lấy cảm hứng từ các ý tưởng sinh học, nhưng hoàn toàn không có ý nghĩa sinh học bên trong. Trong thuật toán di truyền, một số lượng các giải pháp ứng cử được phát sinh ngẫu nhiên. Những giải pháp ứng cử này được xem như các nhiễm sắc thể. Những phần trên mỗi nhiễm sắc thể được trao đổi tương tự như tái tổ hợp ở nhiễm sắc thể thật. Chiến lược tái tổ hợp cuối cùng được đánh giá bằng hàm phù hợp, và những nhiễm sắc thể có điểm cao nhất sẽ được nhân lên qua thế hệ kế tiếp. Sự tái tổ hợp và nhân lên như vậy được lặp lại liên tục cho đến khi một giải pháp khá tốt được tìm thấy. Thuật toán di truyền thường được sử dụng trong mô phỏng phân tử, chẳng hạn như docking va gấp cuộn protein.

14.7.2.4 Support vector machine

Cuối 1998, một công cụ máy học gọi là SVM bắt đầu thu hút khá nhiều sự chú ý từ phía tin - sinh học. SVM được phát triển bởi Vladimir Vapnik, thuộc phòng thí nghiệm Bell Lab, và đã được ứng dụng trong nhiều vấn đề, từ nhận diện các ký tự quang cho đến phân tích tài chính và nhận diện spam. SVM được ứng dụng vào các vấn đề sinh học lần đầu tiên bởi Tommi Jaakola (hiện thuộc MIT), David Haussler và đồng sự tại UC Santa Cruz, trong việc phân loại trình tự protein. Từ đó chúng được ứng dụng trong nhiều vấn đề khác của tin - sinh học (dự đoán chức năng, dự đoán cấu trúc, tìm kiếm gene), nhưng được chú ý nhiều nhất là trong lĩnh vực phân tích microarray.
SVM là các hàm phân loại có-hướng-dẫn, nhằm mục tiêu tìm một phân cách tuyến tính giữa các nhóm điểm trong không gian đa chiều. Trong không gian 2 chiều, phân cách này là 1 đường thẳng; trong không gian 3 chiều là mặt phẳng. Tổng quát, mặt phân cách này được gọi là một siêu phẳng. SVM có hai đặc điểm: (1) Không chỉ tìm ra siêu phẳng phân cách, chúng còn đảm bảo tìm ra siêu phẳng tối ưu, tức là siêu phẳng mà vị trí của nó tạo ra sự phân cách lớn nhất giữa hai nhóm. Các điểm dữ liệu nằm gần biên giới nhất gọi là các support vector; (2) dù SVM là hàm phân loại tuyến tính, chúng có thể phân loại các điểm dữ liệu không tuyến tính bằng cách chuyển các điểm dữ liệu vào không gian nhiều chiều hơn.

No comments: