Concept Programming
This frame is an iteration of [[abstraction-inductors]], yet it's sufficiently different from the previous version to warrant a new node. Concept programming is the process of systematically modifying the conceptual framework internalized by an ML model. To go with the analogy, concept programming languages generally include the following components:
- variables / symbols: The variable "fruit" is a container for the concept of fruit.
- values / concepts: The concept of fruit is contained in the "fruit" variable.
- assignment: Assigning a concept to a symbol is identified with heavily tweaking the ML model's ontology to reflect that.
- initialization: Initializing a new symbol is identified with creating a tabula rasa association-free entity in the model's ontology (e.g. a fresh new token).
- concept operators: Taking the conjunction of "Apple" and "Microsoft" might yield a concept of big tech company. Boolean and Semantica-like ops are low-hanging fruit here.
- flow operators: Basic if/for/while/switch/... structures for guiding the concept program.
The application idea is that using a concept program which incorporates multiple of those elements, the model's internal ontology could be systematically tweaked towards useful outcomes. For instance, this might mean forming suitable abstractions of human values, or discouraging abstractions which are at odds with those.