Deep Learning menggunakan R

Source: Deep Learning on Medium


Hallo guys, kali ini saya akan membahas mengenai Deep Learning dengan CNN pada R. Pertama-tama mari kita ketahui terlebih dahulu apa sih Deep Learning itu?

Hasil gambar untuk deep learning

Deep Learning (Pembelajaran Dalam) atau sering dikenal dengan istilah Pembelajaran Struktural Mendalam (Deep Structured Learning) atau Pembelajaran Hierarki (Hierarchical learning) adalah salah satu cabang dari ilmu pembelajaran mesin (Machine Learning) yang terdiri algoritma pemodelan abstraksi tingkat tinggi pada data menggunakan sekumpulan fungsi transformasi non-linear yang ditata berlapis-lapis dan mendalam. Teknik dan algoritma dalam Pembelaran dalam dapat digunakan baik untuk kebutuhan pembelajaran terarah (supervised learning), pembelajaran tak terarah (unsupervised learning) dan semi-terarah (semi-supervised learning) dalam berbagai aplikasi seperti pengenalan citra, pengenalan suara, klasifikasi teks, dan sebagainya. Deep Learning disebut sebagai Deep (dalam) karena struktur dan jumlah jaringan saraf pada algoritmanya sangat banyak bisa mencapai hingga ratusan lapisan.

Deep Learning adalah salah satu jenis algoritma jaringan saraf tiruan yang menggunakan metadata sebagai input dan mengolahnya menggunakan sejumlah lapisan tersembunyi (hidden layer) transformasi non linier dari data masukan untuk menghitung nilai output.

Deep Learning dapat dilakukan menggunakan Convolutional Neural Network. Convolutional Neural Network (CNN) sendiri merupakan salah satu jenis neural network yang biasa digunakan pada data image. CNN bisa digunakan untuk mendeteksi dan mengenali object pada sebuah image.

Disini saya akan membuat contoh deep learning dengan Convontional Neural Network menggunakan R. Dimana gambar yang digunakan untuk dilakukan deep learning yaitu 5 gambar buah manggis dan 5 gambar buah rambutan, berikut tampilannya:

langkah-langkah yang dilakukan dalam membuat deep learning yaitu sebagai berikut:

1..Pertama-tama lihat ukuran dari masing-masing gambar dengan cara klik kanan pada gambar yang akan dilihat ukurannya à propertis à details, disini saya akan melihat ukuran dari gambar manggis1 dan manggis2. Berikut hasilnya:

Dapat dilihat bahwa ukuran (size) untuk gambar manggis1 yaitu width 480 pixels dan height yaitu 373 pixels, sedangkan untuk gambar manggis2 ukurannya yaitu width 1000 pixels dan height 802 pixels.

2. Setelah itu buka aplikasi R dan buat sheet baru.

3. Panggil packages yang akan digunakan dalam analisis ini, dimana package yang digunakan yaitu package “keras”, “tensorflow” dan package “EBImage”, jika package tersebut belum pernah di install maka di install terlebih dahulu. Berikut tampilannya:

4. Buat tempat penyimpanan dan tempat working directory dengan menggunakan syntax:

5. Resize gambar-gambar yang ada dengan cara menentukan width dan height baru terlebih dahulu dimana width yang ditentukan yaitu 100 pixels dan height yaitu 100 pixels, kemudian buat syntax untuk resize gambar dengan syntax:

Didapatkan output:

Dapat dilihat bahwa 12 gambar sudah terbaca semua di R, yang artinya semua gambar sudah terbaca.

6. Kemudian lihat hasil pada tempat penyimpanan yang telah di tentukan sebelumnya.

Dapat dilihat pada hasil tersebut, gambar-gambar yang sebelumnya ukurannya beragam sekarang ukurannya sudah sama yaitu 100 x 100 pixels, dimana width yaitu 100 pixels dan height 100 pixels. Sehingga resize gambar yang dilakukan sudah berhasil.

7. Kemudian membuat daftar gambar yang sudah di resize 100 x 100 pixels. Berikut output dan hasilnya:

8. Kemudian melihat struktur dari gambar dengan syntax:

Dapat dilihat struktur dari gambar semua sama, yaitu ukurannya 100 x 100 pixels dengan channel nya yaitu 3, channel 3 ini karena gambar tersebut berwarna, dimana gambar berwarna channelnya yaitu 3.

9. Kemudian melihat salah satu gambar yang telah di resize dengan syntax:

display(gambar2[[4]])

didapatkan output:

Output tersbeut adalah output gambar ke-4 yang telah di resize ukurannya menjadi 100 x 100 pixels.

10. Kemudian membuat data train dan data testing dan kemudian memanggil data training no 4 dengan syntax:

Didapatkan output:

Dapat dilihat dimensi dari gambar pada data training nomor 4 yaitu 100 x 100 pixels dengan channel 3. Dengan Color Mode yaitu Color, dengan dataya dapat dilihat terdapat 1 sampai 6 kolom dan 1 sampai 5 baris, dimana sebenarnya terdapat 100 kolom dan 100 baris tetapi hanya diperlihatkan sebanyak 6 kolom 5 baris.

11. Untuk melihat secara detail dimensi dari data train yang ada maka dilakukan ekspor data ke excel dengan syntax:

Didapatkan hasil yaitu:

Kemudian menyajikan gambar pada data train secara terurut dengan syntax:

par(mfrow=c(2,3))
for (i in 1:6) plot(train[[i]])

Sehingga didapatkan output:

Dapat dilihat pada gambar di atas terdapat 6 gambar pada data training, dimana 3 gambar buah manggis dan 3 gambar buah rambutan.

12. Kemudian membuat pengukuran ulang atau data gambar di resize menjadi 32 x 32 pixels karena gambar tersebut akan membuat proses pengenalan gambar menjadi lebih cepat.

for (i in 1:6){train[[i]]<-resize(train[[i]],32,32)}
for (i in 1:4){test[[i]]<-resize(test[[i]],32,32)}

13. kombinasikan semua data training dengan syntax:

didapatkan output:

14. Melihat dimensi dari data training tersebut dengan syntax:

dim(train)

didapatkan output:

Didapatkan dimensi dari data train yaitu 32 x 32 pixels dengan channel sebanyak 3 dan banyak gambar pada data train yaitu 6 gambar.

15. Lakukan hal sama untuk data testing, berikut syntaxnya:

test<-combine(test)
y<-tile(test,4)
dim(test)
dim(train)

didapatkan hasil:

16. Kemudian menyusun dimensi data training dan testing sesuai dengan Concolutional Neural Network yang dibawa oleh Keras dan Tensorflow.

17. Membuat target (Y) atau klasifikasinya dengan syntax:

18. Kemudian membuat label dari data train dan data testing dengan syntax:


Seperti itulah contoh pembuatan deep learning dengan CNN pada R yang dilakukan.

Sekian dari saya, semoga bermanfaat dan jangan lupa like-nya yahhhh :D

Terima Kasih.