ពួកយើងភាគច្រើនធ្លាប់ស្គាល់ឧបករណ៍បង្កើតរូបភាព AI ដូចជា ការសាយភាយមានស្ថេរភាព. វាបានផ្លាស់ប្តូរឧស្សាហកម្មរួចហើយ ហើយត្រូវបានបញ្ចូលទៅក្នុងជីវិតរបស់យើង។
ទោះជាយ៉ាងណាក៏ដោយ ម៉ូដែល Stable Diffusion មានច្រើនជាងការបង្កើតរូបភាព។
មានផ្នែកជាច្រើនដែលយើងអាចផ្តល់ការងារដល់ពួកគេ។
គំរូនៃការសាយភាយមានស្ថេរភាព គឺជាគំរូគណិតវិទ្យា។ ហើយពួកគេអាចជួយអ្នកក្នុងការស៊ើបអង្កេតថាមវន្តនៃការផ្លាស់ប្តូរប្រព័ន្ធតាមពេលវេលា។
ពួកវាផ្អែកលើគំនិតនៃដំណើរការសាយភាយ។ ដូច្នេះហើយ អ្នកអាចពិនិត្យមើលបាតុភូតដ៏ធំទូលាយមួយ។ ឧទាហរណ៍; ការបញ្ជូនកំដៅ ប្រតិកម្មគីមី និងការផ្សព្វផ្សាយព័ត៌មាននៅក្នុងទីផ្សារហិរញ្ញវត្ថុ។
ម៉ូដែលទាំងនេះគឺអាចសម្របខ្លួនបាន។ ដូច្នេះ អ្នកអាចប្រមើលមើលស្ថានភាពនាពេលអនាគតនៃប្រព័ន្ធដោយផ្អែកលើស្ថានភាពបច្ចុប្បន្នរបស់វា។
លើសពីនេះ អ្នកអាចមើលឃើញគោលការណ៍រូបវន្ត ឬផ្នែកហិរញ្ញវត្ថុដែលគ្រប់គ្រងវា។ គំនិតនេះមានប្រយោជន៍ខ្លាំងណាស់ក្នុងវិស័យជាច្រើន។ ទាំងនេះរួមមានរូបវិទ្យា គីមីវិទ្យា និងហិរញ្ញវត្ថុ។
នេះជាមូលហេតុដែលយើងចង់ស៊ើបអង្កេតបន្ថែមទៀត។ ហើយយើងចង់ផ្តល់ឱ្យអ្នកនូវការបង្រៀនមួយអំពីរបៀបហ្វឹកហាត់ម៉ូដែល Stable Diffusion ទាំងនេះ
តើគំរូនៃការសាយភាយមានស្ថេរភាពកើតឡើងដោយរបៀបណា?
នេះមានឫសគល់ដល់ចុងសតវត្សទី 19 ។
ការស៊ើបអង្កេតគណិតវិទ្យានៃដំណើរការសាយភាយនៅក្នុងបញ្ហាគឺជាកន្លែងដែលគំរូនៃការសាយភាយមានស្ថេរភាពបានចាប់ផ្តើម។ ម៉ូដែល Stable Diffusion ដ៏ពេញនិយមបំផុតមួយគឺ សមីការ Fokker-Planck ។
វាត្រូវបានបង្ហាញជាលើកដំបូងនៅក្នុងឆ្នាំ 1906 ។ ម៉ូដែលទាំងនេះបានវិវត្ត និងត្រូវបានកែប្រែតាមពេលវេលា។ ដូច្នេះហើយ ឥឡូវនេះ យើងប្រើប្រាស់វានៅក្នុងឧស្សាហកម្មផ្សេងៗ។
តើតក្កវិជ្ជានៅពីក្រោយវាគឺជាអ្វី?
នៅក្នុងពាក្យសាមញ្ញ, ដូចដែលយើងបាននិយាយ, ពួកគេគឺជាគំរូគណិតវិទ្យា។ លើសពីនេះ ពួកគេជួយយើងក្នុងការស៊ើបអង្កេតពីរបៀបដែលអចលនទ្រព្យ ឬបរិមាណរីករាលដាលតាមពេលវេលានៅក្នុងប្រព័ន្ធមួយ។
ពួកវាផ្អែកលើគោលការណ៍នៃដំណើរការសាយភាយ។ ដូច្នេះ ពួកគេជួយយើងក្នុងការស៊ើបអង្កេតពីរបៀបដែលបរិមាណរីករាលដាលពេញប្រព័ន្ធមួយ។ ការរីករាលដាលនេះគឺជាលទ្ធផលនៃការប្រែប្រួលនៃការប្រមូលផ្តុំ សម្ពាធ ឬប៉ារ៉ាម៉ែត្រផ្សេងទៀត។
ចូរយើងផ្តល់ឧទាហរណ៍ដ៏សាមញ្ញមួយ។ ស្រមៃថាអ្នកមានធុងពោរពេញដោយសារធាតុរាវដែលអ្នកបានបន្ថែមថ្នាំជ្រលក់។ ការសាយភាយត្រូវបានគេឃើញនៅទីនេះ នៅពេលដែលថ្នាំជ្រលក់ចាប់ផ្តើមបែកខ្ញែក និង emulsify នៅក្នុងអង្គធាតុរាវ។ ដោយផ្អែកលើលក្ខណៈនៃវត្ថុរាវ និងថ្នាំជ្រលក់ គំរូនៃការសាយភាយមានស្ថេរភាព អាចត្រូវបានប្រើដើម្បីព្យាករណ៍ពីរបៀបដែលថ្នាំជ្រលក់នឹងបែកខ្ញែក និងលាយតាមពេលវេលា។
នៅក្នុងប្រព័ន្ធស្មុគ្រស្មាញកាន់តែច្រើន ដូចជាទីផ្សារហិរញ្ញវត្ថុ ឬប្រតិកម្មគីមី គំរូទាំងនេះអាចទស្សន៍ទាយពីរបៀបដែលព័ត៌មាន ឬគុណលក្ខណៈនឹងរីករាលដាល និងប៉ះពាល់ដល់ប្រព័ន្ធតាមពេលវេលា។ លើសពីនេះ ទិន្នន័យធំអាចធ្លាប់ប្រើ ហ្វឹកហាត់ម៉ូដែលទាំងនេះ ដើម្បីធ្វើឱ្យការព្យាករណ៍ត្រឹមត្រូវ។ ពួកវាត្រូវបានបង្កើតឡើងដោយប្រើរូបមន្តគណិតវិទ្យាដែលពិពណ៌នាអំពីការវិវត្តន៍រយៈពេលវែងរបស់ប្រព័ន្ធ។
ការយល់ដឹង និងការទស្សន៍ទាយការផ្សព្វផ្សាយនៃលក្ខណៈជាក់លាក់នៅក្នុងប្រព័ន្ធមួយតាមពេលវេលា គឺជាគំនិតចម្បងដែលផ្អែកលើគំរូទាំងនេះ។ វាជារឿងសំខាន់ដែលត្រូវចងចាំថា អ្នកជំនាញក្នុងវិស័យឯកទេសជាធម្មតាប្រើគំរូទាំងនេះ។
តើធ្វើដូចម្តេចដើម្បីហ្វឹកហាត់ម៉ូដែល?
ប្រមូល និងរៀបចំទិន្នន័យរបស់អ្នក៖
អ្នកត្រូវតែប្រមូល និងរៀបចំទិន្នន័យរបស់អ្នកជាមុនសិន មុនពេលអ្នកអាចចាប់ផ្តើមបណ្តុះបណ្តាលគំរូរបស់អ្នក។ ទិន្នន័យរបស់អ្នកប្រហែលជាត្រូវសម្អាត និងធ្វើទ្រង់ទ្រាយ។ មិនតែប៉ុណ្ណោះ លេខដែលបាត់ក៏អាចនឹងត្រូវលុបចេញផងដែរ។
ជ្រើសរើសស្ថាបត្យកម្មគំរូ
គំរូនៃការសាយភាយមានស្ថេរភាព មានក្នុងទម្រង់ផ្សេងៗគ្នា។ វាភាគច្រើនផ្អែកលើសមីការ Fokker-Planck សមីការ Schrödinger និងសមីការមេ។ គំរូដែលសមស្របបំផុតនឹងស្ថានភាពជាក់លាក់របស់អ្នកត្រូវតែត្រូវបានជ្រើសរើស។ ដូច្នេះម៉ូដែលនីមួយៗមានគុណសម្បត្តិនិងគុណវិបត្តិ។
ការបង្កើតមុខងារបាត់បង់របស់អ្នក។
វាមានសារៈសំខាន់ព្រោះវាប៉ះពាល់ដល់របៀបដែលម៉ូដែលរបស់អ្នកអាចផ្គូផ្គងទិន្នន័យបានល្អ។ សម្រាប់ម៉ូដែល Stable Diffusion កំហុសនៃការ៉េមធ្យម និងការបង្វែរ Kullback-Leibler គឺជាមុខងារបាត់បង់ញឹកញាប់។
បណ្តុះបណ្តាលគំរូរបស់អ្នក។
ដោយប្រើជម្រាលជម្រាល stochastic ឬវិធីសាស្រ្តបង្កើនប្រសិទ្ធភាពស្រដៀងគ្នា អ្នកអាចចាប់ផ្តើមបណ្តុះបណ្តាលគំរូរបស់អ្នកបន្ទាប់ពីកំណត់មុខងារបាត់បង់របស់អ្នក។
ពិនិត្យមើលភាពទូទៅនៃម៉ូដែលរបស់អ្នក។
អ្នកគួរតែពិនិត្យមើលទិន្នន័យថ្មីបន្ទាប់ពីការបណ្តុះបណ្តាលដោយប្រៀបធៀបវាទៅនឹងសំណុំទិន្នន័យសាកល្បង។
លៃតម្រូវប៉ារ៉ាម៉ែត្រខ្ពស់នៃម៉ូដែលរបស់អ្នក។
ដើម្បីបង្កើនប្រសិទ្ធភាពនៃគំរូរបស់អ្នក សូមសាកល្បងជាមួយតម្លៃផ្សេងៗនៃប៉ារ៉ាម៉ែត្រខ្ពស់ដូចជា អត្រាសិក្សា ទំហំបាច់ និងចំនួនស្រទាប់ដែលលាក់នៅក្នុងបណ្តាញ។
ធ្វើម្តងទៀតនូវសកម្មភាពពីមុន
អ្នកប្រហែលជាត្រូវធ្វើដំណើរការទាំងនេះម្តងទៀតច្រើនជាងម្តង ដើម្បីទទួលបានលទ្ធផលល្អបំផុត។ វានឹងអាស្រ័យលើភាពលំបាកនៃបញ្ហា និងកម្រិតនៃទិន្នន័យ។
ការបង្រៀនសរសេរកូដ
ភាសាសរសេរកម្មវិធី ដូចជា Python, MATLAB, C ++, និង R ទាំងអស់អាចត្រូវបានគេប្រើដើម្បីបង្កើតគំរូចែកចាយដែលមានស្ថេរភាព។ ភាសាដែលប្រើនឹងពឹងផ្អែកលើកម្មវិធីជាក់លាក់។ ដូចគ្នានេះផងដែរ វាអាចពឹងផ្អែកលើឧបករណ៍ និងបណ្ណាល័យដែលបង្កើតឡើងសម្រាប់ភាសានោះ។
Python គឺជាជម្រើសដ៏ល្អបំផុតក្នុងករណីនេះ។ វាមានបណ្ណាល័យខ្លាំងដូចជា NumPy និង SciPy សម្រាប់ការគណនាលេខ។ ដូចគ្នានេះផងដែរវាគាំទ្រ TensorFlow និង ភីធ័រ សម្រាប់ការបង្កើត និងបណ្តុះបណ្តាលបណ្តាញសរសៃប្រសាទ។ ដូច្នេះហើយ វាក្លាយជាជម្រើសដ៏ល្អមួយសម្រាប់ការសរសេរម៉ូដែល Stable Diffusion។
ឧទាហរណ៍:
ចូរប្រើសមីការការសាយភាយ ដែលជារូបមន្តគណិតវិទ្យាដែលពិពណ៌នាអំពីរបៀបដែលគុណភាព ឬបរិមាណ ដូចជាកំដៅ ឬកំហាប់នៃសារធាតុមួយ ផ្លាស់ប្តូរតាមពេលវេលានៅក្នុងប្រព័ន្ធមួយ។ សមីការជាទូទៅមើលទៅដូចនេះ៖
∂u/∂t = α ∇²u
មេគុណនៃការសាយភាយ () គឺជាការវាស់វែងពីរបៀបដែលទ្រព្យសម្បត្តិ ឬបរិមាណរីករាលដាលយ៉ាងងាយស្រួលតាមរយៈប្រព័ន្ធ។
Laplacian of u (2u) គឺជាការពិពណ៌នាអំពីរបៀបដែលទ្រព្យសម្បត្តិ ឬបរិមាណផ្លាស់ប្តូរទាក់ទងនឹងលំហ។ កន្លែងដែល u គឺជាទ្រព្យសម្បត្តិ ឬបរិមាណដែលកំពុងសាយភាយ (ឧទាហរណ៍ សីតុណ្ហភាព ឬកំហាប់) t គឺជាការឆ្លងកាត់នៃពេលវេលា គឺជាមេគុណនៃការសាយភាយ និងជាចំនួនថេរ () ។
យើងអាចអនុវត្តវាដោយប្រើវិធីសាស្ត្រអយល័រនៅក្នុង 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
កូដនេះប្រើបច្ចេកទេសអយល័រ ដើម្បីអនុវត្តសមីការសាយភាយ។ វាពិពណ៌នាអំពីស្ថានភាពចាប់ផ្តើមជាលក្ខខណ្ឌដំបូងឯកសណ្ឋានដែលតំណាងដោយអារេនៃមួយដែលមានរូបរាង (100)។ 0.01 ត្រូវបានប្រើជាជំហានពេលវេលា។
ការធ្វើម្តងទៀត 1000 នៃរង្វិលជុំជំហានពេលវេលាត្រូវបានបញ្ចប់។
វាប្រើមុខងារ np.diff ដែលកំណត់ភាពខុសគ្នារវាងធាតុជិតខាង។ អាស្រ័យហេតុនេះ វាគណនាដេរីវេនៃលំហនៃទ្រព្យសម្បត្តិ ឬបរិមាណដែលកំពុងសាយភាយ។ ហើយវាត្រូវបានតំណាងដោយ du នៅរាល់ការធ្វើម្តងទៀត។
បន្ទាប់មកយើងគុណដេរីវេតាមលំហដោយមេគុណសាយភាយអាល់ហ្វា និងជំហានពេលវេលាដើម្បីធ្វើបច្ចុប្បន្នភាពតម្លៃ u ។
ឧទាហរណ៍ស្មុគស្មាញជាងនេះ។
តើគំរូនៃការសាយភាយមានស្ថេរភាពដែលវាស់តែការសាយភាយកំដៅមានស្ថេរភាពមើលទៅដូចអ្វី? តើកូដនោះដំណើរការយ៉ាងដូចម្តេច?
ការដោះស្រាយសំណុំនៃសមីការឌីផេរ៉ង់ស្យែលដោយផ្នែក (PDEs) ដែលពន្យល់ពីរបៀបដែលកំដៅរាលដាលពេញប្រព័ន្ធតាមពេលវេលាគឺចាំបាច់។ ដូច្នេះ យើងអាចបណ្តុះបណ្តាលគំរូ Stable Diffusion ដែលចម្លងការសាយភាយកំដៅថេរ។
នេះជាការបង្ហាញពីរបៀបដែលសមីការកំដៅ PDE ដែលពន្យល់ពីការសាយភាយកំដៅដែលមានស្ថេរភាពនៅក្នុងដំបងវិមាត្រមួយ អាចត្រូវបានដោះស្រាយដោយប្រើវិធីសាស្ត្រខុសគ្នាកំណត់៖
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()
តើការបង្កើតរូបភាពពីអត្ថបទដំណើរការយ៉ាងដូចម្តេច?
ដោយសារវាមានការពេញនិយមយ៉ាងខ្លាំងនៅលើអ៊ីនធឺណិត យើងអាចពិនិត្យមើលរបៀបបង្កើតរូបភាពបានដូចគ្នា។
វិធីសាស្រ្តដំណើរការភាសាធម្មជាតិ (NLP) និង បណ្តាញសរសៃប្រសាទ. ហើយពួកវាត្រូវបានគេប្រើជាញឹកញាប់ដើម្បីផ្តល់នូវគំរូនៃការសាយភាយមានស្ថេរភាពសម្រាប់ការបំប្លែងអត្ថបទទៅរូបភាព។ ការពិពណ៌នាយ៉ាងទូលំទូលាយអំពីវិធីធ្វើវាត្រូវបានផ្តល់ជូនខាងក្រោម៖
1- Tokenize ពាក្យនៅក្នុងទិន្នន័យអត្ថបទ, និងលុបបំបាត់ពាក្យបញ្ឈប់និងវណ្ណយុត្តិ។ បង្វែរពាក្យទៅជាតម្លៃលេខ។ វាគឺជាផ្នែកមួយនៃដំណើរការមុន (ការបង្កប់ពាក្យ)។
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- រៀនពីរបៀបភ្ជាប់អត្ថបទ និងរូបភាពដោយប្រើបណ្តាញសរសៃប្រសាទដែលរួមបញ្ចូលគ្នានូវឧបករណ៍បំលែងកូដ និងឧបករណ៍ឌិកូដ។ បណ្តាញឌិកូដទទួលបានលេខកូដសម្ងាត់ជាការបញ្ចូល។ បន្ទាប់មក វាបង្កើតរូបភាពដែលពាក់ព័ន្ធ បន្ទាប់ពីបណ្តាញអ៊ិនកូដឌ័របំប្លែងទិន្នន័យអត្ថបទទៅជាតំណាងបង្រួម (កូដមិនទាន់ឃើញច្បាស់)។
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- ដោយផ្តល់ឱ្យវាជាមួយនឹងការប្រមូលទំហំធំនៃរូបភាពនិងការពិពណ៌នាអត្ថបទដែលទៅជាមួយពួកគេ។ បន្ទាប់មក អ្នកអាចបណ្តុះបណ្តាលបណ្តាញអ៊ិនកូដឌ័រឌិកូដ។
# 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- បន្ទាប់ពីបណ្តាញត្រូវបានបណ្តុះបណ្តាល អ្នកអាចប្រើវាដើម្បីបង្កើតរូបភាពពីការបញ្ចូលអត្ថបទថ្មីៗ។ ហើយវាគឺដោយការបញ្ចូលអត្ថបទទៅក្នុងបណ្តាញអ៊ិនកូដ។ បន្ទាប់មក អ្នកអាចបង្កើតកូដមិនទាន់ឃើញច្បាស់មួយ ហើយបន្ទាប់មកបញ្ចូលលេខកូដសម្ងាត់ទៅក្នុងបណ្តាញអ្នកឌិកូដដើម្បីបង្កើតរូបភាពដែលពាក់ព័ន្ធ។
# Encode the text input
latent_code = encoder.predict(text)
# Generate an image from the latent code
image = decoder.predict(latent_code)
5- ការជ្រើសរើសសំណុំទិន្នន័យសមស្រប និងមុខងារបាត់បង់គឺជាជំហានដ៏សំខាន់បំផុតមួយ។ សំណុំទិន្នន័យមានភាពខុសប្លែកគ្នា និងមានជួរធំទូលាយនៃរូបភាព និងការពិពណ៌នាអត្ថបទ។ យើងចង់ធ្វើឱ្យប្រាកដថារូបភាពទាំងនោះមានភាពប្រាកដនិយម។ ម្យ៉ាងទៀត យើងត្រូវតែប្រាកដថា ការពិពណ៌នាអត្ថបទគឺអាចធ្វើទៅបាន ដូច្នេះយើងអាចរចនាមុខងារបាត់បង់។
# 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)
ជាចុងក្រោយ អ្នកអាចសាកល្បងជាមួយស្ថាបត្យកម្ម និងវិធីសាស្រ្តផ្សេងទៀត។ ដូច្នេះ, ដែលអ្នកអាចបង្កើនការសម្តែងរបស់ម៉ូដែល, ដូចជា យន្ដការយកចិត្តទុកដាក់, GANs ឬ VAEs ។
សូមផ្ដល់យោបល់