The article here: http://novanoid.github.io/2014/09/26/training-a-neural-network-to-recognize-handwritten-digits/ discusses and implements a way to recognize handwritten digits. For images with a quality of 256 square pixels and an output vector of magnitude 10, the network is constructed quickly and efficiently on a modern machine.

However, for Chinese characters, the output vector has a size over 50,000, although we typically only need to be able to write between 3000 and 8000 characters.

Training a single neural network using the approach from the article seems difficult on machines today. I attempted a neural network that would recognize only 3000 characters and quickly ran into memory limitations.

Is it possible to create multiple smaller networks to recognize sets of characters and then have a mechanism for running all networks simultaneously to parse handwritten characters in real time? What would this approach look like? Or is there a better/different approach to recognize handwritten Chinese characters?

  • 6
    $\begingroup$ Possible duplicate of Deep Learning with many categories $\endgroup$ – Franck Dernoncourt Jan 10 '17 at 17:19
  • 1
    $\begingroup$ I do not speak or read Chinese but I am under the impression that Chinese characters share many common subelements. Perhaps you could start with a more limited goal? $\endgroup$ – jwimberley Jan 10 '17 at 18:22
  • 1
    $\begingroup$ @jwimberley, Right, Chinese characters do seem to share common subelements. However, how would a neural network recognize this and then act upon it? How do we overcome the memory limitations in regards to a single neural network? $\endgroup$ – WayWay Jan 11 '17 at 0:17
  • 1
    $\begingroup$ @WayWay Well, a neural network can have many layers that respond to features on different scales, so even within a single neural network common subelements could be recognized at one of the top layers. However, I mean something simpler: start with a simpler goal. First get a neural net just identifying one of these subelements working and try to make it as concise as possible. Do the same for other subelements (with as few modifications as possible). Later you can combine these into a bigger network -- or use some other technique for synthesizing their outputs. Don't try to do it all at once. $\endgroup$ – jwimberley Jan 11 '17 at 0:26
  • 1
    $\begingroup$ @WayWay And by "some other technique" don't restrict yourself to machine techniques. Maybe investigate how uniquely the 50,000 Chinese characters can be identified by their subelements, just by having a team of people go through them (this has likely been categorized somewhere if its possible). If separate neural networks can identity the subelements and the subelements can identify the character through hard-coded, human created rules, this solves your problem equally well. $\endgroup$ – jwimberley Jan 11 '17 at 2:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.