बैच नॉर्मलाइजेशन का उपयोग इनपुट परत के साथ-साथ छिपी परतों को सामान्य करने और सक्रियण के स्केलिंग को समायोजित करने के लिए किया जाता है। गहरे तंत्रिका नेटवर्क में अतिरिक्त परत के साथ इस सामान्य प्रभाव के कारण, नेटवर्क गायब या विस्फोट किए बिना उच्च शिक्षण दर का उपयोग कर सकता है। इसके अलावा, बैच सामान्यीकरण नेटवर्क को नियमित करता है जैसे कि इसे सामान्य करना आसान है, और इस प्रकार से कम करने के लिए ड्रॉपआउट का उपयोग करना अनावश्यक है।
कायर का उपयोग करते हुए रैखिक फ़ंक्शन की गणना करने के ठीक बाद, केरस में घने () या कन्वर्सेशन () का उपयोग करते हैं, हम बैचैर्निलाइज़ेशन () का उपयोग करते हैं जो एक परत में रैखिक फ़ंक्शन की गणना करता है और फिर हम गैर-रैखिकता को परत के साथ जुड़ाव () का उपयोग करते हुए जोड़ते हैं।
from keras.layers.normalization import BatchNormalization
model = Sequential()
model.add(Dense(64, input_dim=14, init='uniform'))
model.add(BatchNormalization(epsilon=1e-06, mode=0, momentum=0.9, weights=None))
model.add(Activation('tanh'))
model.add(Dropout(0.5))
model.add(Dense(64, init='uniform'))
model.add(BatchNormalization(epsilon=1e-06, mode=0, momentum=0.9, weights=None))
model.add(Activation('tanh'))
model.add(Dropout(0.5))
model.add(Dense(2, init='uniform'))
model.add(BatchNormalization(epsilon=1e-06, mode=0, momentum=0.9, weights=None))
model.add(Activation('softmax'))
sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='binary_crossentropy', optimizer=sgd)
model.fit(X_train, y_train, nb_epoch=20, batch_size=16, show_accuracy=True,
validation_split=0.2, verbose = 2)
बैच सामान्यीकरण कैसे लागू किया जाता है?
मान लें कि हमारे पास लेयर l के लिए [l-1] इनपुट है। इसके अलावा हमारे पास वेट l [l] और बायस यूनिट b [l] लेयर l के लिए है। ले [z] लेयर z और z [l] के लिए गैर-रैखिकता जोड़ने के बाद गणना की गई सक्रियण वेक्टर (गैर-रैखिकता जोड़ने के बाद) की गणना करें।
- [L-1] और W [l] का उपयोग करके हम लेयर l के लिए z [l] की गणना कर सकते हैं
- आमतौर पर फीड-फॉरवर्ड प्रचार में हम इस चरण में z [l] की तरह bias यूनिट को इस z [l] + b [l] में जोड़ देंगे, लेकिन बैच नॉर्मलाइज़ेशन में b [l] के अतिरिक्त के इस चरण की आवश्यकता नहीं है और नहीं b [l] पैरामीटर का उपयोग किया जाता है।
- Z [l] का अर्थ है गणना करें और इसे प्रत्येक तत्व से घटाएं
- डिवाइड (z [l] - माध्य) मानक विचलन का उपयोग करते हुए। इसे Z_temp [l] कहें
अब नए मापदंडों को परिभाषित करें define और γ जो कि छिपी हुई परत के पैमाने को निम्नानुसार बदल देगा:
z_norm [l] = l.Z_temp [l] + l
इस कोड अंश में, Dense () एक [l-1] लेता है, W [l] का उपयोग करता है और z / l की गणना करता है। फिर तत्काल बैचैनीकरण () z_norm [l] देने के लिए उपरोक्त चरणों का प्रदर्शन करेगा। और फिर तत्काल सक्रियण () तन [z_norm [l]) की गणना करने के लिए [l] यानी देगा
a[l] = tanh(z_norm[l])