Pruning AI networks without impacting performance
ibm.com
ibm.com
I remember coming across a paper four years ago showing that when using evolutionary algorithms, simply introducing a tiny connection cost would prune useless connections and spontaneously generate modularity:
> we demonstrate that the ubiquitous, direct selection pressure to reduce the cost of connections between network nodes causes the emergence of modular networks. Computational evolution experiments with selection pressures to maximize network performance and minimize connection costs yield networks that are significantly more modular and more evolvable than control experiments that only select for performance.
http://rspb.royalsocietypublishing.org/content/280/1755/2012...
Not sure if that is easily generalized to other machine learning approaches, since I'm not working in machine learning.
Another comment mentioned Song Han's work into NN compression. Well, I looked up a recent paper and look what it says:
> We discovered an interesting byproduct of model compression: re-densifying and retraining from a sparse model can improve the accuracy. That is, compared to a dense CNN baseline, dense → sparse → dense (DSD) training yielded higher accuracy
> We now explain our DSD training strategy. On top of the sparse SqueezeNet (pruned 3x), we let the killed weights recover, initializing them from zero. We let the survived weights keeping their value. We retrained the whole network using learning rate of 1e−4. After 20 epochs of training, we observed that the top-1 ImageNet accuracy improved by 4.3 percentage-points
> Sparsity is a powerful form of regularization. Our intuition is that, once the network arrives at a local minimum given the sparsity constraint, relaxing the constraint gives the network more freedom to escape the saddle point and arrive at a higher-accuracy local minimum. So far, we trained in just three stages of density (dense → sparse → dense), but regularizing models by intermittently pruning parameters throughout training would be an interesting area of future work
https://arxiv.org/pdf/1602.07360v3.pdf
I wonder if you could also receive similar results by simply turning some connections "off" for a while, only training the rest of the connections. Then turn the missing connections on a gain and, randomly turning a few other connections off, and continue training.
So why not have a certain epsilon, below which you can turn the connection off altogether? (meaning the back-propagation would only apply to the remaining connections) To avoid getting stuck in local minima you could occasionally re-initialise them with a random small value.
Again, zero background in machine learning here. It's a sincerely naive question to which I fully expect a "we've tried that with, methods X, Y and Z are most famous and this is how they work out in practice".
Isn't that almost like Dropout? Dropout does what you say but it changes the dropped set of neurons for each individual example.
Looks pretty close, yeah.
So this is basically dividing the network into two groups, and give each group a second weight: one for those that are on, zero for those that are off.
Has anyone tried more variants of this? Using random bundling + various levels of amplification of such bundles, so that backpropagation affects various networks differently?
https://medium.com/@thoszymkowiak/google-brains-new-super-fa...
Thanks for that, by the way. I have a friend who can really use that information.
Phrased another way: Is this a huge step up from previous pruning methods?
In network pruning, my experience is that simple heuristics sometimes outperform hard math approaches. Also different problems can have wildly different approaches which work best. A good approach on one problem and one network can be very bad on a slightly different network. In this sense, it is sad that LeNet is usually used for benchmarking as the results typically dont generalize well.
"our method prunes redundant connections using a three-step method. First, we train the network to learn which connections are important. Next, we prune the unim- portant connections. Finally, we retrain the network to fine tune the weights of the remaining connections. On the ImageNet dataset, our method reduced the number of parameters of AlexNet by a factor of 9 × , from 61 million to 6.7 million, without incurring accuracy loss. Similar experiments with VGG-16 found that the total number of parameters can be reduced by 13 × , from 138 million to 10.3 million, again with no loss of accuracy. "