Skip to content

Core Design Principles

Marco Vasko-Klima edited this page Jul 24, 2026 · 6 revisions

Principles guiding the design and development of Neural Network Notions.

Development Goals / Aims

 Neural Network Notions (NNN) originated as an experiment to learn how neural networks function. The framework does not necessarily aim to achieve the maximum possible performance. Rather, the primary goal is to create an approachable yet capable system for training neural network models. The project aims to provide all functionality necessary to train models for standard datasets using supervised training, as well as to navigate both discrete and continuous action spaces. To this end, NNN is heavily focused on providing tools for Deep Q-Learning (DQN) and Proximal Policy Optimization (PPO), with the latter being planned as the next major addition. Performance improvements constitute a secondary long-term aim in order to enable the training of increasingly complex networks. Nonetheless, Neural Network Notions remains a functionality-first framework aimed at smaller, specialized models.

Design Philosophy

 The core principles shaping the design of the framework are transparency and accessibility. Neural Network Notions (NNN) is intended to be an easy-to-use means of training and using neural networks, with performance being secondary to functionality. As a result, NNN's public API exposes a variety of both abstract and concrete functionality alike. Customizability is also a driving factor in the design, with the framework exposing all base abstract classes to allow developers to implement their own training environments, activation and cost functions, layers, etc. to meet their specific requirements. Additionally, to provide a more accessible API, unlike mainstream frameworks such as PyTorch Neural Network Notions uses an architecture closer to the typically taught mental model of neural networks via incorporating a "layer" abstraction between the model and operation abstractions.

Clone this wiki locally