Technische Details von AIfES

Ressourcenschonende Programmierung

Die AIfES-Funktionen arbeiten ausschließlich mit Pointer-Arithmetik und deklarieren nur die nötigsten Variablen innerhalb einer Funktion. Das bedeutet, dass die Speicherbereiche für die Trainingsdaten und die Gewichte durch das Hauptprogramm bereitgestellt werden. AIfES-Funktionen greifen durch Übergabe eines Pointers auf diese Speicherbereiche, zu ohne selbst große Ressourcen zu beanspruchen.

Plattformunabhängig und kompatibel

Durch die kompatible Programmierung mit der GCC ist eine Portierung auf nahezu alle Plattformen möglich. Dies ermöglicht die völlig autarke Integration inklusive Lernalgorithmus auf einem eingebetteten System.  

Für die Nutzung unter Windows kann beispielsweise der Quellcode als »Dynamic Link Library« (DLL) kompiliert werden, um sie so in Softwaretools wie z. B. LabVIEW oder MATLAB integrieren zu können. Besonders die direkte Anbindung an MATLAB ist hilfreich um z.B. verschiedene Datenvorverarbeitungen zu testen.

Auch die Integration in verschiedene Software-Entwicklungsumgebungen wie z. B. Visual Studio oder einer Python-IDE ist möglich. Das Hauptprogramm, welches die DLL einbindet, kann somit auch in einer anderen Programmiersprache sein wie z. B. C++, C#, Python, VB.NET, Java.

Für die erste Entwicklung des individuellen FNN eignet sich der PC als Plattform besonders gut, um schnelle Berechnungen durchzuführen. Wenn die richtige Konfiguration erfolgt ist, kann die Portierung auf das eingebettete System erfolgen.

Eine kleine Auswahl von Plattformen und Mikrocontrollern, auf denen wir AIfES schon getestet haben:

  • Windows (DLL)
  • Raspberry Pi with Raspbian
  • Arduino UNO
  • Arduino Nano 33 BLE Sense
  • Arduino Portenta H7
  • ATMega32U4
  • STM32 F4 Series (ARM Cortex-M4)
Übersicht über die AIfES-Bibliothek
© Fraunhofer IMS
The AIfES library
Erstellen und Transferieren eines KNN mit AIfES
© Fraunhofer IMS
Creating and Transferring ANN with AIfES
Kompatibilität und Speicherzugriff bei AIfES
© Fraunhofer IMS
Compatibility and memory access with AIfES

Das künstliche neuronale Netz in AIfES

Augenblicklich verfügt AIfES über ein Feedforward Neural Network (FNN), welches in nahezu allen Parametern konfigurierbar ist und auch tiefe Netzstrukturen ermöglicht. Das KNN wird nur mit einer Hauptfunktion konfiguriert und berechnet. Regressions- und Klassifizierungsaufgaben sind möglich. Der Netzaufbau kann natürlich an die aktuelle technische Aufgabe angepasst werden.

Kurze Übersicht der Features:

  • Anzahl der Inputs und Outputs frei definierbar
  • Anzahl der Hidden-Layer und der Neuronen pro Layer frei definierbar
  • Unterschiedliche Aktivierungsfunktionen mit Zusatzparametern
    • Sigmoid, Softsign, ReLU, PReLU, Softmax, …
© Fraunhofer IMS
neural network activation function AIfES
 

Vortrainiertes Modell oder Training auf dem eingebetteten System

AIfES bietet zwei Möglichkeiten ein neuronales Netz auf einem eingebetteten System zu integrieren:

Zunächst die klassische Variante, bei der das neuronale Netz auf einem hoch performanten System wie einem PC trainiert wird und dann auf das eingebettete System übertragen wird. Durch den Aufbau von AIfES kann diese Integration ohne Umwege stattfinden, da bei allen Plattformen der gleiche Quellcode genutzt wird und somit nur die Gewichte übertragen werden müssen.

Die zweite Variante ist das Training auf dem eingebetteten System selbst. Dies kann nützlich sein, wenn sich z. B. ein Sensor selbst kalibrieren soll oder ein Nachtrainieren nötig ist. Letzteres kann unter anderem für die Kompensation von fertigungsbedingten Systemabweichungen vorteilhaft sein. Ein weiterer Einsatzbereich wäre die Dezentralisierung der Intelligenz auf lernfähige eingebettete Systeme.

Lernalgorithmen

AIfES enthält bereits zwei unterschiedliche Lernalgorithmen, welche auch auf dem Mikrocontroller genutzt werden können:

Gradient Descent Optimizer (SGD):

Der SGD Optimizer wurde mit gängigen Einstellungsparametern implementiert. Hier eine kurze Übersicht der aktuellen Features:

  • Online- und Batch Training
  • Momentum

Adam Optimizer:

Der Adam Optimizer wurde mit den gängigen Einstellparametern implementiert, welche individuell angepasst werden können.

Einsatzbereiche

Mensch-Technik-Interaktion, Industrie 4.0, Messtechnik, Medizintechnik, Machine-Learning-Algorithmen und Hardwarebeschleuniger.

Lizenzierung

Wie kann ich AIfES nutzen und welche Dienstleistungen bietet das Fraunhofer IMS?

 

Unsere Anwendungen – Beispiele was wir für Sie tun können

Dezentrale KI-Systeme und AIfES Plattform

KI Framework, open roberta, Arduino.

Föderiertes Lernen für ressourcenbegrenzte Systeme

SEC-Learn

Erkennung von Menschen mittels eingebetteter KI

NoKat

Personalisierbare KI

Individuell trainierbare Gestenerkennung

Unsere Anwendungsfelder – Unsere Expertise für Sie

Nachhaltige Produktion

 

  • Optimierung von Rohstoff- und Energieeinsatz
  • Einsatz alternativer Energieträger und energieautarke Sensoren
  • Green ICT

 

 

 

Mobile autonome Fertigung

  • Sensorik / Steuerung für Robots / Cobots
  • Industrielle Transportsysteme (AGV)
  • Mensch-Maschine Interaktion

Industrial-AI

  • Dezentrale KI-Systeme und Plattformen
  • Sensor-/Aktor-Optimierung und Kosteneffizienz durch lokale KI
  • Mustererkennungsverfahren

Vertrauenswürdige Elektronik

  • Schutz vor Produktpiraterie / Fälschungssichere Kennzeichnung
  • Manipulations- und ausfallsichere Elektronik
  • Vertrauenswürdige Lieferketten
 

Industry (Home)

Hier gelangen Sie zurück zu der Übersichtsseite des Industry Geschäftsfeldes.