Handwriting recognition is a process of recognizing handwritten text on a paper in the case of offline handwriting recognition and on a tablet in the case of online handwriting recognition and converting it into editable text. In this chapter we focus on offline handwriting recognition which means that recognition system accepts a scanned handwritten page as an input and outputs editable recognized text. Handwriting recognition has been an active research area for many years but some of the major problems still remained unsolved. Many techniques including the machine learning techniques have been used to solve some of the problems and improve the recognition accuracy. This chapter focuses on describing the problems of handwriting recognition and presents the solutions using machine learning techniques for solving major problems in handwriting recognition. The chapter also reviews and presents the state of the art techniques with results and future research for improving handwriting recognition systems.