Automatizce ve fyzice: ML

Author

Tomáš Červeň

Published

December 12, 2024

Připojte se

cermak.science/teaching/automation/lectures/10-ml/

AI, ML, DL and all that

Machine Learning

  • automatické učenie sa z dát, ich spracovanie
    • chceme predikovať, klasifikovať, rozhodovať… bez toho, aby sme vytvárali program/algoritmus explicitne pre každú úlohu
    • hľadáme vzory, vzťahy alebo štruktúry, ktoré môžeme zobecniť z pozorovaných dát
  • nástroj, nie náhrada za kritické myslenie
  • automatizovanie analýzy veľkého množstva dát, optimalizovania či modelavanie procesov (manuálne nezvládnuteľných)

Voľba modelu podľa dát

  • supervised \(D = {(\mathbf{x}_{i}, \mathbf{y}_{i})}_{i=1}^{N}\)
    • kategorická (charakterizácia spŕšok) či nominálna (predikcia vlastností materiálu) predpoveď
  • unsupervised \(D = {(\mathbf{x}_{i})}_{i=1}^{N}\)
    • clustering (kategorizovanie neznámych signálov), latntné faktory (analýza vysokodimenzionálnych dát), grafy, dopĺňanie matíc …
  • reinforced
    • odozva na stav prostredia a odmenu akcie (optimizácia experimentálnch designov)
  • hybridné a iné
    • semi alebo self supervised, meta-learning, (sequenčná) optimalizácia (Bayesovská optimalizácia)

Maybe Attention Is Not Always All You Need

  • závisí na forme vstupu, požadovanom výstupe ale aj spracovaní dát
  • klasické (pre-deep) modely sú vhodné na mnoho úloh
    • lineárna či logistická regresia (banky, trading a hackaton),
    • random forests/decision trees, K-Nearest Neighbors Algorithm, support vector machines,
    • PCA na analýzu či zobrazovanie dát
    • k-means, EM pre zhlukovanie
  • MLP (KAN) ako stavebný blok
  • konvolučné a rekurentné siete, transformery pre špecificky typ vstupov (využitie symetrii)
  • deep reinforcement learning v prípade možnosti prostredia

Príklad

Zdroje

Modely a Učení

Kritická teplota

  • preskúmajte dataset pre predikciu kritickej teploty
  • rozdeľte data na trénovaciu a testovaciu množinu (test_size = 0.1)
  • vytvorte regresný model
  • vytvorte model s čo najmenšou RMSE

Kritická teplota

Ukaž kód
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
import matplotlib.pyplot as plt

# Načítanie data zo súboru
data = pd.read_csv('practicals/SCProperties.csv')

# Preprocessing
k = 0
relevant_features = data.corr()['critical_temp'].abs().sort_values(ascending=False)[1:k+1].index.tolist()
X = data[relevant_features] if k > 0 else data.drop('critical_temp', axis=1)
y = data['critical_temp']

# Rozdelenie dát na trénovaciu a testovaciu množinu
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.1, random_state=69)

# Lineárny regresný model
linear = LinearRegression().fit(X_train, y_train)
linear_predictions = linear.predict(X_test)
linear_mse = mean_squared_error(y_test, linear_predictions)
print('Linear Regression RMSE: ', linear_mse**0.5)

# Zobrazenie výsledkov
max_T = max(y_test)
plt.scatter(y_test, linear_predictions)
plt.plot([0, max_T], [0, max_T], 'r--')
plt.title('Linear Regression prediction vs true value')
plt.xlabel('True Values')
plt.ylabel('Predictions')
plt.show()
Linear Regression RMSE:  17.14375063740126