Đây có phải là nguyên tử carbon bạn đang tìm kiếm? -AI để dự đoán phối trí nguyên tử của CNT.

Công nghệ là tất cả về làm cho mọi thứ nhanh hơn và dễ dàng hơn . Nhờ máy tính của chúng tôi, chúng tôi không cần phải làm toán, thiết kế hoặc thử nghiệm khi nói đến khoa học.
Một lĩnh vực thực sự được hưởng lợi từ khả năng tuyệt vời của máy tính là công nghệ nano .
Công nghệ nano đang làm việc trên các vật liệu ở quy mô nguyên tử. Điều này không phải lúc nào cũng dễ dàng, nhanh chóng hoặc rẻ tiền.
Những tiến bộ gần đây đang mang đến những cơ hội mới để mô phỏng vật liệu nano. Một nắm bắt: chúng vẫn không quá nhanh.
Và chúng tôi không muốn những thứ chậm cần lặp đi lặp lại. Chúng ta phải phát triển nhanh chóng.
Mặc dù ống nano carbon (CNT) được phát hiện vào năm 1991, nhưng các nhà khoa học và doanh nhân đã tìm ra cách để thử nghiệm và thương mại hóa nó. Chúng tôi có lá chắn CNT cho quân đội, pin CNT hoặc dấu ấn sinh học CNT…
Thông qua sự phát triển nhanh chóng này, Trí tuệ nhân tạo là một sự hỗ trợ tuyệt vời.
Trong các phần sau, tôi sẽ nói về cách chúng ta có thể sử dụng Mạng thần kinh nhân tạo để dự đoán tọa độ nguyên tử của CNT. Vì vậy, nếu bạn muốn tìm hiểu cách tích hợp AI và công nghệ nano, hãy tiếp tục đọc!
Ống nano carbon

Ống nano carbon là một ống làm bằng carbon thường được đo bằng nanomet. Các ống nano cacbon (CNTs) là những hình trụ cực dài, mỏng có thể được tạo ra từ các tấm nguyên tử cacbon liên kết với nhau trong một cấu trúc mạng lục giác.
CNTs sở hữu sự kết hợp độc đáo của độ cứng cao, độ bền cao, mật độ thấp, kích thước nhỏ và một loạt các tính chất điện tử từ kim loại đến bán dẫn.
Một số ứng dụng của CNTs:
- Nghiên cứu đã chỉ ra rằng CNTs có khả năng đảo ngược cao nhất so với bất kỳ vật liệu carbon nào để sử dụng trong pin lithium-ion. CNTs là vật liệu nổi bật cho các điện cực siêu tụ điện.
- Nhiều nhà nghiên cứu (xem ví dụ ) và các tập đoàn đã phát triển các thiết bị lọc nước và không khí dựa trên CNT. Có thông tin cho rằng những bộ lọc này không chỉ có thể chặn các hạt nhỏ nhất mà còn tiêu diệt hầu hết vi khuẩn. Đây là một lĩnh vực khác mà CNTs đã được thương mại hóa và các sản phẩm hiện đã có mặt trên thị trường.
- Nghiên cứu đã chỉ ra rằng CNTs có thể mang lại sự gia tăng đáng kể về hiệu quả, ngay cả ở trạng thái chưa được tối ưu hóa hiện tại của chúng. Pin mặt trời được phát triển tại Viện Công nghệ New Jersey sử dụng phức hợp ống nano carbon, được hình thành bởi hỗn hợp ống nano carbon và bóng bucky carbon để tạo thành cấu trúc giống như con rắn.

Vectơ nối tâm của hai hình lục giác được gọi là vectơ đối xứng và nó xác định cấu trúc của ống nano carbon đơn vách .
Một ống nano carbon có thể được chỉ định bởi một chỉ số bất đối xứng và được thể hiện như hình bên dưới:
Đối với vectơ, n và m là các chỉ số bất đối số nguyên và | một 1| = | a 2| là hằng số mạng của than chì. n và m có thể là các số để thay đổi cấu trúc của CNT. Hằng số mạng tinh thể là một kích thước vật lý quan trọng xác định dạng hình học của các ô đơn vị trong mạng tinh thể và tỷ lệ thuận với khoảng cách giữa các nguyên tử trong tinh thể. Tinh thể là chất rắn có cấu trúc và tính chất rất trật tự và được hình thành khi các ion, phân tử hoặc nguyên tử liên kết với nhau để chia sẻ các electron. Tinh thể có mô hình lặp lại của các nguyên tử, hợp chất, phân tử hoặc ion được sắp xếp trong không gian ba chiều.
Ngoài ra còn có ống nano cacbon hình chữ chi và ghế bành nhưng trong bài viết này, chúng tôi sẽ không đề cập đến. Zigzag có nghĩa là chỉ số m của CNT bằng 0. Ghế bành có nghĩa là chỉ số n và m của CNT bằng nhau.
Kể từ khi phát hiện ra ống nano carbon (CNT) vào năm 1991, các nhà khoa học đang nhanh chóng nghiên cứu các tính năng độc đáo của CNT.
Cấu trúc nguyên tử của CNT rất quan trọng vì chúng ảnh hưởng đến các tính chất khác nhau như chất bán dẫn, độ cứng, v.v.
Các chương trình mô phỏng như CASTEP hoặc VESTA được sử dụng để tạo các mô hình CNT với các tính toán toán học . Tuy nhiên, chúng cần lặp đi lặp lại để có thể làm cho quá trình mô phỏng các CNT khác nhau lâu hơn mức cần thiết.
Tại sao mô hình hóa CNTs lại quan trọng?
Các ống nano carbon có các tính chất khác nhau khi cấu trúc của chúng bị thay đổi. Nếu bạn muốn xây dựng một thang máy vũ trụ từ một vật liệu rất rẻ, cứng nhưng nhẹ, thì giải pháp có vẻ giống như CNT. Nhưng không phải ống nano cacbon nào cũng có độ cứng như nhau. Chúng không phải lúc nào cũng dễ tổng hợp. Để tìm ra kết quả phù hợp nhất với mong muốn của bạn, sử dụng các chương trình lập mô hình phân tử là lựa chọn tốt nhất.
Tuy nhiên, bạn có thể cần thực hiện một số tính toán để đảm bảo mô hình của mình là chính xác. Các tính toán toán học này cần có thời gian vì chúng cần lặp đi lặp lại.
Các nhà nghiên cứu hiện sử dụng ANN (Mạng nơ-ron nhân tạo) để dự đoán tọa độ nguyên tử của ống nano carbon, để có thể sử dụng các mô hình này trong các chương trình mô hình hóa nhằm xây dựng CNT mới trong thời gian ngắn.
Mạng lưới thần kinh nhân tạo
Mạng nơ-ron nhân tạo (ANN) là một mô hình tính toán dựa trên bộ não con người, cho phép máy tính học và giải quyết các vấn đề mà không cần có bất kỳ kiến thức nào trước đó về chủ đề này. ANN là một tập hợp các thuật toán được thiết kế dành riêng cho máy học hoạt động như trí tuệ nhân tạo. ANN có thể tạo các hàm mới từ một tập hợp các ví dụ được gọi là dữ liệu huấn luyện và tổng quát hóa các hàm này để giải quyết các vấn đề không nhất thiết phải có trong dữ liệu huấn luyện.
Mạng nơ-ron bao gồm các nút hoặc nơ-ron được kết nối với nhau. Mỗi nút có một đầu vào có trọng số được đưa vào một chức năng kích hoạt. Đầu ra của chức năng kích hoạt sau đó được chuyển đến nút tiếp theo trong mạng thông qua quá trình thử và sai. Khả năng nhận dạng mẫu của ANN được cải thiện khi có nhiều dữ liệu hơn và khả năng đào tạo.


Nghiên cứu của anh ấy đang sử dụng ANN để giảm số lần lặp lại cần thiết trong môi trường mô phỏng CASTEP để lập mô hình CNTs .

Tôi đã được truyền cảm hứng từ bài báo này và quyết định xây dựng ANN để dự đoán tọa độ nguyên tử bằng Python.
Bài báo sử dụng MATLAB cho mô hình của nó và chia sẻ một số chi tiết về các lớp của nó. Tôi đã mã hóa ANN bằng Python và thực hiện một số lần lặp lại cho các lớp.
Dự đoán tọa độ nguyên tử của CNTs
1-Nhập thư viện và tập dữ liệu
Bước đầu tiên là nhập thư viện và tập dữ liệu.
Chúng tôi đang sử dụng tập dữ liệu được tạo bởi bài báo đã đề cập trước đó .
import numpy as np, pandas as pd, seaborn as sns, matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from sklearn.metrics import mean_squared_error, r2_score, accuracy_score
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Input, Dense
from tensorflow.keras.optimizers import Adam
import datetime
now = datetime.datetime.now
#filter warnings
import warnings
warnings.filterwarnings("ignore")
%matplotlib inline
filepath = 'the_dataset'
raw_data = pd.read_csv(filepath, sep=';',decimal=',')
data = raw_data.copy()
Hãy khám phá tập dữ liệu chúng tôi có. Bằng cách này, chúng tôi có thể hiểu rõ hơn về dữ liệu chúng tôi có và cách chúng tôi có thể sử dụng dữ liệu đó.
data.info()
data.describe()
data.head()
#you can use these to understand the datatypes, observe the
#statistical summary or to see an example.
Our data.
data.hist(figsize=(10,10)) #you can take a look at dataset distributions.
The dataset’s distributions.
import plotly.express as px
fig = px.scatter_3d(data,
x="Calculated atomic coordinates u'",
y="Calculated atomic coordinates v'",
z="Calculated atomic coordinates w'",
color='Chiral indice n',
size='Chiral indice m',
hover_data=[],
opacity=0.4)
fig.update_layout(title='Calculated atomic coordinates')
fig.show()


3-Xử lý dữ liệu
Sau khi khám phá dữ liệu của chúng tôi, giờ đây chúng tôi có thể tách dữ liệu x và y, chia tỷ lệ các tính năng bằng cách sử dụng MinMaxScaler và phân tách dữ liệu đào tạo thử nghiệm.
#y data
y_cols = ["Calculated atomic coordinates u'",
"Calculated atomic coordinates v'",
"Calculated atomic coordinates w'"]
#target data
y_data = data[y_cols]
#copy dataset
X_data = data.copy()
#remove target data from X_data
for y_label in y_cols:
X_data = X_data.drop([y_label], axis=1)
Trong MinMaxScaler , đối với bất kỳ tính năng cụ thể nào, giá trị tối thiểu của tính năng đó được chuyển thành 0 trong khi giá trị tối đa sẽ chuyển thành 1 và tất cả các giá trị khác được chuẩn hóa trong khoảng từ 0 đến 1.
Để xem hàng nào trong dữ liệu được mã hóa yêu cầu chia tỷ lệ, chúng tôi đang tìm giá trị tối thiểu và tối đa.
scale_cols = [col for col in X_data.columns
if X_data[col].min() < -1
or X_data[col].max() > 1]
scale_cols
X_data[scale_cols].iloc[:].min()
X_data[scale_cols].iloc[:].max()
from sklearn.preprocessing import MinMaxScaler
mm = MinMaxScaler()
X_data[scale_cols] = mm.fit_transform(X_data[scale_cols])
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X_data,
y_data,
test_size=0.3,
random_state=42)
Bây giờ, đã đến lúc xây dựng mô hình của chúng ta. Vì chúng tôi có một đầu vào và đầu ra trong mỗi lớp nên chúng tôi đang sử dụng Sequential() .
Mô hình của chúng tôi có 3 lớp ẩn.
- Lớp 1: 20 nút ẩn, kích hoạt tiếp tuyến hyperbol
- Lớp 2: 30 nút ẩn, kích hoạt tiếp tuyến hyperbol
- Lớp 3: 25 nút ẩn, kích hoạt softmax
- Lớp cuối cùng có 3 nút không kích hoạt
Chúng tôi cũng có thể sử dụng “Sigmoid”.
Chúng giống nhau, tùy thuộc vào bản dịch và tỷ lệ. Đường sigmoid logistic có phạm vi từ 0 đến 1 trong khi tiếp tuyến hyperbol có phạm vi từ −1 đến 1. Và dữ liệu của chúng tôi được chia tỷ lệ trong khoảng từ 0 đến 1. Chúng tôi sử dụng tiếp tuyến vì nó hiệu quả hơn về mặt tính toán.
Đối với lớp 3, chúng tôi đã kích hoạt “ Softmax ”. Hàm kích hoạt Softmax tính toán xác suất tương đối.
Bạn có thể trêu chọc các lớp và điều tra kết quả.
model = Sequential()
model.add(Dense(20, input_shape = (5,), activation='tanh'))
model.add(Dense(30, activation = 'tanh'))
model.add(Dense(25, activation = 'softmax'))
model.add(Dense(3, activation=None))
Trình tối ưu hóa Adam là một trong những trình tối ưu hóa được sử dụng rộng rãi nhất để đào tạo mạng thần kinh và cũng được sử dụng cho các mục đích thực tế. Nó rất hiệu quả với các vấn đề lớn bao gồm một số lượng lớn dữ liệu. Đó là một phương pháp tính toán tỷ lệ học tập thích ứng cho từng tham số.
model.compile(Adam(lr = 0.0015),
'mean_squared_error')
run = model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=320)
Thời gian để xem các số liệu hiệu suất.
# predictions for train and test
y_train_pred = model.predict(X_train)
y_test_pred = model.predict(X_test)
# R2 score for train and test
train_score = r2_score(y_train, y_train_pred)
test_score = r2_score(y_test, y_test_pred)
print("_________________________________________________")
print("R2 Score for the training set is:", train_score)
print("R2 Score for the test set is:", test_score)
R2 score
Điểm R2 của chúng tôi cho bộ kiểm tra là 0,99. Điều đó có nghĩa là 99% khả năng thay đổi của thuộc tính đầu ra phụ thuộc có thể được mô hình giải thích trong khi 1% vẫn chưa được giải thích.
Vì vậy, hiệu suất của chúng tôi có vẻ tốt ! Theo các định nghĩa về số liệu, chúng tôi có thể nói rằng mô hình của chúng tôi đã thành công.
Sự kết luận
Ồ! Điều này là rất nhiều. Đầu tiên chúng ta tìm hiểu về CNT là gì và tại sao việc mô hình hóa chúng lại quan trọng, sau đó là cách ANN có thể được sử dụng để dự đoán tọa độ nguyên tử của chúng.
Một số điểm chính:
- Ống nano carbon (CNTs) là vật liệu nano mới được phát hiện có các đặc tính độc đáo.
- Tính chất của CNT bị ảnh hưởng bởi hình dạng và cấu trúc của nó. Vì vậy, mô hình hóa và mô phỏng cấu trúc của chúng đóng vai trò quan trọng để các nhà khoa học thử nghiệm các phương pháp tổng hợp mới.
- Việc mô phỏng các CNT hiện mất rất nhiều thời gian vì cần thực hiện các phép tính toán học để có tọa độ nguyên tử chính xác.
- Nghiên cứu này sử dụng Mạng nơ-ron nhân tạo để dự đoán tọa độ nguyên tử để phần mềm mô phỏng có thể thực hiện các phép lặp mà không cần tính toán toán học.
- Mô hình chúng tôi xây dựng bằng cách lấy cảm hứng từ nghiên cứu của Acı và Avcı đang cho thấy hiệu suất cao.
Xin chào! Tôi là Elanu, 16 tuổi đến từ Thổ Nhĩ Kỳ, người viết về STEM.