අපෙන් බොහෝ දෙනෙක් AI රූප ජනක යන්ත්ර ගැන හුරුපුරුදුය ස්ථායී විසරණය. එය දැනටමත් කර්මාන්තය වෙනස් කර ඇති අතර අපගේ ජීවිතවලට ඇතුළත් කර ඇත.
කෙසේ වෙතත්, ස්ථාවර විසරණ ආකෘති රූප උත්පාදනයට වඩා බෙහෙවින් වැඩි ය.
අපට ඔවුන් සේවයේ යෙදවිය හැකි ක්ෂේත්ර ඕනෑ තරම් තිබේ.
ස්ථායී විසරණ ආකෘති ගණිතමය ආකෘති වේ. තවද, කාලයත් සමඟ වෙනස් වන පද්ධතිවල ගතිකත්වය විමර්ශනය කිරීමට ඔබට උපකාර කළ හැකිය.
ඒවා විසරණ ක්රියාවලි සංකල්ප මත පදනම් වේ. එබැවින් ඔබට පුළුල් පරාසයක සංසිද්ධි පරීක්ෂා කළ හැකිය. උදාහරණ වශයෙන්; තාප සම්ප්රේෂණය, රසායනික ප්රතික්රියා සහ මූල්ය වෙලඳපොලවල තොරතුරු ප්රචාරය කිරීම.
මෙම ආකෘති අතිශයින්ම අනුවර්තනය වේ. එබැවින්, එහි වත්මන් තත්ත්වය මත පදනම්ව පද්ධතියේ අනාගත තත්ත්වය අපේක්ෂා කළ හැකිය.
ඊට අමතරව, එය පාලනය කරන යටින් පවතින භෞතික හෝ මූල්ය මූලධර්ම ඔබට දැක ගත හැකිය. මෙම සංකල්පය බොහෝ ක්ෂේත්රවල ඉතා ප්රයෝජනවත් වී ඇත. මේවාට භෞතික විද්යාව, රසායන විද්යාව සහ මූල්ය විද්යාව ඇතුළත් වේ.
මේ නිසා අපි ඒ ගැන තවදුරටත් විමර්ශනය කරන්න ඕන. තවද, මෙම ස්ථායී විසරණ ආකෘති පුහුණු කරන ආකාරය පිළිබඳ නිබන්ධනයක් ඔබට ලබා දීමට අපට අවශ්යය.
ස්ථායී විසරණ ආකෘති පැමිණියේ කෙසේද?
මෙය 19 වන සියවසේ අගභාගයේ මුල් බැස ඇත.
ස්ථායී විසරණ ආකෘතීන් ඔවුන්ගේ ආරම්භය සිදුවූයේ කරුණුවල විසරණ ක්රියාවලීන් පිළිබඳ ගණිතමය විමර්ශනයයි. වඩාත්ම ජනප්රිය ස්ථායී විසරණ මාදිලිවලින් එකක් වන්නේ ෆොකර්-ප්ලාන්ක් සමීකරණයයි.
එය මුලින්ම ඉදිරිපත් කරන ලද්දේ 1906 දී ය. මෙම ආකෘති කාලයත් සමඟ පරිණාමය වී වෙනස් වී ඇත. එබැවින් අපි දැන් ඒවා විවිධ කර්මාන්තවල භාවිතා කරමු.
එය පිටුපස ඇති තර්කනය කුමක්ද?
සරලව කිවහොත්, අප කී පරිදි, ඒවා ගණිතමය ආකෘති වේ. ඊට අමතරව, පද්ධතියක් තුළ දේපලක් හෝ ප්රමාණයක් කාලයත් සමඟ පැතිරෙන්නේ කෙසේද යන්න විමර්ශනය කිරීමට ඒවා අපට උපකාර කරයි.
ඒවා විසරණ ක්රියාවලි මූලධර්ම මත පදනම් වේ. එබැවින්, පද්ධතියක් හරහා ප්රමාණයක් පැතිරෙන්නේ කෙසේද යන්න විමර්ශනය කිරීමට ඒවා අපට උපකාර කරයි. මෙම පැතිරීම සාන්ද්රණය, පීඩනය හෝ වෙනත් පරාමිතීන්හි වෙනස්කම්වල ප්රතිඵලයකි.
අපි සරල උදාහරණයක් දෙමු. ඔබ සායම් එකතු කළ දියර පිරවූ භාජනයක් ඔබ සතුව ඇතැයි සිතන්න. සායම් ද්රවයේ විසුරුවා හැරීමට සහ ඉමල්ෂන් කිරීමට පටන් ගන්නා විට මෙහි විසරණය දක්නට ලැබේ. ද්රවයේ සහ සායම්වල ලක්ෂණ මත පදනම්ව, කාලයත් සමඟ සායම් විසුරුවා හැර මිශ්ර වන ආකාරය පුරෝකථනය කිරීමට ස්ථායී විසරණ ආකෘති භාවිතා කළ හැකිය.
මූල්ය වෙලඳපොලවල් හෝ රසායනික ප්රතික්රියා වැනි වඩාත් සංකීර්ණ පද්ධති වලදී, තොරතුරු හෝ ගුණාංග කාලයත් සමඟ පද්ධතියට ව්යාප්ත වන ආකාරය සහ බලපාන ආකාරය මෙම ආකෘතීන්ට පුරෝකථනය කළ හැකිය. ඊට අමතරව, විශාල දත්ත භාවිතා කළ හැකිය මෙම ආකෘති පුහුණු කරන්න නිවැරදි අනාවැකි කිරීමට. පද්ධතියේ දිගුකාලීන පරිණාමය විස්තර කරන ගණිතමය සූත්ර භාවිතයෙන් ඒවා ගොඩනගා ඇත.
පද්ධතියක යම් යම් ගතිලක්ෂණ කාලයාගේ ඇවෑමෙන් ප්රචාරණය වීම අවබෝධ කර ගැනීම සහ පුරෝකථනය කිරීම මෙම ආකෘතිවලට යටින් පවතින ප්රධාන අදහසයි. විශේෂිත ක්ෂේත්රවල ප්රවීණයන් සාමාන්යයෙන් මෙම ආකෘති භාවිතා කරන බව මතක තබා ගැනීම වැදගත්ය.
ආකෘති පුහුණු කරන්නේ කෙසේද?
ඔබගේ දත්ත රැස් කර සකස් කරන්න:
ඔබ ඔබේ ආකෘතිය පුහුණු කිරීම ආරම්භ කිරීමට පෙර ඔබේ දත්ත එකතු කර සකස් කළ යුතුය. ඔබගේ දත්ත පිරිසිදු කර හැඩතල ගැන්වීමට අවශ්ය විය හැක. එසේම, අතුරුදහන් වූ අංක ද ඉවත් කිරීමට අවශ්ය විය හැකිය.
ආදර්ශ ගෘහ නිර්මාණ ශිල්පයක් තෝරන්න
ස්ථායී විසරණ ආකෘති විවිධ ආකාරවලින් පැමිණේ. එය බොහෝ දුරට ෆොකර්-ප්ලාන්ක් සමීකරණය, ෂ්රොඩිංගර් සමීකරණය සහ මාස්ටර් සමීකරණය මත පදනම් වේ. ඔබගේ විශේෂිත තත්වයට වඩාත් ගැලපෙන ආකෘතිය තෝරාගත යුතුය. මේ අනුව, මෙම එක් එක් මාදිලියේ වාසි සහ අවාසි ඇත.
ඔබගේ අලාභ කාර්යය ස්ථාපිත කිරීම
එය ඔබගේ මොඩලය දත්ත සමඟ කෙතරම් හොඳින් ගැලපේද යන්න බලපාන බැවින් එය වැදගත් වේ. ස්ථායී විසරණ ආකෘති සඳහා, මධ්යන්ය වර්ග දෝෂය සහ Kullback-Leibler divergence නිතර අලාභ ශ්රිත වේ.
ඔබේ ආකෘතිය පුහුණු කරන්න
ස්ටෝචස්ටික් අනුක්රමණ සම්භවයක් හෝ ඒ හා සමාන ප්රශස්තිකරණ ප්රවේශයක් භාවිතා කරමින්, ඔබේ අලාභ ක්රියාකාරිත්වය නිර්වචනය කිරීමෙන් පසු ඔබට ඔබේ ආකෘතිය පුහුණු කිරීම ආරම්භ කළ හැක.
ඔබේ ආකෘතියේ සාමාන්යකරණය පරීක්ෂා කරන්න
පුහුණුවීමෙන් පසු ඔබ නැවුම් දත්ත පරීක්ෂා කළ යුත්තේ එය පරීක්ෂණ දත්ත කට්ටලයකට සංසන්දනය කිරීමෙනි.
ඔබේ මාදිලියේ අධිපරාමිතීන් සුසර කරන්න
ඔබේ ආකෘතියේ කාර්ය සාධනය වැඩි දියුණු කිරීම සඳහා, ඉගෙනුම් අනුපාතය, කණ්ඩායම් ප්රමාණය සහ ජාලයේ සැඟවුණු ස්ථර ගණන වැනි අධිපරිමාණවල විවිධ අගයන් සමඟ අත්හදා බලන්න.
පෙර ක්රියාවන් නැවත කරන්න
හොඳම ප්රතිඵල ලබා ගැනීම සඳහා ඔබට මෙම ක්රියාවලීන් එක් වරකට වඩා නැවත කිරීමට අවශ්ය විය හැකිය. එය ගැටලුවේ දුෂ්කරතාවය සහ දත්තවල ක්රමාංකනය මත රඳා පවතී.
කේතීකරණ නිබන්ධනය
ක්රමලේඛන භාෂා Python, MATLAB, C++, සහ R වැනි සියල්ලම ස්ථායී විසරණ ආකෘති නිර්මාණය කිරීමට භාවිතා කළ හැක. භාවිතා කරන භාෂාව විශේෂිත යෙදුම මත රඳා පවතී. එසේම, එය එම භාෂාව සඳහා ලබා දී ඇති මෙවලම් සහ පුස්තකාල මත රඳා පවතී.
මෙම නඩුවේ හොඳම තේරීම පයිතන් ය. එහි සංඛ්යාත්මක ගණනය කිරීම් සඳහා NumPy සහ SciPy වැනි ශක්තිමත් පුස්තකාල ඇත. එසේම, එය TensorFlow සහය දක්වයි පයිටෝර්ච් ස්නායු ජාල නිර්මාණය කිරීම සහ පුහුණු කිරීම සඳහා. එබැවින්, ස්ථායී විසරණ ආකෘති ලිවීම සඳහා එය විශිෂ්ට විකල්පයක් බවට පත්වේ.
උදාහරණයක්:
පද්ධතියක් තුළ තාපය හෝ ද්රව්යයක සාන්ද්රණය වැනි ගුණයක් හෝ ප්රමාණයක් කාලයත් සමඟ වෙනස් වන ආකාරය විස්තර කරන ගණිතමය සූත්රයක් වන විසරණ සමීකරණය භාවිතා කරමු. සමීකරණය සාමාන්යයෙන් මේ වගේ ය:
∂u/∂t = α ∇²u
විසරණ සංගුණකය () යනු පද්ධතියක් හරහා දේපලක් හෝ ප්රමාණයක් කෙතරම් පහසුවෙන් ව්යාප්ත වේද යන්න මැන බැලීමකි.
U (2u) හි Laplacian යනු අවකාශයට සාපේක්ෂව දේපල හෝ ප්රමාණය වෙනස් වන ආකාරය පිළිබඳ විස්තරයකි. u යනු විසරණය වන ගුණය හෝ ප්රමාණය (උදාහරණයක් ලෙස, උෂ්ණත්වය හෝ සාන්ද්රණය), t යනු කාලය ගතවීම, විසරණ සංගුණකය වන අතර විසරණ නියතය වේ ().
පයිතන් හි ඇති Euler ක්රමය භාවිතයෙන් අපට එය ක්රියාත්මක කළ හැකිය.
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
මෙම කේතය විසරණ සමීකරණය ක්රියාත්මක කිරීමට Euler තාක්ෂණය භාවිතා කරයි. එය (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)
අවසාන වශයෙන්, ඔබට වෙනත් ගෘහ නිර්මාණ ශිල්පය සහ ක්රමවේද සමඟ අත්හදා බැලිය හැකිය. එබැවින්, ඔබට ආකෘතියේ කාර්ය සාධනය ඉහළ නැංවිය හැකිය අවධානය යොමු කිරීමේ යාන්ත්රණ, GANs, හෝ VAEs.
ඔබමයි