  The idea of end-to-end learning of communication systems through neural
network-based autoencoders has the shortcoming that it requires a
differentiable channel model. We present in this paper a novel learning
algorithm which alleviates this problem. The algorithm enables training of
communication systems with an unknown channel model or with non-differentiable
components. It iterates between training of the receiver using the true
gradient, and training of the transmitter using an approximation of the
gradient. We show that this approach works as well as model-based training for
a variety of channels and tasks. Moreover, we demonstrate the algorithm's
practical viability through hardware implementation on software-defined radios
where it achieves state-of-the-art performance over a coaxial cable and
wireless channel.
