Deep Learning dengan Keras Cheat Sheet

By | November 17, 2021
Print Friendly, PDF & Email
1,660 Views

Keras adalah library deep learning yang andal dan mudah digunakan untuk TensorFlow yang menyediakan API jaringan saraf tingkat tinggi untuk mengembangkan dan mengevaluasi model deep learning. Pembahasa mengenai cara install tensorflow dan keras ada diwebsite ini, kalian search saja dengan kedua keyword tersebut. Secara sekilas Keras merupakan API yang memanggil function pada Tensorflow agar mudah digunakan oleh kebanyakan orang. Library deep learning yang saat ini lagi trend ada 2 saja yaitu tensorflow yang dikembangkan oleh google dan pytorch yang dikembangkan oleh facebook.

Postingan ini, kalian akan mempelajari cara mengoptimalkan Keras untuk membuat berbagai model deep machine learning secara cepat, saya sering merekomendasikan untuk menggunakan tensorflow 2.0 ya. Cara install bisa kalian pelajari melalui website ini.  Deep Learning dengan Keras Cheat Sheet akan dibahas 9 langkah secara umum mulai dari basic sampai save/reload model. Nanti kita akan banyak menggunakan NumPy sebagai library arraynya dan beberapa library sklearn.  Yuk langsung saja simak Deep Learning dengan Keras Cheat Sheet dibawah ini

Basic

Kode di bawah ini menunjukkan langkah-langkah dasar menggunakan Keras untuk membuat dan menjalankan model deep learning pada sekumpulan data. Langkah-langkah dalam kode meliputi: load data, pra-pemrosesan data, membuat model, menambahkan lapisan ke model, menyesuaikan model pada data, menggunakan model terlatih untuk membuat prediksi pada set pengujian, dan terakhir mengevaluasi kinerja dari model. Berikut kode snipet yang kalian akan temui secara umum.

>>> import numpy as np
>>> from keras.models import Sequential
>>> from keras.layers import Dense
>>> from keras.datasets import boston_housing

>>> (x_train, y_train),(x_test, y_test) = boston_housing.load_data()

>>> model = Sequential()
>>> model.add(Dense(12,activation='relu',input_dim= 8)) 
>>> model.add(Dense(1))
>>> model.compile(optimizer='rmsprop',loss='mse',metrics=['mae']))

>>> model.fit(x_train,y_train,batch_size=32,epochs=15)
>>> model.predict(x_test, batch_size=32)

>>> score = model.evaluate(x_test,y_test,batch_size=32)

Data

Data perlu kita simpan sebagai array NumPy atau sebagai daftar array NumPy. Idealnya, kita membagi data dalam set pelatihan dan pengujian. Caranya dengan menggunakan untuk modul train_test_split dari sklearn.cross_validation. Untuk contoh dataset,  kita bisa menggunakan dataset Boson Housing yang tergabung dalam library Keras. Pastikan kalian terkoneksi dengan internet untuk download pertama kali dataset boson housing. Lebih lengkap apa itu dataset boson housing bisa kalian baca https://www.kaggle.com/altavish/boston-housing-dataset

Terdiri dari 14 variabel dengan 13 diantaranya berupa variabel yang mungkin mendorong harga rumah di Boston

>>> from keras.datasets import boston_housing
>>> (x_train, y_train),(x_test, y_test) = boston_housing.load_data()

Preprocessing

Setelah dataset diimpor, mungkin tidak siap untuk model yang akan cocok ke dalamnya. Dalam hal ini, kalian harus melakukan beberapa preprocessing untuk menyiapkan data untuk model. Salah satunya menjadikan target agar sesuai deep learning yaitu

See also  Mencari ukuran Ideal Gambar untuk Deep Learning

Encoding Categorical Features

Berguna untuk melabeli target dengan 1 dan 0. Ada cara yang bisa digunakan yaitu one hot encoding

>>> from keras.utils import to_categorical
>>> Y_train = to_categorical(y_train, num_classes)
>>> Y_test = to_categorical(y_test, num_classes)

Train and Test Sets

Membagi set data menjadi set pelatihan dan pengujian untuk variabel X dan y.

>>> from sklearn.model_selection import train_test_split
>>> X_train,X_test,y_train,y_test = train_test_split(X, y, test_size=0.33,random_state=42)

Standardization

Standarisasi fitur dengan menghapus rata-rata dan penskalaan ke varians unit

>>> from sklearn.preprocessing import StandardScaler
>>> scaler = StandardScaler().fit(x_train)
>>> standardized_X = scaler.transform(x_train)
>>> standardized_X_test = scaler.transform(x_test)

Model Architecture

Di bagian ini, kalian akan mempelajari cara membuat model deep machine learning yang berbeda setiap layer.

Sequential Model

Model Sequential cocok untuk tumpukan layer biasa di mana setiap layer memiliki tepat satu tensor input dan satu tensor output. Ini biasanya merupakan layer pertama yang akan kalian tambahkan dalam model apa pun.

>>> from keras.models import Sequential 
>>> model = Sequential()

Artificial Neural Network (ANN)

Model Deep learning model yang digunakan untuk  classification dan regression.

Binary Classification:

Kode di bawah ini adalah contoh model JST yang digunakan untuk klasifikasi biner (mengidentifikasi kelas sebagai 0 atau 1). Terdapat 3 layer ke model yaitu

  1. pertama adalah layer input dan memiliki 12 node,
  2. layer kedua memiliki 8 node, dan
  3. layer terakhir memiliki 1 yang merupakan output node atau yang diprediksi.
>>> from keras.layers import Dense
>>> model.add(Dense(12,input_dim=8,kernel_initializer='uniform',
    activation='relu'))
>>> model.add(Dense(8,kernel_initializer='uniform',activation='relu'))
>>> model.add(Dense(1,kernel_initializer='uniform',activation='sigmoid'))

Multi-Class Classification:

Kode di bawah ini adalah contoh model JST yang digunakan untuk klasifikasi multi-kelas.  Terdapat 4 layer di model yaitu

  1. pertama adalah layer input dan memiliki 52 node
  2. kedua adalah layer dropout yang digunakan untuk mengurangi overfitting,
  3. layer ketiga memiliki 52 node, dan
  4. layer terakhir memiliki 10 node yang merupakan probabilitas bahwa pengamatan tertentu masuk ke salah satu dari 10 berbeda kelas.
>>> from keras.layers import Dropout 
>>> model.add(Dense(52,activation='relu'),input_shape=(78,)) 
>>> model.add(Dropout(0.2)) 
>>> model.add(Dense(52,activation='relu')) 
>>> model.add(Dense(10,activation='softmax'))

Regression:

Kode di bawah ini adalah contoh model JST yang digunakan untuk regresi. Terdapat 2 layer di model yaitu

  1. pertama adalah layer input yang memiliki 64 node, dan
  2. kedua adalah layer output yang hanya memiliki 1 node yang merupakan nilai prediksi.
>>> model.add(Dense(64,activation='relu',input_dim=train_data.shape[1])) 
>>> 
model.add(Dense(1))

Convolution Neural Network (CNN)

Model deep learning digunakan untuk klasifikasi gambar. Modelnya cukup rumit dan mencakup sedikit layer yang dapat kalian lihat pada kode di bawah ini. Kode itu memberikan contoh dasar seperti apa model CNN itu. Jika kalian ingin memahami apa yang dilakukan setiap layer, lihat penjelasan di dokumentasi Keras. atau kalian bisa search di website ini dengan keyword CNN

>>> from keras.layers import Activation,Conv2D,MaxPooling2D,Flatten >>> model2.add(Conv2D(32,(3,3),padding='same',input_shape=x_train.shape[1:])) 
>>> model2.add(Activation('relu')) 
>>> model2.add(Conv2D(32,(3,3))) 
>>> model2.add(Activation('relu')) 
>>> model2.add(MaxPooling2D(pool_size=(2,2))) 
>>> model2.add(Dropout(0.25)) 
>>> model2.add(Conv2D(64,(3,3), padding='same')) 
>>> model2.add(Activation('relu')) 
>>> model2.add(Conv2D(64,(3, 3))) 
>>> model2.add(Activation('relu')) 
>>> model2.add(MaxPooling2D(pool_size=(2,2))) 
>>> model2.add(Dropout(0.25)) 
>>> model2.add(Flatten()) 
>>> model2.add(Dense(512)) 
>>> model2.add(Activation('relu')) 
>>> model2.add(Dropout(0.5)) 
>>> model2.add(Dense(num_classes)) 
>>> model2.add(Activation('softmax'))

Recurrent Neural Network (RNN)

Model Deep learning yang digunakan untuk time series.

See also  Yuk Belajar membuat desain neural network dengan Tensorflow

Kode di bawah ini adalah contoh model RNN yang digunakan untuk deret waktu. Terdapat 3 layer di  model.

  1. Layer pertama adalah lapisan input,
  2. Layer kedua adalah sesuatu yang disebut Long Short Term Memory, dan
  3. layer ketiga adalah layer keluaran atau yang diprediksi dari model.
>>> from keras.klayers import Embedding,LSTM 
>>> model.add(Embedding(20000,128)) 
>>> model.add(LSTM(128,dropout=0.2,recurrent_dropout=0.2)) 
>>> model.add(Dense(1,activation='sigmoid'))

Compile Model

Setelah model dibangun, kalian dapat melakukan kompilasi model. Kompilasi hanya mengacu pada menentukan konfigurasi pelatihan apa (pengoptimal, lost, metrik/loss matric) yang akan digunakan untuk melatih dan mengevaluasi model.

ANN: Binary Classification

Gunakan konfigurasi pelatihan ini untuk model JST yang digunakan untuk klasifikasi biner.

>>> model.compile(optimizer='adam',  
                  loss='binary_crossentropy', 
                  metrics=['accuracy'])

ANN: Multi-Class Classification

Gunakan konfigurasi pelatihan ini untuk model JST yang digunakan untuk klasifikasi multi-kelas.

>>> model.compile(optimizer='rmsprop',
                  loss='categorical_crossentropy',
                  metrics=['accuracy'])

ANN: Regression

Gunakan konfigurasi pelatihan ini untuk model JST yang digunakan untuk regresi.

>>> model.compile(optimizer='rmsprop', 
                  loss='mse',
                  metrics=['mae'])

Recurrent Neural Network

Gunakan konfigurasi pelatihan ini untuk model RNN.

>>> model.compile(loss='binary_crossentropy',  
                  optimizer='adam',  
                  metrics=['accuracy'])

Model Training

Setelah mengkompilasi model, selanjutnya memasukan ke dalam set pelatihan. Ukuran batch menentukan berapa banyak observasi yang dimasukkan ke dalam model pada satu waktu, dan epoch mewakili berapa kali kalian ingin model tersebut cocok pada set pelatihan.

>>> model.fit(x_train,
              y_train,
              batch_size=32,  
              epochs=15)

Prediction

Memprediksi set tes menggunakan model terlatih

>>> model.predict(x_test, batch_size=32)

Evaluate Model’s Performace

Tentukan seberapa baik model dilakukan pada set tes.

>>> skor = model.evaluate(x_test,y_test,batch_size=32)

Save/Reload Models

Model deep learning membutuhkan waktu yang cukup lama untuk dilatih dan dijalankan, sehingga setelah selesai kalian dapat menyimpan dan memuatnya kembali sehingga kalian tidak perlu melalui proses tersebut dari awal lagi

>>> from keras.models import load_model 
>>> model.save('model_file.h5') 
>>> my_model = load_model('my_model.h5')

Demikian pembahasan mengenai Deep Learning dengan Keras Cheat Sheet

See also  Belajar Algoritma Greedy

Leave a Reply