உருவாக்க மாதிரிகள்(Generative models) என்பது இயந்திரக் கற்றலின் ஒரு கவர்ச்சிகரமான பகுதியாகும், இவைபயிற்சித் தரவைப் போன்ற முற்றிலும் புதிய தரவை உருவாக்குகின்ற திறன் கொண்டவைகளாகும். இந்தக் கட்டுரையில்,Generative Adversarial Networks (GANs) , Variational Autoencoders (VAEs) ஆகிய இரண்டு பிரபலமான உருவாக்க மாதிரிகளை ஆராய்வோம்: இந்த மாதிரிகள் யதார்த்தமான படங்களை உருவாக்குதல், ஆழ்ந்த போலியான கானொளிகாட்சிகளை உருவாக்குதல் , இசையமைத்தல் ஆகியவற்றில் பயன்பாடுகளைக் கொண்டுள்ளன.
1. உருவாக்க மாதிரிகள் (Generative models) என்றால் என்ன?
உருவாக்க மாதிரிகள் அடிப்படை தரவு விநியோகத்தைப் புரிந்துகொள்வதையும் அசல் தரவை ஒத்த புதிய மாதிரிகளை உருவாக்குவதையும் நோக்கமாகக் கொண்டுள்ளன. வகைப்பாடு அல்லது கணிப்பில் கவனம் செலுத்தும் பாகுபாடு மாதிரிகள் போன்றில்லாமல், உருவாக்க மாதிரிகள் முற்றிலும் புதிய ஒன்றை உருவாக்குகின்றன.
2. GANகள் அறிமுகம்
உருவாக்க Adversarial Networks கள் (GANகள்) என்பது 2014 இல் Ian Goodfellow ஆல் அறிமுகப்படுத்தப்பட்ட உருவாக்க மாதிரிகளின் ஒரு வகையாகும். GANகள் இரண்டு நரம்பியல் வலைபின்னல்களைக் கொண்டிருக்கின்றன:
உருவாக்கம்செய்தல்: பயிற்சித் தரவைப் போன்ற புதிய தரவை உருவாக்குகிறது.
பாகுபாடு காண்பிப்பவர்: ஒரு மாதிரி உண்மையானதா (பயிற்சித் தரவிலிருந்து) அல்லது போலியானதா (உருவாக்கப்பட்டதா) என்பதை மதிப்பிடுகிறார்.
இந்த வலைபின்னல்கள் போட்டித்தன்மை வாய்ந்த செயல்பாட்டில் பயிற்சி அளிக்கப்படுகின்றன, இது adversarial பயிற்சி என்று அழைக்கப்படுகிறது:
உருவாக்கியானது யதார்த்தமான மாதிரிகளை உருவாக்குவதன் மூலம் பாகுபாடு காண்பவரை முட்டாளாக்க முயற்சிக்கிறது.
பாகுபாடு காண்பிப்பவர் உண்மையான , போலியான மாதிரிகளை சரியாக வகைப்படுத்த முயற்சிக்கிறார்.
GAN பணிப்பாய்வு
உருவாக்குபவர் சீரற்ற சத்தத்திலிருந்து ஒரு மாதிரியை உருவாக்குகிறது.
பாகுபாடு காண்பிப்பவர் மாதிரியை மதிப்பிடுகிறார்.
இரண்டு வலைபின்னல்களும் அந்தந்த பணிகளை மேம்படுத்த தங்கள் எடைகளை சரிசெய்கின்றன.
GANகளின் பயன்பாடுகள்
யதார்த்தமான படங்களை உருவாக்குதல் (எ.கா., செய்யறிவால்(AI)-உருவாக்கப்பட்ட உருவப்படங்கள்).
ஆழ்ந்த கானொளிகளை உருவாக்குதல்.
சமநிலையற்ற தரவுத்தொகுப்புகளுக்கான தரவு பெருக்கி எண்ணிக்கையை உயர்த்துதல்.
மீத்திறன்-தெளிவுத்திறன்: பட தரத்தை மேம்படுத்துதல்.
3. VAEகளுக்கான ஒருஅறிமுகம்
மாறுபாடு காண்பிப்பவர்களுக்கான தானியங்கி குறியாக்கிகள் (VAEகள்) மற்றொரு வகை உருவாக்க மாதிரி. உள்ளீட்டுத் தரவின் சுருக்கப்பட்ட பிரதிநிதித்துவத்தை (மறைந்த இடம்) கற்றுக்கொள்வதன் மூலம் அவை செயல்படுகின்றன, பின்னர் இந்த மறைந்திருக்கும் இடத்திலிருந்து மாதிரி எடுப்பதன் மூலம் புதிய தரவை உருவாக்குகின்றன.
VAEகள் எவ்வாறு செயல்படுகின்றன
மறைகுறியாக்கி: உள்ளீட்டுத் தரவை ஒரு மறைந்திருக்கும் இட representation ஆக சுருக்குகிறது.
மறைநிலை இடைவெளி: தரவின் அடிப்படை அமைப்பைக் குறைக்கப்பட்ட வடிவத்தில் குறிக்கிறது.
மறைகுறிவிலக்கி: மறைநிலை இடத்திலிருந்து தரவை மறுகட்டமைக்கிறது.
VAEகள் பாரம்பரிய தானியங்கி குறியாக்கிகளிலிருந்து வேறுபடுகின்றன, ஏனெனில் அவை நிகழ்தகவு மாதிரியை உள்ளடக்குகின்றன, இது மறைநிலை இடத்தில் மென்மையான இடைக்கணிப்பு , புதிய தரவை உருவாக்க அனுமதிக்கிறது.
VAEகளின் பயன்பாடுகள்
புதிய படங்கள் அல்லது கானொளிகளை உருவாக்குதல்.
மறுகட்டமைக்கப்பட்ட, அசல் தரவை ஒப்பிடுவதன் மூலம் ஒழுங்கின்மை கண்டறிதல்.
இசை, ஒலி ஆகிய தொகுப்பை உருவாக்குதல்.
4. நடைமுறை: உருவப்பட உருவாக்கத்திற்கான GAN ஐ உருவாக்குதல்
படிமுறை1: தேவையான நூலகங்களை நிறுவுகைசெய்தல்
pip install tensorflow keras numpy matplotlib
படிமுறை2: நூலகங்களை பதிவிறக்கம் செய்தல்
import tensorflow as tf
from tensorflow.keras import layers
import numpy as np
import matplotlib.pyplot as plt
படிமுறை3: GAN கூறுகளை வரையறுத்தல்
Generator
def build_generator(latent_dim):
model = tf.keras.Sequential([
layers.Dense(256, activation=’relu’, input_dim=latent_dim),
layers.BatchNormalization(),
layers.LeakyReLU(0.2),
layers.Dense(28 * 28 * 1, activation=’sigmoid’),
layers.Reshape((28, 28, 1))
])
return model
Discriminator
def build_discriminator(input_shape):
model = tf.keras.Sequential([
layers.Flatten(input_shape=input_shape),
layers.Dense(128, activation=’relu’),
layers.LeakyReLU(0.2),
layers.Dense(1, activation=’sigmoid’)
])
return model
படிமுறை4: GAN-ஐப் பயிற்றுவித்தல்
உருவாக்கியைப் பயன்படுத்தி படங்களை உருவாக்கிடுக.
பாகுபடுத்தியைப் பயன்படுத்தி உண்மையான , போலியான படங்களை வகைப்படுத்திடுக.
இரு வலைபின்னல்களையும் ஒரு எதிரி அமைப்பில் பயிற்றுவித்திடுக.
5. நடைமுறை: தரவு உருவாக்கத்திற்கான VAE ஐ உருவாக்குதல்
படிமுறை1: மறைகுறியாக்கி , மறைகுறிவிலக்கியை வரையறுத்தல்
Encoder
latent_dim = 2
encoder_input = layers.Input(shape=(28, 28, 1))
x = layers.Flatten()(encoder_input)
x = layers.Dense(128, activation=’relu’)(x)
z_mean = layers.Dense(latent_dim, name=’z_mean’)(x)
z_log_var = layers.Dense(latent_dim, name=’z_log_var’)(x)
Decoder
decoder_input = layers.Input(shape=(latent_dim,))
x = layers.Dense(128, activation=’relu’)(decoder_input)
x = layers.Dense(28 * 28, activation=’sigmoid’)(x)
decoder_output = layers.Reshape((28, 28, 1))(x)
படிமுறை2: VAE-க்கு பயிற்சி அளித்தல்
Encode input data into latent space.
Sample from latent space using(z = z_{\text{mean}} + \text{exp}(z_{\text{log_var}})\cdot\psilon ).
Decode the sampled points to reconstruct the input.
6. GANகள் , VAEகள் ஆகியவற்றுடன் ஒருஒப்பீடு
வசதிவாய்ப்புகள் | GANs | VAEs |
---|---|---|
பயிற்சி | எதிர்நிலை (ஜெனரேட்டர் vs. பாகுபாடு காண்பவர்) | மறுகட்டமைப்பு (இழப்பைக் குறைத்தல்) |
வெளியீட்டு தரம் | பெரும்பாலும் மிகவும் யதார்த்தமானது | பொதுவாக மென்மையானது, குறைவான கூர்மையானது |
Latent Space | வெளிப்படையான மறைநிலை காலிஇடைவெளி இல்லை. | வெளிப்படையான மறைநிலை காலிஇடைவெளி |
7. உருவாக்க மாதிரிகளுடனான சவால்கள்
GANகள்: பயிற்சி நிலையற்ற தன்மை, பயன்முறை சரிவு (உருவாக்கியானது வரையறுக்கப்பட்ட பன்முகத்தன்மையை உருவாக்குகிறது).
VAEகள்: GANகளுடன் ஒப்பிடும்போது மங்கலான வெளியீடுகள்.
8. உற்பத்தி மாதிரிகளில் எதிர்கால போக்குகள்
மேம்பட்ட செயல்திறனுக்காக GANகள் , VAEகளை இணைத்தல்.
StyleGAN , BigGAN போன்ற மேம்பட்ட கட்டமைப்புகள். மருந்து கண்டுபிடிப்பு , படைப்பு கலைகளில் பயன்பாடுகள். போன்றவைகளாகும்.
தொடரும்