Train CIFAR-10 CNN | aiarts.week05

This assignment is an exercise on training CIFAR-10 CNN on our own machine. Here is a complete log of my attempt on this matter.

Machine Specs

machine specs 01machine.specs.02

I am training on a MacBook Air (produced in early 2015), with a macOS Mojave version 10.14.6, and a 1.6 GHz Intel Core i5 CPU.

*This machine is equipped with an Intel HD Graphics 6000 GPU, but I believe it doesn’t meet the bar for our training tasks, therefore I chose to proceed this training task on the CPU.

Training Setup

batch_size = 512
num_classes = 10
epochs = 30

Total Time Spent

Data downloading time
 
Data download:  30min
Training:  1h 50min in total;  230s/epoch, 4ms/sample on average
 

Runtime Performance & Outcome

Full Training Process

Final Outcome:

Test loss: 1.0597462123870849
Test accuracy: 0.6278
 

Reflection

In this training task, I adopted a relatively large epoch count and batch size, because I was really curious what the training performance will be like with a medium-weight task on my machine.

Data downloading surprisingly enough took a very long time, probably because of the data’s size and my network condition.

Training also took a considerably long time, but it’s actually a lot better than I’d expected, given the number of epochs and batch size I choose. Training took approximately 4~5ms/sample, and that makes around 230s/epoch, since I set 50000 samples per epoch.

As the training went through more and more epochs, it’s very easy to see that the loss value steadily decreased, from 2.1606 in the first epoch, to 1.2— in the 30th epoch, with a declining step ranging from 0.01 to 0.12 per epoch. Concurrently, the accuracy value increased steadily over each epoch trained, and went from 0.1990 to 0.6278 over 30 epochs. It is clear that the more epochs the training goes through, the better the outcomes are. It’s really a fun thing to watch how these statistics change over time, and I’ really curious to see where the limit lies for this type of training in terms of loss and accuracy.

Reflection on Neural Network & the Brain | aiarts.week04

For all those who’re newly exposed to Machine Learning, it’s quite common to run into the a simple but puzzling question: why is this thing called a Neural Network, and what does it have to do with the brain?

Despite a rather opposite first impression, after building a more composed knowledge set on this matter, I’ve come to believe that the relationship between Neural Network and the prototype of its name — the human brain, is circumscribed down to a figurative and superficial level; in other words, other than a certain level of resemblance ( graphically and cognitively ) between a Neural Network graph and the brain’s neurons, these two entities can’t be compared or related to each other on any deeper level.

*Due to research topic choices, the Neural Network discussed here is limited to Convolutional Neural Networks, and will be referred to as CNN.

Continue reading “Reflection on Neural Network & the Brain | aiarts.week04”

Hellooo ml5.js | aiarts.week02

This week I introduced ml5.js to myself by playing with its examples and digging around its documentation. The examples and the results that they’re able to generate on the fly is fascinating, and they led to many rather inspiring findings.

ml5.index

Following are a few examples:

imageClassifier()

The image classifier is a very classic example of how trained models can be put into meaningful usage. From the cloud, ml5.p5 accesses a model, which is pre-trained with approximately 15 million images from imageNet. ImageNet is one of my unexpected findings, as it seems to be a rich and easy-to-use database for model training.

I wonder if imageNet’s pool of categories are ever updated?

Continue reading “Hellooo ml5.js | aiarts.week02”

Sophia Crespo: Trauma Doll | aiarts.week01

Sophia Crespo: Trauma Doll

A short intro.

Sophia Crespo is a media and net artists based in Berlin. Many of her works are driven by an interest in bio inspired technologies and human-machine boundaries. 

Trauma Doll, a project started in 2017, is an algorithm-powered doll that “suffers” from PTSD, anxiety, depression, and other mental health issues. “The whole idea is playing with pattern recognition combining every field possible—and that’s what Trauma Doll does, she sees patterns everywhere in the web and connects them,” Crespo explains. “It’s up to the consumer whether they see the patterns or not.”

With a growing collection of generated collages, Trauma Doll brings forward forms of expression that tap into a larger societal discussion of how our mental and emotional landscapes are increasingly influenced by digital technologies.