1. `negative_visible` should also be sampled, only the last hidden can use the expectation. Though trivial modification, it follows the original algorithm, and theorically it should also be done (refer to Kevin Murphy's MLaPP P944).
2. Some comments are added in the code, for more friendly reading. At the first sight I didn't find it's CD :)