Flest okkar þekkjum gervigreindarmyndavélar eins og Stöðugt dreifing. Það hefur þegar breytt greininni og hefur verið fellt inn í líf okkar.
Hins vegar eru Stable Diffusion módel svo miklu meira en myndagerð.
Það eru svo mörg svið þar sem við getum notað þá.
Stöðug dreifingarlíkön eru stærðfræðileg líkön. Og þeir geta hjálpað þér að kanna gangverki breytinga á kerfum með tímanum.
Þau eru byggð á hugmyndum um dreifingarferli. Þess vegna er hægt að skoða mikið úrval af fyrirbærum. Til dæmis; hitaflutningur, efnahvörf og útbreiðslu upplýsinga á fjármálamörkuðum.
Þessar gerðir eru mjög aðlögunarhæfar. Þannig að þú getur séð fyrir framtíðarástand kerfis miðað við núverandi ástand þess.
Að auki geturðu séð undirliggjandi líkamlegar eða fjárhagslegar meginreglur sem stjórna því. Þetta hugtak hefur verið mjög gagnlegt á mörgum sviðum. Þar á meðal eru eðlisfræði, efnafræði og fjármál.
Þess vegna viljum við kanna það frekar. Og við viljum gefa þér kennslu um hvernig á að þjálfa þessar stöðugu dreifingarlíkön.
Hvernig urðu stöðugar dreifingarlíkön til?
Þetta á rætur aftur til seint á 19. öld.
Stærðfræðileg rannsókn á dreifingarferlum í málum er þar sem Stable Diffusion módel hófust. Ein vinsælasta Stable Diffusion líkanið er Fokker-Planck jöfnan.
Það var fyrst kynnt árið 1906. Þessar gerðir hafa þróast og verið breytt í gegnum tíðina. Þess vegna notum við þau núna í ýmsum atvinnugreinum.
Hver er rökfræðin á bak við það?
Í einföldu máli, eins og við sögðum, eru þetta stærðfræðileg líkön. Að auki hjálpa þeir okkur að kanna hvernig eign eða magn dreifist yfir tíma í kerfi.
Þau eru byggð á meginreglum um dreifingarferli. Þannig að þeir hjálpa okkur að rannsaka hvernig magn dreifist um kerfi. Þessi dreifing er afleiðing af breytingum á styrk, þrýstingi eða öðrum breytum.
Við skulum gefa einfalt dæmi. Ímyndaðu þér að þú sért með ílát fullt af vökva sem þú hefur bætt litarefni í. Dreifing sést hér þegar litarefnið byrjar að dreifast og fleyta í vökvanum. Byggt á eiginleikum vökvans og litarefnis, er hægt að nota Stable Diffusion líkön til að spá fyrir um hvernig litarefnið mun dreifast og blandast með tímanum.
Í flóknari kerfum, eins og fjármálamörkuðum eða efnahvörfum, geta þessi líkön spáð fyrir um hvernig upplýsingar eða eiginleikar munu dreifast og hafa áhrif á kerfið með tímanum. Að auki geta stór gögn venst þjálfa þessar gerðir að gera nákvæmar spár. Þau eru byggð með stærðfræðilegum formúlum sem lýsa langtímaþróun kerfisins.
Að skilja og spá fyrir um útbreiðslu ákveðinna eiginleika í kerfi í gegnum tíðina er meginhugmyndin sem liggur að baki þessum líkönum. Það er mikilvægt að muna að sérfræðingar á sérhæfðum sviðum nota venjulega þessi líkön.
Hvernig á að þjálfa módel?
Safnaðu og undirbúið gögnin þín:
Þú verður fyrst að safna og undirbúa gögnin þín áður en þú getur byrjað að þjálfa líkanið þitt. Gæti þurft að hreinsa gögnin þín og forsníða þau. Einnig gæti þurft að útrýma þeim tölum sem vantar.
Veldu fyrirmyndararkitektúr
Stöðug dreifingarlíkön koma í ýmsum gerðum. Hún er að mestu byggð á Fokker-Planck jöfnunni, Schrödinger jöfnunni og Master jöfnunni. Velja þarf líkanið sem passar best við sérstakar aðstæður þínar. Þannig hefur hver af þessum gerðum kosti og galla.
Koma á tapsvirkni þinni
Það er mikilvægt þar sem það hefur áhrif á hversu vel líkanið þitt getur passað við gögnin. Fyrir líkön með stöðugri dreifingu eru meðaltalsvilla í veldi og Kullback-Leibler mismunur tíðar tapaðgerðir.
Þjálfa líkanið þitt
Með því að nota stochastic hallafall eða svipaða hagræðingaraðferð gætirðu byrjað að þjálfa líkanið þitt eftir að hafa skilgreint tapaðgerðina þína.
Skoðaðu alhæfanleika líkansins þíns
Þú ættir að athuga fersk gögn eftir þjálfun með því að bera þau saman við prófunargögn.
Stilltu ofurfæribreytur líkansins þíns
Til að auka afköst líkansins þíns skaltu gera tilraunir með ýmis gildi ofbreyta eins og námshraða, lotustærð og fjölda falinna laga á netinu.
Endurtaktu fyrri aðgerðir
Þú gætir þurft að endurtaka þessi ferli oftar en einu sinni til að ná sem bestum árangri. Það fer eftir erfiðleikum vandamálsins og gæðum gagnanna.
Kennsla um kóða
Forritunarmál eins og Python, MATLAB, C++ og R má öll nota til að búa til Stable Diffusion módel. Tungumálið sem notað er byggir á tilteknu forriti. Það getur líka verið háð verkfærum og bókasöfnum sem eru aðgengileg fyrir það tungumál.
Python er besti kosturinn í þessu tilfelli. Það hefur sterk bókasöfn eins og NumPy og SciPy fyrir tölulega útreikninga. Einnig styður það TensorFlow og PyTorch til að búa til og þjálfa taugakerfi. Þess vegna verður það frábær kostur til að skrifa Stable Diffusion módel.
Dæmi:
Notum dreifingarjöfnuna, stærðfræðilega formúlu sem lýsir því hvernig gæði eða magn, eins og hiti eða styrkur efnis, breytist með tímanum í kerfi. Jafnan lítur almennt svona út:
∂u/∂t = α ∇²u
Dreifingarstuðullinn () er mælikvarði á hversu auðveldlega eign eða magn dreifist um kerfi.
Laplacian á u (2u) er lýsing á því hvernig eignin eða magnið breytist með tilliti til rýmis. Þar sem u er eiginleiki eða magn sem verið er að dreifa (til dæmis hitastig eða styrkur), er t líðan tímans, er dreifingarstuðullinn og er dreifingarfastinn ().
Við getum útfært það með Euler aðferðinni í 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
Þessi kóði notar Euler tækni til að útfæra dreifingarjöfnuna. Það lýsir upphafsástandinu sem samræmdu upphafsástandi sem táknað er með fylki þeirra með lögunina (100). 0.01 er notað sem tímaþrep.
1000 endurtekningum á tímaþrep lykkjunni er lokið.
Það notar np.diff fallið, sem ákvarðar muninn á nálægum þáttum. Þess vegna reiknar það staðbundna afleiðu eiginleikans eða magnsins sem er dreift. Og það er táknað með du, við hverja endurtekningu.
Síðan margföldum við landafleiðuna með dreifingarstuðlinum alfa og tímaþrepinu til að uppfæra gildi u.
Flóknara dæmi
Hvernig myndi stöðugt dreifingarlíkan líta út sem mælir aðeins stöðuga hitadreifingu? Hvernig virkar þessi kóði?
Nauðsynlegt er að leysa sett af hlutadiffurjöfnum (PDEs) sem útskýra hvernig varmi dreifist um kerfi með tímanum. Þannig að við getum þjálfað stöðugt dreifingarlíkan sem endurtekur stöðuga dreifingu hita.
Hér er mynd af því hvernig hægt er að leysa varmajöfnuna, PDE sem útskýrir stöðuga dreifingu varma í einvíðri stöng, með endanlegri mismunaaðferð:
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()
Hvernig virkar myndagerð úr texta?
Þar sem það er nokkuð vinsælt á netinu getum við athugað hvernig myndagerð virkar líka.
Náttúruleg málvinnsla (NLP) aðferðir og taugakerfi. Og þeir eru oft notaðir til að bjóða upp á Stable Diffusion líkan fyrir umbreytingu texta í mynd. Víðtæk lýsing á því hvernig á að framkvæma það er að finna hér að neðan:
1- Táknaðu orðin í textagögnunum og fjarlægðu stöðvunarorð og greinarmerki. Breyttu orðunum í tölugildi. Það er hluti af forvinnslunni (innfelling orða).
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- Lærðu hvernig á að tengja textann og myndirnar með því að nota taugakerfi sem sameinar kóðara og afkóðara. Afkóðarnetið fær dulda kóðann sem inntak. Síðan býr það til tengda mynd eftir að kóðaranetið breytir textagögnunum í þétta framsetningu (leynda kóða).
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- Með því að útvega því umtalsvert safn af myndum og textalýsingum sem fylgja þeim. Síðan geturðu þjálfað kóðara-afkóðara netið.
# 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- Eftir að netið hefur verið þjálfað geturðu notað það til að búa til myndir úr ferskum textainnslætti. Og það er með því að fæða textann inn í kóðara netið. Síðan geturðu framleitt duldan kóða og síðan fært dulda kóðann inn á afkóðaranetið til að framleiða tilheyrandi mynd.
# Encode the text input
latent_code = encoder.predict(text)
# Generate an image from the latent code
image = decoder.predict(latent_code)
5-Val á viðeigandi gagnasafni og tapaðgerðum er eitt mikilvægasta skrefið. Gagnagrunnurinn er fjölbreyttur og inniheldur mikið úrval mynda og textalýsinga. Við viljum tryggja að myndirnar séu raunhæfar. Einnig þurfum við að vera viss um að textalýsingarnar séu framkvæmanlegar svo að við getum hannað tapfallið.
# 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)
Að lokum geturðu gert tilraunir með aðra arkitektúr og aðferðafræði. Svo að þú getur aukið frammistöðu líkansins, svo sem athygliskerfi, GAN eða VAE.
Skildu eftir skilaboð