Neděle , 6 Červenec 2025
Domů Programování Simulace & strojové učení
ProgramováníPythonStrojové učeníUmělá inteligence

Simulace & strojové učení

blank
blank

Simulace v kontextu strojového učení je často zaměřena na vytváření modelů, které napodobují určité jevy nebo systémy. Jako příklad uveďme vytvoření jednoduchého programu, který simuluje lineární regresi. V tomto příkladě budeme „simulovat“ vztah mezi dvěma proměnnými.

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt

# Vytvoříme data pro trénink
X_train = np.linspace(0, 10, 100)
y_train = 2 * X_train + 1 + np.random.normal(0, 1, 100)

# Definujeme model - jednoduchý lineární model y = a*X + b
class LinearModel:
    def __init__(self):
        self.weight = tf.Variable(10.0)
        self.bias = tf.Variable(10.0)

    def __call__(self, x):
        return self.weight * x + self.bias

model = LinearModel()

# Definujeme funkci ztráty - použijeme mean square error
def loss(y_true, y_pred):
    return tf.reduce_mean(tf.square(y_true - y_pred))

# Definujeme optimalizační algoritmus - použijeme gradient descent
optimizer = tf.optimizers.SGD(learning_rate=0.1)

# Trénovací smyčka
for i in range(1000):
    with tf.GradientTape() as tape:
        y_pred = model(X_train)
        current_loss = loss(y_train, y_pred)

    grads = tape.gradient(current_loss, [model.weight, model.bias])
    optimizer.apply_gradients(zip(grads, [model.weight, model.bias]))

# Výsledky
print(f'Weight: {model.weight.numpy()}, Bias: {model.bias.numpy()}, Loss: {loss(y_train, model(X_train)).numpy()}')

# Vykreslení dat a naučeného modelu
plt.scatter(X_train, y_train, label='Data')
plt.plot(X_train, model.weight.numpy() * X_train + model.bias.numpy(), 'r-', label='Predicted')
plt.legend()
plt.show()

V tomto příkladě jsme „simulovali“ proces učení lineárního modelu na základě tréninkových dat. Model se učil, jak napodobit vztah mezi vstupem X_train a výstupem y_train. Po dokončení tréninku jsme vytiskli váhu a zkreslení modelu a nakreslili jsme data a předpovědi modelu.

Je důležité poznamenat, že simulace v kontextu strojového učení mohou být mnohem složitější a mohou zahrnovat takové úlohy, jako je simulace fyzikálních systémů, chování agentů v prostředí, biologické procesy a mnoho dalšího.Tento příklad je dobrým výchozím bodem pro pochopení základního procesu simulace v kontextu strojového učení.

Výsledkem tohoto konkrétního příkladu je lineární model, který byl naučen napodobovat vztah mezi vstupními a výstupními daty. Po tréninku by měl model umět předpovědět výstup (y) pro daný vstup (X) s určitou mírou přesnosti. Tato přesnost je dána hodnotou funkce ztráty – čím nižší je tato hodnota, tím lépe model napodobuje data.

Výsledný model je také vizualizován pomocí matplotlib, takže můžete vidět, jak dobře se naučil napodobovat data. Červená čára na grafu představuje předpovědi modelu a bodový graf představuje skutečná data. Měli byste vidět, že červená čára se pokouší co nejlépe se přizpůsobit bodům na grafu.

blank

V kódu výše jsem poskytl základní kostru pro vytvoření lineárního modelu v TensorFlow, který je schopen se učit z dat. Ale chybějí některé klíčové prvky potřebné k tomu, aby tento kód správně fungoval a vytvořil předpovězenou červenou čáru v grafu.

Kód tak, jak je nyní, vytvoří pouze datový bodový graf bez červené čáry, protože v kódu chybí fáze tréninku a predikce modelu. Model je sice definován (pomocí tf.keras.layers.Dense(1)), ale nikdy není trénován na datech ani použit k predikci.

Zde je dokončený kód:

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt

# Create a simple linear model
model = tf.keras.Sequential([
    tf.keras.layers.Dense(1, input_shape=[1])
])

# Compile the model
model.compile(optimizer='sgd', loss='mean_squared_error')

# Provide the data
X = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype=float)
y = np.array([-2.0, 1.0, 4.0, 7.0, 10.0, 13.0], dtype=float)

# Train the model
model.fit(X, y, epochs=500)

# Predict using the model
y_pred = model.predict(X)

# Plot the results
plt.scatter(X, y, color='blue')
plt.plot(X, y_pred, color='red')
plt.show()

Tento kód vytvoří a natrénuje lineární model na datech X a y, poté použije model k předpovědi y_pred pro dané X. Výsledky jsou poté zobrazeny v grafu. Modré body představují původní data a červená čára představuje předpovědi modelu.

blank

Zanechte komentář

Napsat komentář

Související články

blank
Umělá inteligence

🩺 Personalizovaná medicína a AI

🩺 Co je personalizovaná medicína? Personalizovaná medicína využívá data o genetice, životním...

blank
Umělá inteligence

Edge-AI a nové akcelerátory

🌐 Co je Edge-AI? Edge-AI spojuje umělou inteligenci a edge computing, tedy...

blank
ProgramováníUmělá inteligence

Runway Game Worlds: Vytvářejte video hry s generativní AI

Runway Game Worlds: Vytvářejte video hry s generativní AI bez nutnosti programování...

blank
ProgramováníPython

PyCharm JetBrains IDE vývojové prostředí

🚀 Úvod PyCharm je špičkové integrované vývojové prostředí (IDE) od společnosti JetBrains,...

blank
×
Avatar
PetrPikora.com
AI Chatbot
Ahoj! Jak vám mohu pomoci?
 

Používáním tohoto chatbota souhlasíte se shromažďováním a používáním vašich dat, jak je uvedeno v našich Zásadách ochrany osobních údajů. Vaše údaje budou použity pouze jako pomoc s vaším dotazem.