Melanjutkan dari modul sebelumnya, pada bagian kedua, kita akan membuat model ANN.
ANN adalah fully connected neural network berupa layer sequence, oleh karena itu kita gunakan class Sequential dari Keras.
model = tf.keras.models.Sequential()
Setting hyperparameter dari model seperti berikut:
- Jumlah units/neurons: 128
- activation function: ReLU.
- input_shape: (784, )
model.add(tf.keras.layers.Dense(units=128, activation='relu', input_shape=(784, )))
Menambahkan layer dropout, yaitu teknik untuk mengatur nilai neuron menjadi nol secara random, bertujuan untuk mencegah overfitting.
Nilai 0.2 berarti 20% neurons(unit) akan di dropout.
model.add(tf.keras.layers.Dropout(0.2))
Langkah selanjutnya adalah membuat output layer dengan parameter
- units = 10 (sesuai dengan jumlah class MNIST fashion dataset.
- activation function yang digunakan adalah softmax.
Output layer dimana model akan menghasilkan prediksi. Pada tutorial model akan memprediksi label dari class MNIST fashion dataset.
model.add(tf.keras.layers.Dense(units=10, activation='softmax'))
Langkah berikutnya adalah model compiling. Model compiling adalah proses menghubungkan model dengan optimizer dan memilih loss function. Optimizer adalah proses dimana weight akan diupdate saat back propagating loss pada neural network.
Optimizer yang digunakan adalah adam dan loss function yang digunakan adalah Sparse softmax (categorical) crossentropy.
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['sparse_categorical_accuracy'])
Note: Gunakan method model.summary() yang berguna melihat summary configurasi dari model.
model.summary()
Model: "sequential_1"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense_1 (Dense) (None, 128) 100480
_________________________________________________________________
dropout (Dropout) (None, 128) 0
_________________________________________________________________
dense_2 (Dense) (None, 10) 1290
=================================================================
Total params: 101,770
Trainable params: 101,770
Non-trainable params: 0
_________________________________________________________________
Kesimpulan dari modul ini adalah:
- Untuk menambahkan layer digunakan perintah model.add()
- Karena ANN adalah fully connected neural network, maka digunakan class tf.keras.layers.Dense().