Est-ce l'atome de carbone que vous recherchez ? -AI pour prédire la coordination atomique de CNT.

La technologie consiste à rendre les choses plus rapides et plus faciles . Grâce à nos ordinateurs, nous n'avons pas besoin de faire des maths, de concevoir ou d'expérimenter quand il s'agit de science.
Un domaine qui bénéficie vraiment des grandes capacités des ordinateurs est la nanotechnologie .
La nanotechnologie travaille sur des matériaux à l'échelle atomique. Ce n'est pas toujours facile, rapide ou bon marché.
Les avancées récentes offrent de nouvelles opportunités pour simuler les nanomatériaux. Un hic : ils ne sont pas encore aussi rapides.
Et nous ne voulons pas de choses lentes qui nécessitent des itérations. Nous devons faire des développements rapides.
Même si le nanotube de carbone (CNT) a été découvert en 1991, les scientifiques et les entrepreneurs ont déjà trouvé des moyens de l'expérimenter et de le commercialiser. Nous avons des boucliers CNT pour les militaires, des batteries CNT ou des biomarqueurs CNT…
Grâce à ce développement rapide, l'Intelligence Artificielle a été d'un grand soutien.
Dans les sections suivantes, je parlerai de la façon dont nous pouvons utiliser les réseaux de neurones artificiels pour prédire les coordonnées atomiques de CNT. Donc, si vous voulez savoir comment l'IA et la nanotechnologie peuvent être intégrées, continuez à lire !
Nanotubes de carbone

Un nanotube de carbone est un tube en carbone généralement mesuré en nanomètres. Les nanotubes de carbone (CNT) sont des cylindres extrêmement longs et minces qui peuvent être fabriqués à partir de feuilles d'atomes de carbone liés ensemble dans une structure de réseau hexagonale.
Les CNT possèdent une combinaison unique de rigidité élevée, de résistance élevée, de faible densité, de petite taille et d'une large gamme de propriétés électroniques allant du métal au semi-conducteur.
Quelques applications des NTC :
- La recherche a montré que les NTC ont la capacité réversible la plus élevée de tous les matériaux en carbone pour une utilisation dans les batteries lithium-ion. Les NTC sont des matériaux exceptionnels pour les électrodes de supercondensateurs.
- De nombreux chercheurs (voir exemple ) et entreprises ont déjà développé des dispositifs de filtration de l'air et de l'eau à base de NTC. Il a été rapporté que ces filtres peuvent non seulement bloquer les plus petites particules, mais aussi tuer la plupart des bactéries. C'est un autre domaine où les NTC ont déjà été commercialisés et où les produits sont maintenant sur le marché.
- La recherche a montré que les NTC peuvent fournir une augmentation considérable de l'efficacité, même dans leur état actuel non optimisé. Les cellules solaires développées au New Jersey Institute of Technology utilisent un complexe de nanotubes de carbone, formé d'un mélange de nanotubes de carbone et de buckyballs de carbone pour former des structures ressemblant à des serpents.

Un vecteur reliant les centres des deux hexagones est appelé vecteur chiral et détermine la structure d'un nanotube de carbone à paroi unique .
Un nanotube de carbone peut être spécifié par un indice chiral et être exprimé comme indiqué ci-dessous :
Pour le vecteur, n et m sont des indices chiraux entiers, et | un 1| = | a 2| est la constante de réseau du graphite. n et m peuvent être des nombres pour changer la structure du CNT. La constante de réseau est une dimension physique importante qui détermine la géométrie des cellules unitaires dans un réseau cristallin et est proportionnelle à la distance entre les atomes dans le cristal. Les cristaux sont des solides qui ont des structures et des propriétés très ordonnées et se forment lorsque des ions, des molécules ou des atomes se rejoignent pour partager des électrons. Les cristaux ont un motif répétitif d'atomes, de composés, de molécules ou d'ions disposés dans un espace tridimensionnel.
Il existe également des nanotubes de carbone en zigzag et en fauteuil mais dans cet article, nous ne les mentionnerons pas. Zigzag signifie que les indices m du CNT sont égaux à 0. Fauteuil signifie que les indices n et m du CNT sont égaux.
Depuis la découverte des nanotubes de carbone (CNT) en 1991, les scientifiques étudient rapidement les caractéristiques uniques des CNT.
Les structures atomiques de CNT sont importantes car elles influencent différentes propriétés telles que la semi-conductivité, la rigidité, etc.
Des programmes de simulation comme CASTEP ou VESTA sont utilisés pour faire des modèles CNT avec des calculs mathématiques . Cependant, ils ont besoin d' itérations qui peuvent rendre le processus de simulation de différents CNT plus long que nécessaire.
Pourquoi la modélisation des NTC est-elle importante ?
Les nanotubes de carbone ont des propriétés différentes lorsque leur structure est modifiée. Si vous voulez construire un ascenseur spatial à partir d'un matériau très bon marché, rigide mais léger, la solution ressemble à un CNT. Mais tous les nanotubes de carbone n'ont pas la même rigidité. Ils ne sont pas toujours faciles à synthétiser. Pour trouver la meilleure adéquation à vos souhaits, l'utilisation de programmes de modélisation moléculaire est la meilleure option.
Cependant, vous devrez peut-être effectuer certains calculs pour vous assurer que votre modélisation est précise. Ces calculs mathématiques prennent du temps car ils nécessitent des itérations.
Les chercheurs utilisent désormais les ANN (Artificial Neural Networks) pour prédire les coordonnées atomiques des nanotubes de carbone, afin que ces modèles puissent être utilisés dans des programmes de modélisation pour construire de nouveaux NTC en peu de temps.
Réseaux de neurones artificiels
Un réseau neuronal artificiel (ANN) est un modèle informatique basé sur le cerveau humain qui permet aux ordinateurs d'apprendre et de résoudre des problèmes sans aucune connaissance préalable sur le sujet. Les ANN sont un ensemble d'algorithmes conçus spécifiquement pour l'apprentissage automatique qui fonctionne comme une intelligence artificielle. Les ANN sont capables de créer de nouvelles fonctions à partir d'un ensemble d'exemples appelés données d'apprentissage, et de généraliser ces fonctions afin de résoudre des problèmes qui ne sont pas nécessairement contenus dans les données d'apprentissage.
Les réseaux de neurones sont composés de nœuds ou de neurones interconnectés. Chaque nœud a une entrée pondérée qui est introduite dans une fonction d'activation. La sortie de la fonction d'activation est ensuite transmise au nœud suivant du réseau via un processus d'essais et d'erreurs. La puissance de reconnaissance des formes des ANN s'améliore avec plus d'exposition aux données et de capacité de formation.


Cette étude utilise les ANN pour réduire les itérations nécessaires dans l'environnement de simulation CASTEP pour modéliser les NTC .

J'ai été inspiré par cet article et j'ai décidé de construire un ANN pour prédire les coordonnées atomiques avec Python.
L'article utilise MATLAB pour son modèle et partage certains détails de ses couches. J'ai codé l'ANN en Python et fait quelques itérations pour les couches.
Prédire les coordonnées atomiques des NTC
1-Importer des bibliothèques et des jeux de données
La première étape consiste à importer des bibliothèques et l'ensemble de données.
Nous utilisons l'ensemble de données qui a été créé par l' article mentionné précédemment .
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()
Explorons l'ensemble de données dont nous disposons. De cette façon, nous pouvons avoir une meilleure idée des données dont nous disposons et de la manière dont nous pouvons les utiliser.
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-Traiter les données
Après avoir exploré nos données, nous pouvons maintenant séparer les données x et y, mettre à l'échelle les fonctionnalités à l'aide de MinMaxScaler et diviser les données du train de test.
#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)
Dans MinMaxScaler , pour une fonctionnalité donnée, la valeur minimale de cette fonctionnalité est transformée en 0 tandis que la valeur maximale se transforme en 1 et toutes les autres valeurs sont normalisées entre 0 et 1.
Pour voir quelles lignes des données codées nécessitent une mise à l'échelle, nous recherchons les valeurs minimales et maximales.
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)
Maintenant, il est temps de construire notre modèle. Comme nous avons une entrée et une sortie dans chaque couche, nous utilisons Sequential() .
Notre modèle a 3 couches cachées.
- Couche 1 : 20 nœuds cachés, activation de la tangente hyperbolique
- Couche 2 : 30 nœuds cachés, activation de la tangente hyperbolique
- Couche 3 : 25 nœuds cachés, activation softmax
- La couche finale a 3 nœuds sans activation
Nous pourrions également utiliser "Sigmoïde".
Ce sont les mêmes, jusqu'à la traduction et la mise à l'échelle. Le sigmoïde logistique a une plage de 0 à 1 tandis que la tangente hyperbolique a une plage de -1 à 1. Et nos données sont mises à l'échelle entre 0 et 1. Nous utilisons la tangente car elle est plus efficace en termes de calcul.
Pour la couche 3, nous avons l'activation « Softmax ». La fonction d'activation Softmax calcule les probabilités relatives.
Vous pouvez taquiner les calques et étudier les résultats.
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))
L'optimiseur Adam est l'un des optimiseurs les plus largement utilisés pour la formation du réseau de neurones et est également utilisé à des fins pratiques. Il est très efficace avec de grands problèmes qui consistent en un grand nombre de données. C'est une méthode qui calcule les taux d'apprentissage adaptatifs pour chaque paramètre.
model.compile(Adam(lr = 0.0015),
'mean_squared_error')
run = model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=320)
Il est temps de voir les mesures de performance.
# 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
Notre score R2 pour l'ensemble de test est de 0,99. Cela signifie que 99 % de la variabilité de l'attribut de sortie dépendant peut être expliquée par le modèle, tandis que 1 % n'est toujours pas pris en compte.
Alors nos performances s'annoncent bonnes ! Par les définitions des métriques, nous pouvons dire que notre modèle a réussi.
Conclusion
Oh ! C'était beaucoup. Nous avons d'abord appris ce que sont les CNT et pourquoi leur modélisation est importante, puis comment les ANN peuvent être utilisés pour prédire leurs coordonnées atomiques.
Quelques points clés :
- Les nanotubes de carbone (NTC) sont des nanomatériaux récemment découverts qui ont des propriétés uniques.
- Les propriétés du CNT sont influencées par sa forme et sa structure. La modélisation et la simulation de leur structure jouent donc un rôle important pour que les scientifiques essaient de nouvelles méthodes de synthèse.
- La simulation des NTC prend actuellement beaucoup de temps car des calculs mathématiques sont nécessaires pour obtenir des coordonnées atomiques précises.
- Cette étude utilise des réseaux de neurones artificiels pour prédire les coordonnées atomiques afin que les itérations puissent être effectuées par le logiciel de simulation sans avoir besoin de calculs mathématiques.
- Le modèle que nous avons construit en nous inspirant de l'étude d'Acı et Avcı est très performant.
Salut! Je suis Elanu, 16 ans, je viens de Turquie et j'écris sur les STEM.