
How do we fix mistakes in data without starting over?
Image: Edward Larsson, Public domain, via Wikimedia Commons
How do we fix mistakes in data without starting over?
Imagine sending an important text message, but it gets scrambled by a noisy phone connection, with some letters missing or jumbled.
Think of Hamming code as a clever way to add extra information to your message so that even if some letters get messed up, you can still figure out the original message.
Example
If you send "HELLO" with extra letters like "H", "E", "L", "L", "O", "X", "Y", "Z", you can spot missing letters and still get "HELLO".
Remember this
Hamming code helps us correct errors in data transmission without needing to resend the entire message.
Text adapted from Wikipedia, licensed under CC BY-SA 4.0.
Cyclic redundancy check
How do we know if a message is corrupted during transmission?
Shannon's source coding theorem: you can't compress below entropy
Can you squeeze endless text into fewer bits without losing anything?
Error detection and correction
Reed-Solomon codes correct burst errors in data transmission and storage
Low-density parity-check code
LDPC codes revolutionized coding theory with significant performance improvements
Huffman coding
Huffman coding is an entropy-optimal prefix code for lossless data compression
Rate-distortion theory: minimum bits to represent data within distortion D
How many bits do we need to perfectly copy a song?
Swipe through 100 ML concepts daily
Open Pocket Polymath