Re: [Computer-go] Exploiting Cyclic Symmetry in Convolutional Neural Networks

2018-02-28 Thread Steven Clark
See also: Oriented Response Networks https://arxiv.org/abs/1701.01833

On Wed, Feb 28, 2018 at 11:40 AM, Jonathan Roy  wrote:

> I'm curious if anyone has applied this idea in their Go software, and what
> results you obtained? It is a way to make rotations (and transpositions
> with more effort) go away as an issue, regardless of the way you input the
> board you'd get the same result back out. Short summary from the paper (
> https://arxiv.org/pdf/1602.02660.pdf):
>
> We have introduced a framework for building rotation
> equivariant neural networks, using four new layers which
> can easily be inserted into existing network architectures.
> Beyond adapting the minibatch size used for training, no
> further modifications are required. We demonstrated improved
> performance of the resulting equivariant networks
> on datasets which exhibit full rotational symmetry, while
> reducing the number of parameters. A fast GPU implementation
> of the rolling operation for Theano (using
> CUDA kernels) is available at https://github.com/benanne/kaggle-ndsb.
>
> It was apparently used by this science competition winner:
>
> http://benanne.github.io/2015/03/17/plankton.html
>
> And there's related codebase here that implements the paper Group
> Equivariant Convolutional Networks (https://tacocohen.files.
> wordpress.com/2016/06/gcnn.pdf).
>
> https://github.com/tscohen/gconv_experiments
>
> The paper makes it sound like implementing for rotation would be straight
> forward, and implementing for transposition more difficult but also
> doable.Which sounds perfect for Go AI applications.
>
> -Jonathan
>
>
> ___
> Computer-go mailing list
> Computer-go@computer-go.org
> http://computer-go.org/mailman/listinfo/computer-go
>
___
Computer-go mailing list
Computer-go@computer-go.org
http://computer-go.org/mailman/listinfo/computer-go

Re: [Computer-go] Exploiting Cyclic Symmetry in Convolutional Neural Networks

2018-02-28 Thread Jonathan Roy
>
> To follow up on the paper I listed earlier I just found this link with a
> long list of related papers:
>
> http://www.arxiv-sanity.com/1705.08623v1
>
> Many from 2016-2018 and all dealing with neural networks and ways to solve
> rotation. Deep Rotation Equivariant Network (
> http://arxiv.org/pdf/1705.08623v1.pdf) is a direct response to
> "Exploiting Cyclic Symmetry in Convolutional Neural Networks" with an
> alternative approach that uses less memory and is twice as fast. Code
> provided here https://github.com/microljy/DREN.
>
> -Jonathan
>
___
Computer-go mailing list
Computer-go@computer-go.org
http://computer-go.org/mailman/listinfo/computer-go

[Computer-go] Exploiting Cyclic Symmetry in Convolutional Neural Networks

2018-02-28 Thread Jonathan Roy
I'm curious if anyone has applied this idea in their Go software, and what
results you obtained? It is a way to make rotations (and transpositions
with more effort) go away as an issue, regardless of the way you input the
board you'd get the same result back out. Short summary from the paper (
https://arxiv.org/pdf/1602.02660.pdf):

We have introduced a framework for building rotation
equivariant neural networks, using four new layers which
can easily be inserted into existing network architectures.
Beyond adapting the minibatch size used for training, no
further modifications are required. We demonstrated improved
performance of the resulting equivariant networks
on datasets which exhibit full rotational symmetry, while
reducing the number of parameters. A fast GPU implementation
of the rolling operation for Theano (using
CUDA kernels) is available at https://github.com/benanne/kaggle-ndsb.

It was apparently used by this science competition winner:

http://benanne.github.io/2015/03/17/plankton.html

And there's related codebase here that implements the paper Group
Equivariant Convolutional Networks (
https://tacocohen.files.wordpress.com/2016/06/gcnn.pdf).

https://github.com/tscohen/gconv_experiments

The paper makes it sound like implementing for rotation would be straight
forward, and implementing for transposition more difficult but also
doable.Which sounds perfect for Go AI applications.

-Jonathan
___
Computer-go mailing list
Computer-go@computer-go.org
http://computer-go.org/mailman/listinfo/computer-go