Czy to jest atom węgla, którego szukasz? -AI do przewidywania koordynacji atomowej CNT.

Nov 29 2022
Technologia polega na tym, aby wszystko było szybsze i łatwiejsze. Dzięki naszym komputerom nie musimy zajmować się matematyką, projektowaniem ani eksperymentami, jeśli chodzi o naukę.

Technologia polega na tym, aby wszystko było szybsze i łatwiejsze . Dzięki naszym komputerom nie musimy zajmować się matematyką, projektowaniem ani eksperymentami, jeśli chodzi o naukę.

Jednym z obszarów, który naprawdę korzysta z wielkich możliwości komputerów, jest nanotechnologia .

Nanotechnologia zajmuje się materiałami w skali atomowej. Nie zawsze jest to łatwe, szybkie lub tanie.

Ostatnie postępy dają nowe możliwości symulacji nanomateriałów. Jeden haczyk: nie są jeszcze tak szybcy.

I nie chcemy powolnych rzeczy, które wymagają iteracji. Musimy szybko się rozwijać.

Mimo że nanorurki węglowe (CNT) zostały odkryte w 1991 roku, naukowcy i przedsiębiorcy już znaleźli sposoby na eksperymentowanie z nimi i komercjalizację. Posiadamy tarcze CNT dla wojska, baterie CNT, biomarkery CNT…

Dzięki temu szybkiemu rozwojowi sztuczna inteligencja była dużym wsparciem.

W poniższych sekcjach omówię, w jaki sposób możemy wykorzystać sztuczne sieci neuronowe do przewidywania współrzędnych atomowych CNT. Jeśli więc chcesz dowiedzieć się, jak można zintegrować sztuczną inteligencję i nanotechnologię, czytaj dalej!

Nanorurki węglowe

a, b Przykłady obrazów nanorurek węglowych SEM. c, d Przykłady obrazów nanorurek węglowych TEM

Nanorurka węglowa to rura wykonana z węgla, zwykle mierzona w nanometrach. Nanorurki węglowe (CNT) to niezwykle długie, cienkie cylindry, które można wykonać z arkuszy atomów węgla połączonych ze sobą w sześciokątną strukturę sieciową.

CNT posiadają unikalną kombinację wysokiej sztywności, wysokiej wytrzymałości, niskiej gęstości, niewielkich rozmiarów i szerokiego zakresu właściwości elektronicznych, od metalicznych po półprzewodnikowe.

Niektóre zastosowania CNT:

  • Badania wykazały, że nanorurki CNT mają najwyższą odwracalną pojemność spośród wszystkich materiałów węglowych, które można stosować w akumulatorach litowo-jonowych. CNT to doskonałe materiały na elektrody superkondensatorów.
  • Wielu badaczy (patrz przykład ) i korporacji opracowało już urządzenia do filtracji powietrza i wody oparte na CNT. Donoszono, że filtry te mogą nie tylko blokować najmniejsze cząsteczki, ale także zabijać większość bakterii. Jest to kolejny obszar, w którym CNT zostały już skomercjalizowane, a produkty są obecnie dostępne na rynku.
  • Badania wykazały, że CNT mogą zapewnić znaczny wzrost wydajności, nawet w obecnym niezoptymalizowanym stanie. Ogniwa słoneczne opracowane w New Jersey Institute of Technology wykorzystują kompleks nanorurek węglowych, utworzony przez mieszaninę nanorurek węglowych i węglowych kulek bucky , tworząc struktury przypominające węża.

Wektor łączący środki dwóch sześciokątów nazywany jest wektorem chiralnym i określa strukturę jednościennej nanorurki węglowej .

Nanorurkę węglową można określić za pomocą indeksu chiralnego i wyrazić, jak pokazano poniżej:

Wektor chiralny

Dla wektora n i m są całkowitymi indeksami chiralnymi, a | za 1|​ = | a 2|​ to stała sieciowa grafitu. n i m mogą być liczbami, aby zmienić strukturę CNT. Stała sieciowa jest ważnym wymiarem fizycznym, który określa geometrię komórek elementarnych w sieci krystalicznej i jest proporcjonalna do odległości między atomami w krysztale. Kryształy to ciała stałe, które mają bardzo uporządkowaną strukturę i właściwości i powstają, gdy jony, cząsteczki lub atomy łączą się, dzieląc elektrony. Kryształy mają powtarzający się wzór atomów, związków, cząsteczek lub jonów ułożonych w trójwymiarowej przestrzeni.

Istnieją również zygzakowate i fotelowe nanorurki węglowe, ale w tym artykule nie będziemy o nich wspominać. Zygzak oznacza, że ​​indeksy m CNT są równe 0. Fotel oznacza, że ​​indeksy n i m CNT są równe.

Struktury geometryczne CNT

Od czasu odkrycia nanorurek węglowych (CNT) w 1991 r. naukowcy szybko badają unikalne cechy CNT.

Struktury atomowe CNT są ważne , ponieważ wpływają na różne właściwości, takie jak półprzewodnictwo, sztywność itp.

Programy symulacyjne, takie jak CASTEP lub VESTA , służą do tworzenia modeli CNT z obliczeniami matematycznymi . Potrzebują jednak iteracji , które mogą wydłużyć proces symulacji różnych CNT .

Dlaczego modelowanie CNT jest ważne?

Nanorurki węglowe mają różne właściwości, gdy zmienia się ich struktura. Jeśli chcesz zbudować windę kosmiczną z bardzo taniego, sztywnego, ale lekkiego materiału, rozwiązaniem wydaje się CNT. Ale nie każda nanorurka węglowa ma taką samą sztywność. Nie zawsze są łatwe do syntezy. Aby znaleźć najlepsze dopasowanie do swoich życzeń, najlepszym rozwiązaniem jest użycie programów do modelowania molekularnego.

Jednak może być konieczne wykonanie pewnych obliczeń, aby upewnić się, że modelowanie jest dokładne. Te obliczenia matematyczne wymagają czasu, ponieważ wymagają iteracji.

Naukowcy używają teraz SSN (sztucznych sieci neuronowych) do przewidywania współrzędnych atomowych nanorurek węglowych, dzięki czemu modele te mogą być wykorzystywane w programach modelowania do tworzenia nowych CNT w krótkim czasie.

Sztuczne sieci neuronowe

Sztuczna sieć neuronowa (ANN) to model obliczeniowy oparty na ludzkim mózgu, który umożliwia komputerom uczenie się i rozwiązywanie problemów bez wcześniejszej wiedzy na ten temat. Sieci SSN to zestaw algorytmów zaprojektowanych specjalnie do uczenia maszynowego, który działa jak sztuczna inteligencja. Sieci SSN są w stanie tworzyć nowe funkcje z zestawu przykładów zwanych danymi treningowymi i uogólniać te funkcje w celu rozwiązywania problemów niekoniecznie zawartych w danych treningowych.

Sieci neuronowe składają się z połączonych ze sobą węzłów lub neuronów. Każdy węzeł ma ważone dane wejściowe, które są podawane do funkcji aktywacji. Dane wyjściowe funkcji aktywacji są następnie przekazywane do następnego węzła w sieci w procesie prób i błędów. Siła rozpoznawania wzorców SSN poprawia się wraz z większą ekspozycją na dane i możliwościami szkolenia.

Sieć neuronowa.
Pojedynczy węzeł.

W badaniu wykorzystano SSN do zmniejszenia liczby iteracji potrzebnych w środowisku symulacji CASTEP do modelowania CNT .

Etapy badań Acı i Avcı.

Zainspirowany tym artykułem postanowiłem zbudować SSN do przewidywania współrzędnych atomowych za pomocą Pythona.

Artykuł wykorzystuje MATLAB do swojego modelu i udostępnia niektóre szczegóły jego warstw. Zakodowałem ANN w Pythonie i wykonałem kilka iteracji dla warstw.

Przewidywanie współrzędnych atomowych CNT

1-Importuj biblioteki i zbiory danych

Pierwszym krokiem jest zaimportowanie bibliotek i zestawu danych.

Korzystamy ze zbioru danych , który został utworzony we wspomnianej wcześniej pracy .

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

Przeanalizujmy zestaw danych, który mamy. W ten sposób możemy mieć lepszy wgląd w to, jakie dane posiadamy i jak możemy je wykorzystać.

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

Najeżdżanie na działkę.

3-Przetwarzaj dane

Po zbadaniu naszych danych możemy teraz rozdzielić dane x i y, skalować funkcje za pomocą MinMaxScaler i podzielić dane z pociągu testowego.

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

W MinMaxScaler , dla dowolnej danej cechy, minimalna wartość tej cechy zostanie przekształcona na 0, podczas gdy wartość maksymalna zmieni się na 1, a wszystkie inne wartości zostaną znormalizowane między 0 a 1.

Aby zobaczyć, które wiersze w zakodowanych danych wymagają skalowania, szukamy wartości minimalnej i maksymalnej.

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)

Teraz nadszedł czas na zbudowanie naszego modelu. Ponieważ mamy jedno wejście i wyjście w każdej warstwie, używamy Sequential() .

Nasz model posiada 3 ukryte warstwy.

  • Warstwa 1: 20 ukrytych węzłów, aktywacja stycznej hiperbolicznej
  • Warstwa 2: 30 ukrytych węzłów, aktywacja stycznej hiperbolicznej
  • Warstwa 3: 25 ukrytych węzłów, aktywacja softmax
  • Ostatnia warstwa ma 3 węzły bez aktywacji

Moglibyśmy również użyć „Sigmoid”.

Są takie same, aż do tłumaczenia i skalowania. Logistyczna sigmoida ma zakres od 0 do 1, podczas gdy tangens hiperboliczny ma zakres od −1 do 1. Nasze dane są skalowane między 0 a 1. Używamy stycznej, ponieważ jest ona bardziej wydajna obliczeniowo.

Dla warstwy 3 mamy aktywację „ Softmax ”. Funkcja aktywacji Softmax oblicza względne prawdopodobieństwa.

Możesz nakładać warstwy i badać wyniki.

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

Optymalizator Adam jest jednym z najczęściej używanych optymalizatorów do uczenia sieci neuronowych i jest również używany do celów praktycznych. Jest bardzo wydajny przy dużych problemach, które składają się z dużej liczby danych. Jest to metoda, która oblicza adaptacyjne tempo uczenia się dla każdego parametru.

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

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

      
                

Czas przyjrzeć się wskaźnikom wydajności.

# 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

Nasz wynik R2 dla zestawu testowego wynosi 0,99. Oznacza to, że 99% zmienności zależnego atrybutu wyjściowego można wyjaśnić modelem, podczas gdy 1% jest nadal nieuwzględnione.

Więc nasz występ wygląda dobrze ! Po definicjach metryk możemy powiedzieć, że nasz model odniósł sukces.

Wniosek

Woo! To było dużo. Najpierw dowiedzieliśmy się, czym są CNT i dlaczego ich modelowanie jest ważne, a następnie w jaki sposób SSN można wykorzystać do przewidywania ich współrzędnych atomowych.

Niektóre kluczowe punkty:

  • Nanorurki węglowe (CNT) to nowo odkryte nanomateriały o unikalnych właściwościach.
  • Na właściwości CNT ma wpływ jego kształt i struktura. Zatem modelowanie i symulowanie ich struktury odgrywa ważną rolę dla naukowców w próbowaniu nowych metod syntezy.
  • Symulowanie CNT zajmuje obecnie dużo czasu, ponieważ potrzebne są obliczenia matematyczne w celu uzyskania dokładnych współrzędnych atomowych.
  • To badanie wykorzystuje sztuczne sieci neuronowe do przewidywania współrzędnych atomowych, dzięki czemu oprogramowanie symulacyjne może wykonywać iteracje bez konieczności wykonywania obliczeń matematycznych.
  • Model, który zbudowaliśmy, czerpiąc inspirację z badań Acı i Avcı, wykazuje wysoką wydajność.

Cześć! Jestem Elanu, mam 16 lat z Turcji i piszę o STEM.