Notifications
Clear all

Predicting Molecular Properties : เมื่อ Molecular Chemistry พบกับ Machine Learning

2 ข้อความ
1 Users
0 Likes
4,442 Views
The Neural Engineer
(@neural-engineer)
Honorable Member Admin
เข้าร่วมเมื่อ: 7 years ago
ข้อความ: 409
Topic starter  

เมื่อ Molecular Chemistry พบกับ Machine Learning

สวัสดีครับเพื่อนๆ สัปดาห์นี้ขออนุญาตเล่าถึงอีกหนึ่งงานบูรณาการ Machine Learning เข้ากับงานวิจัยด้านวิทยาศาสตร์บริสุทธิ์ “Molecular Chemistry” ซึ่งเป็นการรวมกันของสองศาสตร์ที่น่าสนใจมากๆ และเป็นอีกหนึ่งโจทย์การแข่งขันบน Kaggle ที่เพิ่งจบไปสดๆ ร้อนๆ (30/8/2562) ซึ่งทีมงานของเราไม่ได้ร่วมแข่งในงานนี้ แต่เมื่อได้ทำความเข้าใจโจทย์และวิธีการแก้ปัญหาของ Top Teams ซึ่งได้เหรียญทองแต่ละทีมแล้วรู้สึกตื่นเต้นมาก เลยอยากจะนำมาแชร์ให้เพื่อนๆ เท่าที่พอจะมีความรู้ครับ และอาจเป็นไอเดียงานใหม่ๆ สำหรับเพื่อนๆ นักวิทยาศาสตร์ในบ้านเราที่สนใจจะประยุกต์ใช้ Machine Learning เข้ากับงานที่ทำอยู่ครับ

ดังนั้นเพื่อนๆ คนไหนมีเพื่อนเป็นนักฟิสิกส์หรือเคมี รบกวนฝากแชร์ด้วยนะคร้าบ

อนึ่ง ผู้เขียนเองไม่ได้มีความรู้ด้าน “เคมี” มากนัก ดังนั้นถ้าใช้ศัพท์ไม่ถูกต้อง ต้องขออภัยล่วงหน้า และสามารถ comment ช่วยแก้ไขได้เลยครับผม โดยอ้างอิงหลักๆ จากเว็บไซต์ของการแข่งขันนี้ครับ

https://www.kaggle.com/c/champs-scalar-coupling

(โจทย์นี้ออกแบบโดยทีมวิจัยจากมหาวิทยาลัย Imperial College, Bristol, Leeds และ Cardiff ซึ่งรวมกันภายใต้ชื่อกลุ่ม Chemistry and Mathematics in Phase Space)

 

โจทย์ใหญ่คือการทำความเข้าใจ Structure ของโมเลกุลต่างๆ

การทำความเข้าใจ Molecule Structure & Dynamics ว่ามีการเรียงตัวอย่างไรและมีการเปลี่ยนแปลงอย่างไรบ้างนั้นเป็นกุญแจสำคัญของ การคิดค้นตัวยาใหม่ๆ (Pharmaceutical Science) และการคิดค้นวัสดุประเภทใหม่ๆ ให้กับมนุษย์เรา (Material Science)

และการทำนาย Molecule Structure ที่ว่านี้ มี “หัวใจ” สำคัญอยุ่ที่การทำนาย “แรงแม่เหล็กระหว่างสองอะตอมในโมเลกุล” (Magnetic Interaction) หรือในทางเคมีเรียกว่า Scalar Coupling Constant ครับ ซึ่งขนาดของแรงแม่เหล็กนี้จะขึ้นกับอิเลกตรอนและพันธะเคมีของโมเลกุลนั้นๆ

เพื่อนๆ ที่เป็นนักฟิสิกส์หรือนักเคมีจะทราบดีว่าเจ้าแรงแม่เหล็กระหว่างอะตอมดังกล่าวนั้นในทางทฤษฎีเราสามารถคำนวนได้อย่างแม่นยำอยู่แล้วด้วย Quantum Mechanics โดยใช้สมการของชโรดิงเจอร์บน 3D molecular structure แต่ปัญหามีอยู่ว่าการคำนวนสมการดังกล่าวนั้นใช้เวลายาวนานมาก เมื่อโมเลกุลที่เราสนใจมีอะตอมหลักหลาย 10 อะตอมขึ้นไป บางครั้งใช้เวลาหลายสัปดาห์สำหรับการคำนวนแค่โมเลกุลเดียว!! ถ้าการประยุกต์ใช้ Machine Learning มาทำนายนี้สำเร็จ อาจจะคำนวนเสร็จภายในหลักวินาที!!

Machine Learning คือคำตอบ

จึงเป็นที่มาของการแข่งขันนี้สำหรับ Data/Machine Learning Scientists ทั่วโลกครับ โดยเพื่อให้คำนวนได้ในทางปฏิบัติ เราจะกลับมาใช้ Classical Model ที่สมมติว่าอะตอมเป็นบอลแข็ง และแรงระหว่างบอลนั้นกำหนดโดย Atomic Force Fields (หรือที่เรียกว่า Empirical Potentials)

โดยโจทย์จะกำหนด input มาให้ดังนี้ ในแต่ละโมเลกุล เราจะทราบว่า - มีอะตอมประเภทใดบ้าง (C H N O F) - แต่ละอะตอมอยู่ตำแหน่งใด (XYZ พิกัดมาตรฐานสำหรับนักเคมี) - ประเภทของ coupling สำหรับอะตอมแต่ละคู่ (1JHC 2JHC 3JHC 2JHH … - 1/2/3-bond coupling constants) - Scalar coupling constant หรือ “แรงแม่เหล็กระหว่างอะตอม” ที่เราต้องการทำนาย - ข้อมูลฝึกสอน 4.66 ล้านคู่อะตอม (training data) - ข้อมูลทดสอบ 2.51 ล้านคู่อะตอม (testing data)

นอกจากนี้จะมีข้อมูลเพิ่มเติมสำหรับข้อมูล training data เช่น dipole moments, magnetic shielding tensors, mulliken charges เป็นต้นครับ (ผู้เขียนเองก็ไม่มีความรู้ในเทอมเหล่านี้แต่ร่ายให้ครบเผื่อเป็นประโยชน์กับนักเคมีที่อาจจะนำข้อมูลไปใช้)

 

บทสรุปการแข่งขัน

เนื่องจากการแข่งขันนั้นจบสิ้นไปแล้ว เราจึงสามารถอ่าน Solutions ระดับเหรียญทองของการแข่งขันครั้งนี้ได้ทันทีเลยครับ โดยทั้ง 15 ทีมที่ได้เหรียญทอง (จาก 2,749 ทีมทั่วโลก) นั้นบางทีมก็มีนักเคมีอยู่ด้วยหลายคน ในขณะที่บางทีมมีเพียงผู้เชี่ยวชาญ Machine Learning และไม่ใช้ความรู้ด้านเคมีเลย

แต่ละ Solutions นั้นน่าตื่นเต้นและหลากหลายมาก เรียกได้ว่าแต่ละทีมที่ประกอบไปด้วยทั้งงัดอาวุธหนักที่เปี่ยมไปด้วยความคิดสร้างสรรค์มากมาย

 

1st, 2nd และ 3rd Places Solutions : Transformer is all you need!!

ที่น่าตกใจคือ อันดับ 1, 2 และ 3 นั้นมีไอเดียเหมือนกันโดยไม่ได้นัดหมาย โดยเป็นการประยุกต์ใช้ ”Transformer” สำหรับข้อมูลโมเลกุล ใช้แล้วครับ Transformer ซึ่งเป็นสุดยอด architecture สำหรับงานด้าน NLP แต่สามารถนำมาประยุกต์ใช้กับการทำนาย Coupling Constant ได้อย่างมหัศจรรย์ โดยน้อง Youhan Lee นักศึกษาปริญญาเอกด้านเคมีจากเกาหลีที่ได้อันดับ 3 นั้นได้เขียน Solution อย่างละเอียดไว้ เพื่อนๆ ที่สนใจกดดูได้ที่นี่ครับ

https://www.kaggle.com/c/champs-scalar-coupling/discussion/106572#latest-613948

(น้องคนนี้ร่วมแข่งในหลายๆ การแข่งขันกับทีมงานเรา และได้รับเหรียญทองเป็นครั้งแรกในงานนี้ ก็ขอแสดงความยินดีด้วยครับผม)

4th, 6th, 8th, 9th Graph Neural Networks

เนื่องจากเราสามารถมองพันธะระหว่างโมเลกุล ให้อยู่ในรูปของกราฟได้ หลายทีมจึงเลือกใช้ Graph-based Neural Network โดยประเภทของ Architectures ที่ Top Teams เลือกใช้คือ Message Passing Neural Networks และ SchNet เป็นต้น

อันดับ 6 เขียน solution ไว้อย่างละเอียดที่นี่ครับ https://www.kaggle.com/c/champs-scalar-coupling/discussion/106407

 

12th Solution Representation Theory

อันดับ 12 น่าสนใจมากครับ เพราะเข้ามาในสัปดาห์สุดท้ายของการแข่งขัน และก็แซงขึ้นมาได้เหรียญทองเลย เรามาทราบทีหลังว่าทีมนี้เป็นทีมผู้เชี่ยวชาญเรื่องนี้โดยตรงจาก University of Chicago ครับ โดยได้มีการออกแบบ Neural Networks ใหม่โดยใช้คณิตศาสตร์บริสุทธิ์ (Group Representation Theory) ซึ่งเพื่อนๆ สามารถอ่านรายละเอียดฉบับเต็มได้ที่นี่เลยครับ

https://arxiv.org/pdf/1906.04015.pdf

ความสนุกของงานแบบนี้คือ ต้องใช้ความมุมานะอดทน ไม่ท้อต่อความล้มเหลว และความคิดสร้างสรรค์ออกจากกรอบโจทย์เดิม และไม่มีคำตอบที่ตายตัว สัปดาห์นี้ขอฝากไว้เท่านี้แล้วพบกันสัปดาห์ครับผม


   
อ้างอิง
The Neural Engineer
(@neural-engineer)
Honorable Member Admin
เข้าร่วมเมื่อ: 7 years ago
ข้อความ: 409
Topic starter  

ตัวอย่าง Keras code ที่ใช้แก้ปัญหานี้ครับ https://www.kaggle.com/todnewman/keras-neural-net-for-champs


   
ตอบกลับอ้างอิง
Share: