PENGANTAR DEEP
LEARNING
Kecerdasan Komputasional
Ade Chandra Saputra
Artificial Intelligence
Machine Learning
Deep Learning
www.its.ac.id/informatika INSTITUT TEKNOLOGI SEPULUH NOPEMBER, Surabaya - Indonesia
…
…
…
Input
Ekstraksi
Fitur
Klasifikasi
Machine Learning
(Konvensional)
Apel
Jeruk
Output
…
…
…
…
…
Ekstraksi Fitur + Klasifikasi
Deep Learning
Apel
Jeruk
Output
Input
Klasifikasi Secara Konvensional
Pendekatan klasifikasi secara konvensional umumnya melakukan ektraksi fitur
secara terpisah kemudian dilanjutkan proses pembelajaran menggunakan metode
klasifikasi konvensional seperti DT, SVM, atau ANN.
Salah satu contoh permasalahan klasifikasi adalah pengenalan obyek
Prapros
es
Ekstraks
i Fitur
Klasifi
kasi
Apel
Klasifikasi Secara Konvensional
o Warna
o Bentu
k
o Tekst
ur
Ekstraksi
Fitur
…
Apel
Jeruk
No Warna Bentuk Tekst
ur
Kelas
1 Merah Bulat Halus Apel
2 Hijau Bulat Halus Apel
3 Kuning Lonjon
g
Kasar Jeruk
…
N Hijau Lonjon
g
Kasar Jeruk
Klasifikas
i
Kelemahan
• Memerlukan waktu
dan pengetahuan
lebih untuk
ekstraksi fitur
• Sangat tergantung
pada satu domain
permasalahan saja
sehingga tidak
berlaku general
o Warna
o Bentu
k
o Tekst
ur
o Ukura
n
No Warna Bentuk Tekst
ur
Ukuran Kelas
1 Merah Bulat Halus Besar Apel
2 Hijau Bulat Halus Sedang Apel
3 Kuning Lonjon
g
Kasar Besar Jeruk
…
N-1 Hjiau Lonjon
g
Kasar Sedang Jeruk
Berbasis Deep Learning
• Pengenalan obyek berbasis Deep learning mempelajari
representasi hirarki (pola fitur) secara otomatis
melalui beberapa tahapan proses feature learning
…
…
…
…
…
Ekstraksi Fitur + Klasifikasi
Apel
Jeruk
Output
Input
Low-
level
feature
Mid-
level
feature
High-
level
feature
Feature
learning
Representasi Hirarki Fitur
• Hirarki pada representasi fitur menunjukkan kenaikan
level dari abstraksi.
• Setiap tahapan merupakan proses feature learning pada
transformasi fitur
Low-level feature Mid-level feature High-level feature
Kenaikan level abstraksi
Deep Neural Network
Output
Layer
Hidden
Layers
Inpu
t
Laye
r
Input Outpu
t
Layer
1
……
N
x
……
Layer
2
……
Layer
L
……
…….
…….
….…
……
y1
y2
yM
Layer
3
……
Layer
4
……
1
x
2
x
Deep artinya banyak hidden
layer
Deep vs Shallow
Layer ×
Size
Word Error
Rate (%)
Layer ×
Size
Word Error
Rate (%)
1 × 2k 24.2
2 × 2k 20.4
3 × 2k 18.4
4 × 2k 17.8
5 × 2k 17.2 1 × 3772 22.5
7 × 2k 17.1 1 × 4634 22.6
1 × 16k 22.1
Seide, Frank, Gang Li, and Dong Yu. "Conversational Speech Transcription Using
Context-Dependent Deep Neural Networks." Interspeech. 2011.
Manakah yang
lebih baik?
Mengapa
Deep
Learning?
Arsitektur Deep Learning
• Convolutional Neural Network (CNN)
• Sequence Modelling
• Recurrent Neural Networks (RNN)
• Generative Modelling
• Generative Adversarial Network (GAN)
• Deep Reinforcement Learning
Aplikasi Convolutional Neural Network
Deteksi
Obyek
Segmentasi
citra
Transfer
style
Aplikasi Sequence Modelling
Aplikasi Generative Modelling
www.its.ac.id/informatika INSTITUT TEKNOLOGI SEPULUH NOPEMBER, Surabaya - Indonesia
Aplikasi Deep Reinforcement
Learning
Convolutional Neural Network (CNN)
• CNN merupakan salah satu varian Neural Network dengan beberapa layer
konvolusi dan layer lainnya.
• Layer konvolusi mempunyai sejumlah filter yang mengaplikasikan operasi
konvolusi.
Input
Filter
Feature Map
Proses Konvolusi
Arsitektur
CNN
Convoluti
on
Convoluti
on
Flatten
Fully connected
layer
mobil
motor
Bisa
dilakuk
an
berulan
g kali
Max
Pooling
Max
Pooling
Layer
Konvolus
i 1 0 0 0 0 1
0 1 0 0 1 0
0 0 1 1 0 0
1 0 0 0 1 0
0 1 0 0 1 0
0 0 1 0 1 0
I
1 -1 -1
-1 1 -1
-1 -1 1
K
Proses Konvolusi
𝐼 ∗ 𝐾 𝑖, 𝑗 ==
𝑚 𝑛
𝐼 𝑚, 𝑛 𝐾(𝑖 + 𝑚, 𝑗 + 𝑛)
*
Proses
Konvolus
i
30 30 30 0 0 0
30 30 30 0 0 0
30 30 30 0 0 0
30 30 30 0 0 0
30 30 30 0 0 0
30 30 30 0 0 0
1 0 -1
1 0 -1
1 0 -1
0 30 30 0
0 30 30 0
0 30 30 0
0 30 30 0
* =
Citra
Filter
Convoluted
Feature
Proses
Konvolus
i
Ukuran Convoluted Feature (Feature Map)
Ukuran output gambar hasil proses konvolusi dapat
dihitung dengan rumus sebagai berikut:
Contoh:
((N - F)/s) + 1 stride =1  ((5-3)/1) + 1 = 3
N: input size stride= 2  ((5-3)/2) + 1 = 2
F: filter size
s: stride
Stride adalah besarnya step yang digunakan ketika melakukan sliding
filter
Layer
Konvolus
i
1 0 0 0 0 1
0 1 0 0 1 0
0 0 1 1 0 0
1 0 0 0 1 0
0 1 0 0 1 0
0 0 1 0 1 0
Citra 6 x 6
1 -1 -1
-1 1 -1
-1 -1 1
Filter 1
-1 1 -1
-1 1 -1
-1 1 -1
Filter 2
…
…
Tiap filter menangkap
sebuah pola (3 x 3)
Proses Konvolusi
Layer
Konvolus
i
Proses Konvolusi
1 0 0 0 0 1
0 1 0 0 1 0
0 0 1 1 0 0
1 0 0 0 1 0
0 1 0 0 1 0
0 0 1 0 1 0
Citra 6 x 6
1 -1 -1
-1 1 -1
-1 -1 1
Filter 1
3 -1 -3 -1
-3 1 0 -3
-3 -3 0 1
3 -2 -2 -1
stride=1
Layer
Konvolusi
Proses Konvolusi
1 0 0 0 0 1
0 1 0 0 1 0
0 0 1 1 0 0
1 0 0 0 1 0
0 1 0 0 1 0
0 0 1 0 1 0
Citra 6 x 6
3 -1 -3 -1
-3 1 0 -3
-3 -3 0 1
3 -2 -2 -1
-1 1 -1
-1 1 -1
-1 1 -1
Filter 2
-1 -1 -1 -1
-1 -1 -2 1
-1 -1 -2 1
-1 0 -4 3
stride=1
Dua citra 4 x 4
Membentuk 2 feature map
Feature
Map
Layer
Convolus
i
Padding
• Layer tambahan untuk menangani tepi dari citra untuk
menghindari hilangnya informasi pada corner sebuah
citra
• Zero Padding
Aktivasi
ReLU
•Rectified Linear Unit
(ReLU)
•Komputasi cepat
•Infinite sigmoid
•Menangani vanishing
gradient
𝑥
𝑎
𝑎 = 𝑥
𝑎 = 0
f 𝑥 = max(0, 𝑥)
Pooling
• Pooling layer digunakan untuk mengurangi ukuran
gambar menjadi lebih kecil (downsample) dan
mengekstrak salient features
• Ada dua tipe pooling yaitu Maximum pooling dan
Average pooling
Pooling with 2x2 filters and stride 2
Layer
Max
Pooling
Max Pooling
3 -1 -3 -1
-3 1 0 -3
-3 -3 0 1
3 -2 -2 -1
-1 -1 -1 -1
-1 -1 -2 1
-1 -1 -2 1
-1 0 -4 3
Feature Map
Full
Connected
Network
Layer
F
l
a
t
t
e
n
Fully Connected
Network
Output
Strategi Proses Pelatihan (Training)
overfit
ting
Mencega
h
overfit
ting
Modifikasi
Network
Memilih metode
optimasi
http://www.gizmodo.com.au/2015/04/th
e-basic-recipe-for-machine-learning-
explained-in-a-single-powerpoint-
slide/
Strategi Proses Pelatihan (Training)
Modifikasi Network
• Merubah arsitektur
• Merubah fungsi aktivasi
Memilih Metode Optimasi
• Adaptive learning rate
Mencegah Overfitting
• Dropout
• Augmentasi data
ADAPTIVE
LEARNING RATE
•Adagrad [John Duchi,
JMLR’11]
•RMSprop
• https://www.youtube.com/watc
h?v=O3sxAc4hxZU
•Adadelta [Matthew D.
Zeiler, arXiv’12]
•Adam [Diederik P. Kingma,
ICLR’15]
•AdaSecant [Caglar
Gulcehre, arXiv’14]
Sumber: Hung-yi Lee, Deep Learning Tutorial
ADAPTIVE
LEARNING
RATE
parameter
learning rate
𝑤𝑡+1
← 𝑤𝑡
− ߟ𝑤𝑔𝑡
konstanta
𝜽𝒕
← 𝜽𝒕−𝟏
− 𝜼𝜵𝑪 𝜽𝒕−𝟏
Original Gradient Descent
Setiap parameter w
𝑔𝑡 =
𝜕𝐶 𝜃𝑡
𝜕𝑤
ߟ𝑤 =
𝜂
𝑖=0
𝑡
𝑔𝑖 2 Penjumlahan dari
derivative sebelumnya
ADAGRAD
Sumber: Hung-yi Lee, Deep Learning Tutorial
Dropout
• Dropout adalah cara untuk meregulasi parameter untuk
menghindari over-fitting sehingga model lebih general.
• Umumnya dilakukan pada fully connected layer
• Selama proses training, setiap iterasi
sebelum menghitung gradient
• Setiap neuron diset prosentase dropout
p%
Struktur network berubah lebih
ringan
Aplikasi CNN pada
Pengenalan Angka
● MNIST dataset dibagi menjadi 3 bagian:
○ 55,000 training data
○ 10,000 test data
○ 5,000 validation data
● Setiap gambar berukuran 28 × 28 pixels
● Label kelas berupa one hot encoded
MNIST Handwritten Digits
0 [1 0 0 0 0 0 0 0 0 0]
1 [0 1 0 0 0 0 0 0 0 0]
2 [0 0 1 0 0 0 0 0 0 0]
3 [0 0 0 1 0 0 0 0 0 0]
4 [0 0 0 0 1 0 0 0 0 0]
5 [0 0 0 0 0 1 0 0 0 0]
6 [0 0 0 0 0 0 1 0 0 0]
7 [0 0 0 0 0 0 0 1 0 0]
8 [0 0 0 0 0 0 0 0 1 0]
9 [0 0 0 0 0 0 0 0 0 1]
Aplikasi CNN pada
Pengenalan Angka
MNIST Handwritten Digits
L1
(3x3)
filters
L2
(3x3)
filters
28x28 14x14 14x14 7x7xL2
28x28x1
1st Conv
Layer (16)
2nd Conv
Layer (32)
Max
Pooling
Layer
(2x2)
Max
Pooling
Layer
(2x2)
Dense
Layer (64)
Output
Layer (softmax)
6
Y1 Y2 Y3
X,y
Aplikasi CNN
pada
Pengenalan
Angka
CNN dengan Keras
model = Sequential()
model.add(Conv2D(16,(3,3),activation='relu',input_shape=(28,28,1),padding='s
ame'))
model.add(MaxPooling2D(2,2))
model.add(Conv2D(32,(3,3),activation='relu',padding='same'))
model.add(MaxPooling2D(2,2))
model.add(Flatten())
model.add(Dense(64,activation='relu'))
model.add(Dense(10,activation='softmax'))
Aplikasi CNN
pada
Pengenalan
Angka
CNN dengan Keras
model.compile(optimizer='adam',loss='categorical_crossentropy',metrics=['acc’])
history =
model.fit(X_train,y_train,epochs=10,batch_size=100,validation_data=(X_test,y_test))
model.evaluate(X_test,y_test)
acc = history.history['acc']
val_acc = history.history['val_acc']
epochs = range(10)
import matplotlib.pyplot as plt
plt.plot(epochs,acc,'r',label='training')
plt.plot(epochs,val_acc,'b',label='testing')
plt.legend()
pred = model.predict(X_test)
print('label
actual:',np.argmax(y_test[0]))
print('label
prediction:',np.argmax(pred[0]

Pengantar Deep Learning Untuk Pembelajaran Deep Learning

  • 1.
  • 2.
  • 3.
    www.its.ac.id/informatika INSTITUT TEKNOLOGISEPULUH NOPEMBER, Surabaya - Indonesia … … … Input Ekstraksi Fitur Klasifikasi Machine Learning (Konvensional) Apel Jeruk Output … … … … … Ekstraksi Fitur + Klasifikasi Deep Learning Apel Jeruk Output Input
  • 4.
    Klasifikasi Secara Konvensional Pendekatanklasifikasi secara konvensional umumnya melakukan ektraksi fitur secara terpisah kemudian dilanjutkan proses pembelajaran menggunakan metode klasifikasi konvensional seperti DT, SVM, atau ANN. Salah satu contoh permasalahan klasifikasi adalah pengenalan obyek Prapros es Ekstraks i Fitur Klasifi kasi Apel
  • 5.
    Klasifikasi Secara Konvensional oWarna o Bentu k o Tekst ur Ekstraksi Fitur … Apel Jeruk No Warna Bentuk Tekst ur Kelas 1 Merah Bulat Halus Apel 2 Hijau Bulat Halus Apel 3 Kuning Lonjon g Kasar Jeruk … N Hijau Lonjon g Kasar Jeruk Klasifikas i Kelemahan • Memerlukan waktu dan pengetahuan lebih untuk ekstraksi fitur • Sangat tergantung pada satu domain permasalahan saja sehingga tidak berlaku general o Warna o Bentu k o Tekst ur o Ukura n No Warna Bentuk Tekst ur Ukuran Kelas 1 Merah Bulat Halus Besar Apel 2 Hijau Bulat Halus Sedang Apel 3 Kuning Lonjon g Kasar Besar Jeruk … N-1 Hjiau Lonjon g Kasar Sedang Jeruk
  • 6.
    Berbasis Deep Learning •Pengenalan obyek berbasis Deep learning mempelajari representasi hirarki (pola fitur) secara otomatis melalui beberapa tahapan proses feature learning … … … … … Ekstraksi Fitur + Klasifikasi Apel Jeruk Output Input Low- level feature Mid- level feature High- level feature Feature learning
  • 7.
    Representasi Hirarki Fitur •Hirarki pada representasi fitur menunjukkan kenaikan level dari abstraksi. • Setiap tahapan merupakan proses feature learning pada transformasi fitur Low-level feature Mid-level feature High-level feature Kenaikan level abstraksi
  • 8.
    Deep Neural Network Output Layer Hidden Layers Inpu t Laye r InputOutpu t Layer 1 …… N x …… Layer 2 …… Layer L …… ……. ……. ….… …… y1 y2 yM Layer 3 …… Layer 4 …… 1 x 2 x Deep artinya banyak hidden layer
  • 9.
    Deep vs Shallow Layer× Size Word Error Rate (%) Layer × Size Word Error Rate (%) 1 × 2k 24.2 2 × 2k 20.4 3 × 2k 18.4 4 × 2k 17.8 5 × 2k 17.2 1 × 3772 22.5 7 × 2k 17.1 1 × 4634 22.6 1 × 16k 22.1 Seide, Frank, Gang Li, and Dong Yu. "Conversational Speech Transcription Using Context-Dependent Deep Neural Networks." Interspeech. 2011. Manakah yang lebih baik?
  • 10.
  • 11.
    Arsitektur Deep Learning •Convolutional Neural Network (CNN) • Sequence Modelling • Recurrent Neural Networks (RNN) • Generative Modelling • Generative Adversarial Network (GAN) • Deep Reinforcement Learning
  • 12.
    Aplikasi Convolutional NeuralNetwork Deteksi Obyek Segmentasi citra Transfer style
  • 13.
  • 14.
  • 15.
    www.its.ac.id/informatika INSTITUT TEKNOLOGISEPULUH NOPEMBER, Surabaya - Indonesia Aplikasi Deep Reinforcement Learning
  • 16.
    Convolutional Neural Network(CNN) • CNN merupakan salah satu varian Neural Network dengan beberapa layer konvolusi dan layer lainnya. • Layer konvolusi mempunyai sejumlah filter yang mengaplikasikan operasi konvolusi. Input Filter Feature Map Proses Konvolusi
  • 17.
  • 18.
    Layer Konvolus i 1 00 0 0 1 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 I 1 -1 -1 -1 1 -1 -1 -1 1 K Proses Konvolusi 𝐼 ∗ 𝐾 𝑖, 𝑗 == 𝑚 𝑛 𝐼 𝑚, 𝑛 𝐾(𝑖 + 𝑚, 𝑗 + 𝑛) *
  • 19.
    Proses Konvolus i 30 30 300 0 0 30 30 30 0 0 0 30 30 30 0 0 0 30 30 30 0 0 0 30 30 30 0 0 0 30 30 30 0 0 0 1 0 -1 1 0 -1 1 0 -1 0 30 30 0 0 30 30 0 0 30 30 0 0 30 30 0 * = Citra Filter Convoluted Feature
  • 20.
    Proses Konvolus i Ukuran Convoluted Feature(Feature Map) Ukuran output gambar hasil proses konvolusi dapat dihitung dengan rumus sebagai berikut: Contoh: ((N - F)/s) + 1 stride =1  ((5-3)/1) + 1 = 3 N: input size stride= 2  ((5-3)/2) + 1 = 2 F: filter size s: stride Stride adalah besarnya step yang digunakan ketika melakukan sliding filter
  • 21.
    Layer Konvolus i 1 0 00 0 1 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 Citra 6 x 6 1 -1 -1 -1 1 -1 -1 -1 1 Filter 1 -1 1 -1 -1 1 -1 -1 1 -1 Filter 2 … … Tiap filter menangkap sebuah pola (3 x 3) Proses Konvolusi
  • 22.
    Layer Konvolus i Proses Konvolusi 1 00 0 0 1 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 Citra 6 x 6 1 -1 -1 -1 1 -1 -1 -1 1 Filter 1 3 -1 -3 -1 -3 1 0 -3 -3 -3 0 1 3 -2 -2 -1 stride=1
  • 23.
    Layer Konvolusi Proses Konvolusi 1 00 0 0 1 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 Citra 6 x 6 3 -1 -3 -1 -3 1 0 -3 -3 -3 0 1 3 -2 -2 -1 -1 1 -1 -1 1 -1 -1 1 -1 Filter 2 -1 -1 -1 -1 -1 -1 -2 1 -1 -1 -2 1 -1 0 -4 3 stride=1 Dua citra 4 x 4 Membentuk 2 feature map Feature Map
  • 24.
    Layer Convolus i Padding • Layer tambahanuntuk menangani tepi dari citra untuk menghindari hilangnya informasi pada corner sebuah citra • Zero Padding
  • 25.
    Aktivasi ReLU •Rectified Linear Unit (ReLU) •Komputasicepat •Infinite sigmoid •Menangani vanishing gradient 𝑥 𝑎 𝑎 = 𝑥 𝑎 = 0 f 𝑥 = max(0, 𝑥)
  • 26.
    Pooling • Pooling layerdigunakan untuk mengurangi ukuran gambar menjadi lebih kecil (downsample) dan mengekstrak salient features • Ada dua tipe pooling yaitu Maximum pooling dan Average pooling Pooling with 2x2 filters and stride 2
  • 27.
    Layer Max Pooling Max Pooling 3 -1-3 -1 -3 1 0 -3 -3 -3 0 1 3 -2 -2 -1 -1 -1 -1 -1 -1 -1 -2 1 -1 -1 -2 1 -1 0 -4 3 Feature Map
  • 28.
  • 29.
    Strategi Proses Pelatihan(Training) overfit ting Mencega h overfit ting Modifikasi Network Memilih metode optimasi http://www.gizmodo.com.au/2015/04/th e-basic-recipe-for-machine-learning- explained-in-a-single-powerpoint- slide/
  • 30.
    Strategi Proses Pelatihan(Training) Modifikasi Network • Merubah arsitektur • Merubah fungsi aktivasi Memilih Metode Optimasi • Adaptive learning rate Mencegah Overfitting • Dropout • Augmentasi data
  • 31.
    ADAPTIVE LEARNING RATE •Adagrad [JohnDuchi, JMLR’11] •RMSprop • https://www.youtube.com/watc h?v=O3sxAc4hxZU •Adadelta [Matthew D. Zeiler, arXiv’12] •Adam [Diederik P. Kingma, ICLR’15] •AdaSecant [Caglar Gulcehre, arXiv’14] Sumber: Hung-yi Lee, Deep Learning Tutorial
  • 32.
    ADAPTIVE LEARNING RATE parameter learning rate 𝑤𝑡+1 ← 𝑤𝑡 −ߟ𝑤𝑔𝑡 konstanta 𝜽𝒕 ← 𝜽𝒕−𝟏 − 𝜼𝜵𝑪 𝜽𝒕−𝟏 Original Gradient Descent Setiap parameter w 𝑔𝑡 = 𝜕𝐶 𝜃𝑡 𝜕𝑤 ߟ𝑤 = 𝜂 𝑖=0 𝑡 𝑔𝑖 2 Penjumlahan dari derivative sebelumnya ADAGRAD Sumber: Hung-yi Lee, Deep Learning Tutorial
  • 33.
    Dropout • Dropout adalahcara untuk meregulasi parameter untuk menghindari over-fitting sehingga model lebih general. • Umumnya dilakukan pada fully connected layer • Selama proses training, setiap iterasi sebelum menghitung gradient • Setiap neuron diset prosentase dropout p% Struktur network berubah lebih ringan
  • 34.
    Aplikasi CNN pada PengenalanAngka ● MNIST dataset dibagi menjadi 3 bagian: ○ 55,000 training data ○ 10,000 test data ○ 5,000 validation data ● Setiap gambar berukuran 28 × 28 pixels ● Label kelas berupa one hot encoded MNIST Handwritten Digits 0 [1 0 0 0 0 0 0 0 0 0] 1 [0 1 0 0 0 0 0 0 0 0] 2 [0 0 1 0 0 0 0 0 0 0] 3 [0 0 0 1 0 0 0 0 0 0] 4 [0 0 0 0 1 0 0 0 0 0] 5 [0 0 0 0 0 1 0 0 0 0] 6 [0 0 0 0 0 0 1 0 0 0] 7 [0 0 0 0 0 0 0 1 0 0] 8 [0 0 0 0 0 0 0 0 1 0] 9 [0 0 0 0 0 0 0 0 0 1]
  • 35.
    Aplikasi CNN pada PengenalanAngka MNIST Handwritten Digits L1 (3x3) filters L2 (3x3) filters 28x28 14x14 14x14 7x7xL2 28x28x1 1st Conv Layer (16) 2nd Conv Layer (32) Max Pooling Layer (2x2) Max Pooling Layer (2x2) Dense Layer (64) Output Layer (softmax) 6 Y1 Y2 Y3 X,y
  • 36.
    Aplikasi CNN pada Pengenalan Angka CNN denganKeras model = Sequential() model.add(Conv2D(16,(3,3),activation='relu',input_shape=(28,28,1),padding='s ame')) model.add(MaxPooling2D(2,2)) model.add(Conv2D(32,(3,3),activation='relu',padding='same')) model.add(MaxPooling2D(2,2)) model.add(Flatten()) model.add(Dense(64,activation='relu')) model.add(Dense(10,activation='softmax'))
  • 37.
    Aplikasi CNN pada Pengenalan Angka CNN denganKeras model.compile(optimizer='adam',loss='categorical_crossentropy',metrics=['acc’]) history = model.fit(X_train,y_train,epochs=10,batch_size=100,validation_data=(X_test,y_test)) model.evaluate(X_test,y_test) acc = history.history['acc'] val_acc = history.history['val_acc'] epochs = range(10) import matplotlib.pyplot as plt plt.plot(epochs,acc,'r',label='training') plt.plot(epochs,val_acc,'b',label='testing') plt.legend() pred = model.predict(X_test) print('label actual:',np.argmax(y_test[0])) print('label prediction:',np.argmax(pred[0]