If simple colors similarity is needed with just a little variance over RGB, CMYK or some other color space, then classic algorithms would do the job. Unfortunatelly, if you do a lot of color mixing, and you would like to guess that some color is skin color, earth color, yelowish green, bluish green, or whatever color names we have in use today, then you should study
fuzzy logic to implement a smart human like color recognizer. Once you understand the principles, it is not hard to implement it.
In short, any human experience that can be written down as a set of rules can be used to develop fuzzy rules for a simple fuzzy logic engine. It's powerful and not resource hungry - even 8-bit microcontrollers can use it. It's common use is in various 'smart' devices (air conditioner, washer machine, refrigirator), games AI, autonomous vehicles, optimal control loops...
http://en.wikipedia.org/wiki/Fuzzy_control