5 ms·
How to run a state-of-the-art image classifier on an iPhone
- steeve 12y agoOn a side note, libccv is absolutely amazing, especially the SWT text extractor.
- oostevo 12y agoNice! When I was playing with convolutional neural networks a while ago, I found the following tutorial to be a good introduction to the topic: http://deeplearning.net/tutorial/lenet.html http://deeplearning.net/tutorial/lenet.html
- Someone1234 12y agoThis seems like it would also have applications when utilised on a large cluster of inexpensive machines (for "cloud" based services and similar).
- WhitneyLand 12y agoIt's an intriguing result good job. Are there many non-edge cases where you'd prefer this over a cloud service?
- mrfusion 12y agoHow do you load this onto a phone?
- sp332 12y agoLoad this into Xcode https://github.com/liuliu/klaus https://github.com/liuliu/klaus build the app, and put it on your phone.
- bglazer 12y ago"The beautiful part of using PNG file to store parameters is that all optimization techniques available to PNG is now available to us. The generated PNG file can be further reduced with pngcrush -brute. In fact, 10% data file size reduced with pngcrush." I thought this was a cool hack for reducing the memory size of the model. Is this an established technique for storing parameters? Are there known better ways to compress the model?
- TheLoneWolfling 12y agoYou'd probably get the same or better compression with a general-purpose compression algorithm, much less one specialized to the purpose. PNG optimizers are not exactly designed for compressing data-as-images.
- Houshalter 12y agoCompression works by making assumptions about how the data should be. You can't compress random data for example. In the case of images, it usually takes advantage of the fact that pixels nearby each other are very similar. Obviously that isn't true for NN parameters.
- bglazer 12y agoYeah that makes sense. He does say that he achieved 10% compression efficiency on the models. "Obviously that isn't true for NN parameters." I have little experience with NN's but I wonder if that's true for deep NN's? Is there any gradual, image-like change in parameters in deep learning models?
- Houshalter 12y agoI said above that my guess is it may be making some small gains by learning "pixels are 20% more likely to be black than white" or something like that. Which fits with the image he provided. There may be regularities in deep NNs. For example, many learned features are basically exactly the same but rotated or translated in a different way. This is because NN's aren't inherently invariant to rotations or translations, so they have to learn multiple features for every possible variation. Another possible regularity is that the weights tend to cluster on specific sections of the input image and ignore the rest. But this entirely depends how the weights are projected into an image. The image provided looks like random static. The standard method is to just create a separate image for every feature, and for every pixel becomes the weights of the NN from that input pixel. Like this: http://fastml.com/images/deep-learning-made-easy/layer2visualization.png http://fastml.com/images/deep-learning-made-easy/layer2visua... Standard image compression software should be able to work with that. But this won't work in higher layers, because there are only 3 to 4 color channels in an image.