KI und neuronale Netze Algorithmen im Training

Ein Gastbeitrag von Dr. Alex Beasley *

Wie entwickelt man eine künstliche Intelligenz? Senior Electrical Design Engineer Dr. Alex Beasley befasst sich mit aktuellen KI-Anwendungen für reale Probleme bei wissenschaftlichen Instrumenten. Er zeigt, wie ein neuronales Netz eingesetzt werden kann, um Bilder aus der realen Welt zu analysieren.

Firmen zum Thema

Abb.1: Neuronale Netze können komplexen Input – z. B. Bilder – verarbeiten und beispielsweise in einfache Ja-Nein-Antworten übersetzen (Symbolbild).
Abb.1: Neuronale Netze können komplexen Input – z. B. Bilder – verarbeiten und beispielsweise in einfache Ja-Nein-Antworten übersetzen (Symbolbild).
(Bild: ©Lee - stock.adobe.com)

Dank moderner Technik haben wir heute ein tiefgreifendes Verständnis von der Welt. Computertomographen erlauben den Blick ins Innere des Körpers, Chromatographie kann Substanzgemische in ihre Komponenten auftrennen und spektroskopische Methoden entschlüsseln die Struktur von einzelnen Molekülen.

eBook Künstliche Intelligenz für Developer
eBook „Künstliche Intelligenz für Developer“
(Bild: Dev-Insider)

E-Book zum Thema

Das eBook „Künstliche Intelligenz für Developer“ vermittelt ein grundlegendes Verständnis für KI und Machine Learning und nennt essenzielle Werkzeuge.

Ohne Computer wären diese Methoden in ihrer heutigen Ausführung nicht denkbar. Und die zunehmende Komplexität sowie die immer größeren Datenmengen erfordern mehr und mehr Unterstützung durch Algorithmen. Längst ist der Begriff der künstlichen Intelligenz (KI) zum selbstreferenziellen Schlagwort geworden. Doch was steckt eigentlich dahinter? Und welche Hürden stehen einem zuverlässigen KI-System zu Beginn im Weg?

Bevor eine künstliche Intelligenz einsatzbereit ist, muss sie angelernt werden. Es ist wie beim Menschen: Wenn wir auf die Welt kommen, sind die Voraussetzungen für ein intelligentes Wesen zwar in Form unseres Gehirns vorhanden, doch dieses muss mit Daten gefüttert werden, um sein Potenzial auszuschöpfen.

Anstelle des Gehirns tritt bei einer KI ein Algorithmus, eine Art „Wenn-Dann“-Logik aus mathematischen Formeln, die Informatiker einprogrammiert haben. Die wohl bekannteste Form, eine KI zu trainieren, ist das so genannte maschinelle Lernen. Es erfolgt meist über „neuronale Netze“, deren Stärke darin liegt, rechenintensive Probleme zu verarbeiten. Das macht sie besonders interessant als Grundlage für die meisten kommerziell nutzbaren KI für wissenschaftliche Aufgaben.

Die Idee bei einem neuronalen Netz ist, die Funktionsweise des Gehirns in stark vereinfachter Form nachzubilden. Das Netz besteht aus einer Eingabeebene, einer Ausgabeebene, sowie einer Anzahl an verborgenen Ebenen, jeweils mit Knotenpunkten, die mit den Knoten der Nachbarebenen verbunden sind.

Zum besseren Verständnis betrachten wir als konkretes Beispiel eine Bilderkennungssoftware, die mithilfe einer trainierten KI Barcodes auf Probenröhrchen erkennen soll. Die Frage für die KI lautet also: „Ist in dem Bild ein Barcode zu sehen?“ Was für einen Labormitarbeiter leicht zu beantworten ist, erfordert für die künstliche Intelligenz zunächst einiges an Training.

Die Sprache der KI

Um eine KI-Lösung erfolgreich auf ein bestimmtes Problem anzuwenden, muss das Problem zunächst charakterisiert werden. Die Frage „Barcode – ja oder nein?“ muss dazu in mathematische Gleichungen übersetzt werden, die mit Daten arbeiten, die von der KI erfasst werden können. In unserem Fall wären dies die Helligkeitswerte der Pixel in dem zu prüfenden Bild.

Diese Werte definieren die Größe des Eingabedatenstroms in der Eingabeebene des neuronalen Netzes. Konkret handelt es sich hier um ein 8-Bit-Bild mit 50 x 50 Pixeln, wobei jedes Pixel einen möglichen Helligkeitswert zwischen 0 und 225 hat. Angeschlossen an die Startpunkte des Netzes ist dann eine Reihe von Zwischenebenen, jeweils mit zahlreichen Knotenpunkten.

Abb.2: Vereinfachte Darstellung des Netzes mit Eingabeebene, Ausgabeebene sowie zwei verborgenen Ebenen. Die Knoten (Kreise) stehen für mathematische Funktionen und die Pfeile für den Datenfluss durch das Netz.
Abb.2: Vereinfachte Darstellung des Netzes mit Eingabeebene, Ausgabeebene sowie zwei verborgenen Ebenen. Die Knoten (Kreise) stehen für mathematische Funktionen und die Pfeile für den Datenfluss durch das Netz.
(Bild: Ziath)

Jede Ebene, die die Eingangsdaten nacheinander durchlaufen, ist ein eigenes mathematisches Argument. Die Kombination dieser mathematischen Funktionen auf einem Datenstrom ermöglicht es, Datenmerkmale zu extrahieren. Das kann die gesuchte nützliche Antwort sein, oder es kann ein Zwischenstadium sein, das weiter verarbeitet wird.

Beispielsweise könnte eine Zwischenebene den Helligkeitsunterschied zwischen benachbarten Pixeln überprüfen und so Kanten im Bild erkennen, z.B. zwischen dem Schwarz des Barcodes und dem Weiß des Etiketts. Am Ende berechnet der Algorithmus aus diesen Zwischenschritten eine Wahrscheinlichkeit, ob das Bild einen Barcode zeigt oder nicht. Dies wird als Ergebnis in der Ausgabeebene angegeben, also „Ja, Barcode vorhanden“ oder „Nein, kein Barcode vorhanden“.

Ergebnisse aus der Black Box

Auf welchem Weg die künstliche Intelligenz zu ihrem Ergebnis gekommen ist, spielt keine Rolle. Entscheidend ist, dass das neuronale Netz richtig trainiert wird, um später sinnvolle Antworten zu liefern. Bei der Erstellung des neuronalen Netzes handelt es sich zunächst um eine „Black Box“, d.h. innerhalb des Netzes gibt es normalerweise keine vorher festgelegten Knotenverbindungen. Keine Knoten oder möglichen Pfade durch das Netz wurden mit Gewichtungen oder Verzerrungen versehen. Dies ist der Ausgangspunkt für die KI.

Für das Training der KI legt man dem neuronalen Netz eine große Anzahl bekannter Beispiele vor, üblicherweise mehrere Tausend. In unserem Fall präsentieren wir dem Netz Tausende von verschiedenen Barcodes, einige gut, einige schlecht und einige geradezu unlesbar. Unser Netz passt sich selbst an, bis es schließlich zwischen einem guten und einem schlecht gedruckten Barcode unterscheiden kann. Dazu passt es die Gewichtungen und Verzerrungen jedes Knotens an, um tendenziell in eine Richtung zu „wachsen“, die den zulässigen Lösungen näher kommt.

Mit weiterem Training kann das neuronale Netz feststellen, ob überhaupt ein Barcode vorhanden ist. Das klingt offensichtlich und einfach, aber in der Praxis können viele Faktoren im Labor wie Beleuchtung, Tageszeit und Reflexionen im Allgemeinen dazu führen, dass das Bildgerät einen Barcode erkennt, wenn tatsächlich gar keiner da ist.

Übertrainierte Netzwerke

Wenn das neuronale Netz alle Beispiele des Trainingsdatensatzes abgearbeitet hat, muss es verifiziert werden. Um die Leistung des Netzes zu bewerten, wird ein Verifizierungssatz von Daten von etwa 20 Prozent der Größe des Trainingsdatensatzes verwendet. Darin enthalten sind relevante Bilder, die dem neuronalen Netz bisher noch nicht bekannt sind.

Bei der Verifizierung kann es passieren, dass die Ergebnisse deutlich schlechter ausfallen als im Training. Dies trifft dann zu, wenn das Netz „übertrainiert“ wurde, sodass es zwar den Trainingsdatensatz hervorragend verarbeitet, aber bei neuen Daten versagt.

Um dieses Problem zu entschärfen, kommen eine Reihe von Verfahren in Frage: Die so genannte Augmentierung von Daten ermöglicht es beispielsweise, Transformationen, Drehungen und andere Bildvor­verarbeitungsoperationen am Trainingssatz durchzuführen. Das erhöht die Vielfalt der Bilder, die das Netz zum Training verwendet, wodurch die Tendenz sinkt, ein „übertrainiertes“ Netz zu schaffen.

Ein zweites Verfahren gegen Übertraining ist das so genannte Dropout, bei dem ein Prozentsatz der trainierten Gewichtungen/Verzerrungen zwischen den Trainingsphasen zufällig entfernt wird. Das neuronale Netz muss dann die Gewichtungen neu lernen, wenn es eine weitere Iteration der Trainingsdaten erhält. Durch die Vermeidung von Übertraining kann das Netz, wenn es mit neuen Daten, z.B. aus dem Verifizierungssatz, konfrontiert wird, genauso gut abschneiden wie beim Trainingssatz. Sobald ein Netz in der Lage ist, anhand neuer Daten eine hohe Quote korrekter Ausgaben zu erreichen, gilt es als einsatzbereit.

KI in praktischer Anwendung

Es gibt eine Reihe von Frameworks, die für die Entwicklung und das Training von neuronalen Netzen verwendet werden können, wie Tensorflow, PyTorch, Torch und Keras. Die Frameworks laufen mit gängigen Programmiersprachen wie Python. Sie bieten eine durchgängige Open-Source-Plattform für maschinelles Lernen mit einer Reihe von Tools und Bibliotheken, die es Entwicklern ermöglichen, auf maschinellem Lernen basierende Anwendungen, z.B. für die wissenschaftliche Bildanalyse, einfach zu erstellen und einzusetzen.

Das Unternehmen Ziath hat sich entschieden, ein solch leistungsstarkes neuronales Netz in der neuesten Steuerungssoftware DP5 für seine CMOS-Kamera-basierten 2D-Barcode-Lesegeräte für Reagenzröhrchen zu implementieren. Diese neue KI-Funktion unterstützt die Erkennung von leeren Vertiefungen oder fehlenden Röhrchen durch die Ziath-Software durch genau das oben beschriebene Verfahren. So erkennt der Scanner, ob überall ein Röhrchen vorhanden ist oder nicht.

Abb.3: Eine trainierte KI erkennt das Vorhandensein eines Barcodes in Scanner-Bildern.
Abb.3: Eine trainierte KI erkennt das Vorhandensein eines Barcodes in Scanner-Bildern.
(Bild: Ziath)

Das Forschungs- und Entwicklungsteam von Ziath arbeitet nun daran, das neuronale Netz auf einen so genannten FPGA zu übertragen. FPGA steht für Field-Programmable-Gate-Array und bezeichnet eine vor Ort beim Anwender programmierbare Logikgatter-Anordnung. Im Wesentlichen kombiniert dieses Gerät Milliarden von Transistoren zu einer Plattform, auf der benutzerdefinierte Architekturen erstellt werden können, um das spezifische Problem des Benutzers zu lösen.

FPGAs haben eine Reihe von Vorteilen gegenüber anderen Verarbeitungstechnologien: Sie bieten eine flexible Plattform mit der Möglichkeit, ihre Konfiguration vor Ort zu aktualisieren. Sie sind im Vergleich zu anderen Prozessoren sehr leistungsfähig und ermöglichen im Vergleich zu kundenspezifischem Silizium eine schnelle Entwicklungszeit. Dieses FPGA führt mit einer Taktrate von 125 MHz jede Sekunde Milliarden Operationen aus, wodurch es in der Lage ist, eine Lagerungsbox mit 96 Positionen im SBS-Format in etwas weniger als acht Millisekunden zu analysieren.

Fazit

Wie in diesem Beitrag erläutert, eignet sich das maschinelle Lernen sehr gut für bestimmte Bildanalyseprobleme, das so genannte maschinelle Sehen. Es kann bestimmte aufschlussreiche Merkmale mit sehr hoher Auflösung erkennen, die das menschliche Auge nur schwer auflösen kann. Darüber hinaus bietet sich die Dekonvolution („Entfaltung“) überlagernder Daten wie Spektren oder Chromatogramme für eine KI-Lösung an.

Im Labor könnte potenziell jeder große Datensatz, der eine Mustererkennung erfordert, von der KI übernommen werden. In anderen Bereichen werden derzeit Verfahren entwickelt, um die Menge der für die Konditionierung eines neuronalen Netzes erforderlichen Trainingsdaten zu verringern und damit ihre Anwendung zu erleichtern und zu beschleunigen. Das Versprechen der KI im Labor ist, eine schnellere, empfindlichere und preisgünstigere Datenverarbeitung als heute möglich zu realisieren.

Dieser Beitrag stammt ursprünglich von unserem Partnerportal https://www.laborpraxis.vogel.de/.

E-Book zum Thema

Künstliche Intelligenz für Developer

eBook Künstliche Intelligenz für Developer
eBook „Künstliche Intelligenz für Developer“
(Bild: Dev-Insider)

Entwickler mit Erfahrung in Sachen Künstlicher Intelligenz (KI) und Machine Learning (ML) sind gesucht, die Einsatzszenarien vielfältig. Das eBook „Künstliche Intelligenz für Developer“ vermittelt ein grundlegendes Verständnis für KI und Machine Learning und nennt essenzielle Werkzeuge.

Das eBook behandelt folgende Bereiche:

  • Programmiersprachen und Bibliotheken
  • Entwicklungsumgebungen und Cloud-Plattformen
  • Testing von Software für Machine Learning

* Dr. A. Beasley, Ziath, CB22 3HB Cambridge Papisford/UK

(ID:47884697)