An Analytica model that recognizes images
I had a lot of fun building and playing with an Analytica model that analyses the pixels of an image to figure out what it is an image of. It implements the resnet18 model, a residual network model introduced by
- Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun, "Deep Residual Learning for Image Recognition", arXiv:1512.03385
This residual network architecture swept a large number of the challenges at the 2016 ImageNet competition. My tiny contribution here is that I believe I'm the first person to implement a deep learning model like this within Analytica. It was a fun diversion, and its fun to play with, and kind of neat to see it actually running in Analytica.
This model is way off topic for the types of applications Analytica is usually applied to. Analytica is designed to help people build transparent models to help with decisions that typically involve novel situations with little or no historic precedent. In contrast, here I've leveraged a machine learning algorithm to learn huge arrays of numeric weights to classify the input (not really a decision) based on past training data that should bear similar regularities to future imputs. So it is kind of the opposite on every point! Nevertheless, it was fun to do and interesting and educational to see running entirely in Analytica.
I hope you enjoy.
The model is available for download here: resnet18.zip (44MB). The model currently requires Analytica 5.1 or later, and the Enterprise edition or better. (The Enterprise edition requirement is just due to the functions I used to read in the pre-trained network weights after the model is loaded). Update: I've also added squeezenet.zip (28KB) which is a different layer architecture that achieves almost the same accuracy with fewer layers and less computation.» Back