Zero-shot Learning with Semantic Output Codes