• Tidak ada hasil yang ditemukan

Deep Learning - Spada UNS

N/A
N/A
Protected

Academic year: 2023

Membagikan "Deep Learning - Spada UNS"

Copied!
21
0
0

Teks penuh

(1)

RG-Computational Science & Engineering (CSE) (Wiharto, 2021)

Deep Learning

(2)

Outline

Artificial Neural Network Multilayer Perceptron

BackPropagation Algorithm

Deep Introduction (TensorFlow & Keras) Learning Framework

Deep Autoencoder

Convolutional Neural Network (CNN)

(3)

Deep Introduction (TensorFlow &

Keras) Learning Framework

Konsep Backpropagation pada dasarnya untuk melakukan training pada neural network, kita melakukan proses pada diagram dibawah ini secara terus menerus hingga loss atau error yang didapatkan memiliki nilai yang relatif kecil.

Bagaimana mengimplementasikan algoritma tersebut dan membuat sebuah neural network dengan menggunakan semua bahasa pemrograman yang kita bisa.

Bagaimana jika masalah yang akan kita selesaikan itu

adalah permasalahan yang sangat kompleks? Atau mungkin kita membutuhkan arsitektur yang unik dan kompleks? Atau kita ingin menggunakan GPU untuk mempercepat training?

(4)
(5)

 Permasalahan tersebut dapat diatasi dengan menggunakan sebuah framework.

 Sama halnya seperti semua framework, deep learning framework ada untuk memudahkan kita untuk

menyelesaikan masalah menggunakan deep learning.

 Sebenarnya ada banyak sekali framework untuk deep learningbisa dikatakan setiap tech company besar yang ada sekarang memiliki framework masing-masing.

 Google mempunyai TensorFlow, Facebook dengan

Caffe2, Microsoft dengan CNTK dan masih banyak lagi

framework lain seperti Theano dan PyTorch. TensorFlow

(6)

Keras

TensorFlow sudah cukup jelas cara penggunaannya, tapi

kadang dalam riset kita sering sekali untuk mencoba arsitektur lain, mencari optimizer yang paling cepat dan bagus, tweaking hyperparameter.

Menggunakan Keras kita bisa melakukan semua itu dengan relatif lebih cepat dari pada ‘pure’ TensorFlow. Karena jika

dibandingkan dengan Keras, TensorFlow serasa lebih “low level”

meskipun sudah ada tf.layer yang baru.

Jadi Keras ini sebenarnya adalah wrapper dari TensorFlow untuk lebih memudahkan kita

Tidak hanya TensorFlow aja yang disupport, tapi kita bisa mengganti backend yang akan kita gunakan.

Saat ini kita bisa gunakan TensorFlow, Theano dan CNTK sebagai backend dari Keras.

(7)

Contoh

 Latihan ini menggunakan google colab

 Contoh kasus

 Sebelumnya kita akan membuat data dengan menggunakan library numpy.

 Input data nya dari rentang -20 sampai 20 dengan step 0.25.

 Kita juga buat targetnya sesuai dengan persamaan diatas.

 

(8)

Generate_data.py

 # Generate data from -20, -19.75, -19.5, .... , 20

 import numpy as np

 train_x = np.arange(-20, 20, 0.25)

 # Calculate Target : sqrt(2x^2 + 1)

 train_y = np.sqrt((2*train_x**2)+1)

(9)

Setelah data ada, kita bisa mulai membuat model Arsitekturnya.

Model arsitektur yang akan di bangun adalah

1 Input Node

8 node pada Hidden Layer 1 dengan ReLU activation

4 node pada Hidden Layer 2 dengan ReLU activation

1 Output node dengan Linear activation

Tentukan optimizer yang akan digunakan kita gunakan SGD dan Mean Squared Error (MSE) sebagai loss functionnya.

Sebelum kita bisa melakukan training, kita harus meng-”compile” model kita terlebih dahulu.

(10)

Create_network.py

# Create Network

inputs = Input(shape=(1,))

h_layer = Dense(8, activation='relu')(inputs)

h_layer = Dense(4, activation='relu')(h_layer)

outputs = Dense(1, activation='linear')(h_layer)

model = Model(inputs=inputs, outputs=outputs)

# Optimizer / Update Rule

sgd = SGD(lr=0.001)

# Compile the model with Mean Squared Error Loss

model.compile(optimizer=sgd, loss='mse')

(11)

Setelah model siap, kita bisa mulai melakukan training dengan data yang kita sudah buat diawal.

Untuk melakukan training, kita harus memanggil method fit.

Pada method ini ada param batch_size dengan nilai 20 yang artinya kita gunakan mini-batch SGD. Kalau kita mau gunakan Batch SGD kita bisa set batch_size nya sesuai dengan jumlah data kita.

Jumlah iterasi yang dilakukan10000 epochsemua parameter (weights dan bias) disimpan kedalam sebuah file.

Epoch, learning rate, batch_size, dll ini adalah hyperparameter yang bisa kita tentukan.

(12)

Train_network.py

# Train the network and save the weights after training

model.fit(train_x, train_y, batch_size=20, epochs=10000, verbose=1)

model.save_weights('weights.h5')

(13)

 Setelah 10000 epoch  akan mendapatkan MSE sebesar 0.0005 untuk training data.

 Tahapan selanjutnya kita akan lakukan prediksi terhadap angka lain diluar training data yaitu 26 dan akan

membandingkan hasil prediksi seluruh training data dengan target.

 Gunakan matplotlib untuk membuat dua grafik dan melihat perbandingannya.

 Line merah untuk target dan line biru untuk hasil

prediksi.

(14)

Predict_plot.py

# Predict training data

predict = model.predict(np.array([26])) print('f(26) = ', predict)

predict_y = model.predict(train_x)

# Draw target vs prediction plt.plot(train_x, train_y, 'r') plt.plot(train_x, predict_y, 'b') plt.show()

(15)

 Untuk hasil prediksi dari 26, saya dapatkan 36.755

 Jika dihitung seharusnya 36.783.

 Terdapat error tapi tidak terlalu jauh

 Dan grafik prediction vs target untuk semua training

data sangat identik sekali.

(16)
(17)

Deep Autoencoder

(18)

Apa itu Autoencoder?

Autoencoder adalah model neural network yang memiliki input dan output yang sama.

Autoencoder mempelajari data input dan berusaha untuk melakukan rekonstruksi terhadap data input tersebut.

Lalu apa gunanya Autoencoder? Autoencoder biasa digunakan untuk mengurangi dimensi dari features (Dimensionality

Reduction).

Jika kita mempunyai data yang mempunyai dimensi yang sangat tinggi (data dengan jumlah features yang sangat

banyak) bisa jadi tiap features yang ada tersebar pada setiap dimensi dari data sehingga setiap data yang ada terlihat sangat berbeda.

(19)

 Untuk mengatasi masalah tersebut kita membutuhkan data yang sangat banyak atau mengurangi dimensi data tersebut.

 Metode untuk mengurangi dimensi dapat menggunakan :

PCA

t-SNE

LDA

Autoencoder

dll

(20)

 Autoencoder terdiri dari dua bagian utama yaitu encoder dan decoder. Encoder.

 Diantara encoder dan decoder, terdapat code layer atau bisa juga dibilang target layer.

 Jumlah neuron pada code layer adalah jumlah dimensi

yang kita harapkan untuk mengurangi dimensi dari data

kita.

(21)

CNN

 Untuk materi CNN bisa diikuti dalam tutorial berikut :

 https://medium.com/@samuelsena/pengenalan-deep- learning-part-7-convolutional-neural-network-cnn-

b003b477dc94

Referensi

Dokumen terkait

Figure 5 show the block diagram neural network predictive control for deep submergence rescue vehicle (DSRV).. Figure 5- Block Diagram Neural Network Predictive Control

Pada umumnya, deep neural network memiliki lebih dari 3 layers (input layer, N ≥ 2 hidden layers, output layer ), dengan kata lain adalah MLP dengan lebih banyak layer.. Karena

Pada Tugas Akhir ini akan dibuat sistem pengenalan wajah dengan menggunakan Convolutional Neural Network dengan mengaplikasikan library keras untuk memperdalam

Activation function : sigmoid and ReLu #contoh deep learning import keras keras.__version__ #--- menyiapkan data training dan testing from keras.datasets import mnist train_images,

IMPLEMENTASI DEEP LEARNING MENGGUNAKAN METODE CONVOLUTIONAL NEURAL NETWORK DALAM KLASIFIKASI GAMBAR WARNA BOLA PELAMPUNG SKRIPSI Diajukan Untuk Memenuhi Sebagai Persyaratan

Full form DL Deep Learning DCNN Deep Convolutional Neural Network BCE Binary Cross Entropy DNN Deep Neural Network CCE Categorical Cross Entropy PReLU Parametric Rectification SGD

3 System Architecture DeepReduce see Figure 12 in the Appendix resides between the machine learning framework e.g., TensorFlow, PyTorch and the communication library, and is optimized

U Kang 19 Deep Belief Networks  The introduction of deep belief networks DBNs began the current deep learning renaissance  Contain several layers of latent variables  Contain no