NeuroPON: uma abordagem para o desenvolvimento de redes neurais artificiais utilizando o paradigma orientado a notificações - Schütz, Fernando (2019)
Artificial Neural Networks (ANN), which are inspired by the naturally parallel Natural Neural Networks (NNN), are computational models capable of self-adjusting their synaptic weights based on examples, thus being able to learn and generalize solutions. Most ANN implementations were driven by the Imperative Paradigm (IP), often resulting in coupled programs. Thus, even if inspired by parallel NNN, ANN does not have an effective execution distribution when developed under IP, due to their coupling factor. Alternatively, the Notification Oriented Paradigm (NOP) emerges as a processing approach that relies on collaborative and notifying entities. NOP tends to be more efficient and decoupled compared to IP, as it allows a simpler and more efficient exploration of processing. Such advantages become even more relevant in systems that must have decoupled parts to be executed in parallel, such as ANN. The execution of NOP applications, however, cannot always be held most efficiently by traditional computer architectures based on sequential execution models (both monocore and multicore). In this context, Field Programmable Gate Arrays (FPGA) technology is a great alternative to NOP development. In this sense emerged the NOPHD technology, allowing the development of systems declaratively using NOP's own language (NOPL) and, through a specific compiler, generate parallel code for execution on FPGA devices. The present work proposes the specification and elaboration of the computational model NeuroNOP, which allows the construction of ANN with NOP concepts through a high-level declarative language. This model inherits from NOP the abstraction of knowledge through logical-causal rules using a declarative language. The focus of this model is also on efficient code generation for execution on monocore processors, concurrent for execution on multicore processors and parallel to FPGA devices. Such codes allow the created ANN to run in operational and training mode, adaptably and scalably, on such computational platforms. Tests were performed using NOP materializations in software (NOP Framework C++ 2.0, 3.0 and NOPL) as well as in hardware (NOPHD). Such tests proved the feasibility of the NeuroNOP computational model. The results of experiments with NeuroNOP in monoprocessor software, when compared with equivalents in IP, revealed a high level of decoupling, making the factual and logical-causal elements explicit. Experiments with the Framework NOP C++ 3.0 and the Framework Elixir/Erlang have proven the distribution of NOP entities for execution in different cores (multicore). Hardware experiments (NOPHD) resulted in the generation of parallel VHDL code, in a transparent way to the user. In short, NeuroNOP presents itself as a new computational model for ANN, which presents absent characteristics from other approaches in the literature, such as ANN execution and training in different computational platforms, through effective neural entities created from its descriptive and high-level language implementation.