Learning of linear codes from noisy patterns