Keras - Pembelajaran mendalam

Keras menyediakan kerangka kerja lengkap untuk membuat semua jenis jaringan saraf. Keras itu inovatif sekaligus sangat mudah dipelajari. Ini mendukung jaringan saraf sederhana hingga model jaringan saraf yang sangat besar dan kompleks. Mari kita pahami arsitektur kerangka Keras dan bagaimana Keras membantu dalam pembelajaran mendalam di bab ini.

Arsitektur Keras

API Keras dapat dibagi menjadi tiga kategori utama -

  • Model
  • Layer
  • Modul Inti

Di Keras, setiap ANN diwakili oleh Keras Models. Pada gilirannya, setiap Model Keras adalah komposisiKeras Layers dan mewakili lapisan ANN seperti input, hidden layer, output layer, convolution layer, pooling layer, dll., model Keras dan akses lapisan Keras modules untuk fungsi aktivasi, fungsi kerugian, fungsi regularisasi, dll., Menggunakan model Keras, Lapisan Keras, dan modul Keras, semua algoritme JST (CNN, RNN, dll.,) dapat direpresentasikan dengan cara yang sederhana dan efisien.

Diagram berikut menggambarkan hubungan antara model, lapisan dan modul inti -

Mari kita lihat gambaran umum model Keras, lapisan Keras dan modul Keras.

Model

Model Keras terdiri dari dua jenis seperti yang disebutkan di bawah ini -

Sequential Model- Model sekuensial pada dasarnya adalah komposisi linier dari Keras Layers. Model sekuensial itu mudah, minimal, serta memiliki kemampuan untuk mewakili hampir semua jaringan neural yang tersedia.

Model sekuensial sederhana adalah sebagai berikut -

from keras.models import Sequential 
from keras.layers import Dense, Activation 

model = Sequential()  
model.add(Dense(512, activation = 'relu', input_shape = (784,)))

Dimana,

  • Line 1 impor Sequential model dari model Keras

  • Line 2 impor Dense lapisan dan Activation modul

  • Line 4 buat model sekuensial baru menggunakan Sequential API

  • Line 5 menambahkan lapisan padat (Dense API) dengan relu aktivasi (menggunakan modul Aktivasi).

Sequential model mengekspos Modelkelas untuk membuat model yang disesuaikan juga. Kita dapat menggunakan konsep sub-classing untuk membuat model kompleks kita sendiri.

Functional API - API Fungsional pada dasarnya digunakan untuk membuat model yang kompleks.

Lapisan

Setiap lapisan Keras dalam model Keras mewakili lapisan yang sesuai (lapisan masukan, lapisan tersembunyi, dan lapisan keluaran) dalam model jaringan saraf yang diusulkan sebenarnya. Keras menyediakan banyak lapisan pra-bangun sehingga jaringan saraf yang kompleks dapat dibuat dengan mudah. Beberapa lapisan Keras penting ditentukan di bawah ini,

  • Lapisan Inti
  • Lapisan Konvolusi
  • Pooling Layers
  • Lapisan Berulang

Kode python sederhana untuk mewakili model jaringan saraf menggunakan sequential modelnya adalah sebagai berikut -

from keras.models import Sequential 
from keras.layers import Dense, Activation, Dropout model = Sequential() 

model.add(Dense(512, activation = 'relu', input_shape = (784,))) 
model.add(Dropout(0.2)) 
model.add(Dense(512, activation = 'relu')) model.add(Dropout(0.2)) 
model.add(Dense(num_classes, activation = 'softmax'))

Dimana,

  • Line 1 impor Sequential model dari model Keras

  • Line 2 impor Dense lapisan dan Activation modul

  • Line 4 buat model sekuensial baru menggunakan Sequential API

  • Line 5 menambahkan lapisan padat (Dense API) dengan relu aktivasi (menggunakan modul Aktivasi).

  • Line 6 menambahkan lapisan dropout (Dropout API) untuk menangani over-fitting.

  • Line 7 menambahkan lapisan padat lainnya (Dense API) dengan relu aktivasi (menggunakan modul Aktivasi).

  • Line 8 menambahkan lapisan dropout lain (Dropout API) untuk menangani over-fitting.

  • Line 9 menambahkan lapisan padat akhir (Dense API) dengan softmax aktivasi (menggunakan modul Aktivasi).

Keras juga menyediakan opsi untuk membuat lapisan khusus kita sendiri. Lapisan yang disesuaikan dapat dibuat dengan membuat sub-klasifikasi fileKeras.Layer class dan ini mirip dengan sub-classing model Keras.

Modul Inti

Keras juga menyediakan banyak fungsi terkait jaringan saraf bawaan untuk membuat model Keras dan lapisan Keras dengan benar. Beberapa fungsinya adalah sebagai berikut -

  • Activations module - Fungsi aktivasi adalah konsep penting dalam JST dan modul aktivasi menyediakan banyak fungsi aktivasi seperti softmax, relu, dll.,

  • Loss module - Modul kerugian menyediakan fungsi kerugian seperti mean_squared_error, mean_absolute_error, poisson, dll.,

  • Optimizer module - Modul pengoptimal menyediakan fungsi pengoptimal seperti adam, sgd, dll.,

  • Regularizers - Modul pengatur menyediakan fungsi seperti pengatur L1, pengatur L2, dll.,

Mari kita pelajari modul Keras secara mendetail di bab selanjutnya.