நம்மில் பெரும்பாலோர் AI இமேஜ் ஜெனரேட்டர்களைப் பற்றி நன்கு அறிந்திருக்கிறோம் நிலையான பரவல். இது ஏற்கனவே தொழில்துறையை மாற்றிவிட்டது மற்றும் நம் வாழ்வில் இணைக்கப்பட்டுள்ளது.
இருப்பினும், நிலையான பரவல் மாதிரிகள் படத்தை உருவாக்குவதை விட அதிகம்.
நாம் அவர்களை வேலைக்கு அமர்த்தக்கூடிய பல பகுதிகள் உள்ளன.
நிலையான பரவல் மாதிரிகள் கணித மாதிரிகள். மேலும், காலப்போக்கில் மாறிவரும் அமைப்புகளின் இயக்கவியலை ஆராய அவை உங்களுக்கு உதவும்.
அவை பரவல் செயல்முறை கருத்துகளை அடிப்படையாகக் கொண்டவை. எனவே, நீங்கள் பரந்த அளவிலான நிகழ்வுகளை ஆராயலாம். உதாரணத்திற்கு; வெப்ப பரிமாற்றம், இரசாயன எதிர்வினைகள் மற்றும் நிதிச் சந்தைகளில் தகவல் பரப்புதல்.
இந்த மாதிரிகள் மிகவும் பொருந்தக்கூடியவை. எனவே, ஒரு அமைப்பின் தற்போதைய நிலையின் அடிப்படையில் அதன் எதிர்கால நிலையை நீங்கள் எதிர்பார்க்கலாம்.
தவிர, அதை நிர்வகிக்கும் அடிப்படையான உடல் அல்லது நிதிக் கொள்கைகளை நீங்கள் பார்க்கலாம். இந்த கருத்து பல பகுதிகளில் மிகவும் பயனுள்ளதாக இருந்தது. இயற்பியல், வேதியியல் மற்றும் நிதி ஆகியவை இதில் அடங்கும்.
அதனால்தான் இதை மேலும் விசாரிக்க விரும்புகிறோம். மேலும், இந்த நிலையான பரவல் மாதிரிகளை எப்படிப் பயிற்றுவிப்பது என்பது குறித்த டுடோரியலை உங்களுக்கு வழங்க விரும்புகிறோம்.
நிலையான பரவல் மாதிரிகள் எப்படி வந்தன?
இது 19 ஆம் நூற்றாண்டின் பிற்பகுதியில் வேர்களைக் கொண்டுள்ளது.
விஷயங்களில் பரவல் செயல்முறைகளின் கணித விசாரணையானது நிலையான பரவல் மாதிரிகள் அவற்றின் தொடக்கத்தை பெற்ற இடமாகும். மிகவும் பிரபலமான நிலையான பரவல் மாதிரிகளில் ஒன்று ஃபோக்கர்-பிளாங்க் சமன்பாடு ஆகும்.
இது முதன்முதலில் 1906 இல் வழங்கப்பட்டது. இந்த மாதிரிகள் காலப்போக்கில் உருவாகி, மாற்றியமைக்கப்பட்டுள்ளன. எனவே, நாம் இப்போது அவற்றை பல்வேறு தொழில்களில் பயன்படுத்துகிறோம்.
இதன் பின்னுள்ள லாஜிக் என்ன?
எளிமையான சொற்களில், நாங்கள் சொன்னது போல், அவை கணித மாதிரிகள். தவிர, ஒரு அமைப்பில் காலப்போக்கில் ஒரு சொத்து அல்லது அளவு எவ்வாறு பரவுகிறது என்பதை ஆராய அவை நமக்கு உதவுகின்றன.
அவை பரவல் செயல்முறை கொள்கைகளை அடிப்படையாகக் கொண்டவை. எனவே, ஒரு அமைப்பு முழுவதும் ஒரு அளவு எவ்வாறு பரவுகிறது என்பதை ஆராய அவை நமக்கு உதவுகின்றன. இந்த பரவல் செறிவு, அழுத்தம் அல்லது பிற அளவுருக்களின் மாறுபாட்டின் விளைவாகும்.
ஒரு எளிய உதாரணம் தருவோம். நீங்கள் ஒரு சாயத்தைச் சேர்த்த திரவம் நிறைந்த ஒரு கொள்கலன் இருப்பதாக கற்பனை செய்து பாருங்கள். திரவத்தில் சாயம் சிதறி குழம்பாக்கத் தொடங்கும் போது இங்கு பரவல் காணப்படுகிறது. திரவம் மற்றும் சாயத்தின் குணாதிசயங்களின் அடிப்படையில், காலப்போக்கில் சாயம் எவ்வாறு சிதறி கலக்கும் என்பதை முன்னறிவிக்க நிலையான பரவல் மாதிரிகள் பயன்படுத்தப்படலாம்.
நிதிச் சந்தைகள் அல்லது இரசாயன எதிர்வினைகள் போன்ற மிகவும் சிக்கலான அமைப்புகளில், இந்த மாதிரிகள் தகவல் அல்லது பண்புக்கூறுகள் எவ்வாறு பரவும் மற்றும் காலப்போக்கில் கணினியில் தாக்கத்தை ஏற்படுத்தும் என்பதைக் கணிக்க முடியும். கூடுதலாக, பெரிய தரவு பயன்படுத்தப்படலாம் இந்த மாதிரிகளைப் பயிற்றுவிக்கவும் துல்லியமான கணிப்புகளைச் செய்ய. கணினியின் நீண்ட கால பரிணாமத்தை விவரிக்கும் கணித சூத்திரங்களைப் பயன்படுத்தி அவை கட்டப்பட்டுள்ளன.
காலப்போக்கில் ஒரு அமைப்பில் சில குணாதிசயங்களின் பரவலைப் புரிந்துகொள்வதும் கணிப்பதும் இந்த மாதிரிகளின் அடிப்படையிலான முக்கிய யோசனையாகும். சிறப்புத் துறைகளில் வல்லுநர்கள் பொதுவாக இந்த மாதிரிகளைப் பயன்படுத்துகிறார்கள் என்பதை நினைவில் கொள்வது அவசியம்.
மாடல்களை எவ்வாறு பயிற்றுவிப்பது?
உங்கள் தரவைச் சேகரித்து தயார் செய்யுங்கள்:
உங்கள் மாதிரியைப் பயிற்றுவிப்பதற்கு முன், முதலில் உங்கள் தரவைச் சேகரித்துத் தயாரிக்க வேண்டும். உங்கள் தரவு சுத்தம் செய்யப்பட்டு வடிவமைக்கப்பட வேண்டியிருக்கலாம். மேலும், விடுபட்ட எண்களும் அகற்றப்பட வேண்டும்.
ஒரு மாதிரி கட்டிடக்கலையைத் தேர்ந்தெடுக்கவும்
நிலையான பரவல் மாதிரிகள் பல்வேறு வடிவங்களில் வருகின்றன. இது பெரும்பாலும் ஃபோக்கர்-பிளாங்க் சமன்பாடு, ஷ்ரோடிங்கர் சமன்பாடு மற்றும் மாஸ்டர் சமன்பாடு ஆகியவற்றை அடிப்படையாகக் கொண்டது. உங்கள் குறிப்பிட்ட சூழ்நிலைக்கு மிகவும் பொருத்தமான மாதிரி தேர்ந்தெடுக்கப்பட வேண்டும். எனவே, இந்த மாதிரிகள் ஒவ்வொன்றும் நன்மைகள் மற்றும் தீமைகள் உள்ளன.
உங்கள் இழப்பு செயல்பாட்டை நிறுவுதல்
உங்கள் மாடல் தரவுடன் எவ்வளவு நன்றாகப் பொருந்துகிறது என்பதைப் பாதிக்கும் என்பதால் இது முக்கியமானது. நிலையான பரவல் மாதிரிகளுக்கு, சராசரி ஸ்கொயர் பிழை மற்றும் குல்பேக்-லீப்லர் வேறுபாடு ஆகியவை அடிக்கடி இழப்பு செயல்பாடுகளாகும்.
உங்கள் மாதிரியைப் பயிற்றுவிக்கவும்
சீரான சாய்வு வம்சாவளியை அல்லது ஒத்த மேம்படுத்தல் அணுகுமுறையைப் பயன்படுத்தி, உங்கள் இழப்பு செயல்பாட்டை வரையறுத்த பிறகு உங்கள் மாதிரியைப் பயிற்றுவிக்கலாம்.
உங்கள் மாதிரியின் பொதுவான தன்மையை ஆராயுங்கள்
பயிற்சிக்குப் பிறகு புதிய தரவை சோதனைத் தரவுகளுடன் ஒப்பிட்டுப் பார்க்க வேண்டும்.
உங்கள் மாதிரியின் உயர் அளவுருக்களை டியூன் செய்யவும்
உங்கள் மாதிரியின் செயல்திறனை அதிகரிக்க, கற்றல் வீதம், தொகுதி அளவு மற்றும் பிணையத்தில் உள்ள மறைக்கப்பட்ட அடுக்குகளின் எண்ணிக்கை போன்ற உயர் அளவுகோல்களின் பல்வேறு மதிப்புகளை பரிசோதிக்கவும்.
முந்தைய செயல்களை மீண்டும் செய்யவும்
சிறந்த முடிவுகளைப் பெற, நீங்கள் இந்த செயல்முறைகளை ஒன்றுக்கு மேற்பட்ட முறை மீண்டும் செய்ய வேண்டியிருக்கும். இது சிக்கலின் சிரமம் மற்றும் தரவின் திறனைப் பொறுத்து இருக்கும்.
குறியீட்டு பயிற்சி
கணிப்பொறி செயல்பாடு மொழி Python, MATLAB, C++ மற்றும் R போன்ற அனைத்தும் நிலையான பரவல் மாதிரிகளை உருவாக்கப் பயன்படுத்தப்படலாம். பயன்படுத்தப்படும் மொழி குறிப்பிட்ட பயன்பாட்டை சார்ந்திருக்கும். மேலும், அது அந்த மொழிக்காகக் கிடைக்கும் கருவிகள் மற்றும் நூலகங்களைப் பொறுத்தது.
இந்த விஷயத்தில் பைதான் சிறந்த தேர்வாகும். இது எண் கணக்கீட்டிற்கான NumPy மற்றும் SciPy போன்ற வலுவான நூலகங்களைக் கொண்டுள்ளது. மேலும், இது TensorFlow மற்றும் ஆதரிக்கிறது பைடோர்ச் நரம்பியல் நெட்வொர்க்குகளை உருவாக்குவதற்கும் பயிற்சி செய்வதற்கும். எனவே, நிலையான பரவல் மாதிரிகளை எழுத இது ஒரு சிறந்த தேர்வாகிறது.
உதாரணமாக:
ஒரு கணினியில் வெப்பம் அல்லது ஒரு பொருளின் செறிவு போன்ற தரம் அல்லது அளவு எவ்வாறு மாறுகிறது என்பதை விவரிக்கும் கணித சூத்திரமான பரவல் சமன்பாட்டைப் பயன்படுத்துவோம். சமன்பாடு பொதுவாக இது போல் தெரிகிறது:
∂u/∂t = α ∇²u
பரவல் குணகம் () என்பது ஒரு அமைப்பு மூலம் ஒரு சொத்து அல்லது அளவு எவ்வளவு எளிதில் பரவுகிறது என்பதற்கான அளவீடு ஆகும்.
u (2u) இன் Laplacian என்பது இடத்தைப் பொறுத்து சொத்து அல்லது அளவு எவ்வாறு மாறுகிறது என்பதற்கான விளக்கமாகும். u என்பது சொத்து அல்லது அளவு பரவுகிறது (உதாரணமாக, வெப்பநிலை அல்லது செறிவு), t என்பது காலப்போக்கில், பரவல் குணகம் மற்றும் பரவல் மாறிலி () ஆகும்.
பைத்தானில் உள்ள யூலர் முறையைப் பயன்படுத்தி அதை செயல்படுத்தலாம்.
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) தொகுப்பைத் தீர்ப்பது அவசியம். எனவே, வெப்பத்தின் நிலையான பரவலைப் பிரதிபலிக்கும் நிலையான பரவல் மாதிரியை நாம் பயிற்சி செய்யலாம்.
ஒரு பரிமாண கம்பியில் வெப்பத்தின் நிலையான பரவலை விளக்கும் ஒரு 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- டெக்ஸ்ட் டேட்டாவில் உள்ள வார்த்தைகளை டோக்கனைஸ் செய்து, நிறுத்த வார்த்தைகள் மற்றும் நிறுத்தற்குறிகளை நீக்கவும். வார்த்தைகளை எண் மதிப்புகளாக மாற்றவும். இது முன் செயலாக்கத்தின் ஒரு பகுதியாகும் (வார்த்தை உட்பொதிப்புகள்).
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)
இறுதியாக, நீங்கள் மற்ற கட்டமைப்புகள் மற்றும் முறைகளுடன் பரிசோதனை செய்யலாம். எனவே, நீங்கள் மாதிரியின் செயல்திறனை உயர்த்தலாம் கவனம் வழிமுறைகள், GAN கள் அல்லது VAEகள்.
ஒரு பதில் விடவும்