Anda di halaman 1dari 45

Machine Translated by Google

24 – Neural Konvolusional
Jaringan
IF4073 Interpretasi dan Pengolahan Citra

Oleh: Rinaldi Munir

Program Studi Teknik Informatika


Sekolah Teknik Elektro dan Informatika
Institut Teknologi Bandung
1
2022
Machine Translated by Google

Referensi
• Sebagian besar materi di dalam PPT ini diambil dari tugas matematika, antara lain:
a ) https://www.mathworks.com/help/deeplearning/ug/deep-learning-in-
matlab.html
b) https://www.mathworks.com/discovery/convolutional-neural-network-
matlab.html

• Beberapa slide juga diambil dari materi kuliah deep learning tentang CNN

2
Machine Translated by Google

Pembelajaran Mendalam
• Pembelajaran mendalam (deep learning) adalah jenis pembelajaran mesin
(machine learning) yang dalam hal ini model belajar untuk melakukan tugas
klasifikasi langsung dari gambar, teks, atau suara.

• Pembelajaran mendalam biasanya diimplementasikan menggunakan arsitektur


jaringan saraf.

• Istilah “deep” (dalam) mengacu pada jumlah lapisan di dalam jaringan—semakin


banyak lapisan, semakin dalam jaringan. Jaringan saraf tradisional hanya berisi
2 atau 3 lapisan, sedangkan jaringan dalam dapat memiliki ratusan lapisan.
(Sumber: Pekerjaan Matematika)

3
Machine Translated by Google

Jaringan Syaraf Tiruan (Jaringan Syaraf Tiruan)

4
Machine Translated by Google

Visi Komputer
• Salah satu kegunaan pembelajaran mendalam adalah di dalam
computer vision
Klasifikasi Gambar Transfer Gaya Neural

Kucing? (0/1)

64x64

Deteksi objek

Sumber: Bahan kuliah Deep Learning 5


Machine Translated by Google

Apa yang Membuat Pembelajaran Mendalam


Cocok untuk Computer Vision?
1. Kemudahan akses ke kumpulan besar data yang berlabel

Kumpulan data seperti ImageNet, COCO, PASCAL VoC tersedia secara gratis,
dan berguna untuk melatih berbagai jenis objek.

6
Machine Translated by Google

2. Peningkatan daya komputasi

GPU berkinerja tinggi (komputasi berkinerja tinggi) mempercepat pelatihan sejumlah


besar data yang diperlukan untuk pembelajaran mendalam, mengurangi waktu
pelatihan dari berminggu-minggu menjadi berjam-jam.

7
Machine Translated by Google

3. Model pelatihan (pretrained) yang dibangun oleh para ahli

Model seperti AlexNet dapat dibor ulang untuk melakukan tugas pengenalan baru
menggunakan teknik yang disebut pembelajaran transfer (transfer learning).
Sementara AlexNet dibor pada 1,3 juta gambar beresolusi tinggi untuk mengenali
1000 objek berbeda, pembelajaran transfer yang akurat dapat dicapai dengan jauh
lebih cepat.

8
Machine Translated by Google

Jaringan Syaraf Dalam


• Deep neural network (DNN) adalah jaringan syaraf tiruan (ANN) dengan banyak
lapisan (layer) di antara lapisan masukan dan lapisan luaran.

• Lapisan-lapisan tersebut saling


berhubungan melalui node, atau
neuron, dengan setiap lapisan
tersembunyi menggunakan keluaran
dari lapisan sebelumnya sebagai
masukannya.

• Lapisan-lapisan itu merupakan pengiriman non-linier, bekerja secara paralel


dan terinspirasi oleh sistem saraf biologi.
9
Machine Translated by Google

Misalkan kita memiliki satu set gambar di mana


setiap gambar berisi satu dari empat kategori objek
yang berbeda, dan kita ingin jaringan pembelajaran
Bagaimana DNN Belajar? mendalam mengenali secara otomatis objek mana
yang ada di setiap gambar.

Kita memberi label pada gambar agar memiliki data


pelatihan untuk jaringan.

Dengan menggunakan data pelatihan ini, jaringan


kemudian dapat mulai memahami fitur spesifik
objek dan spesifiknya dengan kategori yang
sesuai.

Setiap lapisan dalam jaringan mengambil data dari


lapisan sebelumnya, mengubahnya, dan
meneruskannya. Jaringan meningkatkan
kompleksitas dan detail dari apa yang dipelajari dari
lapisan ke lapisan.

Perhatikan bahwa jaringan belajar langsung dari


data—kita tidak terlibat memilih fitur apa yang
10
sedang dipelajari.
Machine Translated by Google

Jaringan Neural Konvolusional

• Convolutional Neural Network (CNN atau ConvNet) adalah algoritma


pembelajaran mendalam yang populer, umumnya digunakan untuk menganalisis
citra seperti pengenalan objek, klasifikasi objek, dll.

Sumber gambar: https://developersbreach.com/convolution-neural-network-deep-learning/


Machine Translated by Google

• CNN merupakan arsitektur jaringan untuk pembelajaran mendalam yang dipelajari


langsung dari data, dengan menghilangkan kebutuhan untuk melakukan ekstraksi fitur
secara manual
Machine Translated by Google

• CNN dapat disebut juga jaringan syaraf tiruan yang melibatkan konvolusi
(CNN = ANN + konvolusi)

13
Machine Translated by Google

Sumber gambar: https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neural-


networks-the-eli5-way-3bd2b1164a53
Machine Translated by Google

• CNN terdiri dari 3 lapisan utama:

1. Lapisan Konvolusional (+ReLU)¸ 2.

Lapisan Penggabungan

3. Lapisan Terhubung Sepenuhnya.

Perlengkapan latihan

Lilitan Penggabungan

Lapisan Terhubung sepenuhnya


Lapisan (KONV)
(KOLAM) Lapisan (FC)
Sumber gambar: Bahan kuliah Deep Learning
Machine Translated by Google

Lapisan Konvolusional

• Melakukan operasi konvolusi pada masukan citra dengan sejumlah penapis. tiap
penapis menghasilkan luaran yang disebut feature map

16
Machine Translated by Google

Konvolusi pada setiap saluran warna dalam citra RGB:


Machine Translated by Google

Sumber gambar: Bahan kuliah Deep Learning


Machine Translated by Google

tepi vertikal

tepi horizontal
Sumber gambar: Bahan kuliah Deep Learning
19
Machine Translated by Google

Unit Linier Disearahkan (ReLU)


• ReLU adalah lapisan tambahan yang memungkinkan pelatihan yang lebih cepat
dan efektif dengan penandaan nilai negatif ke nol dan mempertahankan nilai positif.

• Pada dasarnya ReLU adalah operasi per-piksel dengan cara mengganti nilai piksel
negatif di dalam feature map menjadi nol.

20
Machine Translated by Google

Lapisan Penggabungan

• Mirip dengan Convolutional Layer, Pooling layer bertanggung jawab untuk


mengurangi ukuran spasial dari matriks fitur hasil konvolusi.

• Hal ini berguna untuk mengurangi daya komputasi yang diperlukan untuk
memproses data melalui pengurangan dimensi

• Ada dua jenis pooling: Max Pooling dan Average Pooling.


1) Max Pooling mengembalikan nilai maksimum dari bagian gambar yang
dicakup oleh kernel.
2) Rata-rata Pooling mengembalikan rata-rata semua nilai dari bagian gambar
yang dicakup oleh Kernel.
Machine Translated by Google

Sumber gambar: https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neural-


networks-the-eli5-way-3bd2b1164a53
Machine Translated by Google

Lapisan Terhubung Sepenuhnya

• Setelah deteksi fitur, arsitektur CNN


beralih ke klasifikasi.

• Lapisan terakhir di dalam CNN adalah


lapisan yang sepenuhnya
terhubung (FC) yang menghasilkan vektor
dimensi K, dalam hal ini K adalah
jumlah kelas yang dapat diprediksi oleh
jaringan. Vektor ini berisi probabilitas
untuk setiap kelas dari setiap
gambar yang diklasifikasikan.

• Lapisan terakhir dari arsitektur CNN


menggunakan fungsi softmax untuk
menyediakan luaran klasifikasi .
23
Machine Translated by Google

Klasifikasi - Lapisan Terhubung Sepenuhnya


Machine Translated by Google

Sumber gambar: Bahan kuliah Deep Learning 25


Machine Translated by Google

Beberapa arsitektur CNN:


1.LeNet
2. AlexNet
3.VGGNet
4. GoogleLeNet
5. Jaringan Ulang

6. ZFNet
7.dll
Machine Translated by Google

Sumber gambar: Bahan kuliah Deep Learning


Machine Translated by Google

Sumber gambar: Bahan kuliah Deep Learning


Machine Translated by Google

Sumber gambar: Bahan kuliah Deep Learning


Machine Translated by Google

Sumber gambar: Bahan kuliah Deep Learning


Machine Translated by Google

Contoh program CNN menggunakan Matlab


A. Tujuan: Mengklasifikasi angka-angka (0-9) berupa citra tulisan tangan

1. Muat dan Jelajahi Data Gambar

Sumber: Matematika 31
Machine Translated by Google

32
Machine Translated by Google

33
Machine Translated by Google

2. Tentukan Set Pelatihan dan Validasi

34
Machine Translated by Google

3. Mendefinisikan Arsitektur Jaringan

35
Machine Translated by Google

Lapisan Input Gambar imageInputLayer adalah tempat Anda menentukan ukuran gambar, yang dalam hal ini adalah 28-kali- 28-
oleh-1. Angka-angka ini sesuai dengan tinggi, lebar, dan ukuran saluran. Data digit terdiri dari gambar skala abu-abu,
sehingga ukuran saluran (saluran warna) adalah 1. Untuk gambar berwarna, ukuran saluran adalah 3, sesuai
dengan nilai RGB. Anda tidak perlu mengacak data karena trainNetwork, secara default, mengacak data di awal
pelatihan. trainNetwork juga dapat mengacak data secara otomatis di awal setiap periode selama pelatihan.

Lapisan Konvolusional Pada lapisan konvolusional, argumen pertama adalah filterSize, yang merupakan tinggi dan
lebar filter yang digunakan fungsi pelatihan saat memindai sepanjang gambar. Dalam contoh ini, angka 3 menunjukkan
bahwa ukuran filter adalah 3-kali-3. Anda dapat menentukan ukuran berbeda untuk tinggi dan lebar filter.
Argumen kedua adalah jumlah filter, numFilters, yang merupakan jumlah neuron yang terhubung ke wilayah masukan
yang sama. Parameter ini menentukan jumlah peta fitur. Gunakan pasangan nama-nilai 'Padding' untuk menambahkan
padding ke peta fitur masukan. Untuk lapisan konvolusional dengan langkah default 1, padding 'sama' memastikan
bahwa ukuran keluaran spasial sama dengan ukuran masukan. Anda juga dapat menentukan langkah dan kecepatan
pembelajaran untuk lapisan ini menggunakan argumen pasangan nama-nilai dari convolution2dLayer.

Lapisan Normalisasi Batch Lapisan normalisasi batch menormalkan aktivasi dan gradien yang menyebar melalui
jaringan, membuat pelatihan jaringan menjadi masalah pengoptimalan yang lebih mudah. Gunakan lapisan
normalisasi batch antara lapisan konvolusional dan nonlinier, seperti lapisan ULT, untuk mempercepat pelatihan
jaringan dan mengurangi sensitivitas terhadap inisialisasi jaringan. Gunakan batchNormalizationLayer untuk
36
membuat lapisan normalisasi batch.
Machine Translated by Google

Lapisan ReLU Lapisan normalisasi batch diikuti oleh fungsi aktivasi nonlinier. Fungsi aktivasi yang paling umum
adalah unit linier yang diperbaiki (ReLU). Gunakan reluLayer untuk membuat lapisan ReLU.

Max Pooling Layer Lapisan konvolusional (dengan fungsi aktivasi) terkadang diikuti dengan operasi pengambilan
sampel bawah yang mengurangi ukuran spasial peta fitur dan menghilangkan informasi spasial yang berlebihan.
Pengambilan sampel bawah memungkinkan peningkatan jumlah filter di lapisan konvolusional yang lebih dalam tanpa
meningkatkan jumlah komputasi yang diperlukan per lapisan. Salah satu cara down-sampling adalah menggunakan
max pooling, yang Anda buat menggunakan maxPooling2dLayer. Lapisan pengumpulan maksimal mengembalikan nilai
maksimum wilayah masukan berbentuk persegi panjang, yang ditentukan oleh argumen pertama, poolSize. Pada
contoh ini, luas daerah persegi panjang adalah [2,2]. Argumen pasangan nama-nilai 'Stride' menentukan ukuran
langkah yang diambil fungsi pelatihan saat memindai sepanjang input.

Lapisan Terhubung Sepenuhnya Lapisan konvolusional dan pengambilan sampel bawah diikuti oleh satu atau lebih
lapisan yang terhubung sepenuhnya. Seperti namanya, lapisan terhubung penuh adalah lapisan di mana neuron-
neuron terhubung ke semua neuron di lapisan sebelumnya. Lapisan ini menggabungkan semua fitur yang dipelajari oleh
lapisan sebelumnya di seluruh gambar untuk mengidentifikasi pola yang lebih besar. Lapisan terakhir yang
terhubung sepenuhnya menggabungkan fitur untuk mengklasifikasikan gambar. Oleh karena itu, parameter OutputSize
di lapisan terakhir yang terhubung sepenuhnya sama dengan jumlah kelas dalam data target. Dalam contoh ini, ukuran
keluarannya adalah 10, sesuai dengan 10 kelas. Gunakan fullConnectedLayer untuk membuat lapisan yang terhubung sepenuhnya.
37
Machine Translated by Google

Lapisan Softmax Fungsi aktivasi softmax menormalkan output dari lapisan yang terhubung sepenuhnya.
Output dari lapisan softmax terdiri dari bilangan positif yang berjumlah satu, yang kemudian dapat digunakan
sebagai probabilitas klasifikasi oleh lapisan klasifikasi. Buat lapisan softmax menggunakan fungsi
softmaxLayer setelah lapisan terakhir yang terhubung sepenuhnya.

Lapisan Klasifikasi Lapisan terakhir adalah lapisan klasifikasi. Lapisan ini menggunakan probabilitas yang
dikembalikan oleh fungsi aktivasi softmax untuk setiap masukan untuk menetapkan masukan ke salah satu kelas yang
saling eksklusif dan menghitung kerugiannya. Untuk membuat lapisan klasifikasi, gunakan classificationLayer.

38
Machine Translated by Google

4. Tentukan Opsi Pelatihan

Setelah menentukan struktur jaringan, tentukan opsi pelatihan. Melatih jaringan menggunakan penurunan
gradien stokastik dengan momentum (SGDM) dengan kecepatan pemelajaran awal 0,01. Tetapkan jumlah
maksimum epoch menjadi 4. Epoch adalah siklus pelatihan penuh pada seluruh kumpulan data pelatihan.
Pantau keakuratan jaringan selama pelatihan dengan menentukan data validasi dan frekuensi validasi.
Acak data setiap periode. Perangkat lunak ini melatih jaringan pada data pelatihan dan menghitung keakuratan
data validasi secara berkala selama pelatihan. Data validasi tidak digunakan untuk memperbarui bobot jaringan.
Aktifkan plot kemajuan pelatihan, dan matikan output jendela perintah.

39
Machine Translated by Google

5. Melatih Jaringan Menggunakan Data Pelatihan

Latih jaringan menggunakan arsitektur yang ditentukan oleh lapisan, data pelatihan, dan opsi pelatihan.
Secara default, trainNetwork menggunakan GPU jika tersedia, jika tidak, ia akan menggunakan CPU.
Pelatihan GPU memerlukan Parallel Computing Toolbox™ dan perangkat GPU yang didukung. Untuk
informasi tentang perangkat yang didukung, lihat Persyaratan Komputasi GPU (Kotak Peralatan Komputasi
Paralel). Anda juga dapat menentukan lingkungan eksekusi dengan menggunakan argumen pasangan nama-
nilai 'ExecutionEnvironment' dari trainingOptions.

Plot kemajuan pelatihan menunjukkan kehilangan dan akurasi mini-batch serta kehilangan dan akurasi
validasi. Untuk informasi selengkapnya tentang plot kemajuan pelatihan, lihat Memantau Kemajuan
Pelatihan Pembelajaran Mendalam. Kerugiannya adalah kerugian lintas entropi. Akurasi adalah persentase
gambar yang diklasifikasikan oleh jaringan dengan benar.

40
Machine Translated by Google

41
Machine Translated by Google

6. Mengklasifikasikan Gambar Validasi dan Menghitung Akurasi

Prediksi label data validasi menggunakan jaringan terlatih, dan hitung akurasi validasi akhir. Akurasi
adalah sebagian kecil dari label yang diprediksi oleh jaringan dengan benar. Dalam kasus ini, lebih
dari 99% label yang diprediksi cocok dengan label sebenarnya dari kumpulan validasi.

42
Machine Translated by Google

B. Menggunakan jaringan yang ada, seperti GoogLeNet, CNN yang dilatih pada lebih dari satu juta gambar.
GoogLeNet paling umum digunakan untuk klasifikasi gambar. Ia dapat mengklasifikasikan gambar ke dalam 1000
kategori berbeda, termasuk keyboard, mouse komputer, pensil, dan peralatan kantor lainnya, serta berbagai ras
anjing, kucing, kuda, dan hewan lainnya.

43
Machine Translated by Google

44
Machine Translated by Google

45

Anda mungkin juga menyukai