Mae'r rhan fwyaf ohonom yn gyfarwydd â generaduron delwedd AI fel Trylediad Sefydlog. Mae eisoes wedi newid y diwydiant ac wedi'i ymgorffori yn ein bywydau.
Fodd bynnag, mae modelau Trylediad Sefydlog yn gymaint mwy na chynhyrchu delweddau.
Mae cymaint o feysydd lle gallwn eu cyflogi.
Mae modelau Trylediad Sefydlog yn fodelau mathemategol. A gallant eich helpu i ymchwilio i ddeinameg newid systemau dros amser.
Maent yn seiliedig ar gysyniadau prosesau tryledu. Felly, gallwch archwilio ystod eang o ffenomenau. Er enghraifft; trosglwyddo gwres, adweithiau cemegol, a lluosogi gwybodaeth mewn marchnadoedd ariannol.
Mae'r modelau hyn yn hynod addasadwy. Felly, gallwch chi ragweld cyflwr system yn y dyfodol yn seiliedig ar ei chyflwr presennol.
Ar ben hynny, gallwch weld yr egwyddorion ffisegol neu ariannol sylfaenol sy'n ei lywodraethu. Mae'r cysyniad hwn wedi bod yn ddefnyddiol iawn mewn llawer o feysydd. Mae'r rhain yn cynnwys ffiseg, cemeg a chyllid.
Dyna pam yr ydym am ymchwilio ymhellach iddo. Ac, rydym am roi tiwtorial i chi ar sut i hyfforddi'r modelau Trylediad Sefydlog hyn.
Sut Daeth Modelau Tryledu Sefydlog i Wneud?
Mae gwreiddiau hyn yn ôl i ddiwedd y 19eg ganrif.
Yr ymchwiliad mathemategol i brosesau tryledu mewn materion yw lle y dechreuodd modelau Trylediad Sefydlog. Un o'r modelau Trylediad Sefydlog mwyaf poblogaidd yw hafaliad Fokker-Planck.
Fe'i cyflwynwyd gyntaf ym 1906. Mae'r modelau hyn wedi esblygu ac wedi'u haddasu dros amser. Felly, rydym bellach yn eu defnyddio mewn amrywiaeth o ddiwydiannau.
Beth yw'r rhesymeg y tu ôl iddo?
Yn syml, fel y dywedasom, maent yn fodelau mathemategol. Yn ogystal, maent yn ein helpu i ymchwilio i sut mae eiddo neu swm yn lledaenu dros amser mewn system.
Maent yn seiliedig ar egwyddorion prosesau tryledu. Felly, maent yn ein helpu i ymchwilio i sut mae swm yn lledaenu ar draws system. Mae'r lledaeniad hwn o ganlyniad i amrywiadau mewn crynodiad, pwysedd, neu baramedrau eraill.
Gadewch i ni roi enghraifft syml. Dychmygwch fod gennych chi gynhwysydd yn llawn hylif lle rydych chi wedi ychwanegu llifyn. Gwelir trylediad yma pan fydd y llifyn yn dechrau gwasgaru ac emwlsio yn yr hylif. Yn seiliedig ar nodweddion yr hylif a'r llifyn, gellir defnyddio modelau Trylediad Sefydlog i ragweld sut y bydd y llifyn yn gwasgaru ac yn cymysgu dros amser.
Mewn systemau mwy cymhleth, fel marchnadoedd ariannol neu adweithiau cemegol, gall y modelau hyn ragweld sut y bydd gwybodaeth neu rinweddau yn lledaenu ac effeithio ar y system dros amser. Yn ogystal, efallai y bydd data mawr yn dod i arfer hyfforddi'r modelau hyn i wneud rhagfynegiadau cywir. Fe'u hadeiladir gan ddefnyddio fformiwlâu mathemategol sy'n disgrifio esblygiad hirdymor y system.
Deall a rhagfynegi lledaeniad nodweddion penodol mewn system dros amser yw'r prif syniad sydd wrth wraidd y modelau hyn. Mae'n bwysig cofio bod arbenigwyr mewn meysydd arbenigol fel arfer yn defnyddio'r modelau hyn.
Sut i Hyfforddi Modelau?
Casglwch a pharatowch eich data:
Rhaid i chi yn gyntaf gasglu a pharatoi eich data cyn y gallwch ddechrau hyfforddi eich model. Efallai y bydd angen glanhau a fformatio eich data. Hefyd, efallai y bydd angen dileu'r niferoedd coll hefyd.
Dewiswch bensaernïaeth fodel
Daw modelau Trylediad Sefydlog mewn amrywiaeth o ffurfiau. Mae'n seiliedig yn bennaf ar hafaliad Fokker-Planck, hafaliad Schrödinger, a'r hafaliad Meistr. Rhaid dewis y model sy'n cyd-fynd orau â'ch sefyllfa benodol chi. Felly, mae gan bob un o'r modelau hyn fanteision ac anfanteision.
Sefydlu eich swyddogaeth colli
Mae'n bwysig gan ei fod yn effeithio ar ba mor dda y gall eich model gyfateb y data. Ar gyfer modelau Stable Diffusion, mae'r gwall sgwâr cymedrig a'r dargyfeiriad Kullback-Leibler yn swyddogaethau colled aml.
Hyfforddwch eich model
Gan ddefnyddio disgyniad graddiant stocastig neu ddull optimeiddio tebyg, efallai y byddwch chi'n dechrau hyfforddi'ch model ar ôl diffinio'ch swyddogaeth golled.
Archwiliwch gyffredinoli eich model
Dylech wirio data newydd ar ôl hyfforddi trwy ei gymharu â set brawf o ddata.
Tiwniwch hyperparamedrau eich model
Er mwyn gwella perfformiad eich model, arbrofwch gyda gwerthoedd amrywiol hyperparamedrau fel cyfradd ddysgu, maint swp, a nifer yr haenau cudd yn y rhwydwaith.
Ailadroddwch y camau blaenorol
Efallai y bydd angen i chi ailadrodd y prosesau hyn fwy nag unwaith i gael y canlyniadau gorau. Bydd yn dibynnu ar anhawster y broblem a chalibr y data.
Tiwtorial codio
Ieithoedd rhaglennu fel Python, MATLAB, C ++, ac R gellir eu defnyddio i greu modelau Trylediad Sefydlog. Bydd yr iaith a ddefnyddir yn dibynnu ar y cymhwysiad penodol. Hefyd, gall ddibynnu ar offer a llyfrgelloedd sydd ar gael ar gyfer yr iaith honno.
Python yw'r dewis gorau yn yr achos hwn. Mae ganddo lyfrgelloedd cryf fel NumPy a SciPy ar gyfer cyfrifiant rhifiadol. Hefyd, mae'n cefnogi TensorFlow a PyTorch ar gyfer creu a hyfforddi rhwydweithiau niwral. Felly, mae'n dod yn opsiwn gwych ar gyfer ysgrifennu modelau Trylediad Sefydlog.
enghraifft:
Gadewch i ni ddefnyddio'r hafaliad trylediad, fformiwla fathemategol sy'n disgrifio sut mae ansawdd neu swm, fel gwres neu grynodiad sylwedd, yn newid dros amser mewn system. Mae'r hafaliad yn gyffredinol yn edrych fel hyn:
∂u/∂t = α ∇²u
Mae'r cyfernod trylediad () yn fesur o ba mor hawdd y mae priodwedd neu swm yn ymledu trwy system.
Mae Laplacian u (2u) yn ddisgrifiad o sut mae'r eiddo neu'r maint yn newid o ran gofod. Lle u yw'r priodwedd neu'r maint sy'n cael ei dryledu (er enghraifft, tymheredd neu grynodiad), t yw treigl amser, yw'r cyfernod tryledu, a dyma'r cysonyn trylediad ().
Gallwn ei weithredu gan ddefnyddio dull Euler yn Python.
import numpy as np
# Define the diffusion coefficient
alpha = 0.1
# Define the initial condition (e.g. initial temperature or concentration)
u = np.ones(100)
# Time step
dt = 0.01
# Time-stepping loop
for t in range(1000):
# Compute the spatial derivative
du = np.diff(u)
# Update the value of u
u[1:] = u[1:] + alpha * du * dt
Mae'r cod hwn yn defnyddio techneg Euler i weithredu'r hafaliad trylediad. Mae'n disgrifio'r cyflwr cychwynnol fel cyflwr cychwynnol unffurf a gynrychiolir gan amrywiaeth o rai â siâp (100). Defnyddir 0.01 fel y cam amser.
Cwblhawyd 1000 o iteriadau o'r ddolen gamu amser.
Mae'n defnyddio'r swyddogaeth np.diff, sy'n pennu'r gwahaniaeth rhwng elfennau cyfagos. Felly, mae'n cyfrifo deilliad gofodol yr eiddo neu'r maint sy'n cael ei wasgaru. Ac, fe'i cynrychiolir gan du, ym mhob iteriad.
Yna rydym yn lluosi'r deilliad gofodol â'r cyfernod tryledu alffa a'r cam amser i ddiweddaru gwerth u.
Enghraifft Mwy Cymhleth
Sut olwg fyddai ar fodel trylediad sefydlog sydd ond yn mesur trylediad gwres sefydlog? Sut mae'r cod hwnnw'n gweithio?
Mae angen datrys set o hafaliadau gwahaniaethol rhannol (PDEs) sy'n esbonio sut mae gwres yn lledaenu ar draws system dros amser. Felly, gallwn hyfforddi model Trylediad Sefydlog sy'n efelychu trylediad cyson gwres.
Dyma enghraifft o sut y gellir datrys yr hafaliad gwres, sef PDE sy'n esbonio Trylediad Sefydlog gwres mewn gwialen un dimensiwn, gan ddefnyddio'r dull gwahaniaeth meidraidd:
import numpy as np
import matplotlib.pyplot as plt
# Define the initial conditions
L = 1 # length of the rod
Nx = 10 # number of spatial grid points
dx = L / (Nx - 1) # spatial grid spacing
dt = 0.01 # time step
T = 1 # total time
# Set up the spatial grid
x = np.linspace(0, L, Nx)
# Set up the initial temperature field
T0 = np.zeros(Nx)
T0[0] = 100 # left boundary condition
T0[-1] = 0 # right boundary condition
# Set up the time loop
Tn = T0
for n in range(int(T / dt)):
Tnp1 = np.zeros(Nx)
Tnp1[0] = 100 # left boundary condition
Tnp1[-1] = 0 # right boundary condition
for i in range(1, Nx - 1):
Tnp1[i] = Tn[i] + dt * (Tn[i+1] - 2*Tn[i] + Tn[i-1]) / dx**2
Tn = Tnp1
# Plot the final temperature field
plt.plot(x, Tn)
plt.xlabel('x')
plt.ylabel('T(x)')
plt.show()
Sut Mae Cynhyrchu Delwedd o Destun yn Gweithio?
Gan ei fod yn eithaf poblogaidd ar y rhyngrwyd, gallwn wirio sut mae cynhyrchu delweddau yn gweithio hefyd.
Dulliau prosesu iaith naturiol (NLP) a rhwydweithiau nefol. Ac fe'u defnyddir yn aml i ddarparu model Trylediad Sefydlog ar gyfer trosi testun-i-ddelwedd. Rhoddir disgrifiad bras o sut i'w gyflawni isod:
1- Tociwch y geiriau yn y data testun, a dileu geiriau stopio ac atalnodi. Trowch y geiriau yn werthoedd rhifiadol. Mae'n rhan o'r rhagbrosesu (ymgorffori geiriau).
import nltk
from nltk.tokenize import word_tokenize
nltk.download('punkt')
# Pre-processing the text data
text = "a bird sitting on a flower. "
words = word_tokenize(text)
words = [word.lower() for word in words if word.isalpha()]
2- Dysgwch sut i gysylltu'r testun a'r delweddau gan ddefnyddio rhwydwaith niwral sy'n cyfuno amgodiwr a datgodiwr. Mae'r rhwydwaith datgodiwr yn derbyn y cod cudd fel mewnbwn. Yna, mae'n creu'r llun cysylltiedig ar ôl i'r rhwydwaith amgodiwr drosi'r data testun yn gynrychiolaeth gryno (cod cudd).
import tensorflow as tf
# Define the encoder model
encoder = tf.keras.Sequential()
encoder.add(tf.keras.layers.Embedding(input_dim=vocab_size,
output_dim=latent_dim))
encoder.add(tf.keras.layers.GRU(latent_dim))
encoder.add(tf.keras.layers.Dense(latent_dim))
# Define the decoder model
decoder = tf.keras.Sequential()
decoder.add(tf.keras.layers.Dense(latent_dim,
input_shape=(latent_dim,)))
decoder.add(tf.keras.layers.GRU(latent_dim))
decoder.add(tf.keras.layers.Dense(vocab_size))
# Combine the encoder and decoder into an end-to-end model
model = tf.keras.Sequential([encoder, decoder])
3- Trwy ei ddarparu gyda chasgliad sylweddol o ddelweddau a'r disgrifiadau testun sy'n cyd-fynd â nhw. Yna, gallwch chi hyfforddi'r rhwydwaith amgodiwr-datgodiwr.
# Compile the model
model.compile(optimizer='adam',
loss='categorical_crossentropy')
# Train the model on the dataset
model.fit(X_train, y_train, epochs=10, batch_size=32)
4- Ar ôl i'r rhwydwaith gael ei hyfforddi, gallwch ei ddefnyddio i gynhyrchu lluniau o fewnbynnau testun ffres. Ac, mae'n drwy fwydo'r testun i mewn i'r rhwydwaith amgodiwr. Yna, gallwch chi gynhyrchu cod cudd, ac yna bwydo'r cod cudd i'r rhwydwaith datgodiwr i gynhyrchu'r ddelwedd gysylltiedig.
# Encode the text input
latent_code = encoder.predict(text)
# Generate an image from the latent code
image = decoder.predict(latent_code)
5-Mae dewis y set ddata briodol a swyddogaethau colli yn un o'r camau mwyaf hanfodol. Mae'r set ddata yn amrywiol ac yn cynnwys ystod eang o luniau a disgrifiadau testun. Rydyn ni eisiau gwneud yn siŵr bod y delweddau'n realistig. Hefyd, mae angen i ni fod yn sicr bod y disgrifiadau testun yn ymarferol fel y gallwn ddylunio'r swyddogaeth colli.
# Define the loss function
loss = tf.losses.mean_squared_error(y_true, y_pred)
# Compile the model
model.compile(optimizer='adam', loss=loss)
# use diverse dataset
from sklearn.utils import shuffle
X_train, y_train = shuffle(X_train, y_train)
Yn olaf, gallwch arbrofi gyda phensaernïaeth a methodolegau eraill. Felly, y gallwch godi perfformiad y model, megis mecanweithiau sylw, GANs, neu VAEs.
Gadael ymateb