Apakah ini atom karbon yang Anda cari? -AI untuk memprediksi koordinasi atom CNT.

Nov 29 2022
Teknologi adalah tentang membuat segalanya lebih cepat dan lebih mudah. Berkat komputer kami, kami tidak perlu melakukan matematika, desain, atau eksperimen dalam hal sains.

Teknologi adalah tentang membuat segalanya lebih cepat dan lebih mudah . Berkat komputer kami, kami tidak perlu melakukan matematika, desain, atau eksperimen dalam hal sains.

Salah satu bidang yang sangat diuntungkan dari kemampuan hebat komputer adalah nanoteknologi .

Nanoteknologi bekerja pada bahan pada skala atom. Ini tidak selalu mudah, cepat, atau murah.

Kemajuan terbaru memberikan peluang baru untuk mensimulasikan bahan nano. Satu tangkapan: mereka tidak begitu cepat.

Dan kami tidak ingin hal-hal lambat yang membutuhkan iterasi. Kita harus membuat perkembangan pesat.

Meskipun tabung nano karbon (CNT) ditemukan pada tahun 1991, para ilmuwan dan pengusaha telah menemukan cara untuk bereksperimen dan mengkomersialkannya. Kami memiliki pelindung CNT untuk militer, baterai CNT, atau biomarker CNT…

Melalui perkembangan yang cepat ini, Kecerdasan Buatan merupakan dukungan yang besar .

Pada bagian berikut, saya akan berbicara tentang bagaimana kita dapat menggunakan Jaringan Syaraf Tiruan untuk memprediksi koordinat atom CNT. Jadi, jika Anda ingin mempelajari bagaimana AI dan teknologi nano dapat diintegrasikan, teruslah membaca!

Karbon Nanotube

a,b Contoh gambar SEM carbon nanotube. c, d Contoh gambar tabung nano karbon TEM

Tabung nano karbon adalah tabung yang terbuat dari karbon yang biasanya diukur dalam nanometer. Karbon nanotube (CNT) sangat panjang, silinder tipis yang dapat dibuat dari lembaran atom karbon yang diikat menjadi satu dalam struktur kisi heksagonal.

CNT memiliki kombinasi unik dari kekakuan tinggi, kekuatan tinggi, kepadatan rendah, ukuran kecil, dan berbagai sifat elektronik dari logam hingga semikonduktor.

Beberapa aplikasi CNT:

  • Penelitian telah menunjukkan bahwa CNT memiliki kapasitas reversibel tertinggi dari semua bahan karbon untuk digunakan dalam baterai lithium-ion. CNT adalah bahan luar biasa untuk elektroda superkapasitor.
  • Banyak peneliti (lihat contoh ) dan perusahaan telah mengembangkan perangkat penyaringan udara dan air berbasis CNT. Telah dilaporkan bahwa filter ini tidak hanya dapat memblokir partikel terkecil tetapi juga membunuh sebagian besar bakteri. Ini adalah area lain di mana CNT telah dikomersialkan dan produknya ada di pasaran sekarang.
  • Penelitian telah menunjukkan bahwa CNT dapat memberikan peningkatan efisiensi yang cukup besar, bahkan dalam keadaan tidak dioptimalkan saat ini. Sel surya yang dikembangkan di New Jersey Institute of Technology menggunakan kompleks karbon nanotube, dibentuk oleh campuran karbon nanotube dan buckyballs karbon untuk membentuk struktur seperti ular.

Sebuah vektor yang menghubungkan pusat-pusat dari dua segi enam disebut vektor kiral , dan menentukan struktur nanotube karbon berdinding tunggal .

Tabung nano karbon dapat ditentukan dengan indeks kiral dan dinyatakan seperti yang terlihat di bawah ini:

Sebuah Vektor Kiral

Untuk vektor, n dan m adalah indeks kiral bilangan bulat, dan | a 1|​ = | a 2|​ adalah konstanta kisi grafit. n dan m dapat berupa angka untuk mengubah struktur CNT. Konstanta kisi adalah dimensi fisik penting yang menentukan geometri sel satuan dalam kisi kristal dan sebanding dengan jarak antar atom dalam kristal. Kristal adalah padatan yang memiliki struktur dan sifat yang sangat teratur dan terbentuk ketika ion, molekul, atau atom bergabung bersama untuk berbagi elektron. Kristal memiliki pola pengulangan atom, senyawa, molekul, atau ion yang tersusun dalam ruang tiga dimensi.

Ada juga nanotube karbon zigzag dan kursi tetapi dalam artikel ini, kami tidak akan menyebutkannya. Zigzag berarti indeks m CNT sama dengan 0. Kursi berlengan berarti indeks n dan m CNT sama.

struktur geometris CNT

Sejak penemuan tabung nano karbon (CNT) pada tahun 1991, para ilmuwan dengan cepat meneliti fitur unik CNT.

Struktur atom CNT penting karena mempengaruhi sifat yang berbeda seperti semikonduktor, kekakuan, dll.

Program simulasi seperti CASTEP atau VESTA digunakan untuk membuat model CNT dengan perhitungan matematis . Namun, mereka membutuhkan iterasi yang dapat membuat proses simulasi CNT berbeda lebih lama dari yang seharusnya.

Mengapa pemodelan CNT penting?

Tabung nano karbon memiliki sifat yang berbeda ketika strukturnya diubah. Jika Anda ingin membangun elevator luar angkasa dari bahan yang sangat murah, kaku namun ringan, solusinya sepertinya CNT. Tetapi tidak setiap tabung nano karbon memiliki kekakuan yang sama. Mereka tidak selalu mudah untuk disintesis. Untuk menemukan kecocokan terbaik dengan keinginan Anda, menggunakan program pemodelan molekul adalah pilihan terbaik.

Namun, Anda mungkin perlu melakukan beberapa perhitungan untuk memastikan pemodelan Anda akurat. Perhitungan matematis ini membutuhkan waktu karena membutuhkan iterasi.

Para peneliti sekarang menggunakan JST (Jaringan Syaraf Tiruan) untuk memprediksi koordinat atom karbon nanotube, sehingga model ini dapat digunakan dalam program pemodelan untuk membangun CNT baru dalam waktu singkat.

Jaringan Syaraf Tiruan

Artificial Neural Network (ANN) adalah model komputasi berdasarkan otak manusia yang memungkinkan komputer untuk belajar dan memecahkan masalah tanpa pengetahuan sebelumnya tentang subjek tersebut. JST adalah seperangkat algoritme yang dirancang khusus untuk pembelajaran mesin yang berfungsi sebagai kecerdasan buatan. JST mampu membuat fungsi baru dari sekumpulan contoh yang disebut data pelatihan, dan menggeneralisasikan fungsi ini untuk memecahkan masalah yang belum tentu terkandung dalam data pelatihan.

Neural network terdiri dari node atau neuron yang saling berhubungan. Setiap node memiliki input berbobot yang dimasukkan ke dalam fungsi aktivasi. Output dari fungsi aktivasi kemudian diteruskan ke node berikutnya dalam jaringan melalui proses trial and error. Kekuatan pengenalan pola JST meningkat dengan lebih banyak paparan data dan kemampuan pelatihan.

Jaringan saraf.
Satu simpul.

Studi ini menggunakan JST untuk menurunkan iterasi yang diperlukan dalam lingkungan simulasi CASTEP untuk pemodelan CNT .

Tahapan pembelajaran Acı dan Avcı.

Saya terinspirasi oleh makalah ini dan memutuskan untuk membuat JST untuk memprediksi koordinat atom dengan Python.

Makalah ini menggunakan MATLAB untuk modelnya dan membagikan beberapa detail lapisannya. Saya mengkodekan JST dengan Python dan melakukan beberapa iterasi untuk lapisannya.

Memprediksi Koordinat Atom CNT

1-Impor Perpustakaan dan Kumpulan Data

Langkah pertama adalah mengimpor pustaka dan kumpulan data.

Kami menggunakan kumpulan data yang dibuat oleh makalah yang disebutkan sebelumnya .

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()

Mari jelajahi dataset yang kita miliki. Dengan cara ini, kami dapat memiliki wawasan yang lebih baik tentang data apa yang kami miliki dan bagaimana kami dapat menggunakannya.

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()

Melayang di atas plot.

3-Proses Data

Setelah menjelajahi data kami, kami sekarang dapat memisahkan data x dan y, menskalakan fitur menggunakan MinMaxScaler, dan membagi data uji coba.

#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)

Di MinMaxScaler , untuk setiap fitur yang diberikan, nilai minimum dari fitur tersebut diubah menjadi 0 sedangkan nilai maksimum akan diubah menjadi 1 dan semua nilai lainnya dinormalisasi antara 0 dan 1.

Untuk melihat baris mana dalam data yang disandikan memerlukan penskalaan, kami mencari nilai minimum dan maksimum.

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)

Sekarang, saatnya membangun model kita. Karena kami memiliki satu masukan dan keluaran di setiap lapisan, kami menggunakan Sequential() .

Model kami memiliki 3 lapisan tersembunyi.

  • Lapisan 1: 20 node tersembunyi, aktivasi tangen hiperbolik
  • Lapisan 2: 30 node tersembunyi, aktivasi tangen hiperbolik
  • Lapisan 3: 25 node tersembunyi, aktivasi softmax
  • Lapisan terakhir memiliki 3-node tanpa aktivasi

Kita juga bisa menggunakan "Sigmoid".

Mereka sama, hingga terjemahan dan penskalaan. Sigmoid logistik memiliki rentang 0 hingga 1 sedangkan tangen hiperbolik memiliki rentang −1 hingga 1. Dan data kami diskalakan antara 0 dan 1. Kami menggunakan tangen karena lebih efisien secara komputasi.

Untuk layer 3, kami memiliki aktivasi “ Softmax ”. Fungsi aktivasi Softmax menghitung probabilitas relatif.

Anda dapat menggoda lapisan dan menyelidiki hasilnya.

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))

Pengoptimal Adam adalah salah satu pengoptimal yang paling banyak digunakan untuk melatih jaringan saraf dan juga digunakan untuk tujuan praktis. Ini sangat efisien dengan masalah besar yang terdiri dari sejumlah besar data. Ini adalah metode yang menghitung tingkat pembelajaran adaptif untuk setiap parameter.

model.compile(Adam(lr = 0.0015),
                'mean_squared_error')

run = model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=320)

      
                

Saatnya melihat metrik kinerja.

# 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

Skor R2 kami untuk set tes adalah 0,99. Itu berarti 99% dari perubahan atribut keluaran dependen dapat dijelaskan oleh model sementara 1% masih belum ditemukan.

Jadi penampilan kami terlihat bagus ! Dengan definisi metrik, kita dapat mengatakan bahwa model kita berhasil.

Kesimpulan

Wooh! Ini banyak. Pertama-tama kita belajar tentang apa itu CNT dan mengapa pemodelannya penting, lalu bagaimana JST dapat digunakan untuk memprediksi koordinat atomnya.

Beberapa poin penting:

  • Tabung nano karbon (CNT) adalah bahan nano yang baru ditemukan yang memiliki sifat unik.
  • Sifat CNT dipengaruhi oleh bentuk dan strukturnya. Jadi memodelkan dan mensimulasikan struktur mereka memainkan peran penting bagi para ilmuwan untuk mencoba metode sintesis baru.
  • Mensimulasikan CNT saat ini membutuhkan banyak waktu karena perhitungan matematis diperlukan untuk mendapatkan koordinat atom yang akurat.
  • Penelitian ini menggunakan Jaringan Syaraf Tiruan untuk memprediksi koordinat atom sehingga iterasi dapat dilakukan oleh perangkat lunak simulasi tanpa memerlukan perhitungan matematis.
  • Model yang kami buat dengan mendapatkan inspirasi dari studi Acı dan Avcı menunjukkan kinerja tinggi.

Hai! Saya Elanu, 16 tahun dari Turki yang menulis tentang STEM.