LBB NEURAL NETWORK

1. Introduction

This time we will do image classification using deep learning with a hard framework. We will use MNIST Sign Language data which contains image data about sign language images displayed in csv form. We will try to classify each sign language image into the appropriate letter label.

1.1 Load Library

library(readr)
library(keras)
library(caret)
## Loading required package: ggplot2
## Loading required package: lattice
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union

2. Data Exploratory

2.1 Data input

  • train.csv -> for cross validation (train-test)
  • test.csv -> ufor data validation
mnist <- read.csv("mnist/train.csv")
test <- read.csv("mnist/test.csv")

2.2 Exploratory Data

  1. Check dimension of the data
dim(mnist)
## [1] 42000   785
head(mnist)
##   label pixel0 pixel1 pixel2 pixel3 pixel4 pixel5 pixel6 pixel7 pixel8 pixel9
## 1     1      0      0      0      0      0      0      0      0      0      0
## 2     0      0      0      0      0      0      0      0      0      0      0
## 3     1      0      0      0      0      0      0      0      0      0      0
## 4     4      0      0      0      0      0      0      0      0      0      0
## 5     0      0      0      0      0      0      0      0      0      0      0
## 6     0      0      0      0      0      0      0      0      0      0      0
##   pixel10 pixel11 pixel12 pixel13 pixel14 pixel15 pixel16 pixel17 pixel18
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel19 pixel20 pixel21 pixel22 pixel23 pixel24 pixel25 pixel26 pixel27
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel28 pixel29 pixel30 pixel31 pixel32 pixel33 pixel34 pixel35 pixel36
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel37 pixel38 pixel39 pixel40 pixel41 pixel42 pixel43 pixel44 pixel45
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel46 pixel47 pixel48 pixel49 pixel50 pixel51 pixel52 pixel53 pixel54
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel55 pixel56 pixel57 pixel58 pixel59 pixel60 pixel61 pixel62 pixel63
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel64 pixel65 pixel66 pixel67 pixel68 pixel69 pixel70 pixel71 pixel72
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel73 pixel74 pixel75 pixel76 pixel77 pixel78 pixel79 pixel80 pixel81
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel82 pixel83 pixel84 pixel85 pixel86 pixel87 pixel88 pixel89 pixel90
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel91 pixel92 pixel93 pixel94 pixel95 pixel96 pixel97 pixel98 pixel99
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel100 pixel101 pixel102 pixel103 pixel104 pixel105 pixel106 pixel107
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel108 pixel109 pixel110 pixel111 pixel112 pixel113 pixel114 pixel115
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel116 pixel117 pixel118 pixel119 pixel120 pixel121 pixel122 pixel123
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0       18       30
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        1       25      130
## 6        0        0        0        0        0        0        0        0
##   pixel124 pixel125 pixel126 pixel127 pixel128 pixel129 pixel130 pixel131
## 1        0        0        0        0        0        0        0        0
## 2      137      137      192       86       72        1        0        0
## 3        3      141      139        3        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5      155      254      254      254      157       30        2        0
## 6        3      141      202      254      193       44        0        0
##   pixel132 pixel133 pixel134 pixel135 pixel136 pixel137 pixel138 pixel139
## 1      188      255       94        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel140 pixel141 pixel142 pixel143 pixel144 pixel145 pixel146 pixel147
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0      220      179
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel148 pixel149 pixel150 pixel151 pixel152 pixel153 pixel154 pixel155
## 1        0        0        0        0        0        0        0        0
## 2       13       86      250      254      254      254      254      217
## 3        0        0        0        0        9      254      254        8
## 4        6        0        0        0        0        0        0        0
## 5        8      103      253      253      253      253      253      253
## 6        0        0        0        5      165      254      179      163
##   pixel156 pixel157 pixel158 pixel159 pixel160 pixel161 pixel162 pixel163
## 1        0        0        0      191      250      253       93        0
## 2      246      151       32        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        9       77        0        0        0        0        0
## 5      253      253      114        2        0        0        0        0
## 6      249      244       72        0        0        0        0        0
##   pixel164 pixel165 pixel166 pixel167 pixel168 pixel169 pixel170 pixel171
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel172 pixel173 pixel174 pixel175 pixel176 pixel177 pixel178 pixel179
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0       16      179      254      254      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0       28      247       17        0        0        0
## 5        0        0        0       11      208      253      253      253
## 6        0        0        0        0        0        0        0      135
##   pixel180 pixel181 pixel182 pixel183 pixel184 pixel185 pixel186 pixel187
## 1        0        0        0        0        0        0      123      248
## 2      254      254      254      254      254      254      231       54
## 3        9      254      254        8        0        0        0        0
## 4        0        0        0        0        0       27      202        0
## 5      253      253      253      253      253      253      253      107
## 6      254      150        0        0      189      254      243       31
##   pixel188 pixel189 pixel190 pixel191 pixel192 pixel193 pixel194 pixel195
## 1      253      167       10        0        0        0        0        0
## 2       15        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel196 pixel197 pixel198 pixel199 pixel200 pixel201 pixel202 pixel203
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0       72
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0      242
## 5        0        0        0        0        0        0        0       31
## 6        0        0        0        0        0        0        0        0
##   pixel204 pixel205 pixel206 pixel207 pixel208 pixel209 pixel210 pixel211
## 1        0        0        0        0        0        0        0        0
## 2      254      254      254      254      254      254      254      254
## 3        0        0        0        0        9      254      254      106
## 4      155        0        0        0        0        0        0        0
## 5      253      253      253      253      253      253      253      253
## 6        0        0       82      248      209        5        0        0
##   pixel212 pixel213 pixel214 pixel215 pixel216 pixel217 pixel218 pixel219
## 1        0       80      247      253      208       13        0        0
## 2      254      254      254      254      104        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0       27      254       63        0        0        0        0
## 5      253      253      253      215      101        3        0        0
## 6      164      236      254      115        0        0        0        0
##   pixel220 pixel221 pixel222 pixel223 pixel224 pixel225 pixel226 pixel227
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel228 pixel229 pixel230 pixel231 pixel232 pixel233 pixel234 pixel235
## 1        0        0        0        0        0        0        0        0
## 2        0        0       61      191      254      254      254      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0      160      207        6        0        0
## 5        0        0       23      210      253      253      253      248
## 6        0        0        0        0        0        8      211      254
##   pixel236 pixel237 pixel238 pixel239 pixel240 pixel241 pixel242 pixel243
## 1        0        0        0        0       29      207      253      235
## 2      254      109       83      199      254      254      254      254
## 3        9      254      254      184        0        0        0        0
## 4        0        0        0        0        0       27      254       65
## 5      161      222      222      246      253      253      253      253
## 6       58        0        0        0        0       33      230      212
##   pixel244 pixel245 pixel246 pixel247 pixel248 pixel249 pixel250 pixel251
## 1       77        0        0        0        0        0        0        0
## 2      243       85        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5      253       39        0        0        0        0        0        0
## 6        6        0        0        0        0        0        0        0
##   pixel252 pixel253 pixel254 pixel255 pixel256 pixel257 pixel258 pixel259
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0      172      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0      127
## 5        0        0        0        0        0        0      136      253
## 6        0        0        0        0        0        0        0        0
##   pixel260 pixel261 pixel262 pixel263 pixel264 pixel265 pixel266 pixel267
## 1        0        0        0        0        0        0        0       54
## 2      254      254      202      147      147       45        0       11
## 3        0        0        0        0        9      254      254      184
## 4      254       21        0        0        0        0        0        0
## 5      253      253      229       77        0        0        0       70
## 6        0      119      254      156        3        0        0        0
##   pixel268 pixel269 pixel270 pixel271 pixel272 pixel273 pixel274 pixel275
## 1      209      253      253       88        0        0        0        0
## 2       29      200      254      254      254      171        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0       20      239       65        0        0        0        0
## 5      218      253      253      253      253      215       91        0
## 6        0       18      230      254       33        0        0        0
##   pixel276 pixel277 pixel278 pixel279 pixel280 pixel281 pixel282 pixel283
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel284 pixel285 pixel286 pixel287 pixel288 pixel289 pixel290 pixel291
## 1        0        0        0        0        0        0        0        0
## 2        0        1      174      254      254       89       67        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0       77      254       21        0        0
## 5        0        5      214      253      253      253      195        0
## 6        0        0        0        0       10      212      254       35
##   pixel292 pixel293 pixel294 pixel295 pixel296 pixel297 pixel298 pixel299
## 1        0        0       93      254      253      238      170       17
## 2        0        0        0        0        0      128      252      254
## 3        9      254      254      184        0        0        0        0
## 4        0        0        0        0        0        0      195       65
## 5        0        0        0        0      104      224      253      253
## 6        0        0        0        0        0       33      254      254
##   pixel300 pixel301 pixel302 pixel303 pixel304 pixel305 pixel306 pixel307
## 1        0        0        0        0        0        0        0        0
## 2      254      212       76        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5      253      253      215       29        0        0        0        0
## 6       33        0        0        0        0        0        0        0
##   pixel308 pixel309 pixel310 pixel311 pixel312 pixel313 pixel314 pixel315
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0       47      254      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0       70
## 5        0        0        0        0        0      116      253      253
## 6        0        0        0        0        0        0        0        0
##   pixel316 pixel317 pixel318 pixel319 pixel320 pixel321 pixel322 pixel323
## 1        0        0        0        0        0       23      210      254
## 2      254       29        0        0        0        0        0        0
## 3        0        0        0        0        6      185      254      184
## 4      254       21        0        0        0        0        0        0
## 5      253      247       75        0        0        0        0        0
## 6      116      254      154        3        0        0        0        0
##   pixel324 pixel325 pixel326 pixel327 pixel328 pixel329 pixel330 pixel331
## 1      253      159        0        0        0        0        0        0
## 2        0        0       83      254      254      254      153        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0      195      142        0        0        0        0
## 5        0       26      200      253      253      253      253      216
## 6        0       33      254      254       33        0        0        0
##   pixel332 pixel333 pixel334 pixel335 pixel336 pixel337 pixel338 pixel339
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        4        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel340 pixel341 pixel342 pixel343 pixel344 pixel345 pixel346 pixel347
## 1        0        0        0        0        0        0        0        0
## 2        0       80      254      254      240       24        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0       56      251       21        0        0
## 5        0      254      253      253      253      195        0        0
## 6        0        0        0        0      124      254      115        0
##   pixel348 pixel349 pixel350 pixel351 pixel352 pixel353 pixel354 pixel355
## 1       16      209      253      254      240       81        0        0
## 2        0        0        0        0        0        0       25      240
## 3        0       89      254      184        0        0        0        0
## 4        0        0        0        0        0        0      195      227
## 5        0        0        0        0        0        0       26      200
## 6        0        0        0        0        0      160      254      239
##   pixel356 pixel357 pixel358 pixel359 pixel360 pixel361 pixel362 pixel363
## 1        0        0        0        0        0        0        0        0
## 2      254      254      153        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5      253      253      253      253        5        0        0        0
## 6       23        0        0        0        0        0        0        0
##   pixel364 pixel365 pixel366 pixel367 pixel368 pixel369 pixel370 pixel371
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0       64      254      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0      254      253      253
## 6        0        0        0        0        0        0        0        0
##   pixel372 pixel373 pixel374 pixel375 pixel376 pixel377 pixel378 pixel379
## 1        0        0        0        0       27      253      253      254
## 2      186        7        0        0        0        0        0        0
## 3        0        0        0        0        4      146      254      184
## 4      222      153        5        0        0        0        0        0
## 5      253       99        0        0        0        0        0        0
## 6      203      254       35        0        0        0        0        0
##   pixel380 pixel381 pixel382 pixel383 pixel384 pixel385 pixel386 pixel387
## 1       13        0        0        0        0        0        0        0
## 2        0        0        0      166      254      254      224       12
## 3        0        0        0        0        0        0        0        0
## 4        0        0      120      240       13        0        0        0
## 5        0        0        0       25      231      253      253      253
## 6        0      197      254      178        0        0        0        0
##   pixel388 pixel389 pixel390 pixel391 pixel392 pixel393 pixel394 pixel395
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5       36        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel396 pixel397 pixel398 pixel399 pixel400 pixel401 pixel402 pixel403
## 1        0        0        0        0        0        0        0       20
## 2       14      232      254      254      254       29        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0       67      251       40        0
## 5        0      254      253      253      253       99        0        0
## 6        0        0        0       23      239      221       11        0
##   pixel404 pixel405 pixel406 pixel407 pixel408 pixel409 pixel410 pixel411
## 1      206      254      254      198        7        0        0        0
## 2        0        0        0        0        0        0        0       75
## 3        9      254      254      184        0        0        0        0
## 4        0        0        0        0        0        0       94      255
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0      198      255      123
##   pixel412 pixel413 pixel414 pixel415 pixel416 pixel417 pixel418 pixel419
## 1        0        0        0        0        0        0        0        0
## 2      254      254      254       17        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4       69        0        0        0        0        0        0        0
## 5      223      253      253      253      129        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel420 pixel421 pixel422 pixel423 pixel424 pixel425 pixel426 pixel427
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0       18      254      254      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0      254      253      253
## 6        0        0        0        0        0        0        0       23
##   pixel428 pixel429 pixel430 pixel431 pixel432 pixel433 pixel434 pixel435
## 1        0        0        0      168      253      253      196        7
## 2      254       29        0        0        0        0        0        0
## 3        0        0        0        0        9      254      254      184
## 4        0      234      184        0        0        0        0        0
## 5      253       99        0        0        0        0        0        0
## 6      238      178        0        0        0        0        0        0
##   pixel436 pixel437 pixel438 pixel439 pixel440 pixel441 pixel442 pixel443
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0       48      254      254      254       17
## 3        0        0        0        0        0        0        0        0
## 4        0        0       19      245       69        0        0        0
## 5        0        0        0        0      127      253      253      253
## 6       10      219      254       96        0        0        0        0
##   pixel444 pixel445 pixel446 pixel447 pixel448 pixel449 pixel450 pixel451
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5      129        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel452 pixel453 pixel454 pixel455 pixel456 pixel457 pixel458 pixel459
## 1        0        0        0        0        0        0       20      203
## 2        2      163      254      254      254       29        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0      234      169        0
## 5        0      254      253      253      253       99        0        0
## 6        0        0        0       30      249      204        0        0
##   pixel460 pixel461 pixel462 pixel463 pixel464 pixel465 pixel466 pixel467
## 1      253      248       76        0        0        0        0        0
## 2        0        0        0        0        0        0        0       48
## 3        9      254      254      184        0        0        0        0
## 4        0        0        0        0        0        0        3      199
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0       25      235      254       62
##   pixel468 pixel469 pixel470 pixel471 pixel472 pixel473 pixel474 pixel475
## 1        0        0        0        0        0        0        0        0
## 2      254      254      254       17        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4      182       10        0        0        0        0        0        0
## 5      139      253      253      253       90        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel476 pixel477 pixel478 pixel479 pixel480 pixel481 pixel482 pixel483
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0       94      254      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0      254      253      253
## 6        0        0        0        0        0        0        0       26
##   pixel484 pixel485 pixel486 pixel487 pixel488 pixel489 pixel490 pixel491
## 1        0       22      188      253      245       93        0        0
## 2      254      200       12        0        0        0        0        0
## 3        0        0        0        0        9      254      254      184
## 4        0      154      205        4        0        0       26       72
## 5      253       99        0        0        0        0        0        0
## 6      243      204        0        0        0        0        0        0
##   pixel492 pixel493 pixel494 pixel495 pixel496 pixel497 pixel498 pixel499
## 1        0        0        0        0        0        0        0        0
## 2        0        0       16      209      254      254      150        1
## 3        0        0        0        0        0        0        0        0
## 4      128      203      208      254      254      131        0        0
## 5        0        0        0       78      248      253      253      253
## 6       91      254      248       36        0        0        0        0
##   pixel500 pixel501 pixel502 pixel503 pixel504 pixel505 pixel506 pixel507
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        5        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel508 pixel509 pixel510 pixel511 pixel512 pixel513 pixel514 pixel515
## 1        0        0        0        0        0      103      253      253
## 2        0       15      206      254      254      254      202       66
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0       61      254      129
## 5        0      254      253      253      253      216       34        0
## 6        0        0        0       33      254      204        0        0
##   pixel516 pixel517 pixel518 pixel519 pixel520 pixel521 pixel522 pixel523
## 1      191        0        0        0        0        0        0        0
## 2        0        0        0        0        0       21      161      254
## 3        9      254      254      184        0        0        0        0
## 4      113      186      245      251      189       75       56      136
## 5        0        0        0        0        0        0       33      152
## 6        0        0        0       67      241      254      133        0
##   pixel524 pixel525 pixel526 pixel527 pixel528 pixel529 pixel530 pixel531
## 1        0        0        0        0        0        0        0        0
## 2      254      245       31        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4      254       73        0        0        0        0        0        0
## 5      253      253      253      107        1        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel532 pixel533 pixel534 pixel535 pixel536 pixel537 pixel538 pixel539
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0       60      212
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0      206      253      253
## 6        0        0        0        0        0        0        0       33
##   pixel540 pixel541 pixel542 pixel543 pixel544 pixel545 pixel546 pixel547
## 1       89      240      253      195       25        0        0        0
## 2      254      254      254      194       48       48       34       41
## 3        0        0        0        0      156      254      254      184
## 4        0       15      216      233      233      159      104       52
## 5      253      253      140        0        0        0        0        0
## 6      254      214        7        0        0        0       50      242
##   pixel548 pixel549 pixel550 pixel551 pixel552 pixel553 pixel554 pixel555
## 1        0        0        0        0        0        0        0        0
## 2       48      209      254      254      254      171        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0       38      254       73        0        0
## 5       30      139      234      253      253      253      154        2
## 6      254      194       24        0        0        0        0        0
##   pixel556 pixel557 pixel558 pixel559 pixel560 pixel561 pixel562 pixel563
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel564 pixel565 pixel566 pixel567 pixel568 pixel569 pixel570 pixel571
## 1        0        0        0       15      220      253      253       80
## 2        0        0        0       86      243      254      254      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0       16      205      253      253      253      250      208
## 6        0        0        0        5      193      254       78        0
##   pixel572 pixel573 pixel574 pixel575 pixel576 pixel577 pixel578 pixel579
## 1        0        0        0        0        0        0        0        0
## 2      254      254      233      243      254      254      254      254
## 3      185      255      255      184        0        0        0        0
## 4        0        0        0        0        0        0        0       18
## 5      106      106      106      200      237      253      253      253
## 6        0       19      128      254      195       36        0        0
##   pixel580 pixel581 pixel582 pixel583 pixel584 pixel585 pixel586 pixel587
## 1        0        0        0        0        0        0        0        0
## 2      254       86        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4      254       73        0        0        0        0        0        0
## 5      253      209       22        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel588 pixel589 pixel590 pixel591 pixel592 pixel593 pixel594 pixel595
## 1        0        0        0        0        0        0        0       94
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0       82      253
## 6        0        0        0        0        0        0        0        0
##   pixel596 pixel597 pixel598 pixel599 pixel600 pixel601 pixel602 pixel603
## 1      253      253      253       94        0        0        0        0
## 2      114      254      254      254      254      254      254      254
## 3        0        0        0        0      185      254      254      184
## 4        0        0        0        0        0        0        0        0
## 5      253      253      253      253      253      253      253      253
## 6      103      254      222       74      143      235      254      228
##   pixel604 pixel605 pixel606 pixel607 pixel608 pixel609 pixel610 pixel611
## 1        0        0        0        0        0        0        0        0
## 2      254      254      254      239       86       11        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0       18      254       73        0        0
## 5      253      253      253      253      209       22        0        0
## 6       83        0        0        0        0        0        0        0
##   pixel612 pixel613 pixel614 pixel615 pixel616 pixel617 pixel618 pixel619
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel620 pixel621 pixel622 pixel623 pixel624 pixel625 pixel626 pixel627
## 1        0        0        0       89      251      253      250      131
## 2        0        0        0        0       13      182      254      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        1       91      253      253      253      253
## 6        0        0        0        0       30      242      254      254
##   pixel628 pixel629 pixel630 pixel631 pixel632 pixel633 pixel634 pixel635
## 1        0        0        0        0        0        0        0        0
## 2      254      254      254      254      254      254      243       70
## 3      185      254      254      184        0        0        0        0
## 4        0        0        0        0        0        0        0        5
## 5      253      253      253      253      253      253      213       90
## 6      254      254      252       84        0        0        0        0
##   pixel636 pixel637 pixel638 pixel639 pixel640 pixel641 pixel642 pixel643
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4      206      106        0        0        0        0        0        0
## 5        7        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel644 pixel645 pixel646 pixel647 pixel648 pixel649 pixel650 pixel651
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        1
## 6        0        0        0        0        0        0        0        0
##   pixel652 pixel653 pixel654 pixel655 pixel656 pixel657 pixel658 pixel659
## 1      214      218       95        0        0        0        0        0
## 2        0        8       76      146      254      255      254      255
## 3        0        0        0        0       63      254      254       62
## 4        0        0        0        0        0        0        0        0
## 5       18      129      208      253      253      253      253      159
## 6        0       23       64      158      200      174       61        0
##   pixel660 pixel661 pixel662 pixel663 pixel664 pixel665 pixel666 pixel667
## 1        0        0        0        0        0        0        0        0
## 2      146       19       15        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0      186      159        0        0
## 5      129       90        4        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel668 pixel669 pixel670 pixel671 pixel672 pixel673 pixel674 pixel675
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel676 pixel677 pixel678 pixel679 pixel680 pixel681 pixel682 pixel683
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel684 pixel685 pixel686 pixel687 pixel688 pixel689 pixel690 pixel691
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        6
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel692 pixel693 pixel694 pixel695 pixel696 pixel697 pixel698 pixel699
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4      209      101        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel700 pixel701 pixel702 pixel703 pixel704 pixel705 pixel706 pixel707
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel708 pixel709 pixel710 pixel711 pixel712 pixel713 pixel714 pixel715
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel716 pixel717 pixel718 pixel719 pixel720 pixel721 pixel722 pixel723
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel724 pixel725 pixel726 pixel727 pixel728 pixel729 pixel730 pixel731
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel732 pixel733 pixel734 pixel735 pixel736 pixel737 pixel738 pixel739
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel740 pixel741 pixel742 pixel743 pixel744 pixel745 pixel746 pixel747
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel748 pixel749 pixel750 pixel751 pixel752 pixel753 pixel754 pixel755
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel756 pixel757 pixel758 pixel759 pixel760 pixel761 pixel762 pixel763
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel764 pixel765 pixel766 pixel767 pixel768 pixel769 pixel770 pixel771
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel772 pixel773 pixel774 pixel775 pixel776 pixel777 pixel778 pixel779
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel780 pixel781 pixel782 pixel783
## 1        0        0        0        0
## 2        0        0        0        0
## 3        0        0        0        0
## 4        0        0        0        0
## 5        0        0        0        0
## 6        0        0        0        0

Data:

  • There are 42000 available image
  • Variable target: number label
  • Variable predictor: 784 pixel
  • size of image: 28x28

2.3 Check range value of every pixel in data mnist

range(mnist[,-1])
## [1]   0 255

1.3 Conversion into Matrix

The data contains the pixel values stored in the data frame. However, we must convert the data into a matrix before we create a model. Convert the data to matrix format using the data.matrix() function

train_m <- data.matrix(mnist)
test_m <- data.matrix(test)

pixel value: 0 (black) ~ 255 (white)

2.4 Check target label

unique(mnist$label)
##  [1] 1 0 4 7 3 5 8 9 2 6

2.5 Check proportion of target variable

prop.table(table(mnist$label))
## 
##          0          1          2          3          4          5          6 
## 0.09838095 0.11152381 0.09945238 0.10359524 0.09695238 0.09035714 0.09850000 
##          7          8          9 
## 0.10478571 0.09673810 0.09971429

2.6 Image visualization

categories <- c("zero",
                "one",
                "two",
                "three",
                "four",
                "five",
                "six",
                "seven",
                "eight",
                "nine")
vizTrain <- function(input, idx){

  dimmax <- sqrt(ncol(mnist[,-1]))

  dimn <- ceiling(sqrt(nrow(input)))

  par(mfrow=c(dimn, dimn), mar=c(0, 0, 1.5, 0))
  
  for (i in 1:nrow(input)){
      m1 <- matrix(input[i,2:ncol(input)], nrow=dimmax, byrow=T)
      m1 <- apply(m1, 2, as.numeric)
      m1 <- t(apply(m1, 2, rev))
      image(1:dimmax, 
            1:dimmax, 
            m1, col=gray((0:255)/255), 
            xaxt = 'n',
            yaxt = 'n',
            main = paste(categories[mnist$label[idx + i - 1] + 1]))
  }

}

# visualisasi

vizTrain(input = mnist[1:25,], idx = 1)

head(mnist)
##   label pixel0 pixel1 pixel2 pixel3 pixel4 pixel5 pixel6 pixel7 pixel8 pixel9
## 1     1      0      0      0      0      0      0      0      0      0      0
## 2     0      0      0      0      0      0      0      0      0      0      0
## 3     1      0      0      0      0      0      0      0      0      0      0
## 4     4      0      0      0      0      0      0      0      0      0      0
## 5     0      0      0      0      0      0      0      0      0      0      0
## 6     0      0      0      0      0      0      0      0      0      0      0
##   pixel10 pixel11 pixel12 pixel13 pixel14 pixel15 pixel16 pixel17 pixel18
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel19 pixel20 pixel21 pixel22 pixel23 pixel24 pixel25 pixel26 pixel27
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel28 pixel29 pixel30 pixel31 pixel32 pixel33 pixel34 pixel35 pixel36
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel37 pixel38 pixel39 pixel40 pixel41 pixel42 pixel43 pixel44 pixel45
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel46 pixel47 pixel48 pixel49 pixel50 pixel51 pixel52 pixel53 pixel54
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel55 pixel56 pixel57 pixel58 pixel59 pixel60 pixel61 pixel62 pixel63
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel64 pixel65 pixel66 pixel67 pixel68 pixel69 pixel70 pixel71 pixel72
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel73 pixel74 pixel75 pixel76 pixel77 pixel78 pixel79 pixel80 pixel81
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel82 pixel83 pixel84 pixel85 pixel86 pixel87 pixel88 pixel89 pixel90
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel91 pixel92 pixel93 pixel94 pixel95 pixel96 pixel97 pixel98 pixel99
## 1       0       0       0       0       0       0       0       0       0
## 2       0       0       0       0       0       0       0       0       0
## 3       0       0       0       0       0       0       0       0       0
## 4       0       0       0       0       0       0       0       0       0
## 5       0       0       0       0       0       0       0       0       0
## 6       0       0       0       0       0       0       0       0       0
##   pixel100 pixel101 pixel102 pixel103 pixel104 pixel105 pixel106 pixel107
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel108 pixel109 pixel110 pixel111 pixel112 pixel113 pixel114 pixel115
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel116 pixel117 pixel118 pixel119 pixel120 pixel121 pixel122 pixel123
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0       18       30
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        1       25      130
## 6        0        0        0        0        0        0        0        0
##   pixel124 pixel125 pixel126 pixel127 pixel128 pixel129 pixel130 pixel131
## 1        0        0        0        0        0        0        0        0
## 2      137      137      192       86       72        1        0        0
## 3        3      141      139        3        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5      155      254      254      254      157       30        2        0
## 6        3      141      202      254      193       44        0        0
##   pixel132 pixel133 pixel134 pixel135 pixel136 pixel137 pixel138 pixel139
## 1      188      255       94        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel140 pixel141 pixel142 pixel143 pixel144 pixel145 pixel146 pixel147
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0      220      179
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel148 pixel149 pixel150 pixel151 pixel152 pixel153 pixel154 pixel155
## 1        0        0        0        0        0        0        0        0
## 2       13       86      250      254      254      254      254      217
## 3        0        0        0        0        9      254      254        8
## 4        6        0        0        0        0        0        0        0
## 5        8      103      253      253      253      253      253      253
## 6        0        0        0        5      165      254      179      163
##   pixel156 pixel157 pixel158 pixel159 pixel160 pixel161 pixel162 pixel163
## 1        0        0        0      191      250      253       93        0
## 2      246      151       32        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        9       77        0        0        0        0        0
## 5      253      253      114        2        0        0        0        0
## 6      249      244       72        0        0        0        0        0
##   pixel164 pixel165 pixel166 pixel167 pixel168 pixel169 pixel170 pixel171
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel172 pixel173 pixel174 pixel175 pixel176 pixel177 pixel178 pixel179
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0       16      179      254      254      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0       28      247       17        0        0        0
## 5        0        0        0       11      208      253      253      253
## 6        0        0        0        0        0        0        0      135
##   pixel180 pixel181 pixel182 pixel183 pixel184 pixel185 pixel186 pixel187
## 1        0        0        0        0        0        0      123      248
## 2      254      254      254      254      254      254      231       54
## 3        9      254      254        8        0        0        0        0
## 4        0        0        0        0        0       27      202        0
## 5      253      253      253      253      253      253      253      107
## 6      254      150        0        0      189      254      243       31
##   pixel188 pixel189 pixel190 pixel191 pixel192 pixel193 pixel194 pixel195
## 1      253      167       10        0        0        0        0        0
## 2       15        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel196 pixel197 pixel198 pixel199 pixel200 pixel201 pixel202 pixel203
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0       72
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0      242
## 5        0        0        0        0        0        0        0       31
## 6        0        0        0        0        0        0        0        0
##   pixel204 pixel205 pixel206 pixel207 pixel208 pixel209 pixel210 pixel211
## 1        0        0        0        0        0        0        0        0
## 2      254      254      254      254      254      254      254      254
## 3        0        0        0        0        9      254      254      106
## 4      155        0        0        0        0        0        0        0
## 5      253      253      253      253      253      253      253      253
## 6        0        0       82      248      209        5        0        0
##   pixel212 pixel213 pixel214 pixel215 pixel216 pixel217 pixel218 pixel219
## 1        0       80      247      253      208       13        0        0
## 2      254      254      254      254      104        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0       27      254       63        0        0        0        0
## 5      253      253      253      215      101        3        0        0
## 6      164      236      254      115        0        0        0        0
##   pixel220 pixel221 pixel222 pixel223 pixel224 pixel225 pixel226 pixel227
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel228 pixel229 pixel230 pixel231 pixel232 pixel233 pixel234 pixel235
## 1        0        0        0        0        0        0        0        0
## 2        0        0       61      191      254      254      254      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0      160      207        6        0        0
## 5        0        0       23      210      253      253      253      248
## 6        0        0        0        0        0        8      211      254
##   pixel236 pixel237 pixel238 pixel239 pixel240 pixel241 pixel242 pixel243
## 1        0        0        0        0       29      207      253      235
## 2      254      109       83      199      254      254      254      254
## 3        9      254      254      184        0        0        0        0
## 4        0        0        0        0        0       27      254       65
## 5      161      222      222      246      253      253      253      253
## 6       58        0        0        0        0       33      230      212
##   pixel244 pixel245 pixel246 pixel247 pixel248 pixel249 pixel250 pixel251
## 1       77        0        0        0        0        0        0        0
## 2      243       85        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5      253       39        0        0        0        0        0        0
## 6        6        0        0        0        0        0        0        0
##   pixel252 pixel253 pixel254 pixel255 pixel256 pixel257 pixel258 pixel259
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0      172      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0      127
## 5        0        0        0        0        0        0      136      253
## 6        0        0        0        0        0        0        0        0
##   pixel260 pixel261 pixel262 pixel263 pixel264 pixel265 pixel266 pixel267
## 1        0        0        0        0        0        0        0       54
## 2      254      254      202      147      147       45        0       11
## 3        0        0        0        0        9      254      254      184
## 4      254       21        0        0        0        0        0        0
## 5      253      253      229       77        0        0        0       70
## 6        0      119      254      156        3        0        0        0
##   pixel268 pixel269 pixel270 pixel271 pixel272 pixel273 pixel274 pixel275
## 1      209      253      253       88        0        0        0        0
## 2       29      200      254      254      254      171        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0       20      239       65        0        0        0        0
## 5      218      253      253      253      253      215       91        0
## 6        0       18      230      254       33        0        0        0
##   pixel276 pixel277 pixel278 pixel279 pixel280 pixel281 pixel282 pixel283
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel284 pixel285 pixel286 pixel287 pixel288 pixel289 pixel290 pixel291
## 1        0        0        0        0        0        0        0        0
## 2        0        1      174      254      254       89       67        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0       77      254       21        0        0
## 5        0        5      214      253      253      253      195        0
## 6        0        0        0        0       10      212      254       35
##   pixel292 pixel293 pixel294 pixel295 pixel296 pixel297 pixel298 pixel299
## 1        0        0       93      254      253      238      170       17
## 2        0        0        0        0        0      128      252      254
## 3        9      254      254      184        0        0        0        0
## 4        0        0        0        0        0        0      195       65
## 5        0        0        0        0      104      224      253      253
## 6        0        0        0        0        0       33      254      254
##   pixel300 pixel301 pixel302 pixel303 pixel304 pixel305 pixel306 pixel307
## 1        0        0        0        0        0        0        0        0
## 2      254      212       76        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5      253      253      215       29        0        0        0        0
## 6       33        0        0        0        0        0        0        0
##   pixel308 pixel309 pixel310 pixel311 pixel312 pixel313 pixel314 pixel315
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0       47      254      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0       70
## 5        0        0        0        0        0      116      253      253
## 6        0        0        0        0        0        0        0        0
##   pixel316 pixel317 pixel318 pixel319 pixel320 pixel321 pixel322 pixel323
## 1        0        0        0        0        0       23      210      254
## 2      254       29        0        0        0        0        0        0
## 3        0        0        0        0        6      185      254      184
## 4      254       21        0        0        0        0        0        0
## 5      253      247       75        0        0        0        0        0
## 6      116      254      154        3        0        0        0        0
##   pixel324 pixel325 pixel326 pixel327 pixel328 pixel329 pixel330 pixel331
## 1      253      159        0        0        0        0        0        0
## 2        0        0       83      254      254      254      153        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0      195      142        0        0        0        0
## 5        0       26      200      253      253      253      253      216
## 6        0       33      254      254       33        0        0        0
##   pixel332 pixel333 pixel334 pixel335 pixel336 pixel337 pixel338 pixel339
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        4        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel340 pixel341 pixel342 pixel343 pixel344 pixel345 pixel346 pixel347
## 1        0        0        0        0        0        0        0        0
## 2        0       80      254      254      240       24        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0       56      251       21        0        0
## 5        0      254      253      253      253      195        0        0
## 6        0        0        0        0      124      254      115        0
##   pixel348 pixel349 pixel350 pixel351 pixel352 pixel353 pixel354 pixel355
## 1       16      209      253      254      240       81        0        0
## 2        0        0        0        0        0        0       25      240
## 3        0       89      254      184        0        0        0        0
## 4        0        0        0        0        0        0      195      227
## 5        0        0        0        0        0        0       26      200
## 6        0        0        0        0        0      160      254      239
##   pixel356 pixel357 pixel358 pixel359 pixel360 pixel361 pixel362 pixel363
## 1        0        0        0        0        0        0        0        0
## 2      254      254      153        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5      253      253      253      253        5        0        0        0
## 6       23        0        0        0        0        0        0        0
##   pixel364 pixel365 pixel366 pixel367 pixel368 pixel369 pixel370 pixel371
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0       64      254      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0      254      253      253
## 6        0        0        0        0        0        0        0        0
##   pixel372 pixel373 pixel374 pixel375 pixel376 pixel377 pixel378 pixel379
## 1        0        0        0        0       27      253      253      254
## 2      186        7        0        0        0        0        0        0
## 3        0        0        0        0        4      146      254      184
## 4      222      153        5        0        0        0        0        0
## 5      253       99        0        0        0        0        0        0
## 6      203      254       35        0        0        0        0        0
##   pixel380 pixel381 pixel382 pixel383 pixel384 pixel385 pixel386 pixel387
## 1       13        0        0        0        0        0        0        0
## 2        0        0        0      166      254      254      224       12
## 3        0        0        0        0        0        0        0        0
## 4        0        0      120      240       13        0        0        0
## 5        0        0        0       25      231      253      253      253
## 6        0      197      254      178        0        0        0        0
##   pixel388 pixel389 pixel390 pixel391 pixel392 pixel393 pixel394 pixel395
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5       36        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel396 pixel397 pixel398 pixel399 pixel400 pixel401 pixel402 pixel403
## 1        0        0        0        0        0        0        0       20
## 2       14      232      254      254      254       29        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0       67      251       40        0
## 5        0      254      253      253      253       99        0        0
## 6        0        0        0       23      239      221       11        0
##   pixel404 pixel405 pixel406 pixel407 pixel408 pixel409 pixel410 pixel411
## 1      206      254      254      198        7        0        0        0
## 2        0        0        0        0        0        0        0       75
## 3        9      254      254      184        0        0        0        0
## 4        0        0        0        0        0        0       94      255
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0      198      255      123
##   pixel412 pixel413 pixel414 pixel415 pixel416 pixel417 pixel418 pixel419
## 1        0        0        0        0        0        0        0        0
## 2      254      254      254       17        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4       69        0        0        0        0        0        0        0
## 5      223      253      253      253      129        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel420 pixel421 pixel422 pixel423 pixel424 pixel425 pixel426 pixel427
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0       18      254      254      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0      254      253      253
## 6        0        0        0        0        0        0        0       23
##   pixel428 pixel429 pixel430 pixel431 pixel432 pixel433 pixel434 pixel435
## 1        0        0        0      168      253      253      196        7
## 2      254       29        0        0        0        0        0        0
## 3        0        0        0        0        9      254      254      184
## 4        0      234      184        0        0        0        0        0
## 5      253       99        0        0        0        0        0        0
## 6      238      178        0        0        0        0        0        0
##   pixel436 pixel437 pixel438 pixel439 pixel440 pixel441 pixel442 pixel443
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0       48      254      254      254       17
## 3        0        0        0        0        0        0        0        0
## 4        0        0       19      245       69        0        0        0
## 5        0        0        0        0      127      253      253      253
## 6       10      219      254       96        0        0        0        0
##   pixel444 pixel445 pixel446 pixel447 pixel448 pixel449 pixel450 pixel451
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5      129        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel452 pixel453 pixel454 pixel455 pixel456 pixel457 pixel458 pixel459
## 1        0        0        0        0        0        0       20      203
## 2        2      163      254      254      254       29        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0      234      169        0
## 5        0      254      253      253      253       99        0        0
## 6        0        0        0       30      249      204        0        0
##   pixel460 pixel461 pixel462 pixel463 pixel464 pixel465 pixel466 pixel467
## 1      253      248       76        0        0        0        0        0
## 2        0        0        0        0        0        0        0       48
## 3        9      254      254      184        0        0        0        0
## 4        0        0        0        0        0        0        3      199
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0       25      235      254       62
##   pixel468 pixel469 pixel470 pixel471 pixel472 pixel473 pixel474 pixel475
## 1        0        0        0        0        0        0        0        0
## 2      254      254      254       17        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4      182       10        0        0        0        0        0        0
## 5      139      253      253      253       90        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel476 pixel477 pixel478 pixel479 pixel480 pixel481 pixel482 pixel483
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0       94      254      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0      254      253      253
## 6        0        0        0        0        0        0        0       26
##   pixel484 pixel485 pixel486 pixel487 pixel488 pixel489 pixel490 pixel491
## 1        0       22      188      253      245       93        0        0
## 2      254      200       12        0        0        0        0        0
## 3        0        0        0        0        9      254      254      184
## 4        0      154      205        4        0        0       26       72
## 5      253       99        0        0        0        0        0        0
## 6      243      204        0        0        0        0        0        0
##   pixel492 pixel493 pixel494 pixel495 pixel496 pixel497 pixel498 pixel499
## 1        0        0        0        0        0        0        0        0
## 2        0        0       16      209      254      254      150        1
## 3        0        0        0        0        0        0        0        0
## 4      128      203      208      254      254      131        0        0
## 5        0        0        0       78      248      253      253      253
## 6       91      254      248       36        0        0        0        0
##   pixel500 pixel501 pixel502 pixel503 pixel504 pixel505 pixel506 pixel507
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        5        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel508 pixel509 pixel510 pixel511 pixel512 pixel513 pixel514 pixel515
## 1        0        0        0        0        0      103      253      253
## 2        0       15      206      254      254      254      202       66
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0       61      254      129
## 5        0      254      253      253      253      216       34        0
## 6        0        0        0       33      254      204        0        0
##   pixel516 pixel517 pixel518 pixel519 pixel520 pixel521 pixel522 pixel523
## 1      191        0        0        0        0        0        0        0
## 2        0        0        0        0        0       21      161      254
## 3        9      254      254      184        0        0        0        0
## 4      113      186      245      251      189       75       56      136
## 5        0        0        0        0        0        0       33      152
## 6        0        0        0       67      241      254      133        0
##   pixel524 pixel525 pixel526 pixel527 pixel528 pixel529 pixel530 pixel531
## 1        0        0        0        0        0        0        0        0
## 2      254      245       31        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4      254       73        0        0        0        0        0        0
## 5      253      253      253      107        1        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel532 pixel533 pixel534 pixel535 pixel536 pixel537 pixel538 pixel539
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0       60      212
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0      206      253      253
## 6        0        0        0        0        0        0        0       33
##   pixel540 pixel541 pixel542 pixel543 pixel544 pixel545 pixel546 pixel547
## 1       89      240      253      195       25        0        0        0
## 2      254      254      254      194       48       48       34       41
## 3        0        0        0        0      156      254      254      184
## 4        0       15      216      233      233      159      104       52
## 5      253      253      140        0        0        0        0        0
## 6      254      214        7        0        0        0       50      242
##   pixel548 pixel549 pixel550 pixel551 pixel552 pixel553 pixel554 pixel555
## 1        0        0        0        0        0        0        0        0
## 2       48      209      254      254      254      171        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0       38      254       73        0        0
## 5       30      139      234      253      253      253      154        2
## 6      254      194       24        0        0        0        0        0
##   pixel556 pixel557 pixel558 pixel559 pixel560 pixel561 pixel562 pixel563
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel564 pixel565 pixel566 pixel567 pixel568 pixel569 pixel570 pixel571
## 1        0        0        0       15      220      253      253       80
## 2        0        0        0       86      243      254      254      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0       16      205      253      253      253      250      208
## 6        0        0        0        5      193      254       78        0
##   pixel572 pixel573 pixel574 pixel575 pixel576 pixel577 pixel578 pixel579
## 1        0        0        0        0        0        0        0        0
## 2      254      254      233      243      254      254      254      254
## 3      185      255      255      184        0        0        0        0
## 4        0        0        0        0        0        0        0       18
## 5      106      106      106      200      237      253      253      253
## 6        0       19      128      254      195       36        0        0
##   pixel580 pixel581 pixel582 pixel583 pixel584 pixel585 pixel586 pixel587
## 1        0        0        0        0        0        0        0        0
## 2      254       86        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4      254       73        0        0        0        0        0        0
## 5      253      209       22        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel588 pixel589 pixel590 pixel591 pixel592 pixel593 pixel594 pixel595
## 1        0        0        0        0        0        0        0       94
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0       82      253
## 6        0        0        0        0        0        0        0        0
##   pixel596 pixel597 pixel598 pixel599 pixel600 pixel601 pixel602 pixel603
## 1      253      253      253       94        0        0        0        0
## 2      114      254      254      254      254      254      254      254
## 3        0        0        0        0      185      254      254      184
## 4        0        0        0        0        0        0        0        0
## 5      253      253      253      253      253      253      253      253
## 6      103      254      222       74      143      235      254      228
##   pixel604 pixel605 pixel606 pixel607 pixel608 pixel609 pixel610 pixel611
## 1        0        0        0        0        0        0        0        0
## 2      254      254      254      239       86       11        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0       18      254       73        0        0
## 5      253      253      253      253      209       22        0        0
## 6       83        0        0        0        0        0        0        0
##   pixel612 pixel613 pixel614 pixel615 pixel616 pixel617 pixel618 pixel619
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel620 pixel621 pixel622 pixel623 pixel624 pixel625 pixel626 pixel627
## 1        0        0        0       89      251      253      250      131
## 2        0        0        0        0       13      182      254      254
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        1       91      253      253      253      253
## 6        0        0        0        0       30      242      254      254
##   pixel628 pixel629 pixel630 pixel631 pixel632 pixel633 pixel634 pixel635
## 1        0        0        0        0        0        0        0        0
## 2      254      254      254      254      254      254      243       70
## 3      185      254      254      184        0        0        0        0
## 4        0        0        0        0        0        0        0        5
## 5      253      253      253      253      253      253      213       90
## 6      254      254      252       84        0        0        0        0
##   pixel636 pixel637 pixel638 pixel639 pixel640 pixel641 pixel642 pixel643
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4      206      106        0        0        0        0        0        0
## 5        7        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel644 pixel645 pixel646 pixel647 pixel648 pixel649 pixel650 pixel651
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        1
## 6        0        0        0        0        0        0        0        0
##   pixel652 pixel653 pixel654 pixel655 pixel656 pixel657 pixel658 pixel659
## 1      214      218       95        0        0        0        0        0
## 2        0        8       76      146      254      255      254      255
## 3        0        0        0        0       63      254      254       62
## 4        0        0        0        0        0        0        0        0
## 5       18      129      208      253      253      253      253      159
## 6        0       23       64      158      200      174       61        0
##   pixel660 pixel661 pixel662 pixel663 pixel664 pixel665 pixel666 pixel667
## 1        0        0        0        0        0        0        0        0
## 2      146       19       15        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0      186      159        0        0
## 5      129       90        4        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel668 pixel669 pixel670 pixel671 pixel672 pixel673 pixel674 pixel675
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel676 pixel677 pixel678 pixel679 pixel680 pixel681 pixel682 pixel683
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel684 pixel685 pixel686 pixel687 pixel688 pixel689 pixel690 pixel691
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        6
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel692 pixel693 pixel694 pixel695 pixel696 pixel697 pixel698 pixel699
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4      209      101        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel700 pixel701 pixel702 pixel703 pixel704 pixel705 pixel706 pixel707
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel708 pixel709 pixel710 pixel711 pixel712 pixel713 pixel714 pixel715
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel716 pixel717 pixel718 pixel719 pixel720 pixel721 pixel722 pixel723
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel724 pixel725 pixel726 pixel727 pixel728 pixel729 pixel730 pixel731
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel732 pixel733 pixel734 pixel735 pixel736 pixel737 pixel738 pixel739
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel740 pixel741 pixel742 pixel743 pixel744 pixel745 pixel746 pixel747
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel748 pixel749 pixel750 pixel751 pixel752 pixel753 pixel754 pixel755
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel756 pixel757 pixel758 pixel759 pixel760 pixel761 pixel762 pixel763
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel764 pixel765 pixel766 pixel767 pixel768 pixel769 pixel770 pixel771
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel772 pixel773 pixel774 pixel775 pixel776 pixel777 pixel778 pixel779
## 1        0        0        0        0        0        0        0        0
## 2        0        0        0        0        0        0        0        0
## 3        0        0        0        0        0        0        0        0
## 4        0        0        0        0        0        0        0        0
## 5        0        0        0        0        0        0        0        0
## 6        0        0        0        0        0        0        0        0
##   pixel780 pixel781 pixel782 pixel783
## 1        0        0        0        0
## 2        0        0        0        0
## 3        0        0        0        0
## 4        0        0        0        0
## 5        0        0        0        0
## 6        0        0        0        0

3. Cross Validation

Split the data:

  • train: 80%
  • test: 20%

Use initial_split() from package rsample:

library(rsample)
set.seed(100)

idx <- initial_split(data = mnist, prop = 0.8, strata = "label")
train <- training(idx)
test <- testing(idx)

4. Data pre-processing

Before using model with Keras, there are some works that need to be prepared:

  • Split predictor with target variable
  • Change data format into array. From data.frame -> matrix -> array
  • Do one-hot encoding if the target variable is a category
  • Scalling the data

Split target-predictor and also do scalling Scalling by dividing with number 255 so that data range that we have will be from 0 to 1.

# Change data to matrix

train <- as.matrix(train)
test <- as.matrix(test)
#predictor

train_x <- train[,-1]
test_x <- test[,-1]

# target

train_y <- train[,1]
test_y <- test[,1]

Processing predictor: Change matrix into array

Framework keras accept data in array format. So data predictor in the matrix format should be change into array by using array_reshape().

# predictor
# array 2D
train_x_keras <- array_reshape(x = train_x, 
                               dim = dim(train_x)) 
test_x_keras <- array_reshape(x = test_x, 
                              dim = dim(test_x))

Processing target: One Hot Encoding

Change target (categorical) into variable one hot encoding using function to_categorical():

# process data y (target) one hot encoding

train_y_keras <- to_categorical(train_y)
## Loaded Tensorflow version 2.5.0
test_y_keras <- to_categorical(test_y)
head(train_y)
##  1  2  5  6 13 16 
##  1  0  0  0  1  1
head(train_y_keras)
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## [1,]    0    1    0    0    0    0    0    0    0     0
## [2,]    1    0    0    0    0    0    0    0    0     0
## [3,]    1    0    0    0    0    0    0    0    0     0
## [4,]    1    0    0    0    0    0    0    0    0     0
## [5,]    0    1    0    0    0    0    0    0    0     0
## [6,]    0    1    0    0    0    0    0    0    0     0
range(mnist[,-1])
## [1]   0 255

min-max normalization -> (x - 0)/(255 - 0) = x/255

min: 0 max: 255

Result of min max normalization:

# min max normalization


train_x_keras <- train_x_keras/255
test_x_keras <- test_x_keras/255

5. Model Building KERAS

Step in the making of neural network/deep learning model in Keras:

  • Define Architecture
  • Compile with training parameters
  • Fitting (training) Model
  • Define Architecture

In this step we will build model architecture, include defining layers & nodes and also activation function inside of it.

# keras initialization
model <- keras_model_sequential()

Note: - keras_model_sequential() is first initialization in the process of building a model - If we want to change small parameter in the model, we should rerun keras_model_sequential()

Keras model sequential build architecture model layer by layer. Here is some arguments that we can use:

  • layer_dense: making layer that fully connected for input, hidden, until output layer.
  • input_shape: defining the amount of nodes inside input layer; in the first layer_dense only
  • units: defining the amount of nodes inside the layer
  • activation: defining activation function that will be used
  • name: for layer naming
set.seed(100)
initializer <- initializer_random_normal(seed = 100)


model %>% 
  layer_dense(input_shape = ncol(train_x_keras), # input
              units = 128, activation = "relu", name = "hidden_1",
              kernel_initializer = initializer,
              bias_initializer = initializer) %>%  # hidden layer 1
  layer_dense(units = 64, activation = "relu", name = "hidden_2",
              kernel_initializer = initializer,
              bias_initializer = initializer) %>% # hidden layer 2
  layer_dense(units = 10, activation = "softmax", name = "output")
summary(model)
## Model: "sequential"
## ________________________________________________________________________________
## Layer (type)                        Output Shape                    Param #     
## ================================================================================
## hidden_1 (Dense)                    (None, 128)                     100480      
## ________________________________________________________________________________
## hidden_2 (Dense)                    (None, 64)                      8256        
## ________________________________________________________________________________
## output (Dense)                      (None, 10)                      650         
## ================================================================================
## Total params: 109,386
## Trainable params: 109,386
## Non-trainable params: 0
## ________________________________________________________________________________

5.1 Compile a Model

In this step we will combine architecture that already made with other important parameter for making the desire model by using function compile():

  1. Loss: cost function/error that we used:
  • multiclass classfication: categorical_crossentropy
  • biner classification: binary_crossentropy.
  • regression: mean_square_error
  1. Optimizer: back propagation method
  • optimizer_sgd
  • optimizer_adam
  1. Metric: metrics model performance that we used; for multi-class classification using accuracy
# compile model
model %>% 
  compile(loss = "categorical_crossentropy",
          optimizer = optimizer_sgd(lr = 0.001),
          metric = "accuracy")
## Warning in backcompat_fix_rename_lr_to_learning_rate(...): the `lr` argument has
## been renamed to `learning_rate`.

5.2 Fit (Training Model)

After making a model, we should trained the model using data_train. We can use function fit() with parameter:

  • variable predictor train
  • variable target train
  • batch_size: amount of data per batch that we used for training model
  • epoch: 1 process cycle of training a model using all the data
# fitting a model 
history <- model %>% 
  fit(train_x_keras,
      train_y_keras,
      epoch = 30, 
      batch_size = 128)

Plotting Model:

plot(history)
## `geom_smooth()` using formula 'y ~ x'

Check information in the last epoch (30), to see the accuracy of data train

history$metrics$accuracy[30]
## [1] 0.8616287

6. Predict

Doing prediction using data test test_x_keras by using function predict_classes

library(tensorflow)
## 
## Attaching package: 'tensorflow'
## The following object is masked from 'package:caret':
## 
##     train
# Doing prediction

prediction <- predict_classes(model, test_x_keras)
## Warning in predict_classes(model, test_x_keras): `predict_classes()` is deprecated and and was removed from tensorflow in version 2.6.
## Please update your code:
##   * If your model does multi-class classification:
##     (e.g. if it uses a `softmax` last-layer activation).
## 
##       model %>% predict(x) %>% k_argmax()
## 
##   * if your model does binary classification
##     (e.g. if it uses a `sigmoid` last-layer activation).
## 
##       model %>% predict(x) %>% `>`(0.5) %>% k_cast("int32")
# see prediction results in the first 5 row

prediction[1:5]
## [1] 1 3 9 3 7

7. Evaluation

Evaluation to see how good the prediction results using confusionMatrix(): *for case multiclass classification, we can just used accuration metric for evaluate the model

library(caret)

confusionMatrix(as.factor(prediction), reference = as.factor(test_y))
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction   0   1   2   3   4   5   6   7   8   9
##          0 783   0  11   6   2  19  10  11   2   7
##          1   0 892  17   6   6  15  12  15  21   7
##          2   3   5 715  21   3  10  14  11  20   2
##          3   5   5  17 730   1  60   1   3  41  13
##          4   0   1  22   2 689  14   9   6   6  55
##          5  15   0   1  42   0 561  17   1  36   2
##          6  11   1  24   7  17  24 745   0   9   0
##          7   0   0  12  11   2   3   0 802   4  43
##          8  10  18  25  32   8  34   5   7 637  18
##          9   1   0   5  15  85  14   0  44  26 702
## 
## Overall Statistics
##                                           
##                Accuracy : 0.8636          
##                  95% CI : (0.8561, 0.8709)
##     No Information Rate : 0.1097          
##     P-Value [Acc > NIR] : < 2.2e-16       
##                                           
##                   Kappa : 0.8484          
##                                           
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: 0 Class: 1 Class: 2 Class: 3 Class: 4 Class: 5
## Sensitivity           0.94565   0.9675  0.84217  0.83716  0.84748  0.74403
## Specificity           0.99102   0.9868  0.98822  0.98061  0.98485  0.98509
## Pos Pred Value        0.92009   0.9001  0.88930  0.83333  0.85697  0.83111
## Neg Pred Value        0.99404   0.9960  0.98236  0.98113  0.98368  0.97502
## Prevalence            0.09855   0.1097  0.10105  0.10378  0.09676  0.08974
## Detection Rate        0.09319   0.1062  0.08510  0.08688  0.08200  0.06677
## Detection Prevalence  0.10129   0.1179  0.09569  0.10426  0.09569  0.08034
## Balanced Accuracy     0.96834   0.9771  0.91519  0.90888  0.91616  0.86456
##                      Class: 6 Class: 7 Class: 8 Class: 9
## Sensitivity           0.91636  0.89111  0.79426  0.82686
## Specificity           0.98775  0.99000  0.97934  0.97484
## Pos Pred Value        0.88902  0.91448  0.80227  0.78700
## Neg Pred Value        0.99101  0.98698  0.97831  0.98043
## Prevalence            0.09676  0.10712  0.09545  0.10105
## Detection Rate        0.08867  0.09545  0.07582  0.08355
## Detection Prevalence  0.09974  0.10438  0.09450  0.10617
## Balanced Accuracy     0.95205  0.94056  0.88680  0.90085
model %>% evaluate(test_x_keras, test_y_keras,verbose = 0)
##      loss  accuracy 
## 0.5491816 0.8636039

Accuracy of data test is 86%

Evaluate the model by visualizing the results:

plotResults <- function(images, preds){

  x <- ceiling(sqrt(length(images)))
  par(mfrow=c(x,x), mar=c(0, 0, 1.5, 0))
  
  for (i in images){
    m <- matrix(test[i,-1], nrow=28, byrow=TRUE)
    m <- apply(m, 2, rev)
    
    predicted_label <- prediction[i]
    true_label <- test_y[i]
    if (predicted_label == true_label) {
      color <- 'darkgreen' 
    } else {
      color <- 'red'
    }
    
    image(t(m), col=gray((0:255)/255), axes=FALSE,
          main = paste0(categories[predicted_label + 1], " (",
                        categories[true_label + 1], ")"),
          col.main = color)
  }

}
plotResults(images = 1:49, preds = prediction)

  • accuracy data train = 86%

  • accuracy data test = 86%

the results is accurate and balance enough between data train and data test