Machine Learning from Weak Supervision