wingman-jr-addon / wingman_jr

This is the official repository (https://github.com/wingman-jr-addon/wingman_jr) for the Wingman Jr. Firefox addon, which filters NSFW images in the browser fully client-side: https://addons.mozilla.org/en-US/firefox/addon/wingman-jr-filter/ Optional DNS-blocking using Cloudflare's 1.1.1.1 for families! Also, check out the blog!
https://wingman-jr.blogspot.com/
Other
35 stars 6 forks source link

Try Other Architectures #64

Closed wingman-jr-addon closed 3 years ago

wingman-jr-addon commented 4 years ago

Now that I have about enough data to train from scratch and a baseline of about 72-73% raw accuracy, I can start to explore other architectures. While nothing terribly earth-shattering, there have been a number of improvements (mostly regarding efficiency).

EfficientNet (#58) is being tracked in its own thread, but does not seem to be giving any particular efficiency/accuracy improvement.

One other architecture that is straightforward to try is IoTNet. This provides a family of networks to try. I have made some initial progress here and can comment when the results are a bit more complete.

wingman-jr-addon commented 3 years ago

Update on EfficientNet - I am seeing some progress there actually now using fine tunes.

I played around with IoTNet quite a bit, tried many different variants but at the end of the day I was not able to improve overall accuracy.

As a general observation about speed - while it's true that raw prediction speed makes a difference, a vast chunk of the work is actually in decoding and resizing the image, so simply having a bit smaller network does not translate into automatic gains. This has an impact on network choices. However, startup time will likely correlate closely to the number of architecture parameters.

issuemaker2 commented 3 years ago

dicenet(github repo) seems like worth looking at it, though currently there's no tensorflow implementation available.

wingman-jr-addon commented 3 years ago

That dicenet one looks interesting. I'm going to have keep an eye on that.

wingman-jr-addon commented 3 years ago

(Also, if you have any brilliant ideas on how that might actually look in getting ported to what Tensorflow.js supports, I'd love to hear them. :) I was able to pull over some simple stuff to get EfficientNet working but a whole new conv might get interesting?)

wingman-jr-addon commented 3 years ago

There was a nice summary over on machinethink.net of some more recent lightweight architectures. (@issuemaker2 you may be interested too - a few on that list were new to me). I was giving EfficientLite a bit of a shot as I found a Keras port; so far no dice with finetuning using my MobileNetV2 hyperparams. Maybe my normalization is off.....

wingman-jr-addon commented 3 years ago

Yep, it was normalization. Finetune got similar accuracy, BUT the fused ROC output was better. Dropping it onto master with #91 along with better ROC work.

wingman-jr-addon commented 3 years ago

The original intent of this issue has been fixed. I will still keep my eyes peeled for new things like advancements in Vision Transformers (#130) and semi- and unsupervised learning approaches (#124) but will close this issue.