Skip to content

poloclub/ConceptEvo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ConceptEvo

ConceptEvo is a unified interpretation framework that reveals the inception and evolution of concepts during DNN training. For detailed insights behind ConceptEvo, refer to the ConceptEvo paper.

About ConceptEvo

ConceptEvo generates a unified semantic space that enables side-by-side comparison of different models during training. This space is a visual and analytic tool that facilitates a deeper understanding of how models evolve and learn.

Unified Semantic Space in ConceptEvo

This visualization represents concepts from various models in a single, cohesive space. By embedding and aligning neurons (depicted as dots), ConceptEvo maps similar concepts (such as a dog's face, a circle, or a car wheel) to corresponding locations, allowing for an intuitive comparison of different models.

ConceptEvo in Action: Identifying Training Issues

ConceptEvo's unified semantic space isn't just a visualization tool; it's also a powerful diagnostic instrument. It allows for the identification of potential issues in the training process by juxtaposing a well-trained model against one that is sub-optimally trained.
  • (a) A well-trained VGG16 shows gradual concept formations and refinements.
  • (b) A suboptimally trained VGG16 with a large learning rate rapidly loses the ability to detect most concepts.
  • (c) An overfitted VGG16 without dropout layers shows slow concept evolutions despite rapid training accuracy increases.

Installation

Before diving into ConceptEvo, ensure you have the necessary packages. Installation is a breeze with pip, Python's preferred package manager.

Open your terminal and execute the following command:

pip install -r requirements.txt

This will automatically install all the required packages listed in requirements.txt.

Usage

To make the most out of ConceptEvo, follow these guidelines:

  • Access sample scripts: Navigate to the ./scripts directory. Here, you'll find a collection of sample scripts demonstrating various functionalities of ConceptEvo.

  • Execute scripts: To run these scripts, move to the ./src directory in your terminal and execute the desired script.

Credits

ConceptEvo was created by Haekyu Park, Seongmin Lee, Benjamin Hoover, Austin P. Wright, Omar Shaikh, Rahul Duggal, Nilaksh Das, Kevin Li, Judy Hoffman, and Duen Horng (Polo) Chau.

License

ConceptEvo is open-sourced under the MIT License.

Contact

Encountering issues or have queries? We encourage you to:

  • Open an Issue: For technical problems or feature suggestions, feel free to open an issue on our GitHub repository.

  • Reach out to the authors: For more in-depth questions or discussions, feel free to contact the authors directly. The contact information is available in Authors.md.

Citation

If you find ConceptEvo useful in your research, please consider citing our paper! Here is the BibTeX entry for your convenience:

@article{park2023conceptevo,
  title={Concept Evolution in Deep Learning Training: A Unified Interpretation Framework and Discoveries},
  author={Park, Haekyu and Lee, Seongmin and Hoover, Benjamin and Wright, Austin P and Shaikh, Omar and Duggal, Rahul and Das, Nilaksh and Li, Kevin and Hoffman, Judy and Chau, Duen Horng},
  booktitle = {International Conference on Information and Knowledge Management (CIKM)},
  year = {2023}
}