Yawancin mu mun saba da masu samar da hoton AI kamar Tsayayyen Yaduwa. Ya riga ya canza masana'antar kuma an shigar da shi cikin rayuwarmu.
Koyaya, samfuran Stable Diffusion sun fi haɓakar hoto da yawa.
Akwai wurare da yawa da za mu iya ɗaukar su aiki.
Stable Diffusion model model na lissafi ne. Kuma, za su iya taimaka muku don bincika yanayin canjin tsarin a kan lokaci.
Sun dogara ne akan dabarun aiwatar da yadawa. Don haka, zaku iya bincika manyan abubuwan mamaki. Misali; watsa zafi, halayen sinadarai, da yaduwar bayanai a kasuwannin kuɗi.
Waɗannan samfuran suna da sauƙin daidaitawa. Don haka, zaku iya tsammanin yanayin gaba na tsarin dangane da yanayin da yake yanzu.
Bayan haka, kuna iya ganin ƙa'idodin zahiri ko na kuɗi waɗanda ke tafiyar da shi. Wannan ra'ayi ya kasance mai amfani sosai a fagage da yawa. Waɗannan sun haɗa da physics, chemistry, da kuma kuɗi.
Wannan shine dalilin da ya sa muke son yin bincike akai. Kuma, muna son ba ku koyawa kan yadda ake horar da waɗannan samfuran Stable Diffusion.
Ta yaya Samfurin Yadawa Stable Ya Kasance?
Wannan ya samo asali tun daga ƙarshen karni na 19.
Binciken lissafi na hanyoyin watsawa cikin al'amura shine inda samfuran Stable Diffusion suka fara. Ɗaya daga cikin shahararrun samfuran Stable Diffusion shine ma'aunin Fokker-Planck.
An fara gabatar da shi a cikin 1906. Waɗannan samfuran sun samo asali kuma an gyara su ta lokaci. Don haka, yanzu muna amfani da su a cikin masana'antu daban-daban.
Menene Hankali Bayansa?
A cikin sauki kalmomi, kamar yadda muka ce, su ne tsarin lissafi. Bayan haka, suna taimaka mana mu bincika yadda dukiya ko yawa ke yaɗuwar lokaci a cikin tsarin.
Sun dogara ne akan ka'idodin aiwatar da yadawa. Don haka, suna taimaka mana mu bincika yadda yawa ke yaɗuwa cikin tsarin. Wannan yaduwa sakamakon bambance-bambancen natsuwa ne, matsa lamba, ko wasu sigogi.
Bari mu ba da misali mai sauƙi. Ka yi tunanin kana da akwati cike da ruwa wanda ka ƙara rini a ciki. Ana ganin yaduwa a nan lokacin da rini ya fara tarwatsewa da emulsify a cikin ruwa. Dangane da halayen ruwa da rini, ana iya amfani da samfuran Stable Diffusion don yin hasashen yadda rini za ta watse da gauraya cikin lokaci.
A cikin ƙarin hadaddun tsarin, kamar kasuwannin kuɗi ko halayen sinadarai, waɗannan samfuran na iya yin hasashen yadda bayanai ko halayen za su yaɗu da tasiri akan tsarin akan lokaci. Bayan haka, manyan bayanai na iya amfani da su horar da waɗannan samfuran don yin sahihan tsinkaya. An gina su ta amfani da dabarun lissafi waɗanda ke bayyana tsarin juyin halitta na dogon lokaci.
Fahimtar da tsinkayar yaduwar wasu halaye a cikin tsari ta hanyar lokaci shine babban ra'ayin da ke ƙarƙashin waɗannan samfuran. Yana da mahimmanci a tuna cewa ƙwararru a fannoni na musamman galibi suna amfani da waɗannan samfuran.
Yadda ake Horar da Samfura?
Tara ku shirya bayananku:
Dole ne ku fara tattarawa ku shirya bayananku kafin ku fara horar da ƙirar ku. Maiyuwa ne a share bayananku da tsara su. Hakanan, lambobin da suka ɓace na iya buƙatar kawar da su.
Zaɓi tsarin gine-gine
Stable Diffusion model zo a cikin nau'i-nau'i iri-iri. Yawancin ya dogara ne akan ma'auni na Fokker-Planck, da Schrödinger equation, da Master equation. Dole ne a zaɓi samfurin da ya fi dacewa da yanayin ku na musamman. Don haka, kowane ɗayan waɗannan samfuran yana da fa'ida da rashin amfani.
Kafa aikin asarar ku
Yana da mahimmanci tunda yana shafar yadda samfurin ku zai iya daidaita bayanan. Don samfuran Stable Diffusion, kuskuren murabba'i na ma'ana da bambancin Kullback-Leibler ayyuka ne na asara akai-akai.
Horar da samfurin ku
Yin amfani da zuriyar gradient stochastic ko irin wannan hanyar ingantawa, zaku iya fara horar da ƙirar ku bayan ayyana aikin asarar ku.
Yi nazarin juzu'in samfurin ku
Ya kamata ku duba sabbin bayanai bayan horo ta hanyar kwatanta su zuwa saitin bayanai.
Kunna ma'auni na ƙirar ku
Don haɓaka aikin ƙirar ku, gwada ƙima daban-daban na hyperparameters kamar ƙimar koyo, girman tsari, da adadin ɓoyayyun yadudduka a cikin hanyar sadarwa.
Maimaita ayyukan da suka gabata
Kuna iya buƙatar maimaita waɗannan matakan fiye da sau ɗaya don samun sakamako mafi kyau. Zai dogara ne akan wahalar matsalar da girman bayanan.
Koyarwar Coding
Shirya harsuna kamar Python, MATLAB, C++, da R ana iya amfani da su don ƙirƙirar samfuran Stable Diffusion. Harshen da aka yi amfani da shi zai dogara da takamaiman aikace-aikacen. Hakanan, yana iya dogara ga kayan aiki da ɗakunan karatu da aka samar don wannan harshe.
Python shine mafi kyawun zaɓi a wannan yanayin. Yana da dakunan karatu masu ƙarfi kamar NumPy da SciPy don ƙididdige ƙididdiga. Hakanan, yana goyan bayan TensorFlow da PyTorch don ƙirƙira da horar da hanyoyin sadarwar jijiyoyi. Don haka, ya zama babban zaɓi don rubuta samfuran Stable Diffusion.
Example:
Bari mu yi amfani da ma'auni na yaduwa, tsarin lissafi wanda ke bayyana yadda inganci ko yawa, kamar zafi ko tattarawar abu, ke canzawa akan lokaci a cikin tsarin. Gabaɗaya lissafin lissafin yayi kama da haka:
∂u/∂t = α ∇²u
Ƙididdigar rarrabawa () shine ma'auni na yadda sauƙi ko yawa ke yaduwa ta hanyar tsari.
Laplacian na u (2u) shine bayanin yadda dukiya ko yawa ke canzawa dangane da sarari. Inda u ne dukiya ko adadin da ake watsawa (misali, zazzabi ko maida hankali), t shine wucewar lokaci, shine ma'auni na watsawa, kuma shine madaidaicin watsawa ().
Za mu iya aiwatar da shi ta amfani da hanyar Euler a 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
Wannan lambar tana amfani da dabarar Euler don aiwatar da daidaiton yaduwa. Ya bayyana yanayin farawa azaman yanayin farko na iri ɗaya wanda ke wakilta ta hanyar tsararrun waɗanda ke da siffar (100). 0.01 ana amfani dashi azaman matakin lokaci.
1000 maimaita madauki na lokaci-lokaci an kammala.
Yana amfani da aikin np.diff, wanda ke ƙayyade bambanci tsakanin abubuwan makwabta. Don haka, yana ƙididdige abubuwan da suka samo asali daga kayan ko adadin da ake watsawa. Kuma, ana wakilta shi da du, a kowane juzu'i.
Sa'an nan kuma mu ninka abin da aka samo ta sararin samaniya ta hanyar alfa mai yaduwa da matakin lokaci don sabunta ƙimar u.
Misalin Maɗaukakin Maɗaukaki
Menene tsayayyen samfurin yaduwa wanda kawai ma'aunin tsayayyen yaduwar zafi zai yi kama? Yaya wannan lambar ke aiki?
Magance saitin daidaitawa na ɓangarori (PDEs) waɗanda ke bayyana yadda zafi ke yaɗuwa a cikin tsarin kan lokaci ya zama dole. Don haka, zamu iya horar da samfurin Stable Diffusion wanda ke kwaikwayi tsayayyen yaduwar zafi.
Anan ga kwatanci na yadda za'a iya warware ma'aunin zafi, PDE wanda ke bayanin Stable Diffusion na zafi a cikin sanda mai girman fuska ɗaya, ta amfani da iyakataccen hanyar bambanci:
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()
Ta yaya Ƙirƙirar Hoto daga Rubutu ke Aiki?
Tun da yake sananne ne a kan intanit, za mu iya duba yadda tsarar hoto ke aiki kuma.
Hanyoyin sarrafa harshe na halitta (NLP) da neural networks. Kuma, ana yawan amfani da su don samar da samfurin Stable Diffusion don canza rubutu-zuwa hoto. An bayar da cikakken bayanin yadda ake cim ma ta a ƙasa:
1- Tokenize kalmomin da ke cikin bayanan rubutu, da kuma kawar da kalmomin tsayawa da alamar rubutu. Juya kalmomin zuwa ƙimar lambobi. Yana daga cikin abubuwan da aka riga aka tsara (masu shigar da kalmomi).
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- Koyi yadda ake danganta rubutu da hotuna ta hanyar amfani da hanyar sadarwa ta jijiyoyi da ke haɗa maɓalli da na'urar tantancewa. Cibiyar dillali tana karɓar latent code azaman shigarwa. Bayan haka, yana ƙirƙirar hoton da ke da alaƙa bayan cibiyar sadarwa ta canza bayanan rubutu zuwa ƙaramin wakilci (latent code).
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- Ta hanyar samar masa da tarin hotuna da bayanin rubutun da ke tare da su. Sa'an nan, za ka iya horar da encoder-decoder cibiyar sadarwa.
# 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- Bayan an horar da hanyar sadarwa, zaku iya amfani da shi don samar da hotuna daga sabbin abubuwan rubutu. Kuma, ta hanyar ciyar da rubutu ne a cikin hanyar sadarwar maɓalli. Sa'an nan, za ka iya samar da latent code, sa'an nan ciyar da latent code a cikin dikodi cibiyar sadarwa don samar da hade image.
# Encode the text input
latent_code = encoder.predict(text)
# Generate an image from the latent code
image = decoder.predict(latent_code)
5-Zaɓin bayanan da suka dace da ayyukan asara yana ɗaya daga cikin matakai masu mahimmanci. Rukunin bayanan ya bambanta kuma ya ƙunshi ɗimbin hotuna da bayanin rubutu. Muna so mu tabbatar da cewa hotuna na gaskiya ne. Har ila yau, muna buƙatar tabbatar da cewa kwatancin rubutu yana yiwuwa don mu iya tsara aikin asarar.
# 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 ƙarshe, kuna iya gwaji tare da wasu gine-gine da hanyoyin. Don haka, zaku iya haɓaka aikin ƙirar, kamar hanyoyin kulawa, GANs, ko VAEs.
Leave a Reply