Rumah > Peranti teknologi > AI > Normalisasi Batch: Pelaksanaan Teori dan Tensorflow

Normalisasi Batch: Pelaksanaan Teori dan Tensorflow

Joseph Gordon-Levitt
Lepaskan: 2025-03-06 11:00:15
asal
233 orang telah melayarinya

Latihan rangkaian saraf yang mendalam sering menghadapi halangan seperti kecerunan lenyap/meletup dan peralihan kovariat dalaman, melambatkan latihan dan menghalang pembelajaran. Teknik normalisasi menawarkan penyelesaian, dengan normalisasi batch (BN) yang sangat menonjol. BN mempercepatkan penumpuan, meningkatkan kestabilan, dan meningkatkan penyebaran dalam banyak seni bina pembelajaran mendalam. Tutorial ini menerangkan mekanik BN, asas matematiknya, dan pelaksanaan Tensorflow/Keras.

Normalisasi dalam pembelajaran mesin menyeragamkan data input, menggunakan kaedah seperti skala min-max, normalisasi z-skor, dan transformasi log kepada ciri-ciri rescale. Ini mengurangkan kesan luar, meningkatkan penumpuan, dan memastikan perbandingan ciri yang adil. Data yang dinormalisasi memastikan sumbangan ciri yang sama kepada proses pembelajaran, mencegah ciri-ciri skala yang lebih besar daripada mendominasi dan membawa kepada prestasi model suboptimal. Ia membolehkan model mengenal pasti corak yang bermakna dengan lebih berkesan.

Cabaran Latihan Pembelajaran Deep termasuk:

  1. Perubahan kovariat dalaman: perubahan pengedaran pengaktifan merentasi lapisan semasa latihan, menghalang penyesuaian dan pembelajaran.
  2. kecerunan lenyap/meletup: kecerunan menjadi terlalu kecil atau besar semasa backpropagation, menghalang kemas kini berat badan yang berkesan.
  3. Sensitiviti Inisialisasi: Berat awal mempengaruhi latihan; Inisialisasi yang lemah boleh menyebabkan penumpuan perlahan atau gagal.

normalisasi batch menangani ini dengan menormalkan pengaktifan dalam setiap batch mini, menstabilkan latihan dan meningkatkan prestasi model.

Normalisasi batch menormalkan pengaktifan lapisan dalam batch mini semasa latihan. Ia mengira min dan varians pengaktifan untuk setiap ciri, kemudian menormalkan menggunakan statistik ini. Skala parameter yang boleh dipelajari (γ dan β) dan mengalihkan pengaktifan yang dinormalisasi, yang membolehkan model mempelajari pengedaran pengaktifan optimum.

Batch Normalization: Theory and TensorFlow Implementation

Sumber: Yintai Ma dan Diego Klabjan.

Bn biasanya digunakan selepas transformasi linear lapisan (mis., Multiplikasi matriks dalam lapisan yang disambungkan sepenuhnya atau konvolusi dalam lapisan konvolusi) dan sebelum fungsi pengaktifan bukan linear (mis., Relu). Komponen utama adalah statistik batch mini (min dan varians), normalisasi, dan skala/beralih dengan parameter yang boleh dipelajari.

BN menangani peralihan kovariat dalaman dengan menormalkan pengaktifan dalam setiap batch mini, membuat input ke lapisan berikutnya lebih stabil. Ini membolehkan penumpuan lebih cepat dengan kadar pembelajaran yang lebih tinggi dan mengurangkan kepekaan inisialisasi. Ia juga menghidupkan, mencegah overfitting dengan mengurangkan pergantungan pada corak pengaktifan tertentu.

Matematik normalisasi batch:

BN beroperasi secara berbeza semasa latihan dan kesimpulan.

Latihan:

  • normalisasi: min (μ b ) dan varians (σ b 2 ) dikira untuk setiap ciri dalam mini-batch:

Batch Normalization: Theory and TensorFlow Implementation

Batch Normalization: Theory and TensorFlow Implementation pengaktifan (x i

) dinormalisasi:

(ε adalah pemalar kecil untuk kestabilan berangka). Batch Normalization: Theory and TensorFlow Implementation

skala dan peralihan:
    parameter yang boleh dipelajari γ dan skala β dan peralihan:
  • 3 statistik batch:
statistik batch digantikan dengan statistik berjalan (berjalan min dan varians) yang dikira semasa latihan menggunakan purata bergerak (faktor momentum α):

Batch Normalization: Theory and TensorFlow Implementation

Statistik berjalan dan γ dan β yang dipelajari digunakan untuk normalisasi semasa kesimpulan.

Batch Normalization: Theory and TensorFlow Implementation Pelaksanaan TensorFlow:

Batch Normalization: Theory and TensorFlow Implementation

Pertimbangan pelaksanaan:

Penempatan:
import tensorflow as tf
from tensorflow import keras

# Load and preprocess MNIST data (as described in the original text)
# ...

# Define the model architecture
model = keras.Sequential([
    keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),
    keras.layers.BatchNormalization(),
    keras.layers.Conv2D(64, (3, 3), activation='relu'),
    keras.layers.BatchNormalization(),
    keras.layers.MaxPooling2D((2, 2)),
    keras.layers.Flatten(),
    keras.layers.Dense(128, activation='relu'),
    keras.layers.BatchNormalization(),
    keras.layers.Dense(10, activation='softmax')
])

# Compile and train the model (as described in the original text)
# ...
Salin selepas log masuk
selepas transformasi linear dan sebelum fungsi pengaktifan.

saiz batch:

saiz batch yang lebih besar memberikan statistik batch yang lebih tepat.
  • regularization: bn memperkenalkan kesan regularization.
  • Batasan dan cabaran:
  • arkitek bukan konvolusi:
  • keberkesanan Bn dikurangkan dalam RNNs dan transformer.

saiz batch kecil: statistik kelompok yang kurang dipercayai.

Overhead pengiraan:
  • overhead: Meningkatkan memori dan masa latihan.
  • Batasan pengurangan: Normalisasi batch adaptif, normalisasi batch maya, dan teknik normalisasi hibrid dapat menangani beberapa batasan.
  • variasi dan sambungan: normalisasi lapisan, normalisasi kumpulan, normalisasi contoh, renormalisasi batch, dan normalisasi berat menawarkan alternatif atau penambahbaikan bergantung kepada keperluan khusus.
  • Kesimpulan: Normalisasi batch adalah teknik yang kuat meningkatkan latihan rangkaian saraf yang mendalam. Ingat manfaat, butiran pelaksanaan, dan batasannya, dan pertimbangkan variannya untuk prestasi optimum dalam projek anda.

Atas ialah kandungan terperinci Normalisasi Batch: Pelaksanaan Teori dan Tensorflow. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan