Phân tích tính chất điện tử của hợp chất đa vòng thơm bằng thuật toán học máy

MỤC LỤC

GIỚI THIỆU

“học” được dữ liệu từ các tính toán chất lượng cao, và do đó, có thể đạt được độ chính xác của các mô hình này với khoảng sai số tương đối.[7, 8] Điều này khiến cho các công cụ ML/AI trở thành các công cụ xây dựng mô hình tiềm năng cho việc sàng lọc cấu trúc hóa học.[9]. Luận văn này sẽ tiếp nối những công trình trước của tác giả và nhóm nghiên cứu[1- 4] về việc xây dựng mô hình dự đoán tính chất điện tử bao gồm band gap, electron affinity (EA), và ionization potential (IP) cho các hợp chất đa vòng thơm bao gồm PAH, thienoacenes, và dẫn xuất có nhóm thế của PAH.

Hình 1.1. Hình minh họa cho chiến thuật sàng lọc theo dạng phễu.[6]
Hình 1.1. Hình minh họa cho chiến thuật sàng lọc theo dạng phễu.[6]

PHƯƠNG PHÁP THÍ NGHIỆM

Cơ sở lý thuyết phương pháp Weisfeiler-Lehman kernel

    Lấy ví dụ ở hình, nếu như ta chỉ xem xét tính chất phân tử lần lượt bao gồm số hiệu nguyên tử (là số tự nhiên), điện tích (là số nguyên), tổng số nguyên tử hydrogen gắn trên nguyên tử (là số tự nhiên), nguyên tử có thuộc vòng thơm (là 1 hoặc 0) và vòng (là 1 hoặc 0), list thông tin nguyên tử và nhãn khởi tạo cho từng nguyên tử được cho ở bảng III.1. Phương pháp Weisfeiler-Lehman Graph Kernel là phương pháp kernel cho graph dựa trên thuật toán WL.[58] Ý tưởng chung của phương pháp WL graph kernel là sử dụng nhãn của node-nguyên tử tạo bởi thuật toán WL nhằm tính toán sự tương đồng của 2 graph-phân tử. Phương pháp Atom, Bond-based Weisfeiler-Lehman (WL-AB) được giới thiệu ở đây sẽ bổ sung thông tin này bằng cách “dán nhãn” các liên kết dựa trên thông tin của cặp nguyên tử được liên kết và loại liên kết.

    Phương pháp Weisfeiler-Lehman kernel dựa trên khoảng cách liên nguyên tử (WL- AD viết tắt cho Atom, distance-based Weisfeiler-Lehman graph kernel) sẽ đếm số cặp nguyên tử có cùng loại và khoảng cách tương tự như phương pháp đếm số liên kết theo loại của WL-AB ở trên. Các graph phân tử sẽ được biến đổi thành các vector 𝜙𝑊𝐿−𝐴, 𝜙𝑊𝐿−𝐴𝐵, hay 𝜙𝑊𝐿−𝐴𝐷 tùy theo phương pháp WL kernel sử dụng là phương pháp WL kernel theo nguyên tử, theo liên kết, hay theo chiều dài liên kết. Tuy không có khả năng học các hàm phí tuyến, phương pháp có sử dụng mô hình hồi quy tuyến tính lại cho ta khả năng xác định sự đóng góp của các nguyên tử trong phân tử vào giá trị dự đoán bởi mô hình cho phân tử đó.

    Hình 3.1. Các phân tử ví dụ cho thuật toán WL và các phương pháp WL kernel.
    Hình 3.1. Các phân tử ví dụ cho thuật toán WL và các phương pháp WL kernel.

    Ngôn ngữ lập trình và thư viện sử dụng

      Dữ liệu trong pandas được chứa trong các DataFrame, là các bảng dữ liệu gồm nhiều cột (column) và hàng (row). Bên cạnh việc cung cấp DataFrame nhằm chứa dữ liệu, pandas cũng cung cấp các công cụ để “làm sạch” dữ liệu như giải quyết các hàng hay cột dữ liệu thiếu dữ liệu, tính toán các giá trị thống kê như trung vị, điểm tứ phân vị,. Matplotlib là một thư viện chuyên về các công cụ cho việc vẽ đồ thị chất lượng cao.

      Scikit-learn (Sklearn) là một thư viện mã nguồn mở bao gồm các mô hình machine learning phổ biến và công cụ khác nhau cho việc xây dựng mô hình machine learning. Việc sử dụng mô hình machine learning từ thư viện này là rất đơn giản và chỉ gồm từ 3 dòng lệnh trở lên, bao gồm gọi mô hình, gọi fit để huấn luyện mô hình, và gọi predict để lấy dự đoán từ mô hình đã huấn luyện hay gọi score để lấy sai số/ độ chính xác cho dự đoán của mô hình. Thư viện cũng cung cấp công cụ cho việc tối ưu hyperparameters của mô hình thông qua k-cross validation có tên.

      Dữ liệu và phương pháp thu thập dữ liệu

      Cho mỗi thi nghiệm, các bộ dữ liệu trên sẽ được chia thành training set và test set với tỉ lệ số phân tử là 7:3. Việc chọn mẫu cho các bộ dữ liệu kể trên cũng như chia dữ liệu training set và test set sẽ được thực hiện một cách ngẫu nhiên. Bên cạnh đó, quá trình chia dữ liệu cho training set và test set sẽ được thực hiện sao cho phân bố giá trị band gap cho 2 bộ dữ liệu này là giống nhau bằng phương pháp đã được miêu tả ở một công trình trước đó.[3] Việc này có thể được thực hiện bằng các chia bộ dữ liệu tổng thành các nhóm (bin) phân tử có band gap nằm trong các khoảng 1.5-2.0eV, 2.0-2.5eV,.

      Minh họa cho một số phân tử PAH có gắn nhóm thế cyano (PAH-CN). Minh họa cho một số phân tử PAH có gắn nhóm thế nitro (PAH-NO2).

      Hình 3.3. Phân phối các lớp phân tử cho tất cả ba bộ dữ liệu.
      Hình 3.3. Phân phối các lớp phân tử cho tất cả ba bộ dữ liệu.

      Xây dựng mô hình và lập trình

        Ở đây, graph phân tử là 3 list: 1/ danh sách gồm tính chất của các node - nguyên tử trong phân tử, 2/ danh sách gồm edge - liên kết, và 3/ danh sách gồm danh sách của các nguyên tử có liên kết cho mỗi nguyên tử trong phân tử. Để chuyển danh sách nhãn sang vector, ta sẽ thực hiện 2 bước: 1/ Sử dụng công cụ Counter có sẵn trong Python – là một cấu trúc dữ liệu dictionary có dạng {nhãn: số lần xuất hiện trong list} - để đếm số lượng xuất hiện của từng nhãn nguyên tử/ liên kết/ khoảng cách cho mỗi phân tử, 2/ sử dụng cấu trúc dữ liệu set của Python – là một cấu trúc dữ liệu dạng mảng nhưng trong set, mỗi thành phần chỉ xuất hiện đúng 1 lần – để xác định tất cả các nhãn duy nhất rồi từ đó gán cho mỗi nhãn một index (chỉ số) để xây dựng vector, 3/ cho mỗi phân tử xây dựng vector mà trong đó thành phần thứ i sẽ là số lượng nguyên tử có nhãn ứng với nhãn có index (chỉ số) i ở bước 2. Đa phần các thuật toán trong thư viện này được cung cấp ở dạng một object (vật thể) trong Python và có nhiều method (hàm) được cung cấp trong các object này cho tự động quá trình huấn luyện, đưa ra dự đoán, hay kiểm tra.

        Bên cạnh đó, việc tối ưu hóa các siêu tham số của mô hình machine learning có thể được thực hiện thông qua một công cụ tự động cung cấp bởi sklearn như GridSearchCV cho việc tối ưu giá trị siêu tham số thông qua phương pháp tìm kiếm theo lưới (Grid Search) nhằm tối thiểu hóa sai số cross-validation. Để tối ưu số vòng lặp của thuật toán Weisfeiler-Lehman, ta sẽ sử dụng vòng lặp for để tính sai số cross-validation cho mô hình với từng giá trị vòng lặp rồi dựa và đó lựa chọn số vòng lặp cho giá trị sai số cross-validation tốt nhất. Việc kiểm tra mô hình có thể được thực hiện dễ dàng bằng cách cho mô hình đưa ra dự đoán từ đầu vào X_test của tập dữ liệu kiểm tra, rồi sau đó áp dụng hàm Root Mean Square Deviation để tính sai số từ dự đoán Y_hat và “đáp số” của tập dữ liệu kiểm tra Y_test.

        Bảng 3.7: Code Python cho thuật toán Weisfeiler-Lehman cho các graph phân tử.
        Bảng 3.7: Code Python cho thuật toán Weisfeiler-Lehman cho các graph phân tử.

        KẾT QUẢ VÀ BÀN LUẬN

          Sự khác biệt này có thể được quy cho việc các vectơ bit ECFP chỉ ghi nhận sự hiện diện của các đoạn phân tử với 0 hoặc 1 bit, bỏ qua thông tin quan trọng về kích thước của phân tử, điều này quan trọng cho việc mô hình hóa các thuộc tính điện tử của PAH. Nói chung, các mô hình được huấn luyện với các tập huấn luyện được xây dựng theo giao thức active learning vượt trội so với các mô hình được huấn luyện trên các tập huấn luyện được xây dựng ngẫu nhiên trong hầu hết các trường hợp, mặc dù sự cải thiện trên sai số RMSD là không quá 0.01-0.03 eV. Đối với tập dữ liệu PAH đã được thay thế, giao thức active learning chỉ chứng minh sự ưu việt của mình đối với hai phương pháp graph kernel trong số ba (WL-A và WL-AB) và có hiệu suất tương đương với phương pháp còn lại.

          Sự xuất hiện của các nguyên tử được đánh dấu màu đỏ đậm hơn (các nguyên tử đóng góp giá trị âm hơn hơn) trong một phân tử tương quan với độ dài của mạch vòng thơm (mạch gồm các vòng thơm nối liền thẳng nhau) dài nhất của nó trong phân tử. Trong nghiên cứu trước đây của chúng tôi về mô hình dựa trên DPO, chúng tôi đã thảo luận chi tiết về vấn đề này.[1] Do tính chất điện tử của các phân tử thơm phụ thuộc rất nhiều vào tính phẳng của chúng, nên phương pháp WL-A, cũng như các phương pháp WL-AB và WL-AD khác, cũng gặp phải vấn đề này.  Code cho mô hình được bàn trong bài luận bao gồm thuật toán WL và phương pháp WL kernel, mô hình GPR hay RR, và thuật toán tự động tối ưu các siêu tham số của mô hình và thuật toán WL (số vòng lặp của thuật toán WL), tất cả trong 1 file pipeline.py.

          Hình 4.1. Đồ thị của logarithm bậc 10 của chiều dài của các vector ϕ cho các  phương pháp WL-A, WL-AB, và WL-AD theo số vòng lặp của thuật toán WL
          Hình 4.1. Đồ thị của logarithm bậc 10 của chiều dài của các vector ϕ cho các phương pháp WL-A, WL-AB, và WL-AD theo số vòng lặp của thuật toán WL