Menguasai LeNet: Wawasan Arsitektur dan Implementasi Praktis

Menguasai LeNet: Wawasan Arsitektur dan Implementasi Praktis

Node Sumber: 2394537

Pengantar

LeNet-5, perintis jaringan saraf konvolusional (CNN) yang dikembangkan oleh Yann LeCun dan timnya pada tahun 1990-an, merupakan terobosan baru dalam visi komputer dan pembelajaran mendalam. Arsitektur inovatif ini secara eksplisit dibuat untuk merevolusi pengenalan karakter tulisan tangan dan cetakan mesin. Tidak seperti metode tradisional, LeNet-5 memperkenalkan pendekatan baru yang menghilangkan kebutuhan rekayasa fitur manual, langsung memproses gambar piksel melalui lapisan konvolusional, subsampling, dan lapisan yang terhubung sepenuhnya. Keberhasilannya melampaui pengenalan karakter, menjadi landasan bagi model pembelajaran mendalam modern dan memengaruhi arsitektur berikutnya dalam visi komputer, pengenalan objek, dan klasifikasi gambar.

Penerapan awal algoritma propagasi mundur Yann LeCun pada masalah praktis meletakkan dasar bagi LeNet-5, yang dirancang untuk membaca karakter tulisan tangan dan unggul dalam mengidentifikasi nomor kode pos yang disediakan oleh Layanan Pos AS. Versi dan penerapannya yang berurutan, seperti kemampuan membaca jutaan cek setiap hari, memicu lonjakan minat di kalangan peneliti, membentuk lanskap jaringan saraf, dan menginspirasi evolusi pembelajaran mendalam.

LeNet -5

Keberhasilan LeNet-5 dan aplikasi berikutnya, seperti sistem yang mampu membaca jutaan cek per hari, memicu minat luas di kalangan peneliti terhadap jaringan saraf. Meskipun arsitektur jaringan saraf dengan kinerja terbaik saat ini telah berkembang melampaui LeNet-5, desain inovatif dan pencapaiannya meletakkan dasar bagi banyak model berikutnya, yang secara signifikan membentuk dan menginspirasi pembelajaran mendalam. LeNet-5 tetap menjadi bukti inovasi dan simbol abadi evolusi pembelajaran mesin dan pengenalan gambar.

Tujuan Pembelajaran

  • Jelajahi signifikansi historis dan dampak LeNet-5 terhadap evolusi pembelajaran mendalam dan visi komputer.
  • Bandingkan LeNet-5 dengan arsitektur jaringan saraf kontemporer, periksa pengaruh dasarnya terhadap model pembelajaran mendalam saat ini.
  • Pahami arsitektur LeNet-5, termasuk lapisan konvolusional, subsampling, dan terhubung sepenuhnya.
  • Analisis aplikasi praktis dan studi kasus yang menunjukkan efektivitas LeNet-5 dalam tugas pengenalan gambar.

Artikel ini diterbitkan sebagai bagian dari Blogathon Ilmu Data.

Daftar Isi

Memahami LeNet

LeNet, juga dikenal sebagai LeNet-5, adalah pionir arsitektur jaringan saraf konvolusional (CNN) yang dikembangkan oleh Yann LeCun dan timnya pada tahun 1990an. Ini dirancang secara eksplisit untuk tugas pengenalan karakter yang ditulis tangan dan dicetak mesin. Signifikansi LeNet-5 terletak pada demonstrasi keberhasilan pembelajaran fitur hierarki dan efektivitasnya dalam pengenalan karakter. Dampaknya melampaui tujuan awalnya, memengaruhi pengembangan model pembelajaran mendalam modern dan berfungsi sebagai arsitektur dasar untuk kemajuan selanjutnya dalam visi komputer, pengenalan gambar, dan berbagai aplikasi pembelajaran mesin.

Memahami LeNet

Arsitektur LeNet

LeNet-5 adalah Convolutional Neural Network (CNN) dengan arsitektur khusus yang digunakan dalam tugas pengenalan karakter. Ini terdiri dari beberapa lapisan, tidak termasuk lapisan masukan, yang berisi parameter yang dapat dilatih. Khususnya, ia memproses gambar berukuran 32ร—32 piksel, lebih signifikan daripada karakter dalam databasenya, dengan fokus pada pemusatan fitur yang berpotensi membedakan. Nilai piksel masukan dinormalisasi untuk efisiensi pembelajaran yang lebih baik.

Arsitektur LeNet

Arsitektur LeNet menggabungkan lapisan konvolusional, subsampling, dan terhubung sepenuhnya dengan pola konektivitas tertentu. Ia menggunakan normalisasi untuk piksel masukan dan serangkaian lapisan untuk mengekstrak fitur khusus dari data untuk pembelajaran yang efisien. Selain itu, ia menerapkan strategi unik untuk mencegah kejenuhan fungsi aktivasi dan menggunakan fungsi kerugian tertentu untuk pelatihan yang efisien.

"
"

Strategi Unik Mencegah Kejenuhan

  • Lapisan Masukan: LeNet memproses gambar berukuran 32ร—32 piksel, lebih signifikan daripada karakter dalam database, yang bertujuan untuk menangkap potensi fitur khas di tengah gambar.
  • Lapisan Konvolusional dan Subsampling: Lapisan konvolusional terutama mengekstrak fitur dari data masukan menggunakan filter atau kernel yang dapat dipelajari. Setiap lapisan terdiri dari beberapa filter yang menggeser data masukan (gambar) dan melakukan perkalian berdasarkan elemen untuk menghasilkan peta fitur. Lapisan awal berisi 6 filter berukuran 5ร—5, diaktifkan dengan fungsi tanh, mengarah ke peta fitur berukuran 28x28x6. Lapisan berikutnya menggunakan 16 filter dengan ukuran yang sama, menghasilkan peta fitur 10x10x16.
  • Lapisan subsampling, juga dikenal sebagai pooling layer, fokus pada pengurangan dimensi peta fitur yang diperoleh dari lapisan konvolusional. Penggabungan melibatkan penggabungan atau penurunan sampel peta fitur, biasanya dengan mengambil nilai maksimum (MaxPooling) atau nilai rata-rata (AveragePooling) di wilayah yang ditentukan. Dengan ukuran filter 2ร—2 dan variasi langkah, lapisan ini menghasilkan ukuran peta fitur 14x14x6 dan 5x5x16 berturut-turut.
  • Lapisan Terhubung Sepenuhnya: Arsitekturnya mencakup lapisan yang terhubung sepenuhnya berlabel Fx, yang memproses klasifikasi akhir berdasarkan fitur yang diekstraksi. Lapisan yang terhubung sepenuhnya dengan 84 neuron dan lapisan keluaran akhir dengan 10 neuron, menggunakan fungsi aktivasi tanh di lapisan pertama dan Softmax di lapisan kedua. Fungsi Softmax memberikan probabilitas pada setiap kelas, dengan probabilitas tertinggi yang menentukan prediksi.
  • Lapisan Keluaran: LeNet menggunakan unit Radial Basis Function untuk klasifikasi, dengan representasi karakter yang berbeda untuk pengenalan dan koreksi.
"

Alur kerja Langkah Demi Langkah

[Input: 28x28x1] |
[Conv2D: 6 filters, 5x5, tanh] |
[Average Pooling: 2x2, stride 2] |
[Conv2D: 16 filters, 5x5, tanh] |
[Average Pooling: 2x2, stride 2] |
[Flatten] |
[Dense: 120, tanh] |
[Dense: 84, tanh] |
[Dense: 10, softmax (output)]

Lapisan Konvolusional 1:

  • Jumlah filter: 6
  • Ukuran kernel: 5ร—5
  • Fungsi aktivasi: Tanh
  • Bentuk masukan: 28x28x1

Rata-rata Pooling Layer 1:

  • Ukuran kolam: 2ร—2
  • Langkah: 2

Lapisan Konvolusional 2:

  • Jumlah filter: 16
  • Ukuran kernel: 5ร—5
  • Fungsi aktivasi: Tanh

Rata-rata Pooling Layer 2:

  • Ukuran kolam: 2ร—2
  • Langkah: 2

Lapisan Terhubung Sepenuhnya:

  • Lapisan padat dengan 120 unit dan aktivasi Tanh.
  • Lapisan tebal dengan 84 unit dan aktivasi Tanh.
  • Lapisan keluaran dengan 10 unit dan aktivasi Softmax untuk klasifikasi kelas jamak (dataset MNIST).
Lapisan yang terhubung sepenuhnya | LeNet

Fitur Utama LeNet

  1. Arsitektur CNN: LeNet-5 adalah Jaringan Neural Konvolusional perintis yang menampilkan arsitektur terstruktur dengan lapisan konvolusional dan penggabungan.
  2. Pengenalan Pola dalam Digit Tulisan Tangan: Awalnya dikembangkan untuk pengenalan angka tulisan tangan, menunjukkan akurasi tinggi dalam mengidentifikasi dan mengklasifikasikan karakter tulisan tangan.
  3. Lapisan Konvolusional dan Penggabungan: Pengenalan lapisan konvolusional untuk ekstraksi fitur dan penggabungan lapisan untuk downsampling, memungkinkan jaringan mempelajari representasi hierarki secara progresif.
  4. Aktivasi Non-linearitas: Memanfaatkan fungsi aktivasi tangen hiperbolik (tanh), menyediakan jaringan dengan kemampuan non-linier yang penting untuk menangkap hubungan kompleks dalam data.
  5. Pengaruh pada Pembelajaran Mendalam: Keberhasilan LeNet-5 meletakkan dasar bagi model pembelajaran mendalam kontemporer dan secara signifikan memengaruhi pengembangan jaringan saraf untuk pengenalan dan klasifikasi gambar.

Implementasi Praktis LeNet:

Impor Perpustakaan

Mulailah dengan kode untuk mengimplementasikan LeNet-5 di TensorFlow menggunakan Keras API. Ini adalah awal yang baik untuk bekerja dengan kumpulan data MNIST.

import tensorflow as tf
from tensorflow import keras
from keras.datasets import mnist
from keras.layers import Dense, Flatten, Conv2D, AveragePooling2D
from keras.models import Sequential
from tensorflow.keras.utils import plot_model

Muat Kumpulan Data

Muat kumpulan data MNIST untuk gambar pelatihan dan pengujian. Fungsi ini memuat kumpulan data, yang terdiri dari gambar digit tulisan tangan dan labelnya masing-masing. Data dibagi menjadi set pelatihan dan pengujian.

(X_train, y_train), (X_test,y_test) = mnist.load_data()

Keluaran:

"

Membentuk kembali

Fungsi reshape dalam konteks ini adalah menyesuaikan bentuk gambar agar sesuai untuk diproses di CNN. Bentuk (28, 28, 1) menandakan bahwa gambar berukuran 28x28 piksel dan memiliki saluran tunggal (gambar skala abu-abu). Transformasi ini diperlukan karena sebagian besar CNN mengharapkan gambar berada dalam bentuk tertentu, sering kali direpresentasikan sebagai (lebar, tinggi, saluran).

#perfoming reshape
X_train = X_train.reshape(X_train.shape[0],28,28,1)
X_test = X_test.reshape(X_test.shape[0],28,28,1)
# Check the shape of data X_train.shape

Normalisasi

Cuplikan kode yang Anda berikan menormalkan nilai piksel gambar dalam kumpulan data pelatihan dan pengujian. Meramalkan setiap nilai piksel sebesar 255 memastikan bahwa nilai piksel berkisar dari 0 hingga 1.

# Normalization ---> convert 0 to 1
X_train = X_train/255
X_test = X_test/255

Satu Pengkodean Panas

Kelas-kelas pada dataset MNIST diubah menjadi data kategorikal dengan 10 kelas. Setiap label diubah menjadi vektor di mana setiap elemen mewakili kelas, dengan 1 di indeks berhubungan dengan kelas dan 0 di tempat lain.

# One hot encoding
y_train = keras.utils.to_categorical(y_train,10)
y_test = keras.utils.to_categorical(y_test,10)

Pembuatan Model

Cuplikan kode ini menunjukkan pembuatan model LeNet-5 menggunakan Keras Sequential API di TensorFlow. Ini mendefinisikan lapisan dan konfigurasinya dan mengkompilasi model dengan pengoptimal, fungsi kerugian, dan metrik untuk evaluasi.

model = Sequential()
# first layer
model.add(Conv2D(6, kernel_size=(5,5), padding="valid", activation="tanh", input_shape =(28,28,1)))
model.add(AveragePooling2D(pool_size=(2,2),strides=2, padding='valid')) #second layer
model.add(Conv2D(16, kernel_size=(5,5), padding="valid", activation="tanh"))
model.add(AveragePooling2D(pool_size=(2,2),strides=2, padding='valid')) # flatten layer
model.add(Flatten()) # ANN
model.add(Dense(120, activation='tanh'))
model.add(Dense(84, activation='tanh'))
model.add(Dense(10, activation='softmax')) model.summary()

Keluaran:

LeNet

Kompilasi Model

Grafik "menyusunMetode โ€ mempersiapkan model untuk pelatihan dengan menentukan metode pengoptimalan, fungsi kerugian, dan metrik yang akan dipantau.

model.compile(loss= keras.metrics.categorical_crossentropy, optimizer =keras.optimizers.Adam(),
metrics= ['accuracy'])

Pelatihan model: The "cocok โ€ fungsi melatih model menggunakan data pelatihan yang disediakan dan memvalidasinya menggunakan data pengujian.

model.fit(X_train,y_train, batch_size=128,epochs=10 , verbose=1, validation_data=(X_test,y_test))

keluaran:

Keluaran | LeNet

Evaluasi Model

Model "evaluasi()" fungsi digunakan untuk mengevaluasi kinerja model pada kumpulan data pengujian. Hasilnya menunjukkan kerugian pengujian dan akurasi pengujian.

score = model.evaluate(X_test,y_test) print('Test loss', score[0])
print('Test Accuracy', score[1])
evaluasi model | LeNet

Visualisasi:

# Create a bar chart to visualize the comparison
import matplotlib.pyplot as plt
predicted_labels = np.argmax(predictions, axis=1) # Compare predicted labels with true labels
correct_predictions = np.equal(predicted_labels, np.argmax(y_test, axis=1)) plt.figure(figsize=(12, 6))
plt.bar(range(len(y_test)), correct_predictions, color=['green' if c else 'red' for c in correct_predictions])
plt.title('Comparison of Predicted vs. True Labels')
plt.xlabel('Sample Index')
plt.ylabel('Correct Prediction (Green: Correct, Red: Incorrect)')
plt.show()

Keluaran:

Keluaran | LeNet

Dampak dan Signifikansi LeNet

Pengaruh LeNet jauh melampaui tugas awalnya. Keberhasilannya membuka jalan bagi eksplorasi lebih dalam ke jaringan saraf konvolusional (CNN). Desain dan kinerjanya yang efisien dalam tugas pengenalan digit menyiapkan landasan bagi kemajuan dalam berbagai aplikasi visi komputer, termasuk klasifikasi gambar, deteksi objek, dan pengenalan wajah.

Dampak dan pentingnya LeNet
  • Revolusi dalam Pengenalan Karakter Tulisan Tangan: Keberhasilan LeNet-5 dalam mengenali angka dan karakter tulisan tangan membawa transformasi dalam berbagai aplikasi praktis, khususnya dalam mengenali kode pos dan cek. Kemampuannya untuk mengenali karakter secara akurat berkontribusi pada adopsi jaringan saraf secara luas oleh aplikasi ini.
  • Pengaruh pada Arsitektur Masa Depan: Prinsip desain arsitektur LeNet meletakkan dasar bagi banyak model CNN berikutnya. Penggunaan konvolusi, subsampling, dan lapisan yang terhubung sepenuhnya secara inovatif menginspirasi pengembangan arsitektur jaringan saraf yang lebih kompleks dan canggih untuk berbagai tugas berbasis gambar.
  • Mempromosikan Pembelajaran Mendalam: Keberhasilan LeNet-5 menunjukkan potensi jaringan pembelajaran mendalam dalam pengenalan gambar, sehingga menginspirasi penelitian dan pengembangan lebih lanjut di bidang ini. Dampaknya terhadap komunitas riset menyebabkan perubahan paradigma menuju penggunaan jaringan saraf dalam untuk berbagai tugas berbasis visi dan meletakkan dasar bagi kemajuan selanjutnya dalam domain tersebut.

Penerapan LeNet

Dampak LeNet meluas ke berbagai aplikasi dunia nyata. Mulai dari mengenali angka tulisan tangan di layanan pos hingga merevolusi layanan kesehatan dengan membantu analisis citra medis, konsep dasar LeNet telah memengaruhi banyak bidang.

  • Pemrosesan Dokumen: Kemampuan LeNet telah digunakan dalam pemindaian dan analisis dokumen, penguraian dan pemrosesan berbagai jenis informasi, mengekstraksi data dari dokumen, dan mengotomatisasi tugas entri data di berbagai industri.
  • Pengenalan tulisan tangan: Keberhasilan LeNet dalam mengenali karakter dan angka tulisan tangan tetap menjadi hal mendasar dalam sistem Pengenalan Karakter Optik (OCR) yang digunakan dalam memproses teks tulisan tangan di cek bank, layanan pos, dan formulir. Ini berlaku dalam mendigitalkan dokumen sejarah dan mengenali informasi tulisan tangan dalam berbagai format.
  • Otentikasi Biometrik: Kemampuan pengenalan tulisan tangan LeNet telah diterapkan pada analisis tanda tangan dan sidik jari, memungkinkan metode otentikasi biometrik dan meningkatkan sistem keamanan.
  • Analisis Video Waktu Nyata: Konsep dasar LeNet berfungsi sebagai dasar analisis video real-time, seperti pelacakan objek, sistem pengawasan, pengenalan wajah, dan kendaraan otonom.
  • Klasifikasi Gambar: Prinsip LeNet mempengaruhi sistem klasifikasi gambar modern. Aplikasinya mencakup klasifikasi dan kategorisasi objek dalam gambar untuk berbagai domain, seperti mengidentifikasi objek dalam foto, kontrol kualitas di bidang manufaktur, analisis pencitraan medis, dan sistem keamanan untuk identifikasi objek.

Tantangan dan Keterbatasan LeNet

  • Efisiensi Ekstraksi Fitur: Dengan evolusi arsitektur jaringan saraf, model-model baru memiliki cara ekstraksi fitur yang lebih efisien, membuat LeNet relatif kurang efisien dalam mengidentifikasi pola dan fitur yang rumit.
  • Adaptasi Terbatas: Arsitekturnya, yang dirancang untuk tugas tertentu seperti pengenalan karakter tulisan tangan, mungkin tidak dapat langsung ditransfer ke domain lain tanpa modifikasi besar.
  • Skalabilitas: Meskipun merupakan model perintis, LeNet mungkin kurang memiliki skalabilitas untuk beradaptasi dengan pemrosesan data modern dan tuntutan pembelajaran mendalam.
  • Keterlaluan: LeNet mungkin mengalami overfitting saat menangani kumpulan data yang lebih kompleks, sehingga memerlukan teknik regularisasi tambahan untuk mengurangi masalah ini.

Para peneliti telah mengembangkan arsitektur CNN yang lebih kompleks untuk mengatasi keterbatasan ini, menggabungkan teknik-teknik canggih untuk mengatasi tantangan-tantangan ini sekaligus meningkatkan kinerja pada berbagai tugas.

Kesimpulan

LeNet, sebagai jaringan saraf konvolusional awal, merupakan tonggak penting dalam pembelajaran mendalam. Dimulainya oleh Yann LeCun dan tim menandai sebuah terobosan, khususnya dalam pengenalan karakter tulisan tangan dan analisis gambar. LeNet menghadapi tantangan dalam beradaptasi dengan tugas-tugas modern yang kompleks dan kumpulan data yang beragam karena kesederhanaan arsitektur dan potensi overfitting. Warisannya tetap penting, menginspirasi arsitektur yang lebih maju dan memainkan peran penting dalam mengembangkan model pembelajaran mendalam.

Lahirnya LeNet menandai momen penting dalam sejarah pembelajaran mendalam. Keberhasilannya dalam tugas dan prinsip pengenalan gambar telah membuka jalan bagi evolusi jaringan saraf konvolusional modern. Warisan abadinya terus membentuk lanskap visi komputer dan kecerdasan buatan.

Pengambilan Kunci

  • Ini memperkenalkan konsep lapisan konvolusional dan subsampling, yang menetapkan dasar bagi arsitektur pembelajaran mendalam modern.
  • Meskipun LeNet mengalami kemajuan yang signifikan pada masanya, keterbatasannya dalam menangani kumpulan data yang beragam dan kompleks semakin terlihat jelas.
  • Memperkenalkan lapisan konvolusional dan subsampling, merevolusi pembelajaran mendalam.

Tanya Jawab Umum (FAQ)

Q1: Apa itu LeNet?

J: LeNet adalah jaringan saraf konvolusional (CNN) yang dirancang oleh Yann LeCun dan timnya pada tahun 1990an. Ini dikembangkan untuk pengenalan karakter tulisan tangan dan analisis gambar.

Q2: Apa saja penerapan LeNet di dunia saat ini?

J: Aplikasi LeNet adalah pengenalan karakter optik, pengenalan angka dan huruf, dan tugas klasifikasi gambar dalam sistem perawatan kesehatan dan keamanan.

Q3: Mengapa LeNet penting dalam sejarah jaringan saraf?

J: LeNet sangat penting sebagai salah satu aplikasi CNN yang paling awal berhasil. Ini berfungsi sebagai landasan dalam mengembangkan jaringan saraf untuk tugas pengenalan gambar.

Q4: Bagaimana pengaruh LeNet terhadap pengembangan model AI?

J: Keberhasilan LeNet menyebabkan gelombang minat terhadap jaringan saraf, kemajuan selanjutnya dalam visi komputer, dan pembelajaran mendalam. Prinsip desain dan arsitekturnya memengaruhi pengembangan banyak model AI modern.

Q5: Pembelajaran apa yang dapat kita peroleh dari arsitektur LeNet?

J: Arsitektur LeNet memperkenalkan konsep ekstraksi fitur hierarki melalui lapisan konvolusional. Memungkinkan pengenalan pola yang efektif, yang menjadi standar dalam model pembelajaran mendalam modern.

Media yang ditampilkan dalam artikel ini bukan milik Analytics Vidhya dan digunakan atas kebijaksanaan Penulis.

Stempel Waktu:

Lebih dari Analisis Vidhya