This project will study communication systems where the transmitter and receiver are regarded as parameterized functions (e.g., neural networks) and jointly optimized to improve end-to-end performance. This general approach can be regarded as a special type of (denoising) autoencoder, that learns to (i) protect the transmitted payload data against channel noise and corruptions, and (ii) demodulate the received signal to recover the data. In addition, we will investigate how communication constraints impact the performance, robustness, and privacy of machine learning models that are trained or operate over such systems. Potential applications and use cases include novel joint radar-communication systems, communication systems that are robust against hardware distortions, distributed machine learning tasks (e.g., federated learning) where learning is performed over bandwidth- and energy-limited links, and privacy auditing of generative models.