Dunia Pembelajaran Mesin yang Menarik – Menuju AI

Mengotomatiskan Klasifikasi Zero-Shot Menghasilkan Label Model dengan GPT-3 – Menuju AI

Author(s): Surya Maddula

Awalnya diterbitkan di Menuju AI.

Gambar yang digunakan dalam artikel saya adalah Properti dari Organisasi Masing-Masing dan digunakan di sini hanya untuk Tujuan Referensi, Ilustrasi, dan Pendidikan.[SumberGambar:Google(Selainbeberapagambaryangsumbernyadisebutkansecaraeksplisitdibawahgambar)[ImagesSource:Google(Asidefromsomeimagesinwhosecasethesourceismentionedexplicitlybelowtheimage)

Perkenalan

Apa itu Pengenalan Digit Tulisan Tangan?

Pengenalan Digit Tulisan Tangan cukup jelas, terutama dengan namanya; itu adalah proses mengklasifikasikan digit tulisan tangan ke dalam nilai numerik masing-masing. Pada dasarnya, jika ada input angka tulisan tangan, kita dapat mengubahnya menjadi nomor keyboard masing-masing.

Digit Tulisan Tangan

Masalah ini adalah contoh sederhana dari pengenalan pola dan digunakan secara luas dalam Pemrosesan Gambar dan Pembelajaran Mesin.

Pada artikel ini, kita akan mengeksplorasi konsep Pengenalan Digit Tulisan Tangan secara detail, mulai dari dasar matematika hingga penerapannya menggunakan kode hingga keakuratannya.

Matematika Dibalik Pengenalan Digit Tulisan Tangan

Matematika di balik Pengenalan Digit Tulisan Tangan melibatkan beberapa prosedur, yaitu –

Mari jelajahi setiap poin secara mendetail —

Pengolahan citra

Langkah pertama dalam Pengenalan Digit Tulisan Tangan adalah mendapatkan gambar digit tulisan tangan.

Gambar ini adalah array 2D dari nilai piksel. Setiap piksel mewakili sebagian kecil dari gambar. Teknik pemrosesan gambar meningkatkan kualitas gambar agar sesuai untuk diproses lebih lanjut. Beberapa teknik tersebut antara lain smoothing, edge detection, dan thresholding.

Smoothing melibatkan pengurangan noise pada gambar. Ini dapat dilakukan dengan menggunakan filter yang merata-ratakan nilai piksel dalam radius kecil di sekitar setiap piksel.

Menggunakan Deteksi Tepi, kita dapat mengidentifikasi tepi pada gambar. Ini dapat dilakukan dengan menggunakan teknik seperti Sobel Operator, yang menghitung gradien gambar.

Thresholding adalah Teknik Pemrosesan Gambar lain yang membagi gambar menjadi beberapa wilayah berdasarkan nilai piksel.

Mis: kita dapat menerapkan nilai ambang sedemikian rupa sehingga semua piksel dengan nilai di atas ambang diklasifikasikan sebagai piksel latar depan (milik digit). Sebaliknya, semua piksel dengan nilai di bawah ambang batas diklasifikasikan sebagai piksel latar belakang (bukan milik digit). Itulah beberapa kasus penggunaan.

Ekstraksi Fitur

Ekstraksi Fitur pada dasarnya mengekstraksi informasi yang relevan dari gambar yang telah diproses sebelumnya yang dapat digunakan untuk klasifikasi. Ini dapat mencakup berbagai aspek dan fitur digit, seperti bentuk, ukuran, dan orientasi.

Fitur Global adalah fitur yang menggambarkan keseluruhan karakteristik digit, seperti ukurannya, rasio aspek, dan lokasi pusat massa. Di sisi lain, fitur lokal menggambarkan karakteristik regional dari angka tersebut, seperti jumlah loop, sudut, dan titik akhir pada angka tersebut. Terakhir, fitur tekstur menggambarkan tekstur digit, seperti adanya pola, tonjolan, dan garis.

Teknik Ekstraksi Fitur juga termasuk menggunakan operasi matematika seperti Transformasi Fourier dan Analisis Komponen Utama (PCA), yang mengubah gambar menjadi sekumpulan fitur numerik yang dapat kita gunakan untuk klasifikasi.

Klasifikasi

Dalam Klasifikasi, kami menggunakan Algoritma ML untuk mengklasifikasikan digit berdasarkan fitur-fiturnya. Algoritme dapat dilatih pada kumpulan data gambar digit berlabel, yang memungkinkannya belajar mengenali pola pada gambar.

Artificial Neural Networks (ANNs) adalah model pembelajaran mesin yang dapat digunakan untuk HDR. JST terdiri dari lapisan node yang saling berhubungan, yang memproses dan mengirimkan informasi. JST dapat dilatih untuk mengenali pola dalam fitur numerik yang diekstraksi dari gambar digit.

Support Vector Machines (SVM) adalah model ML lain yang dapat digunakan untuk HDR. SVM dapat dilatih untuk memisahkan gambar digit ke dalam kelas numerik masing-masing berdasarkan fiturnya.

Dan Pohon Keputusan adalah jenis model pembelajaran mesin yang menggunakan model keputusan seperti pohon dan kemungkinan konsekuensinya untuk memprediksi label kelas.

Teknik Pra-Pemrosesan untuk Pengenalan Digit Tulisan Tangan

Pra-pemrosesan adalah langkah pertama dalam Pengenalan Digit Tulisan Tangan, yang meningkatkan kualitas gambar dan membuatnya cocok untuk diproses lebih lanjut. Berikut adalah beberapa teknik pra-pemrosesan.

Pengurangan kebisingan

Sembari mengurangi noise, kami menghapus variasi nilai piksel acak yang disebabkan oleh pencahayaan, noise pemindai, atau tekanan pena. Kita dapat menggunakan teknik seperti median filtering, Gaussian filtering, dan wavelet de-noising untuk menghilangkan noise.

Peningkatan Kontras

Peningkatan Kontras melibatkan peningkatan kontras gambar untuk meningkatkan visibilitas digit. Kita dapat menggunakan teknik seperti pemerataan histogram, pemerataan histogram adaptif, dan peregangan kontras untuk meningkatkan kontras.

Normalisasi Gambar

Normalisasi gambar melibatkan standarisasi ukuran dan orientasi gambar untuk mengurangi variabilitas dalam gambar digit. Ini bisa termasuk menskalakan, memutar, atau menerjemahkan gambar untuk membuatnya seragam.

Contoh kecil Kumpulan Data MNIST — Kumpulan 70.000+ gambar Digit Tulisan Tangan!

Kumpulan Data Institut Nasional Standar dan Teknologi (MNIST) yang Dimodifikasi.

Apa itu Kumpulan Data MNIST?

Kumpulan Data MNIST adalah kumpulan data pembanding yang banyak digunakan dalam Pengenalan Digit Tulisan Tangan. Ini terdiri dari koleksi 70.000+ gambar digit tulisan tangan yang diberi label dengan nilai numerik yang sesuai. Dataset dibagi menjadi 60.000 citra latih dan 10.000 citra uji.

Itu dibuat pada tahun 1998 oleh Yann LeCun, Corinna Cortes, dan Christopher JC Burges dan sejak itu menjadi tolok ukur standar untuk mengevaluasi algoritme HDR. Ini banyak digunakan dalam penelitian dan industri, yang mengarah ke banyak kemajuan dalam Pengenalan Pola dan Pembelajaran Mesin.

Ini adalah sekumpulan gambar, dengan setiap gambar memiliki lebar 28 piksel dan tinggi 28 piksel. Gambar dipusatkan dalam bingkai ukuran tetap dan dinormalisasi untuk memiliki rata-rata nol dan varian satuan. Nilai piksel berkisar dari 0 (hitam) hingga 255 (putih) dan direpresentasikan sebagai bilangan bulat.

Seperti halnya kumpulan data apa pun, kumpulan data ini juga dibagi menjadi dua bagian: kumpulan pelatihan dan kumpulan pengujian. Set pelatihan terdiri dari 60.000 gambar, sedangkan set tes terdiri dari 10.000 gambar. Digit dalam set pengujian berasal dari penulis yang berbeda dari yang ada di set pelatihan, yang memastikan bahwa algoritme diuji pada data yang tidak terlihat.

Implementasi Pengenalan Digit Tulisan Tangan

(Saya menggunakan notebook jupyter sebagai taman bermain saya)

Sekarang setelah kita memahami beberapa dasar tentang mengenali angka tulisan tangan, mari terapkan. Kami akan menggunakan Python dan pustaka scikit-learn ML.

Pertama, Mari impor pustaka yang diperlukan untuk ini —

Sekarang, kami akan memuat dataset MNIST —

Kemudian, kami akan mengekstrak fitur & label spesifik dari MNIST —

Kami membagi set data menjadi set data pelatihan & pengujian sekarang —

Sekarang, buat instance kelas MLPClassifier, yang merupakan implementasi dari JST.

Kemudian kami melatih model —

Dan terakhir, kami mengevaluasi model berdasarkan data pengujiannya —

Dan Keluaran —

(Saya memasukkan semua kode di atas ke dalam satu terminal untuk yang ini)

Dalam cuplikan kode, jumlah iterasi maksimum ditentukan oleh parameter max_iter saat membuat instance MLPClassifier. Karena nilainya 10 untuk max_iter, kami mendapat 10 iterasi, seperti yang ditunjukkan di atas. Ini berarti bahwa pengklasifikasi MLP mampu menyatukan solusi dalam jumlah maksimum iterasi yang diperbolehkan, yaitu 10 dalam kasus ini.

Kami mendapat Akurasi di sini sebagai 0,97. Apa itu?

Apa yang dimaksud dengan Akurasi: 0,97014?

Artinya, model mencapai akurasi sebesar 97%, yang mengacu pada skor akurasi yang diperoleh classifier MLP pada data pengujian. Ini berarti bahwa model tersebut mampu memprediksi dengan benar nilai numerik sebesar 97% dari citra pengujian.

Akurasi mengukur seberapa baik model dapat memprediksi dengan benar nilai numerik dari gambar pengujian. Ini dihitung sebagai rasio instans yang diklasifikasikan dengan benar terhadap total sampel dalam set pengujian. Dalam hal ini, skor akurasi 97% berarti bahwa model dapat secara akurat memprediksi nilai numerik 97% dari citra pengujian.

Tingkat akurasi ini umumnya sangat baik untuk Pengenalan Digit Tulisan Tangan. Ini menunjukkan bahwa model dapat secara efektif mempelajari pola dan fitur input angka tulisan tangan dan membuat prediksi yang akurat, sehingga mencapai 97%.

Kesimpulan

Pada artikel ini, kami mempelajari Pengenalan Digit Tulisan Tangan, proses mengidentifikasi nilai numerik dari digit tulisan tangan. Kami mulai dengan mendefinisikan masalah dan penerapannya dalam pemrosesan gambar dan pembelajaran mesin. Kami kemudian menjelajahi dasar matematika dari Pengenalan Digit Tulisan Tangan, yang melibatkan penggunaan algoritme dan model statistik untuk mengidentifikasi pola dan fitur dalam data numerik.

Kami membahas dua tahap utama dari proses Pengenalan Digit Tulisan Tangan: preprocessing dan klasifikasi. Preprocessing melibatkan transformasi gambar mentah dari digit tulisan tangan menjadi satu set fitur numerik yang dapat digunakan untuk klasifikasi. Ini dilakukan dengan menggunakan normalisasi gambar. Klasifikasi melibatkan penggunaan model matematika atau algoritma untuk menentukan nilai numerik dari digit berdasarkan fitur yang diekstraksi.

Kami kemudian menjelaskan bagaimana Pengenalan Digit Tulisan Tangan dapat diimplementasikan menggunakan kode. Secara khusus, kami menggunakan Python dan perpustakaan scikit-learn ML untuk memuat dan memproses dataset MNIST dari gambar digit tulisan tangan. Selanjutnya, kami membagi dataset menjadi set pelatihan dan pengujian, lalu melatih pengklasifikasi MLP pada data pelatihan. Terakhir, kami mengevaluasi performa model pada data pengujian dan mendapatkan akurasi sebesar 97%, yang berarti bahwa Model dapat memprediksi dengan benar nilai numerik sebesar 97% dari citra pengujian.

Catatan —

Saya menggunakan Notebook Jupyter sebagai taman bermain saya di sini, tetapi jangan ragu untuk menggunakan taman bermain lain yang Anda sukai juga.

Saya juga melampirkan penjelasan video saya untuk proyek yang sama, jadi periksalah jika Anda ingin deskripsi verbal langkah demi langkah yang mendetail!

Itu saja untuk kali ini; terima kasih telah Membaca dan Selamat Belajar!

Diterbitkan melalui Menuju AI

Author: Scott Anderson