1. A method of optical communication, implemented at a receiver in an optical communication network, comprising: receiving, over an optical channel, an optical signal carrying modulated information bits; processing the optical signal through a receiver subsystem to generate a stream of digitized modulation symbols from the optical signal; and producing, using the stream of digitized modulation symbols as input symbols to an iterative process, estimates of information bits by, in each iteration: generating estimated output symbols from the input symbols by filtering by an estimate of inverse of the optical channel; updating, using the estimated output symbols, the estimate of the inverse of the optical channel to minimize a measure of error; and compensating the estimated output symbols by using pre-distortion values from a look-up table (LUT) to generate compensated output symbols that are used as input to a next iteration.