شعار زيفيرنت

استكشاف الذكاء الاصطناعي التوليدي المتقدم | قيمة القيمة المضافة المشروطة

التاريخ:

المُقدّمة

مرحبًا بك في هذه المقالة، حيث سنستكشف العالم المثير للذكاء الاصطناعي التوليدي. سنركز بشكل أساسي على أجهزة التشفير التلقائي المتغيرة المشروطة أو CVAEs، والتي تشبه المستوى التالي من براعة الذكاء الاصطناعي، حيث تدمج نقاط قوة أجهزة التشفير التلقائي المتغيرة (VAEs) مع القدرة على اتباع تعليمات محددة، مما يمنحنا تحكمًا دقيقًا في إنشاء الصور. خلال هذه المقالة، سنتعمق في CVAEs، وسنرى كيف ولماذا يمكن استخدامها في العديد من سيناريوهات العالم الحقيقي، كما سنزودك ببعض أمثلة التعليمات البرمجية سهلة الفهم لعرض إمكاناتها.

VAEs المشروطة | الذكاء الاصطناعي التوليدي
المصدر: آي بي إم

تم نشر هذه المقالة كجزء من مدونة علوم البيانات.

جدول المحتويات

فهم أجهزة التشفير التلقائي المتغيرة (VAEs)

قبل الغوص في CVAEs، دعونا نركز على أساسيات VAEs. تعد VAEs نوعًا من النماذج التوليدية التي تجمع بين شبكة التشفير وشبكة فك التشفير. يتم استخدامها لمعرفة البنية الأساسية للبيانات وإنشاء عينات جديدة.

فهم أجهزة التشفير التلقائي المتغيرة | VAEs المشروطة | الذكاء الاصطناعي التوليدي

بالتأكيد، دعونا نستخدم مثالًا بسيطًا يتضمن تفضيلات القهوة لشرح أجهزة التشفير التلقائي المتغيرة (VAEs)

تخيل أنك تريد تمثيل تفضيلات القهوة لدى الجميع في مكتبك:

  • التشفير: يلخص كل شخص اختياره للقهوة (أسود، لاتيه، كابتشينو) ببضع كلمات (على سبيل المثال، ثابتة، كريمية، خفيفة).
  • الاختلاف: يدرك أنه حتى ضمن نفس الاختيار (على سبيل المثال، اللاتيه)، هناك اختلافات في الحليب والحلاوة وما إلى ذلك.
  • الفضاء الكامن: يخلق مساحة مرنة حيث يمكن أن تختلف تفضيلات القهوة.
  • فك: يستخدم هذه الملخصات لإعداد القهوة للزملاء، مع وجود اختلافات طفيفة، مع احترام تفضيلاتهم.
  • الطاقة المولدة: يمكن إنشاء أنماط قهوة جديدة تناسب الأذواق الفردية ولكنها ليست نسخًا متماثلة تمامًا.

تعمل VAEs بشكل مشابه، حيث تتعلم الميزات الأساسية والاختلافات في البيانات لإنشاء بيانات جديدة مماثلة مع اختلافات طفيفة.

فيما يلي تطبيق بسيط لوحدة التشفير التلقائي المتغيرة (VAE) باستخدام Python وTensorFlow/Keras. يستخدم هذا المثال مجموعة بيانات MNIST للتبسيط، ولكن يمكنك تكييفها مع أنواع البيانات الأخرى.

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
import numpy as np # Load and preprocess the MNIST dataset
(x_train, _), (x_test, _) = keras.datasets.mnist.load_data()
x_train = x_train.astype('float32') / 255.0
x_test = x_test.astype('float32') / 255.0 # Define the VAE model
latent_dim = 2 # Encoder
encoder_inputs = keras.Input(shape=(28, 28))
x = layers.Flatten()(encoder_inputs)
x = layers.Dense(256, activation='relu')(x)
z_mean = layers.Dense(latent_dim)(x)
z_log_var = layers.Dense(latent_dim)(x) # Reparameterization trick
def sampling(args): z_mean, z_log_var = args epsilon = tf.keras.backend.random_normal(shape=(tf.shape(z_mean)[0], latent_dim)) return z_mean + tf.exp(0.5 * z_log_var) * epsilon z = layers.Lambda(sampling)([z_mean, z_log_var]) # Decoder
decoder_inputs = keras.Input(shape=(latent_dim,))
x = layers.Dense(256, activation='relu')(decoder_inputs)
x = layers.Dense(28 * 28, activation='sigmoid')(x)
decoder_outputs = layers.Reshape((28, 28))(x) # Define the VAE model
encoder = keras.Model(encoder_inputs, [z_mean, z_log_var, z], name='encoder')
decoder = keras.Model(decoder_inputs, decoder_outputs, name='decoder')
vae_outputs = decoder(encoder(encoder_inputs)[2])
vae = keras.Model(encoder_inputs, vae_outputs, name='vae') # Loss function
def vae_loss(x, x_decoded_mean, z_log_var, z_mean): x = tf.keras.backend.flatten(x) x_decoded_mean = tf.keras.backend.flatten(x_decoded_mean) xent_loss = keras.losses.binary_crossentropy(x, x_decoded_mean) kl_loss = -0.5 * tf.reduce_mean(1 + z_log_var - tf.square(z_mean) - tf.exp(z_log_var)) return xent_loss + kl_loss vae.compile(optimizer='adam', loss=vae_loss)
vae.fit(x_train, x_train, epochs=10, batch_size=32, validation_data=(x_test, x_test))

شرح أجهزة التشفير التلقائي المتغيرة المشروطة (CVAEs).

تعمل CVAEs على توسيع قدرات VAEs من خلال تقديم مدخلات مشروطة. يمكن لـ CVAEs إنشاء عينات بيانات بناءً على شروط أو معلومات محددة. على سبيل المثال، يمكنك إنشاء صور للقطط أو الكلاب بشكل مشروط من خلال تزويد النموذج بتسمية الفئة المطلوبة كمدخل.

دعونا نفهم باستخدام مثال في الوقت الحقيقي.

التسوق عبر الإنترنت باستخدام CVAEs تخيل أنك تتسوق عبر الإنترنت لشراء أحذية رياضية:

  • VAE الأساسي (بدون شروط): يعرض لك الموقع أحذية رياضية عشوائية.
  • CVAE (مع الشروط): يمكنك تحديد تفضيلاتك - اللون (الأحمر)، الحجم (10)، والنمط (الجري).
  • التشفير: يتفهم موقع الويب اختياراتك ويقوم بتصفية الأحذية الرياضية بناءً على هذه الشروط.
  • الاختلاف: مع إدراك أنه حتى في ظروفك، هناك اختلافات (ظلال مختلفة من اللون الأحمر، وأنماط أحذية الجري)، فهي تأخذها في الاعتبار.
  • الفضاء الكامن: إنه ينشئ "مساحة لتخصيص الأحذية الرياضية" حيث يُسمح بالاختلافات.
  • فك: باستخدام ظروفك الشخصية، يُظهر لك أحذية رياضية تتوافق مع تفضيلاتك بشكل وثيق.

تستخدم CVAEs، مثل مواقع التسوق عبر الإنترنت، شروطًا محددة (تفضيلاتك) لإنشاء بيانات مخصصة (خيارات الأحذية الرياضية) تتوافق بشكل وثيق مع اختياراتك.

بالاستمرار في مثال أداة التشفير التلقائي المتغير (VAE)، يمكنك تنفيذ أداة التشفير التلقائي المتغير الشرطي (CVAE). في هذا المثال، سنأخذ في الاعتبار مجموعة بيانات MNIST وننشئ أرقامًا مشروطة بناءً على تصنيف الفئة.

# Define the CVAE model
encoder = keras.Model([encoder_inputs, label], [z_mean, z_log_var, z], name='encoder')
decoder = keras.Model([decoder_inputs, label], decoder_outputs, name='decoder')
cvae_outputs = decoder([encoder([encoder_inputs, label])[2], label])
cvae = keras.Model([encoder_inputs, label], cvae_outputs, name='cvae')
التشفير | فك التشفير
المصدر: بوابة الأبحاث

الفرق بين VAEs وCVAEs

VAE

  • VAEs مثل الفنانين الذين يبدعون الفن ولكن مع القليل من العشوائية.
  • ويتعلمون كيفية إنشاء أشكال متنوعة من البيانات دون أي تعليمات محددة.
  • مفيد لإنشاء عينات بيانات جديدة بدون شروط، مثل الرسم العشوائي.

CVAE

  • تشبه CVAEs الفنانين الذين يمكنهم متابعة طلبات محددة
  • يقومون بإنشاء بيانات بناءً على شروط أو تعليمات معينة
  • مفيد للمهام التي تريد فيها التحكم الدقيق في ما يتم إنشاؤه، مثل تحويل الحصان إلى حمار وحشي مع الحفاظ على الميزات الرئيسية

تنفيذ CVAEs: أمثلة التعليمات البرمجية

دعنا نستكشف مثالًا بسيطًا لرمز Python باستخدام TensorFlow وKeras لتنفيذ CVAE لإنشاء أرقام مكتوبة بخط اليد

# Import necessary libraries
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
from tensorflow.keras.models import Model # Define the CVAE model architecture
latent_dim = 2
input_shape = (28, 28, 1)
num_classes = 10 # Encoder network
encoder_inputs = keras.Input(shape=input_shape)
x = layers.Conv2D(32, 3, padding='same', activation='relu')(encoder_inputs)
x = layers.Flatten()(x)
x = layers.Dense(64, activation='relu')(x) # Conditional input
label = keras.Input(shape=(num_classes,))
x = layers.concatenate([x, label]) # Variational layers
z_mean = layers.Dense(latent_dim)(x)
z_log_var = layers.Dense(latent_dim)(x) # Reparameterization trick
def sampling(args): z_mean, z_log_var = args epsilon = tf.keras.backend.random_normal(shape=(tf.shape(z_mean)[0], latent_dim)) return z_mean + tf.exp(0.5 * z_log_var) * epsilon z = layers.Lambda(sampling)([z_mean, z_log_var]) # Decoder network
decoder_inputs = layers.Input(shape=(latent_dim,))
x = layers.concatenate([decoder_inputs, label])
x = layers.Dense(64, activation='relu')(x)
x = layers.Dense(28 * 28 * 1, activation='sigmoid')(x)
x = layers.Reshape((28, 28, 1))(x) # Create the models
encoder = Model([encoder_inputs, label], [z_mean, z_log_var, z], name='encoder')
decoder = Model([decoder_inputs, label], x, name='decoder')
cvae = Model([encoder_inputs, label], decoder([z, label]), name='cvae')
#import csv

يوفر هذا الرمز بنية أساسية لنموذج CVAE. لتدريب الصور وإنشائها، ستحتاج إلى مجموعة بيانات مناسبة ومزيد من الضبط.

تطبيقات CVAEs

لدى CVAEs تطبيقات في مجالات متنوعة، بما في ذلك:

ترجمة صورة إلى صورة:  ويمكن استخدامها لترجمة الصور من مجال إلى آخر مع الحفاظ على المحتوى. تخيل أن لديك صورة حصان، وتريد تحويلها إلى حمار وحشي مع الاحتفاظ بالميزات الرئيسية. يمكن لـ CVAEs القيام بذلك:

#import csv# Translate horse image to a zebra image
translated_image = cvae_generate(horse_image, target="zebra")

نقل النمط: تتيح CVAEs نقل الأنماط الفنية بين الصور. لنفترض أن لديك صورة وتريدها أن تبدو وكأنها لوحة شهيرة، على سبيل المثال، "ليلة مرصعة بالنجوم" لفان جوخ. يمكن لـ CVAEs تطبيق هذا النمط:

#import csv
# Apply "Starry Night" style to your photo
styled_image = cvae_apply_style(your_photo, style="Starry Night")
  • إكتشاف عيب خلقي : فهي فعالة في الكشف عن الحالات الشاذة في البيانات. لديك مجموعة بيانات لنبضات القلب الطبيعية، وتريد اكتشاف عدم انتظام ضربات القلب. يمكن لـ CVAEs اكتشاف الحالات الشاذة:
# Detect irregular heartbeats
is_anomaly = cvae_detect_anomaly(heartbeat_data)
  • إكتشاف عقار : تساعد CVAEs في توليد الهياكل الجزيئية لاكتشاف الأدوية. لنفترض أنك بحاجة إلى العثور على جزيئات جديدة لدواء منقذ للحياة. يمكن أن تساعد CVAEs في تصميم الهياكل الجزيئية:
#import csv# Generate potential drug molecules
drug_molecule = cvae_generate_molecule("anti-cancer")

توضح هذه التطبيقات كيف يمكن لـ CVAEs تحويل الصور، وتطبيق الأنماط الفنية، والكشف عن الحالات الشاذة، والمساعدة في المهام الحاسمة مثل اكتشاف الأدوية، كل ذلك مع الحفاظ على البيانات الأساسية ذات معنى ومفيدة.

التحديات والتوجهات المستقبلية

التحديات

  • انهيار الوضع: فكر في CVAEs مثل الرسام الذي ينسى أحيانًا استخدام جميع ألوانه. يحدث انهيار الوضع عندما تستمر CVAEs في استخدام نفس الألوان (التمثيلات) لأشياء مختلفة. لذلك، قد يرسمون جميع الحيوانات بلون واحد فقط، مما يفقدهم التنوع.
  • توليد صور عالية الدقة: تخيل أنك تطلب من فنان أن يرسم لوحة جدارية كبيرة ومفصلة على لوحة قماشية صغيرة. انها تحدي. تواجه CVAEs تحديًا مشابهًا عند محاولة إنشاء صور كبيرة مفصلة للغاية.

الأهداف المستقبلية

يريد الباحثون تحسين CVAEs:

  • تجنب انهيار الوضع: إنهم يعملون على التأكد من أن الفنان (CVAE) يستخدم جميع الألوان (التمثيلات) الموجودة لديه، مما يؤدي إلى نتائج أكثر تنوعًا ودقة.
  • الفن عالي الدقة: إنهم يهدفون إلى مساعدة الفنان (CVAE) على رسم جداريات (صور) أكبر وأكثر تفصيلاً من خلال تحسين التقنيات المستخدمة. بهذه الطريقة، يمكننا الحصول على أعمال فنية مثيرة للإعجاب وعالية الجودة من CVAEs.

وفي الختام

المصدر: آي نيوز

تمثل أجهزة التشفير التلقائي المتغيرة المشروطة تطورًا رائدًا في الذكاء الاصطناعي التوليدي. إن قدرتهم على توليد البيانات بناءً على ظروف محددة تفتح عالماً من الإمكانيات في مختلف التطبيقات. ومن خلال فهم مبادئها الأساسية وتنفيذها بفعالية، يمكننا تسخير إمكانات CVAEs لتوليد الصور المتقدمة وما هو أبعد من ذلك.

الوجبات السريعة الرئيسية

  1. تقدم الذكاء الاصطناعي التوليدي: تمكين توليد الصور مع المدخلات الشرطية.
  2. تشبيه بسيط للقهوة: فكر في VAEs مثل تلخيص تفضيلات القهوة، والسماح بالتنوع مع الحفاظ على الجوهر.
  3. رمز VAE الأساسي: يتم توفير مثال كود Python سهل الاستخدام للمبتدئين لـ VAE، باستخدام مجموعة بيانات MNIST.
  4. تنفيذ CVAE: تتضمن المقالة مقتطف تعليمات برمجية لتنفيذ CVAE لإنشاء الصور المشروطة.
  5. مثال للتسوق عبر الإنترنت: يوضح تشبيه شراء الأحذية الرياضية عبر الإنترنت قدرة CVAEs على تخصيص البيانات بناءً على الظروف.

الأسئلة المتكررة

س1. كيف تختلف VAEs المشروطة عن VAEs؟

ج: بينما تقوم VAEs بإنشاء بيانات مع بعض العشوائية، تقوم CVAEs بإنشاء بيانات بشروط أو قيود محددة. VAEs مثل الفنانين الذين يقومون بإنشاء أعمال فنية عشوائية.

س2. ما هو دور VAEs المشروطة في مجال الذكاء الاصطناعي والتعلم الآلي؟

ج: تعد أجهزة التشفير التلقائي المتغيرة المشروطة (CVAEs) مفيدة جدًا في عالم الذكاء الاصطناعي. يمكنهم إنشاء بيانات مخصصة بناءً على ظروف محددة، مما يفتح الأبواب أمام العديد من التطبيقات.

س 3. ما هي المكتبات التي تعتبر نماذج مفتوحة المصدر أو نماذج مدربة مسبقًا لـ CVAEs؟

ج: نعم، يمكنك العثور على مكتبات مفتوحة المصدر مثل TensorFlow وPyTorch التي توفر أدوات لإنشاء CVAEs. تتوفر بعض النماذج المدربة مسبقًا وأمثلة التعليمات البرمجية في هذه المكتبات لبدء مشاريعك.

س 4. هل تتوفر نماذج CVAE مدربة مسبقًا لمهام محددة؟

ج: تعد نماذج CVAE المدربة مسبقًا أقل شيوعًا مقارنة بالبنيات الأخرى مثل الشبكات العصبية التلافيفية (CNNs). ومع ذلك، يمكنك العثور على VAEs مدربة مسبقًا والتي يمكنك تكييفها لمهمتك عن طريق ضبط النموذج.

الوسائط الموضحة في هذه المقالة ليست مملوكة لـ Analytics Vidhya ويتم استخدامها وفقًا لتقدير المؤلف.

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة