Wie wir unsere künstliche Intelligenz erschaffen

28/03/22

Wir haben oft über künstliche Intelligenz gesprochen, aber wir haben es noch nicht aus der Sicht derjenigen getan, die sich dem Thema nähern und versuchen möchten, ihre eigene KI zu bauen.

Heute wenden wir uns jedoch an die Jüngeren und versuchen zu erklären, was es braucht, um eine KI zu erstellen, welche Werkzeuge nützlich sind und wie Sie Schritt für Schritt Ihrem Ziel näher kommen. In diesem Artikel setzen wir einige Kenntnisse als selbstverständlich voraus, insbesondere erklären wir nicht, was eine KI ist. Wenn Sie beim Weiterlesen feststellen, dass Sie einige Konzepte auffrischen müssen, empfehle ich Ihnen, den Artikel "Die neue digitale Revolution, Deep Learning"von Andrea Piras, wo Sie die Definitionen und Erklärungen von KI finden, Maschinelles lernen e Tiefes Lernen.

Identifizieren Sie das Problem

Es mag seltsam erscheinen, aber wenn Sie eine KI bauen möchten, müssen Sie das Problem, das Sie lösen möchten, gut identifizieren. 

Wir weisen gleich darauf hin, dass ein aus menschlicher Sicht einfach erscheinendes Problem für eine KI schwierig oder komplex sein kann und umgekehrt. KI ist normalerweise sehr effektiv bei der Ausführung sich wiederholender Aufgaben, die für eine Person möglicherweise entfremdend sein könnten. Angenommen, Sie müssen Fotos und Zeichnungen einiger Obstsorten (Birnen und Äpfel) sammeln. Wir könnten eine Person einstellen, die zeichnen kann, und sie auf der Suche nach Motiven zum Zeichnen herumschicken. Leonardo da Vinci hätte wahrscheinlich die Märkte der Stadt und die Landschaft bereist und die Zeichnungen selbst angefertigt. Oder wir könnten einen Fotografen engagieren und ihn bitten, einige Aufnahmen zu machen, die wir dann für unsere Zwecke verwenden. Wir könnten auch jemanden beauftragen, das Internet nach Bildern zu durchsuchen und sie dann je nach Thema in zwei verschiedenen Ordnern zu speichern. Im letzteren Fall könnten wir eine für diesen Zweck geschaffene KI verwenden. Wie Sie sehen können, ist die Aufgabe relativ einfach, aber die verwendete Methodik und Technologie sind unterschiedlich. 

Ebenso ist es möglich, dass dasselbe Problem mit verschiedenen Arten von künstlicher Intelligenz gelöst werden kann. Es ist daher notwendig, zu versuchen, das Problem gut zu definieren und die beste Methode auszuwählen, um das Ziel zu erreichen. Schließlich kann es je nach Problemstellung auch vorkommen, dass sich der Einsatz einer KI als nutzlos und teuer herausstellt, aber auf letzteren Fall gehen wir nicht ein.

Über die Daten ...

Sobald das Problem definiert ist, könnte es verlockend sein, das Programm (den Code) zu schreiben, das uns bei der Lösung hilft (wir sprechen immer davon, Bilder, Fotos oder Zeichnungen von Birnen und Äpfeln zu sammeln und sie zu klassifizieren). Aber das ist nicht der Fall, zuerst müssen wir über die Daten nachdenken. Wir müssen versuchen zu verstehen, mit welcher Art von Daten wir es zu tun haben (strukturiert oder unstrukturiert) und wie wir sie katalogisieren sollten: müssen wir die Äpfel und Birnen aufteilen oder müssen wir etwas Komplexeres tun, vielleicht zwischen Früchten von unterscheiden verschiedene Farben? Die Datenanalyse ist sehr wichtig und wird in verschiedenen Phasen unseres Projekts nützlich sein, insbesondere in der Trainingsphase unserer KI, in der Praxis, wenn ihr beigebracht wird, die Aufgabe zu erfüllen, für die sie erstellt wurde.

Wie ich bereits sagte, können Daten in zwei Makrokategorien unterteilt werden: strukturiert oder unstrukturiert.

Strukturierte Daten entsprechen einem Modell, haben eine wohldefinierte Struktur, sind geordnet und können zur Verwendung leicht abgerufen werden (entweder durch eine Person oder durch ein Programm). Sie werden in der Regel in Datenbanken gespeichert. Wenn wir das zuvor eingeführte Beispiel von Äpfeln und Birnen betrachten, können wir den beiden Früchten ihre eigenen Merkmale (Farbe, Größe, Form ...) zuordnen, die zur Unterscheidung dienen und zum Trainieren des Algorithmus verwendet werden. 

Unstrukturierte Daten hingegen sind Videos, Fotos, Audio ... viel schwieriger zu verarbeiten.

Der Algorithmus

Nachdem wir über die Art der Daten nachgedacht haben, mit denen wir es zu tun haben, können wir anfangen, über den am besten geeigneten Algorithmus zur Lösung des Problems nachzudenken, einen Algorithmus, der das Herzstück unserer KI werden wird. 

Wir können Algorithmen in zwei Kategorien einteilen, die als „überwachtes Lernen“ und „unüberwachtes Lernen“ bezeichnet werden. 

Die erste Kategorie (überwachtes Lernen) umfasst Algorithmen, die ein menschliches Eingreifen erfordern, hauptsächlich um die Daten manuell zu klassifizieren, die dann zum Trainieren des Algorithmus verwendet werden. Wenn unser Problem darin bestand, eingehende E-Mails zu überprüfen und Spam-Mails auszuwählen, die an einen bestimmten Ordner gesendet werden sollen, werden wir wahrscheinlich einen Algorithmus dieser Kategorie verwenden, indem wir als Beispiel eine sehr große Anzahl von Nachrichten verwenden, die Benutzer als legitim oder Spam eingestuft haben. Zu diesen Techniken gehören neuronale Netze, naive Bayes, lineare Regression, logistische Regression, Support-Vektor-Maschine (SVM), k-nächster Nachbar, Random Forest.

Die zweite Kategorie (unüberwachtes Lernen) umfasst Algorithmen, die kein menschliches Eingreifen erfordern, um die Daten zu klassifizieren, und es gibt drei Unterkategorien: Clustering, Assoziation und Dimensionsreduktion. Wenn unser Problem beispielsweise darin besteht, potenziell bösartige Aktivitäten in einem Unternehmensnetzwerk zu identifizieren, werden wir wahrscheinlich einen Clustering-Algorithmus verwenden, um die Gruppe von Aktivitäten zu identifizieren, die sich sehr von den üblichen unterscheiden. 

KI trainieren

Der nächste Schritt besteht darin, den Algorithmus für die Ausführung der Aufgabe zu trainieren. Um auf das einfache Ausgangsbeispiel der Teilung von Bildern von Birnen und Äpfeln zurückzukommen, muss unser Algorithmus trainiert werden, um die beiden Früchte mit einer gewissen Genauigkeit zu erkennen. Die Genauigkeit hängt von uns ab, wir müssen sie basierend auf unseren Geschäftszielen entscheiden. Wir können entscheiden, dass uns eine Genauigkeit von 80 % wichtig ist, was bedeutet, dass unser Algorithmus in der Lage sein muss, eine Birne oder einen Apfel in 80 von XNUMX Fällen auf Obstbildern zu erkennen. Dies bedeutet, dass wir den Algorithmusfehler durch eine andere Methode handhaben können (z. B. indem wir eine Person mit der Überprüfung der ausgewählten Bilder beauftragen) oder dass der Fehler unserem Unternehmen keinen Schaden zufügt oder dass der verursachte Schaden geringer ist als die Kosten, die wir tragen sollten um das Auswahlverfahren zu verbessern.

Wenn jedoch in der Trainingsphase die erforderliche Genauigkeit nicht erreicht wird, kann es notwendig sein, einen Schritt zurückzugehen und einen anderen Algorithmustyp zu wählen. Aber bevor Sie den Algorithmus ändern, ist es besser, seine Konfiguration (über die Konfigurationsparameter) zu überprüfen und ob der für die Durchführung des Trainings ausgewählte Datensatz korrekt ist. Um auf das übliche Beispiel der Auswahl von Äpfeln und Birnen zurückzukommen: Wenn wir unter den für das Training verwendeten Bildern fälschlicherweise nur Bilder von Birnen und Äpfeln in roter Farbe verwendet haben, kann es sein, dass die KI Birnen und Äpfel anderer Farben nicht erkennt , wodurch die erforderliche Genauigkeit nicht erreicht wird. In diesem Fall reicht es aus, den Datensatz so zu modifizieren, dass er Früchte verschiedener Farben enthält, bis die erforderliche Genauigkeit erreicht ist.

Programmiersprache und Plattform

Der nächste Schritt ist die Auswahl der zu verwendenden Programmiersprache. Die Wahl hängt von unseren Programmierkenntnissen ab.

Es können viele Sprachen verwendet werden, aber die häufigsten sind Python und R, da sie bereits über viele gebrauchsfertige Bibliotheken verfügen, die das Schreiben des Codes vereinfachen. Schließlich ist es notwendig, die Plattform auszuwählen, die es uns ermöglicht, unsere KI zu bauen. Es gibt verschiedene Plattformen, die bei der Realisierung unseres Projekts helfen, darunter zum Beispiel TensorFlow, eine Open-Source-Plattform, mit der Sie Tests durchführen können, ohne etwas auszugeben, oder Numpy, Keras, Pandas, scikit-learn, Matplotlib, Seaborn und so weiter , das Panorama ist wirklich breit.

Alles, was bleibt, ist zu versuchen ...

Übrigens habe ich vergessen zu erwähnen, dass sich unsere KI ständig von den Daten ernährt, die sie erhält. Es verfolgt und verwendet sie. Auf diese Weise ist es möglich, ihnen beizubringen, Vorhersagen zu treffen, vielleicht über die Qualität und Art der Äpfel, die wir in den kommenden Monaten auf dem Markt finden werden. Aber das ist ein anderes Problem!

Alessandro Rugolo

(Ich danke allen Freunden von SICYNT, die mich beraten und mir geholfen haben, den Artikel zu verbessern)

Um mehr zu erfahren:

Die neue digitale Revolution, Deep Learning - Online Defense

Schritt-für-Schritt-Methoden zum Erstellen Ihres eigenen KI-Systems heute | upGrad-Blog

Was sind strukturierte Daten? - GeeksfürGeeks

Was ist überwachtes Lernen? | IBM

Arten von Algorithmen der künstlichen Intelligenz, die Sie kennen sollten [Ein vollständiger Leitfaden] | upGrad-Blog

Unüberwachtes Lernen für Cyber ​​​​(hmgstrategy.com)