Machine learning seeks to build computer systems that can improve automatically through experience. It involves developing algorithms and techniques that allow computers to "learn" by acquiring knowledge from data without being explicitly programmed. There are two main types of learning - inductive learning, which reasons from examples to reach general conclusions, and deductive learning, where conclusions are logically required by previous statements. Machine learning has many applications including natural language processing, medical diagnosis, and computer vision.