এমএল কমিউনিটি দিবস 9 নভেম্বর! TensorFlow, Jax থেকে আপডেটের জন্য আমাদের সাথে যোগ দিন, এবং আরও আরও জানুন

সাধারণীকরণ

TensorFlow.org এ দেখুন GitHub এ উৎস দেখুন নোটবুক ডাউনলোড করুন

ওভারভিউ

এই নোটবুক মধ্যে একটি সংক্ষিপ্ত ভূমিকা দেয় নিয়মমাফিককরণ স্তর TensorFlow করুন। বর্তমানে সমর্থিত স্তরগুলি হল:

  • গ্রুপ স্বাভাবিক (TensorFlow অ্যাডঅনস)
  • ইন্সটান্স স্বাভাবিক (TensorFlow অ্যাডঅনস)
  • লেয়ার স্বাভাবিক (TensorFlow কোর)

এই স্তরগুলির পিছনে মূল ধারণাটি হল প্রশিক্ষণের সময় একত্রীকরণের উন্নতির জন্য একটি অ্যাক্টিভেশন স্তরের আউটপুট স্বাভাবিক করা। বিপরীতে ব্যাচ নিয়মমাফিককরণ এই normalizations ব্যাচ কাজ না, পরিবর্তে তারা একটি একক নমুনা সক্রিয়করণব্যবস্থা স্বাভাবিক, তাদের পাশাপাশি পৌনঃপুনিক neual নেটওয়ার্কগুলির জন্য উপযুক্ত হয়।

সাধারণত আপনার ইনপুট টেন্সরের একটি উপগোষ্ঠীর গড় এবং মান বিচ্যুতি গণনা করে স্বাভাবিককরণ করা হয়। এটিতে একটি স্কেল এবং অফসেট ফ্যাক্টর প্রয়োগ করাও সম্ভব।

$ y_ {i} = \ frac {\ gamma (x_ {i} - \ mu)} {\ sigma}+ \ beta $

$ y $: আউটপুট

$ x $: ইনপুট

$ \ গামা $: স্কেল ফ্যাক্টর

$ \ mu $: মানে

$ \ সিগমা $: মান বিচ্যুতি

$ \ বিটা $: অফসেট ফ্যাক্টর

নিম্নলিখিত চিত্রটি এই কৌশলগুলির মধ্যে পার্থক্য প্রদর্শন করে। প্রতিটি সাবপ্লট একটি ইনপুট টেন্সর দেখায়, ব্যাচ অক্ষ হিসাবে N, চ্যানেল অক্ষ হিসাবে C, এবং (H, W) স্থানিক অক্ষ হিসাবে (উদাহরণস্বরূপ একটি ছবির উচ্চতা এবং প্রস্থ)। নীল পিক্সেলগুলি একই গড় এবং বৈকল্পিক দ্বারা স্বাভাবিক করা হয়, এই পিক্সেলের মানগুলি একত্রিত করে গণনা করা হয়।

উত্স: ( https://arxiv.org/pdf/1803.08494.pdf )

প্রতিনিধিত্বমূলক ক্ষমতা হারানোর সম্ভাব্য ক্ষতিপূরণ দেওয়ার জন্য ওজনগুলি গামা এবং বিটা সমস্ত স্বাভাবিকীকরণ স্তরে প্রশিক্ষণযোগ্য। আপনি সেটিং দ্বারা এই উপাদানগুলির সক্রিয় করতে পারেন center বা scale পতাকা True । অবশ্যই আপনি ব্যবহার করতে পারেন initializers , constraints এবং regularizer জন্য beta এবং gamma সুর এই মান প্রশিক্ষণ প্রক্রিয়ার সময়।

সেটআপ

Tensorflow 2.0 এবং Tensorflow-Addons ইনস্টল করুন

pip install -q -U tensorflow-addons
import tensorflow as tf
import tensorflow_addons as tfa

ডেটাসেট প্রস্তুত করা হচ্ছে

mnist = tf.keras.datasets.mnist

(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

গ্রুপ নরমালাইজেশন টিউটোরিয়াল

ভূমিকা

গ্রুপ নরমালাইজেশন (জিএন) আপনার ইনপুটগুলির চ্যানেলগুলিকে ছোট সাব গ্রুপে বিভক্ত করে এবং এই মানগুলিকে তাদের গড় এবং ভিন্নতার উপর ভিত্তি করে স্বাভাবিক করে। যেহেতু জিএন একটি একক উদাহরণে কাজ করে এই কৌশলটি ব্যাচসাইজ স্বাধীন।

GN পরীক্ষামূলকভাবে ইমেজ শ্রেণীবিভাগের কাজগুলিতে ব্যাচ স্বাভাবিকীকরণের জন্য বন্ধ করা হয়েছে। ব্যাচ নরমালাইজেশনের পরিবর্তে GN ব্যবহার করা উপকারী হতে পারে যদি আপনার সামগ্রিক ব্যাচ_সাইজ কম হয়, যা ব্যাচ স্বাভাবিকীকরণের খারাপ কর্মক্ষমতা সৃষ্টি করবে

উদাহরণ

একটি মান "চ্যানেল শেষ" সেটিংয়ে একটি কনভ 2 ডি স্তরের পরে 5 টি উপগোষ্ঠীতে 10 টি চ্যানেল বিভক্ত করা:

model = tf.keras.models.Sequential([
  # Reshape into "channels last" setup.
  tf.keras.layers.Reshape((28,28,1), input_shape=(28,28)),
  tf.keras.layers.Conv2D(filters=10, kernel_size=(3,3),data_format="channels_last"),
  # Groupnorm Layer
  tfa.layers.GroupNormalization(groups=5, axis=3),
  tf.keras.layers.Flatten(),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation='softmax')
])

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
model.fit(x_test, y_test)
313/313 [==============================] - 4s 3ms/step - loss: 0.7835 - accuracy: 0.7722
<tensorflow.python.keras.callbacks.History at 0x7f94db65ca58>

ইন্সট্যান্স নরমালাইজেশন টিউটোরিয়াল

ভূমিকা

ইন্সট্যান্স নরমালাইজেশন হচ্ছে গ্রুপ নরমালাইজেশনের বিশেষ ক্ষেত্রে যেখানে গ্রুপ সাইজ চ্যানেলের সাইজের (বা অক্ষের সাইজের) সমান।

পরীক্ষামূলক ফলাফল দেখায় যে, ব্যাচ নরমালাইজেশন প্রতিস্থাপন করার সময় স্টাইল ট্রান্সফারের ক্ষেত্রে নরমালাইজেশন ভালো কাজ করে। সম্প্রতি, উদাহরণ স্বাভাবিককরণ GANs এ ব্যাচ স্বাভাবিকীকরণের প্রতিস্থাপন হিসাবেও ব্যবহৃত হয়েছে।

উদাহরণ

কনভ 2 ডি লেয়ারের পরে ইনস্ট্যান্স নরমালাইজেশন প্রয়োগ করা এবং ইউনিফর্মযুক্ত প্রাথমিক স্কেল এবং অফসেট ফ্যাক্টর ব্যবহার করা।

model = tf.keras.models.Sequential([
  # Reshape into "channels last" setup.
  tf.keras.layers.Reshape((28,28,1), input_shape=(28,28)),
  tf.keras.layers.Conv2D(filters=10, kernel_size=(3,3),data_format="channels_last"),
  # LayerNorm Layer
  tfa.layers.InstanceNormalization(axis=3, 
                                   center=True, 
                                   scale=True,
                                   beta_initializer="random_uniform",
                                   gamma_initializer="random_uniform"),
  tf.keras.layers.Flatten(),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation='softmax')
])

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
model.fit(x_test, y_test)
313/313 [==============================] - 2s 3ms/step - loss: 0.9159 - accuracy: 0.7194
<tensorflow.python.keras.callbacks.History at 0x7f9549c37278>

লেয়ার নরমালাইজেশন টিউটোরিয়াল

ভূমিকা

লেয়ার নরমালাইজেশন হল গ্রুপ নরমালাইজেশনের বিশেষ ক্ষেত্রে যেখানে গ্রুপ সাইজ ১। একটি একক নমুনার সমস্ত সক্রিয়তা থেকে গড় এবং মান বিচ্যুতি গণনা করা হয়।

পরীক্ষামূলক ফলাফল দেখায় যে লেয়ার নরমালাইজেশন পুনরাবৃত্তিমূলক নিউরাল নেটওয়ার্কের জন্য উপযুক্ত, যেহেতু এটি স্বাধীনভাবে ব্যাচসাইজ কাজ করে।

উদাহরণ

একটি Conv2D স্তরের পরে স্তরবিজ্ঞান প্রয়োগ এবং একটি স্কেল এবং অফসেট ফ্যাক্টর ব্যবহার করে।

model = tf.keras.models.Sequential([
  # Reshape into "channels last" setup.
  tf.keras.layers.Reshape((28,28,1), input_shape=(28,28)),
  tf.keras.layers.Conv2D(filters=10, kernel_size=(3,3),data_format="channels_last"),
  # LayerNorm Layer
  tf.keras.layers.LayerNormalization(axis=3 , center=True , scale=True),
  tf.keras.layers.Flatten(),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation='softmax')
])

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
model.fit(x_test, y_test)
313/313 [==============================] - 1s 3ms/step - loss: 0.6272 - accuracy: 0.8049
<tensorflow.python.keras.callbacks.History at 0x7f9549b0a748>

সাহিত্য

স্তর আদর্শ

তাত্ক্ষণিক আদর্শ

গ্রুপ নরম