Blog


Halluzinationen in LLM: Strategien zur Überprüfung


Sevval Gölbasi


Halluzinationen in großen Sprachmodellen (LLMs) beziehen sich auf Fälle, in denen das Modell Informationen generiert, die entweder falsch, unvollständig oder untreu gegenüber der Eingabe sind. Diese Halluzinationen können viele Formen annehmen, von falschen Antworten bis zum Weglassen wichtiger Details. Darüber hinaus ist es wichtig, bei der Bewertung der Modellleistung auch andere Qualitätskriterien zu berücksichtigen, wie z. B. den Tonfall, das Ausmaß an Toxizität, Voreingenommenheit oder sogar Hass.

Gesetzgebung für KI – Was macht sie so schwierig? – Ein genauerer Blick auf den AI Act


Dr. Liel Glaser


Eine der größten Herausforderungen bei der Arbeit mit maschinellem Lernen und Künstlicher Intelligenz (KI) ist die Geschwindigkeit, mit der sich das Feld entwickelt. Täglich werden neue Artikel veröffentlicht und fast jede Woche entsteht ein neues Modell, das bestehende übertrifft. Es ist schwierig vorherzusagen, wo die nächste große Innovation entstehen wird und wie sie angewendet wird. Auch die EU stand bei der Ausarbeitung des AI Act vor dieser Herausforderung. Wie schreibt man ein nützliches Gesetz, das den Missbrauch von Technologien regelt, die noch gar nicht existieren? Um dies zu bewältigen, entschied sich die EU für eine umfassende Definition von KI, die sich auf eine technologieagnostische Beschreibung konzentriert. „KI-System“ bedeutet ein maschinenbasiertes System, das so konzipiert ist, dass es mit unterschiedlichen Autonomiestufen arbeitet und nach der Bereitstellung Anpassungsfähigkeit zeigen kann und das für explizite oder implizite Ziele aus den erhaltenen Eingaben ableitet, wie es Ausgaben wie Vorhersagen, Inhalte, Empfehlungen oder Entscheidungen generiert, die physische oder virtuelle Umgebungen beeinflussen können.“ (AI Act, Artikel 1, Absatz 1) In Teilen könnte dies auch auf Systeme angewendet werden, die bisher nicht als maschinelles Lernen oder KI betrachtet werden. Es sollte jedoch alle KI-Systeme abdecken. Eine breite Abdeckung ist in diesem Kontext wichtig, da KI bereits in vielen verschiedenen Bereichen eingesetzt wird. KI hat wahrscheinlich schon Auswirkungen auf alle europäischen Bürger und da wir den stochastischen Geist nicht wieder in die Flasche zurückbringen können, müssen wir Wege finden, unsere Wünsche sorgfältig zu bedenken. Haftungsausschluss: Dieser Artikel ist das Ergebnis eines tiefen Eintauchens eines ML-Wissenschaftlers in die EU-Regulierungen und versucht, diese zu interpretieren und zu verstehen. Er sollte nicht als rechtliche Beratung angesehen werden und alle Fehler gehen definitiv auf meine Kappe.

XAI: Nichts ist sicher (mit einer Wahrscheinlichkeit)


Yana Chekan


Das „X“ , das kürzlich vor der bekannten Abkürzung AI (Künstliche Intelligenz) aufgetaucht ist, soll das Feld nicht revolutionieren, noch steht es für etwas Spezifisches über seine wörtliche Bedeutung hinaus. Vielmehr betont es den kritischen Aspekt der Erklärbarkeit. eXplainable Artificial Intelligence (XAI) entwickelt Methoden, um einige der langjährigen Probleme des Feldes anzugehen und gleichzeitig eine eigene Reihe von faszinierenden Forschungsfragen zu stellen. Warum XAI es wert ist, Ihre Aufmerksamkeit auf sich zu ziehen, finden Sie im folgenden Text.

Post-Feinabstimmung von LLMs mit Direkter Präferenzoptimierung


Thanh Long Phan


Nach der Veröffentlichung unseres vorherigen Blogs zum Reinforcement-Learning aus menschlichem Feedback (RLHF) wurde ein alternativer Algorithmus eingeführt, der nicht die Verwendung eines Belohnungsmodells erfordert, um große Sprachmodelle (LLMs) basierend auf menschlichen Präferenzen feinzutunen. Diese Methode wird als Direkte Präferenzoptimierung (DPO) bezeichnet und wurde in dem Paper "Direct Preference Optimization: Your Language Model is Secretly a Reward Model" vorgestellt, das eines der besten Papers auf der NeurlPS 2023 war. Bekannte Open-Source-Modelle wie Mixtral 8x7B wurden mithilfe von DPO optimiert. Zum Zeitpunkt des Verfassens dieses Blogs hat Meta auch ihre neuen Llama 3-Modelle veröffentlicht, die ebenfalls DPO für das Feintuning nutzen. Und eine Woche später hat Microsoft Phi-3 vorgestellt, das ebenfalls DPO für seine Optimierungsprozesse nutzt.

LLM-Strategien Teil 1: Möglichkeiten zur Implementierung von Sprachmodellen in Ihrer Organisation


David Berscheid


Große Sprachmodelle (eng.: Large Language Models, kurz: LLMs) sind aktuell ein viel diskutiertes Thema in Strategieabteilungen uns bekannter Organisationen. Dieser Artikel ist der erste von zwei Teilen, in denen einige Anhaltspunkte zur Identifizierung sinnvoller LLM-Strategien gegeben und Lösungsansätze zur Bewältigung damit verbundener Komplexitäten vorgestellt werden sollen. Weitere Inhalte über LLMs finden Sie in unserer LLM-Übersicht .

Mit X-ROCKET zum Mond


Felix Brunner


Dies sind die Reisen des Encodermodells X-ROCKET. Seine fortwährende Mission: fremde, neue Zeitreihen zu erforschen; neue Erklärungen und neue Interpretationen zu finden; kühn nach Bedeutung zu suchen, wo noch niemand zuvor gesucht hat. In den vorangegangenen Teilen dieser Serie haben wir uns in Teil eins mit den Grundlagen der Zeitreihenklassifizierung beschäftigt und in Teil zwei gelernt, wie X-ROCKET funktioniert. Aber genug geredet, jetzt ist es an der Zeit, die X-ROCKET-Motoren anzuwerfen und dieses Modell in Aktion zu sehen. Lasst uns loslegen! Bereiten Sie sich auf den Abflug vor! Wir werden den Datensatz " AsphaltPavementTypeCoordinates " von Souza (2018) als Beispiel verwenden. Dieser Datensatz besteht aus 2.111 Beispielen von Beschleunigungsmessdaten, die von Autos aufgezeichnet wurden, die über verschiedene Arten von Straßenbelägen fuhren. Jedes Zeitreihenbeispiel im Datensatz hat drei Kanäle (entsprechend der X-, Y- und Z-Richtung), von denen jeder mit 100 Hz gemessen wird. Die Länge der Aufzeichnungen variiert von 66 Zeitbeobachtungen bis zu 2.371. Die Klassen sind "flexibel" (38,6 %), "Kopfsteinpflaster" (25,0 %) und "unbefestigte Straße" (36,4 %). Laut Beschreibung erreichte das beste Modell eine Genauigkeit von 80,66% bei dieser Aufgabe, die wir als Benchmark verwenden werden. Houston, wir haben also unser Problem - ein relativ ausgewogenes dreifaches multivariates Zeitreihenklassifizierungsproblem, um genau zu sein. Das Modul aeon bietet eine einfache Möglichkeit, diesen Datensatz für unsere maschinelle Lernaufgabe zu laden. Wir werden auch scikit-learn verwenden, um den Originalautoren zu folgen und den vollständigen Datensatz in gleich große Trainings- und Test-Splits zu unterteilen: from aeon.datasets import load_classification from sklearn.model_selection import train_test_split X, y, meta = load_classification("AsphaltPavementTypeCoordinates") X_train, X_test, y_train, y_test = train_test_split( X, z, test_size=0.5, random_state=0 ) Wie man eine ROCKET baut Als Nächstes wollen wir ein geeignetes Gefäß zur Kodierung dieses Datensatzes zusammenstellen. Nachdem wir das Modul xrocket mit seinen Abhängigkeiten in unserer Umgebung installiert haben, können wir sofort das vollständige Encoder-Modul importieren. Dann müssen wir nur noch eine Instanz davon mit geeigneten Parametern für unser Problem initialisieren. Da unser Datensatz drei Kanäle hat, ist die Wahl von in_channels klar. Da die Länge der Zeitreihen innerhalb unseres Datensatzes stark variiert, ist es sinnvoll, max_kernel_span auf einen Wert zu setzen, der auch für die kürzeren Beispiele geeignet ist, in diesem Fall also auf 100. Schließlich belassen wir combination_order und feature_cap vorerst auf den Standardwerten von eins und 10.000: from xrocket import XRocket encoder = XRocket( in_channels=3, max_kernel_span=100, combination_order=1, feature_cap=10_000, ) Angesichts dieser Eingaben wird unser Encoder automatisch so eingestellt, dass er die üblichen 84 MiniROCKET-Kernel bei 12 verschiedenen Dilatationswerten hat. Bei drei Datenkanälen wählt X-ROCKET drei Pooling-Schwellenwerte für jede Kernel-Dilatations-Kanal-Kombination, um innerhalb der feature_cap zu bleiben. Daher beträgt die Einbettungsdimension 84 12 3 * 3 = 9.072. Um diesen Apparat schließlich zum Einsteigen vorzubereiten, müssen wir nur noch geeignete Werte für die 9.072 Pooling-Schwellenwerte finden. Wir tun dies, indem wir unsere XRocket -Instanz an ein Datenbeispiel anpassen. Da das Modell mit PyTorch-Tensoren arbeitet, bei denen die erste Dimension für das Stapeln mehrerer Beispiele in einem Stapel reserviert ist, müssen wir die Daten nur von einem 2D-Numpy-Array in einen 3D-Tensor umwandeln und in den Encoder einspeisen: from torch import Tensor encoder.fit(Tensor(X_train[0]).unsqueeze(0)) Los geht's! Nun, da unser X-ROCKET kalibriert ist, können wir den Countdown starten. Auch hier müssen die Eingaben im 3D-Tensorformat vorliegen, also müssen wir die Beispiele in PyTorch-Tensoren umwandeln, bevor wir sie an das Modell übergeben. Aufgrund der unterschiedlichen Längen der Zeitreihen können wir nicht so einfach mehrere Beispiele zu einem Stapel zusammenfassen. Daher ist es bequemer, die Beispiele einzeln zu kodieren und die Einbettungen in zwei Listen zu sammeln, eine für die Trainingsmenge und eine für die Testmenge. Zeit für den vollen Schub, viel Erfolg! embed_train, embed_test = [], [] for x in X_train: embed_train.append(encoder(Tensor(x).unsqueeze(0))) for x in X_test: embed_test.append(encoder(Tensor(x).unsqueeze(0))) 8,02 Sekunden auf einer mäßig schnellen Consumer-CPU später sind die Einbettungen sowohl des Trainings- als auch des Testsatzes fertig. Das heißt, wir haben jetzt eine Darstellung der Eingabedaten unterschiedlicher Größe in festdimensionalen Vektoren. Es ist also an der Zeit, aus diesem Problem ein tabellarisches Problem mit benannten Merkmalen zu machen, die in einem DataFrame gespeichert sind. Der Encoder stellt das Attribut feature_names zur Verfügung, das die Namen der einzelnen Einbettungswerte als Tupel von (pattern, dilation, channel, threshold) enthält. Wir legen diese Tupel in einem Index ab und benennen sie entsprechend. Schließlich erstellen wir die Rahmen, um die transformierten Datensätze zu speichern. Wer sagt denn, dass die Klassifizierung von Zeitreihen eine Wissenschaft für sich ist? from torch import concat import pandas as pd feature_names = pd.Index(encoder.feature_names) df_train = pd.DataFrame(data=concat(embed_train), columns=feature_names) df_test = pd.DataFrame(data=concat(embed_test), columns=feature_names) X-ROCKET einen Zweck geben Wie so viele Dinge im Universum kämpft auch X-ROCKET damit, seinen Weg ohne einen Kopf zu finden. Um sicherzustellen, dass es seiner Flugbahn zum vorgesehenen Ziel - der Zeitreihenklassifizierung - folgen kann, müssen wir einen geeigneten Vorhersagekopf finden, der die Nutzlast liefert. Wie bereits erwähnt, ist prinzipiell jedes Vorhersagemodell, das für den beabsichtigten Zweck geeignet ist, in Ordnung. Beachten Sie, dass dies theoretisch auch tiefe neuronale PyTorch Feed-Forward-Netzwerke einschließt, die es ermöglichen, Backpropagation von Ende zu Ende zurück zu den X-ROCKET-Gewichten laufen zu lassen, um ihre Einbettungen zu verbessern. Aber keine Panik, es ist auch ohne Deep Thought möglich, Antworten zu finden! Da wir letztlich an der Erklärbarkeit der Vorhersagen interessiert sind, wählen wir stattdessen ein einfaches und erklärbares Klassifikationsmodell. Der RandomForestClassifier von Scikit-learn ist dafür ein guter Anfang. Wir müssen ihn nur laden und auf unsere Trainingsdaten anwenden: from sklearn.ensemble import RandomForestClassifier clf = RandomForestClassifier(random_state=0) clf.fit(df_train, y_train) Wow, das ging ja fast ab wie eine Rakete! Nur 3,13 Sekunden später haben wir unseren Klassifikator. Schauen wir mal, wie er sich in dem Datensatz schlägt. Da in der Originalarbeit eine Genauigkeit von 80,66 % angegeben wird, wollen wir unser Modell auf die gleiche Weise mit dem Hold-Out-Datensatz bewerten, wie sie es getan haben: from sklearn.metrics import accuracy_score pred_test = clf.predict(df_test) acc_test = accuracy_score(y_test, pred_test) Und da haben wir es, unser Modell erreicht eine Genauigkeit von 90,19% auf dem Testsatz! Nicht schlecht, aber ist das genug, um einen kleinen Rocket Man stolz zu machen? Um diese Frage schlüssig zu beantworten, sind natürlich genauere Vergleiche erforderlich. Dennoch scheint dies ein erfolgreicher Start gewesen zu sein! Wo noch kein ROCKET Man zuvor war Es ist an der Zeit, X-ROCKET auf seiner ultimativen Suche nach Bedeutung bis an die letzte Grenze zu führen. Da das Modell akzeptabel zu funktionieren scheint, ist es sinnvoll, auch die Erklärungen zu analysieren, die es für seine Vorhersagen liefert. Glücklicherweise bietet der von uns gewählte Random-Forest-Klassifikator ein Attribut namens feature_importances_ , das allen Merkmalen des Modells Wichtigkeitswerte zuweist. Da wir den entsprechenden Index in feature_names gespeichert haben, können wir die beiden Arrays leicht zusammenführen: feature_importances = pd.Series( data=clf.feature_importances_, index=feature_names, ) Die Analyse dieses Objekts ist ohnehin nur bedingt sinnvoll. Wir können zum Beispiel sehen, dass die wichtigste Einbettung für unser Modell das Muster HLHLLLHLL bei Dilatation zwei im Y-Kanal mit einem Pooling-Schwellenwert von -10,84 ist. Ein H in dem Muster steht für einen hohen Wert, ein L für einen niedrigen, so dass das Muster etwa wie |_|___|__ aussieht. Es ist nun jedoch einfach, die Wichtigkeitswerte zusammenzufassen, um die relative Wichtigkeit z. B. der Eingangskanäle zu untersuchen. Summiert man die einzelnen Kanäle, erhält man die nachstehenden Wichtigkeitswerte. Da X-ROCKET die Zufälligkeit bei der Zusammenstellung der Einbettungen beseitigt, werden aus jedem Kanal und jedem Dilatationswert die gleichen Merkmale extrahiert. Daher bietet der Vergleich der gruppierten Merkmalsbedeutungen auf diese Weise einen fairen Vergleich. Relative Bedeutung der Eingangskanäle für die Vorhersagen. Das heißt, der Y-Kanal scheint der klare Favorit zu sein, gefolgt vom X-Kanal. Ähnlich verhält es sich, wenn man die verschiedenen Dilatationswerte zusammenzählt: Es zeigt sich, dass die höheren Frequenzen ausschlaggebend sind. Bei Einträgen, die mit 100 Hz aufgezeichnet werden, bedeutet ein Dilatationswert von 2 zum Beispiel eine Frequenz von 50 Hz. Wie in der nachstehenden Abbildung zu sehen ist, sind die meisten Informationen in diesen höheren Frequenzen enthalten, d. h. in denjenigen mit kleineren Dilatationswerten. Relative Bedeutung der verschiedenen Frequenzdilatationen für die Vorhersagen. Was hat der Arzt zur ROCKET gesagt? "Time to get your booster shot!" Dementsprechend könnte man sich fragen, wie man diesem Raketenschiff einen zusätzlichen Leistungsschub verschaffen könnte. Im Bereich des maschinellen Lernens sind die Möglichkeiten natürlich endlos. Man könnte zum Beispiel alternative Modellköpfe wie Gradient-Boosting-Algorithmen ausprobieren oder die entsprechenden Hyperparameter besser optimieren. Auf einem anderen Weg könnte man darüber nachdenken, wie man die Datenqualität verbessern oder den vorhandenen Datensatz mit künstlichen Beispielen anreichern kann. Dies würde jedoch den Rahmen dieser einfachen Demonstration sprengen. Es wäre jedoch interessant zu sehen, ob der Kodierer weiter verbessert werden kann, um zusätzliche Erkenntnisse über die Einflussfaktoren für die Vorhersagekraft zu gewinnen, wenn neben den bisher gesehenen univariaten auch mehrkanalige Merkmale berücksichtigt werden. Lassen wir also alles unverändert, ändern aber nur den Encoder, indem wir combination_order=2 setzen und die Anzahl der Features mit feature_cap=15_000 bei der Initialisierung von X-ROCKET leicht erhöhen. Die resultierende Einbettung ist nun 12.096-dimensional mit 6 Kanalkombinationen anstelle von nur 3 Kanälen und 2 Pooling-Schwellenwerten für jeden Ausgang. Neben einem leichten Anstieg der Genauigkeit des Testsatzes auf 91,13% , stellen wir erneut fest, dass der Y-Kanal wieder am wichtigsten zu sein scheint, aber jetzt haben Kombinationen von Y mit den anderen Kanälen eine größere Bedeutung: Relative Bedeutung der Eingangskanalkombinationen für die Vorhersagen. Schlussfolgerungen In dieser Artikelserie haben wir gesehen, wie ein bestehendes Zeitreihen-Encoder-System umstrukturiert werden kann, um neue Erkenntnisse über die Vorhersagetreiber zu gewinnen. Teil eins hat einige der Fortschritte im maschinellen Lernen für den Zeitreihenbereich beleuchtet. Dann wurde in Teil zwei und in diesem dritten Teil X-ROCKET, ein erklärbarer Zeitreihen-Encoder, sowohl technisch als auch mit einem praktischen Anwendungsbeispiel vorgestellt. Auch wenn dieses Konstrukt im vorliegenden Beispiel seine Aufgabe erfüllt hat, ist es wichtig, darauf hinzuweisen, dass die von X-ROCKET gelieferten Erklärungen nur so gut sind wie die Vorhersagefähigkeiten des Modells für das jeweilige Problem. Das heißt, es hat keinen Sinn, ein Modell zu interpretieren, das in Bezug auf seine Vorhersagen nicht gut genug ist. Es gibt also keine Garantie dafür, dass derselbe Ansatz in verschiedenen Umgebungen gleich gut funktioniert, insbesondere wenn die Eingabedaten wenig Signal enthalten. Nichtsdestotrotz: Raketen sind cool, daran führt kein Weg vorbei! Referenzen Dempster, A., Schmidt, D. F., & Webb, G. I. (2021, August). Minirocket: A very fast (almost) deterministic transform for time series classification. In Proceedings of the 27th ACM SIGKDD conference on knowledge discovery & data mining (pp. 248–257). Souza, V. M. (2018). Asphalt pavement classification using smartphone accelerometer and complexity invariant distance. Engineering Applications of Artificial Intelligence , 74, 198–211. Dieser Artikel entstand im Rahmen des vom Bundesministerium für Bildung und Forschung (BMBF) unter dem Förderkennzeichen 02P20A501 geförderten Projekts "AI-gent3D - KI-gestütztes, generatives 3D-Drucken" unter Koordination des PTKA Karlsruhe.

Inside X-ROCKET: Das erklärbare ROCKET-Modell


Felix Brunner


Willkommen auf der Brücke, Pilot! In diesem zweiten Teil unserer dreiteiligen Reise werden wir einen detaillierten Blick auf das Innere der X-ROCKET- Implementierung werfen. Nachdem in Teil eins die Voraussetzungen für die Klassifizierung von Zeitreihen und eine grundlegende Einführung in das ROCKET-Modell geschaffen wurden, bietet dieser Artikel einen Überblick über die notwendigen Mechanismen für erklärbare Einbettungen, bevor Teil drei X-ROCKET in ein holpriges Wettrennen auf einem realen Datensatz schickt. Die Blaupause für Erklärbarkeit Auch hier besteht unser Ziel darin, einen leistungsfähigen Zeitreihencodierer, das ROCKET, erklärbar zu machen. Eine Möglichkeit, dies zu erreichen, besteht darin, jedes Element der Einbettungsvektoren zu seinen Ursprüngen zurückzuverfolgen und ihnen damit eine Bedeutung zu verleihen. Anders ausgedrückt: Wenn es uns gelingt, jedes Einbettungselement sinnvoll zu benennen, verwandeln wir nachgelagerte Aufgaben effektiv in tabellarische Probleme. Angesichts der Komplexität und Nichtlinearität neuronaler Netze ist dies in der Regel leichter gesagt als getan. Im Fall von ROCKET ist die Architektur jedoch flach genug, um mit ein wenig Technik und Tricks Licht in ihr Innenleben zu bringen. Genauer gesagt wird das MiniROCKET von Dempster et al. (2021) als Ausgangspunkt dienen, dem wir Transparenz hinzufügen, indem wir seine Kodierungsmechanismen vollständig zurückverfolgen. Obwohl Faltungen nicht unbedingt in einem Deep-Learning-Framework implementiert werden müssen, kann dies die Rechengeschwindigkeit durch die Nutzung von GPUs erhöhen. Dementsprechend gibt es bereits gute Implementierungen von verschiedenen ROCKET-Varianten in Python. Zum Beispiel ist der Numpy-Code der Originalautoren Teil der sktime -Bibliothek, und tsai enthält eine GPU-fähige PyTorch-Version davon. Obwohl diese Implementierungen rechnerisch bereits sehr effizient sind, erfordern unsere Bemühungen einige Änderungen, die sich nach einer Umstrukturierung des Modells leichter erreichen lassen. Gehen wir näher auf die technischen Details der X-ROCKET Implementierung ein. Wie bereits erwähnt, ähneln die ROCKET-Architekturen sehr einfachen CNNs, warum also nicht auch ihre Implementierung wie ein neuronales Netz strukturieren? Das heißt, wir behandeln die Berechnungsschritte als Schichtobjekte und fügen sie entsprechend den Ideen hinter ROCKET zusammen. Genauer gesagt, wir definieren Module für jeden Berechnungsschritt, so dass es einfacher ist, den zugrunde liegenden Berechnungsgraphen zu verstehen. Das folgende Diagramm zeigt schematisch die gesamte Architektur von X-ROCKET. Eine Eingangszeitreihe wird mehreren Dilatationsblöcken parallel zugeführt, von denen jeder aus einem Faltungsmodul, einem Kanalmischmodul und einem Schwellenwert-Pooling-Modul besteht. Nach der sequentiellen Verarbeitung der Daten in seinen Untermodulen gibt jeder Dilatationsblock einen Vektor von Einbettungen aus. Schließlich werden diese Einbettungen zusammengefügt, um die vollständige X-ROCKET-Ausgangseinbettung zu bilden, die von nachgelagerten Modellen aufgegriffen werden kann, um eine Vorhersage zu erstellen - in unserem Fall eine Klassifizierung. Beachten Sie, dass die Interpretierbarkeit der endgültigen Vorhersage davon abhängt, wie erklärbar das nachgelagerte Vorhersagemodell ist. Während erklärbare KI (XAI) ein sehr aktives Forschungsgebiet ist, mit einer ganzen Literatur, die sich damit beschäftigt, Algorithmen erklärbar zu machen, folgen wir dem Vorschlag der Originalautoren, relativ einfache Vorhersageköpfe zu verwenden, die ohne zusätzliche Raffinesse erklärbar sind. Vollständiger Überblick über die X-ROCKET-Architektur. Im Folgenden werde ich die verschiedenen Module, aus denen X-ROCKET besteht, näher erläutern. ROCKET-Konvolutionen Der erste Schritt bei der Verarbeitung der Daten besteht in der Anwendung von Faltungskernen, die nach festen Mustern in den Daten suchen. Da wir es mit Zeitreihen zu tun haben, sind 1-dimensionale Kerne die richtige Wahl. Die nachstehende Zeichnung veranschaulicht, wie die Faltungen angewendet werden. Bei einer Sequenz von Eingabedaten werden Faltungskerne angewandt, indem sie über die Eingabe geschoben und die elementweisen Produkte im jeweiligen Fenster summiert werden. Auf diese Weise wird die Eingabe nach dem Vorkommen des jeweiligen Musters durchsucht, was zu einer Ausgabe führt, die die gleiche Form wie die Eingabe hat. In der folgenden Abbildung ist zu erkennen, dass die Ausgabesequenz immer dann große Werte aufweist, wenn die Eingabe eine Spitze aufweist. Umgekehrt ist die Ausgabe negativ, wenn es eine Senke in der Eingabe gibt. Das liegt daran, dass in diesem Beispiel die Eingabe nach dem Muster [-1, 2, -1] gefiltert wird, das selbst die Form eines Spikes hat. X-ROCKET verwendet dieselben 84 Filter mit einer Länge von neun Werten wie in Dempster et al. (2021) vorgeschlagen, aber im Gegensatz zu den Originalautoren polstern wir die Eingaben immer auf, um Ausgabesequenzen gleicher Länge zu erhalten. Um die Erklärbarkeit in diesem Schritt aufrechtzuerhalten, genügt es, die jeder Ausgangssequenz entsprechenden Kernel zu speichern. Illustration einer 1D-Faltung. Kanalmischung Bei multivariaten Zeitreihen, d. h. bei Zeitreihen mit mehreren Kanälen, kann es sinnvoll sein, Korrelationen von Mustern in mehreren Kanälen zu berücksichtigen. Während sich die ursprüngliche Implementierung hauptsächlich auf den univariaten Fall konzentriert und vorschlägt, zufällige Kombinationen von ROCKET-Faltungen naiv zu addieren, möchten wir einen ausgewogenen Vergleich von Merkmalen bieten. Daher entfernt X-ROCKET die Zufälligkeit und bietet stattdessen die Möglichkeit, den Merkmalspool mit Kanalkombinationen bis zu einer bestimmten Reihenfolge zu erweitern. Als zusätzliche Option können Kanäle multiplikativ statt additiv kombiniert werden, um dem Konzept einer Korrelation näher zu kommen. Die Erklärbarkeit in diesem Schritt wird dadurch gewährleistet, dass die Kanäle, aus denen die gemischten Ergebnisse gebildet wurden, gespeichert werden. Illustration von Kanalkombinationen. PPV-Schwellenwert-Pooling Die bisherigen Transformationen haben den Umfang der Daten keineswegs verringert. Das heißt, die Anwendung mehrerer Faltungsfilter auf jeden Kanal und das Hinzufügen von Kombinationen der Eingangskanäle zu den einkanaligen Faltungsausgängen führt zu einer weitaus größeren Anzahl von Ausgangskanälen gleicher Länge als ursprünglich eingegeben. Daher ist es an der Zeit, die zeitliche Dimension durch einen Pooling-Mechanismus zu reduzieren. In Anlehnung an die Vorschläge des Originalpapiers wendet X-ROCKET das Proportion-of-Positive-Values-Pooling (PPV) an. Genauer gesagt werden die Werte in jedem Zwischenkanal mit einem oder mehreren Schwellenwerten pro Kanal versehen, wobei die Schwellenwerte automatisch auf der Grundlage repräsentativer Beispiele in einem ersten Anpassungsschritt ausgewählt werden. Anschließend zählt PPV den Anteil der Werte, die den jeweiligen Schwellenwert über die Zeitachse hinweg überschreiten. Die sich daraus ergebenden Prozentsätze dienen schließlich direkt als Merkmalswerte im Einbettungsvektor. Zur Erklärung können die Elemente im Embedding also eindeutig mit einer Kombination aus Faltungs-Kernel, einem oder mehreren Eingangskanälen und einem Schwellenwert verknüpft werden. Veranschaulichung der Zusammenführung der Anteile positiver Werte über Schwellenwerte. Dilatationsblöcke Da die betrachteten Faltungskerne nur neun Beobachtungen umfassen, ist die Kapazität des Modells bisher auf die Erkennung einer sehr engen Gruppe von Eingangsmerkmalen beschränkt. Um dies zu ändern, werden mehrere Dilatationswerte gleichzeitig auf identische Kernel angewandt, um deren rezeptive Felder zu erweitern. X-ROCKET erreicht dies in der Praxis, indem es die oben erwähnte Abfolge von Faltung, Kanalmischung und PPV-Schwellwertbildung in mehreren Dilatationsblöcken parallel ausführt. Im Prinzip sind Dilatationen ein Standardverfahren im Zusammenhang mit CNNs, aber die meisten Architekturen verwenden in jedem Schritt nur einen einzigen Wert. Eine ähnliche Idee hat sich jedoch kürzlich als vielversprechend erwiesen, um die kontextuellen Fähigkeiten von LLMs drastisch zu verbessern, indem Kontextfenster durch dilatierte Aufmerksamkeit vergrößert werden (siehe Ding et al. (2023) ). Um besser zu verstehen, wie die Filterdilatation funktioniert, betrachten Sie die folgende Zeichnung. Die Anwendung eines Dilatationswerts bedeutet, dass der Kernel über einen längeren Zeitraum gestreckt wird und dadurch niedrigere Frequenzen nach den entsprechenden Mustern durchsucht werden. Beispielsweise zeigt die resultierende Aktivierung mit einem Dilatationswert von zwei das Auftreten des Musters bei der Hälfte der Datenfrequenz an. Für die Erklärbarkeit ist es daher wichtig, auch den Dilatationswert zu speichern, der jedem Einbettungselement entspricht. Veranschaulichung von Frequenzdilatationen. Das vollständige Modell Um zum vollständigen Modell zurückzukehren, können wir nun die Teile zusammensetzen. Um den Encoder zu initialisieren, müssen wir einige Hyperparameter wählen, die die genaue Struktur des Modells bestimmen. Zunächst muss die Anzahl der Eingangskanäle in_channels entsprechend der Anzahl der Kanäle in den Daten festgelegt werden. Zweitens muss für die automatische Auswahl der zu berücksichtigenden Dilatationswerte eine Obergrenze für die Breite der rezeptiven Faltungsfelder festgelegt werden, die sogenannte max_kernel_span . Normalerweise wählt X-ROCKET dann 20-30 verschiedene Frequenzen aus, die berücksichtigt werden. Als nächstes bestimmt die combination_order , wie viele Kanäle bei der Suche nach Korrelationen miteinander kombiniert werden. Standardmäßig ist dieses Schlüsselwortargument der Einfachheit halber auf 1 gesetzt. Schließlich begrenzt feature_cap die Dimensionalität der Ausgabe standardmäßig auf 10.000 Merkmale. X-ROCKET baut dann den Feature-Pool deterministisch auf, d.h. es wird darauf geachtet, alle Kanal-Dilatations-Kernel-Kombinationen zu berücksichtigen. Daher muss die resultierende Anzahl von Merkmalen ein Vielfaches aller möglichen Kombinationen sein und liegt nicht notwendigerweise in der Nähe des angegebenen Wertes. Wenn innerhalb der Merkmalsobergrenze noch Platz ist, werden im Pooling-Schritt mehrere Schwellenwerte auf jede Kanal-Dilatations-Kernel-Kombination angewendet, um zusätzliche Merkmale zu erzeugen. Um schließlich die Einbettungen in Vorhersagen umzuwandeln, muss der Encoder mit einem Vorhersagemodell kombiniert werden. Da wir an der Interpretierbarkeit interessiert sind, sind erklärbare Modelle hier die richtige Wahl. Nachdem das Problem durch den X-ROCKET-Encoder effektiv tabellarisch strukturiert wurde, sind viele Modelle für tabellarische Daten geeignete Kandidaten. Zum Beispiel bietet scikit-learn eine große Auswahl an aufschlussreichen Algorithmen für tabellarische Daten. Auch Gradient-Boosting-Algorithmen wie XGBoost sind leistungsstarke Alternativen. Beachten Sie, dass die Standardisierung der Einbettungsvektoren ein wesentlicher Zwischenschritt sein kann, um die Interpretierbarkeit einiger dieser Vorhersagealgorithmen zu gewährleisten. Schließlich ist es mit dem X-ROCKET-Code im PyTorch -Framework auch einfach, den Encoder mit einem tiefen neuronalen Feed-Forward-Netzwerk zu kombinieren. Alles, was über eine einzelne lineare Schicht hinausgeht, könnte jedoch auch in diesem Fall schwer zu interpretieren sein. Im nächsten und letzten Teil werde ich ein einfaches Anwendungsbeispiel der X-ROCKET-Implementierung zeigen, das auch veranschaulicht, welche Art von Erkenntnissen man neben der reinen Vorhersageleistung aus X-ROCKET ableiten kann. Referenzen Dempster, A., Schmidt, D. F., & Webb, G. I. (2021, August). Minirocket: A very fast (almost) deterministic transform for time series classification. In Proceedings of the 27th ACM SIGKDD conference on knowledge discovery & data mining (pp. 248–257). Ding, J., Ma, S., Dong, L., Zhang, X., Huang, S., Wang, W., & Wei, F. (2023). Longnet: Scaling transformers to 1,000,000,000 tokens. arXiv preprint arXiv:2307.02486 . Die Zeichnungen wurden in excalidraw erstellt. Dieser Artikel entstand im Rahmen des vom Bundesministerium für Bildung und Forschung (BMBF) unter dem Förderkennzeichen 02P20A501 geförderten Projekts "AI-gent3D - KI-gestütztes, generatives 3D-Drucken" unter Koordination des PTKA Karlsruhe.

Erklärbare Zeitreihenklassifizierung mit X-ROCKET


Felix Brunner


Angesichts des anhaltenden Hypes in den Bereichen Computer Vision und Verarbeitung natürlicher Sprache werden Zeitreihen häufig übersehen, wenn es um wirkungsvolle Anwendungen des maschinellen Lernens geht. Zeitreihendaten sind jedoch in vielen Bereichen allgegenwärtig, und die prädiktive Modellierung solcher Daten ist oft von erheblichem geschäftlichem Wert. Eine wichtige Aufgabe in diesem Zusammenhang ist die Klassifizierung von Zeitreihen, die aufgrund ihrer vielfältigen Anwendungen in Bereichen wie dem Finanzwesen, dem Gesundheitswesen und der Fertigung immer mehr Aufmerksamkeit auf sich zieht. Es wurden zahlreiche Techniken entwickelt, um die besonderen Herausforderungen von Zeitreihendaten zu bewältigen, bei denen eine höhere Kapazität oft auf Kosten der Interpretierbarkeit und der Rechengeschwindigkeit geht. Während das Rennen um ein gemeinsames, dem Stand der Technik entsprechendes Einbettungsmodell für Zeitreihen weitergeht, hat R and O m C onvolutional KE rnel T ransform (ROCKET) von Dempster et al. (2020) als einfaches, aber leistungsfähiges Kodiermodell große Aufmerksamkeit erlangt. In dieser Artikelserie werde ich die dem Modell zugrundeliegenden Ideen vorstellen und eine Erweiterung zeigen, die die Erklärbarkeit seiner Einbettungen für die Verwendung in nachgelagerten Aufgaben erhöht. Sie besteht aus drei Teilen: Dieser erste Teil enthält Hintergrundinformationen zur Zeitreihenklassifizierung und zu ROCKET. Der zweite Teil beleuchtet das Innenleben der X-ROCKET- Implementierung . Der dritte Teil nimmt uns mit auf eine Erkundung der Möglichkeiten von X-ROCKET in einer praktischen Umgebung. Die Grundlagen der Zeitreihenklassifizierung Eine häufige Aufgabe im Bereich der Zeitreihen besteht darin, zu erkennen, zu welcher Kategorie eine Eingabe gehört. Beispielsweise könnte man daran interessiert sein, den Zustand einer Produktionsmaschine anhand einer Folge von Sensormessungen zu diagnostizieren oder den Gesundheitszustand eines Organismus anhand von biomedizinischen Beobachtungen über ein Zeitintervall vorherzusagen. Formal lässt sich das Problem wie folgt beschreiben: Berechnen Sie bei einer Folge von Beobachtungen mit regelmäßiger Häufigkeit die Wahrscheinlichkeiten, dass die Eingaben zu einer festen Gruppe von Klassen gehören. Die Eingabedaten für jedes Beispiel sind in der Regel als 1D-Array numerischer Werte im univariaten Fall oder als 2D-Array, wenn es mehrere Kanäle gibt, strukturiert. Ein Vorhersagemodell berechnet dann Klassenwahrscheinlichkeiten als seine Ausgabe. In diesem Zusammenhang bestehen Modelle in der Regel aus einem Encoder-Block, der Merkmalseinbettungen erzeugt, und einem Klassifizierungsalgorithmus, der die Einbettungen verarbeitet, um die Ausgabewahrscheinlichkeiten zu berechnen, wie im folgenden Diagramm schematisch dargestellt. Illustration einer Pipeline zur Klassifizierung von Zeitreihen (gezeichnet in excalidraw ). Während die Klassifizierungsalgorithmen im Bereich des maschinellen Lernens ausgereift sind, ist weniger klar, wie man geeignete Merkmale aus Zeitreiheneingaben extrahieren kann. Herkömmliche Zeitreihenansätze wie Dynamic Time Warping und Fourier-Transformationen haben sich als vielversprechend bei der Handhabung von Zeitreihenähnlichkeit und Merkmalsextraktion erwiesen. In jüngster Zeit haben sich mit dem Aufkommen des Deep Learning rekurrente neuronale Netze (RNNs) und neuronale Faltungsnetze (CNNs) als dominante Methoden zur Erfassung sequenzieller Muster bzw. räumlicher Merkmale herauskristallisiert. Schließlich haben auf Transformer basierende Modelle mit zeitlicher Aufmerksamkeit in der neuesten Forschung gezeigt, dass sie vielversprechend sind, um den Bereich der Zeitreihenklassifizierung weiter voranzubringen (z. B. Zerveas et al. (2021) ). Trotz dieser Fortschritte gibt es immer noch erhebliche Herausforderungen bei der Auswertung von Zeitreihendaten. Während Bilder oder Texte von unserem menschlichen Gehirn in den meisten Fällen sofort interpretiert werden können, kann die Untersuchung der Schwankungen in Zeitreihenaufzeichnungen so unintuitiv sein, dass eine Klassenzuordnung von vornherein unmöglich ist. Insbesondere ist oft unklar, wie informativ bestimmte Zeitreihenaufnahmen überhaupt sind, was durch das weit verbreitete Rauschen noch verschärft wird. Daher ist es eine offene Frage, wie die Daten verarbeitet werden sollten, um potenzielle Signale aus einer Eingabe zu extrahieren. Außerdem sind Zeitreihen im Gegensatz zu Bildern oft unterschiedlich lang, so dass Methoden zur Merkmalsextraktion in der Lage sein sollten, Eingaben in festdimensionale Einbettungsvektoren zusammenzufassen, die unabhängig von der Größe der Eingabe sind. Schließlich können Zeitreihendaten stationär sein oder auch nicht, was sich möglicherweise nachteilig auf die Vorhersagequalität auswirkt. Was funktioniert? Welches ist also das beste Modell für die Klassifizierung von Zeitreihen? Leider ist die Antwort nicht so einfach. Das liegt vor allem daran, dass es keine allgemein anerkannten Benchmarks gibt, was einen fairen Vergleich der zahlreichen und unterschiedlichen Modelle, die in der Literatur vorgeschlagen werden, unmöglich macht. Aber selbst wenn man einen solchen einheitlichen Benchmark-Datensatz konstruieren wollte, ist nicht klar, was er enthalten müsste, um für die Vielfalt der Zeitreihen repräsentativ zu sein. Mit anderen Worten: Die Messung der Leistung eines Modells bei niederfrequenten Wetterdaten ist möglicherweise kein guter Hinweis auf seinen Erfolg bei hochfrequenten Audiodateien oder DNA-Sequenzen. Um ein Gefühl dafür zu bekommen, wie unterschiedlich Daten im Zeitreihenbereich sein können, vergleichen Sie zum Beispiel die Visualisierungen von Beispielen aus verschiedenen Datensätzen in Middlehurst et al. (2023) unten. Darüber hinaus gibt es eine wichtige Unterscheidung zwischen univariaten und multivariaten Zeitreihen, d. h. wenn eine oder mehrere verschiedene Variablen gleichzeitig gemessen werden. Leider ist die Beweislage für den multivariaten Fall, der in vielen praktischen Anwendungen der relevantere Fall ist, besonders dünn. Visualisierungen von Beispielen aus verschiedenen Zeitreihendatensätzen aus Middlehurst et al. (2023) . Es gibt jedoch einige Quellen, die versuchen, verschiedene Methoden im Bereich der Zeitreihenklassifizierung zu vergleichen. Einerseits bietet die ständig aktualisierte Rangliste der Zeitreihenklassifizierung auf Papers with code Ergebnisse für einige Modelle auf ausgewählten Datensätzen. Andererseits haben Mitglieder der Forschungsgruppe, die hinter der Zeitreihen klassifizierungs-Website steht, Arbeiten veröffentlicht (vgl. z.B., Bagnall et al. (2017) , Ruiz et al. (2021) , und Middlehurst et al. (2023) ), die auf ihrem Zeitreihendatenarchiv ein Wettrennen zwischen verschiedenen Klassifizierungsmethoden durchführen. Während erstere bei ihren Benchmarks eine Vielzahl von RNNs und CNNs bevorzugen, schneiden bei letzteren nicht-tiefe Lernmethoden wie ROCKET besonders gut ab. Daher wäre es vermessen, einen generellen Sieger zu küren, und die Antwort ist ein entschlossenes "Nun, es kommt darauf an". In vielen Fällen gibt es neben der reinen Leistung weitere Überlegungen, die bei der Wahl des Modells den Ausschlag geben. Bei begrenzter Verfügbarkeit von Trainingsdaten sind komplexere und leistungsfähigere Modelle, die ein umfangreiches Training erfordern, oft fehl am Platz. Im Idealfall gäbe es ein vortrainiertes Kodiermodell, das ohne zusätzliches Training zur Extraktion aussagekräftiger Muster aus beliebigen Zeitserien verwendet und mit mäßigem Aufwand auf einen bestimmten Anwendungsfall abgestimmt werden könnte, wie dies beim Computer Vision oder NLP der Fall ist. Daher gibt es oft einen Kompromiss zwischen Leistung und Recheneffizienz. Darüber hinaus müssen Vorhersagen für praktische Anwendungen oft erklärbar sein, d. h. Fachleute müssen verstehen, welche Merkmale der eingegebenen Zeitreihen eine Vorhersage hervorrufen. Dies gilt insbesondere für sensible Anwendungsfälle wie im Gesundheitswesen oder beim autonomen Fahren. Daher ist die Wahl eines erklärbaren Modells oft entscheidend für die Eignung und Glaubwürdigkeit von maschinellen Lernverfahren. Team ROCKET zur Rettung Ein relativ einfacher Modellierungsansatz für Zeitreiheneinbettungen ist das sogenannte ROCKET, kurz für RandOm Convolutional KErnel Transform. Diese Methodik wurde erstmals in Dempster et al. (2020) vorgestellt und in nachfolgenden Forschungsarbeiten weiterentwickelt. Erwähnenswerte Varianten sind hier das MiniROCKET von Dempster et al. (2021) , das MultiROCKET von Tan et al. (2022) , und HYDRA von Dempster et al. (2023) . Ein Hauptvorteil gegenüber komplexeren Methoden besteht darin, dass ROCKET-Modelle sehr rechenschnell sind und in der Regel kein Training benötigen, um eine informative Einbettungsabbildung zu erlernen, während die Vorhersageleistung mit den modernsten Modellen vergleichbar ist. So stellen Ruiz et al. (2021) fest, dass die Trainingszeit für ROCKET im Vergleich zu anderen Algorithmen zur Klassifizierung von Zeitreihen, die eine ähnliche Genauigkeit erreichen, um Größenordnungen schneller ist (siehe Abbildung unten). Dieser Unterschied ist vor allem darauf zurückzuführen, dass ROCKET-Kodierer eine Eingabe nach einer vordefinierten Menge möglicherweise entbehrlicher Muster durchsuchen und dann den Klassifikator nur die wichtigen Muster lernen lassen, anstatt alles von Grund auf neu zu lernen. Modellvergleichstabelle aus Ruiz et al. (2021) . Die Hauptidee hinter den ROCKET-Kodierungen basiert auf den jüngsten Erfolgen von Convolutional Neural Networks (CNNs) und überträgt diese auf die Merkmalsextraktion in Zeitreihendaten. Im Gegensatz zu den meisten CNNs im Bildbereich enthält die Architektur jedoch keine versteckten Schichten oder andere Nichtlinearitäten. Stattdessen wird eine große Anzahl voreingestellter Kernel separat mit der Eingabe gefaltet, was zu einer Transformation führt, die die Stärke des Auftretens der Faltungsmuster in verschiedenen Teilen der Eingabesequenz angibt. Dieser Vorgang wird mit verschiedenen Dilatationswerten wiederholt, was dem Abtasten mit verschiedenen Frequenzen entspricht. Was die Wahl der Filter angeht, so wird in der Originalarbeit die Verwendung von Zufallskernen vorgeschlagen, während in späteren Arbeiten eine kleine Menge deterministischer Muster verwendet wird. Als Nächstes werden die hochdimensionalen Ausgaben dieses Schritts über die Zeit mittels Proportion of Positive Values Pooling (PPV) gepoolt, d. h. durch Zählen der Zeiten, in denen die Faltungsaktivierungen kanalweise Bias-Schwellenwerte überschreiten, die aus repräsentativen Beispielen gelernt werden können. Das Ergebnis des Encoders ist ein Merkmalsvektor, der die Eingangszeitreihe unabhängig von ihrer Länge zusammenfasst. Die transformierten Merkmale können dann als Eingabe für jeden Vorhersagealgorithmus dienen, der mit Merkmalsredundanz umgehen kann. In der Originalarbeit wird beispielsweise empfohlen, einfache Algorithmen wie regularisierte lineare Modelle zu verwenden. Eine genauere Erläuterung der Transformationen finden Sie in der Originalarbeit der Autoren oder in den ausführlicheren Beschreibungen im zweiten Teil dieses Artikels. Wenn ROCKET also eine Spitzenleistung erzielt und dabei rechnerisch viel effizienter ist als die meisten Methoden, was könnte dann noch schiefgehen? Nun, oft ist Leistung nicht alles... Um auf die Anforderungen an die Erklärbarkeit zurückzukommen, denen Modelle des maschinellen Lernens in der Praxis oft begegnen, ist ROCKET ein geeignetes Modell? So wie es aussieht, ist die Antwort nein. Allerdings erfordert der Algorithmus nur geringfügige Änderungen, um seinen Einbettungen eine Bedeutung zu verleihen. Im zweiten Teil werde ich zeigen, wie dies durch eine leicht veränderte Implementierung, das erklärbare ROCKET - oder kurz X-ROCKET - erreicht werden kann. Referenzen Bagnall, A., Lines, J., Bostrom, A., Large, J., & Keogh, E. (2017). The great time series classification bake off: a review and experimental evaluation of recent algorithmic advances. Data mining and knowledge discovery , 31, 606–660. Dempster, A., Petitjean, F., & Webb, G. I. (2020). ROCKET: exceptionally fast and accurate time series classification using random convolutional kernels. Data Mining and Knowledge Discovery , 34(5), 1454–1495. Dempster, A., Schmidt, D. F., & Webb, G. I. (2021, August). Minirocket: A very fast (almost) deterministic transform for time series classification. In Proceedings of the 27th ACM SIGKDD conference on knowledge discovery & data mining (pp. 248–257). Dempster, A., Schmidt, D. F., & Webb, G. I. (2023). Hydra: Competing convolutional kernels for fast and accurate time series classification. Data Mining and Knowledge Discovery , 1–27. Middlehurst, M., Schäfer, P., & Bagnall, A. (2023). Bake off redux: a review and experimental evaluation of recent time series classification algorithms. arXiv preprint arXiv:2304.13029 . Ruiz, A. P., Flynn, M., Large, J., Middlehurst, M., & Bagnall, A. (2021). The great multivariate time series classification bake off: a review and experimental evaluation of recent algorithmic advances. Data Mining and Knowledge Discovery , 35(2), 401–449. Tan, C. W., Dempster, A., Bergmeir, C., & Webb, G. I. (2022). MultiRocket: multiple pooling operators and transformations for fast and effective time series classification. Data Mining and Knowledge Discovery , 36(5), 1623–1646. Zerveas, G., Jayaraman, S., Patel, D., Bhamidipaty, A., & Eickhoff, C. (2021, August). A transformer-based framework for multivariate time series representation learning. In Proceedings of the 27th ACM SIGKDD conference on knowledge discovery & data mining (pp. 2114–2124). Dieser Artikel entstand im Rahmen des vom Bundesministerium für Bildung und Forschung (BMBF) unter dem Förderkennzeichen 02P20A501 geförderten Projekts "AI-gent3D - KI-gestütztes, generatives 3D-Drucken" unter Koordination des PTKA Karlsruhe.

Erweitere das Wissen deines LLMs mit RAG


Thanh Long Phan, Fabian Dechent


Large Language Models (LLMs) haben aufgrund ihrer bemerkenswerten, menschenähnlichen Fähigkeit, Texte zu verstehen und zu generieren, rasch an Popularität gewonnen. Trotz der großen Fortschritte gibt es auf dem Weg zu wirklich zuverlässigen Assistenten noch einige Herausforderungen zu bewältigen. LLMs sind dafür bekannt, dass sie Antworten erfinden und oft Texte produzieren, die dem erwarteten Antwortstil entsprechen, denen es aber an Genauigkeit oder sachlicher Grundlage fehlt. Die generierten Wörter und Phrasen werden so ausgewählt, dass sie mit hoher Wahrscheinlichkeit auf einen früheren Text folgen. Die Wahrscheinlichkeit wird so angepasst, dass sie dem Trainingskorpus so gut wie möglich entspricht. Dadurch besteht die Möglichkeit, dass eine Information veraltet ist, wenn der Korpus nicht aktualisiert und das Modell neu trainiert wird. Oder dass sie einfach sachlich falsch ist, während die generierten Wörter zwar richtig klingen und dem gewünschten Genre zugeordnet werden können. Das Kernproblem dabei ist, dass das LLM nicht weiß, was es nicht weiß. Und selbst wenn eine Information korrekt ist, ist es schwierig, ihre Quelle zu finden, um eine Überprüfung der Fakten zu ermöglichen. In diesem Artikel stellen wir RAG (Retrieval-Augmented Generation) als eine Methode vor, die beide Probleme angeht und die darauf abzielt, die Zuverlässigkeit und Genauigkeit der von LLMs generierten Informationen zu verbessern.

Modell-Deployment: Wie Sie ein Machine-Learning-Modell an Kunden liefern


Anton Shemyakov


Herzlichen Glückwunsch! Sie haben Ihr Machine Learning-Modell erfolgreich trainiert. Die Gewichte sind im Projektverzeichnis auf Ihrer Festplatte gespeichert. Die Skripte zum Laden des Modells und zur Durchführung von Inferenz funktionieren wie erwartet, und das Modell erreicht die gewünschte Leistung auf dem Testdatensatz. Jetzt stehen Sie vor der Herausforderung, die Modellvorhersagen für jeden zugänglich zu machen, der daran interessiert ist, Vorhersagen damit zu generieren. Die Bereitstellung oder der Einsatz eines Modells ist ein entscheidender Schritt bei der Erstellung einer wirkungsvollen Machine-Learning-Anwendung, und dieser Blogbeitrag wird Sie Schritt für Schritt durch eine mögliche Lösung dieser Herausforderung führen. Systeme für Modelldeployments gibt es in allen Formen und Größen, von einfach bis hochkomplex. In diesem Blogbeitrag konzentrieren wir uns jedoch auf einen praktischen und einfachen Ansatz. Die vorgeschlagene Lösung könnte ein solider Ausgangspunkt sein, um Modellvorhersagen für Kunden bereitzustellen und erlaubt Erweiterungen, falls zusätzliche Anforderungen entstehen. Stellen wir uns vor, dass wir ein Modell zur Textklassifikation entwickelt haben, das Menschen vor Betrügern im Internet schützen soll. Es nimmt eine verdächtige E-Mail als Eingabe und führt eine binäre Klassifikation durch, um mit hoher Genauigkeit zu bestimmen, ob der Absender bösartige Absichten hat. Mit diesem mentalen Bild im Hinterkopf, lassen Sie uns in das Tutorial eintauchen.

Fairness im Machine Learning


Cornelius Braun


In einem vorherigen Blog-Beitrag haben wir die Fülle menschlicher Vorurteile erläutert, die in realen Datensätzen oft vorhanden sind. Da Praktiker gezwungen sein können, mit verzerrten Daten zu arbeiten, ist es wichtig zu wissen, wie die Fairness von Modellentscheidungen dennoch gewährleistet werden kann. In diesem Beitrag erkläre ich daher die wichtigsten Ideen rund um Fairness beim maschinellen Lernen (ML). Dazu gehört eine kurze Zusammenfassung der wichtigsten Metriken zur Messung der Fairness Ihrer Modellentscheidungen und ein Überblick über Tools, die Ihnen helfen können, die Fairness Ihres Modells zu garantieren oder zu verbessern.

Was ist ein Kernel beim maschinellen Lernen?


Serdar Palaoglu


Im Bereich des maschinellen Lernens spielen Kernel eine zentrale Rolle, insbesondere bei Algorithmen für Klassifizierungs- und Regressionsaufgaben wie Support Vector Machines (SVMs). Die Kernel-Funktion ist das Herzstück dieser Algorithmen, das die Komplexität der Daten vereinfacht. Sie wandelt nicht-lineare Beziehungen in ein lineares Format um und macht sie so für Algorithmen zugänglich, die traditionell nur lineare Daten verarbeiten. Diese Umwandlung ist wichtig, damit SVMs komplexe Muster und Beziehungen entschlüsseln und verstehen können. Kernels erreichen dies, ohne dass die Daten explizit auf höhere Dimensionen abgebildet werden müssen. Ihre Effizienz und Effektivität beim Aufdecken verborgener Muster machen sie zu einem Eckpfeiler des modernen maschinellen Lernens. Bei der weiteren Erforschung von Kernels entdecken wir ihre Bedeutung für die Verbesserung der Leistung und Anwendbarkeit von SVMs in verschiedenen Szenarien.

Ensembles im maschinellen Lernen: Das Kombinieren mehrerer ML-Modelle


Serdar Palaoglu


In der sich ständig weiterentwickelnden Welt des maschinellen Lernens hat das Streben nach besserer Vorhersagegenauigkeit zur Entwicklung von Ensemble-Methoden geführt. Diese Verfahren nutzen die kollektive Leistung mehrerer Modelle, um eine bessere Leistung zu erzielen als jedes einzelne Modell für sich allein. Dieser Artikel befasst sich mit dem Ensemble-Lernen und untersucht, wie die Kombination verschiedener Algorithmen zu robusteren, verallgemeinerbaren und genaueren Lösungen für maschinelles Lernen führen kann.

Deep Learning vs. Maschinelles Lernen: Was ist der Unterschied? | dida blog


Serdar Palaoglu


Im Bereich der künstlichen Intelligenz sind zwei grundlegende Konzepte, Maschinelles Lernen und Deep Learning, als Schlüsselkomponenten für die Weiterentwicklung computerbasierter Lernsysteme hervorgetreten. Maschinelles Lernen dient als grundlegendes Prinzip, bei dem Computer die Fähigkeit erlangen, aus Daten zu lernen, ohne explizit programmiert zu sein. Deep Learning, nutzt künstliche neuronale Netzwerke, die vom menschlichen Gehirn inspiriert sind, um komplexe Datenanalysen durchzuführen. Dieser Artikel geht auf eine umfassende Erforschung dieser Bereiche ein, beleuchtet ihre Unterschiede, praktischen Anwendungen und Bedeutung im Bereich der künstlichen Intelligenz.

Was ist ein Convolutional Neural Network?


Dr. Mark Bugden


Neuronale Netze, insbesondere Convolutional Neural Networks (CNNs), haben in den letzten Jahren stark an Popularität gewonnen. Sie sind in vielen Aufgaben der Bilderkennung und -verarbeitung allgegenwärtig und haben auch in mehreren Bereichen Anwendung gefunden, die nicht auf der Bildanalyse basieren. In diesem Artikel geben wir eine Einführung in CNNs und beantworten einige der Fragen, die Sie Ihrer IT-Abteilung nicht zu stellen wagten.

Was ist Meta-Learning? Vorteile, Anwendungen & Herausforderungen


Dr. Jan Macdonald


Datengesteuerte Algorithmen, wie maschinelles Lernen und insbesondere Deep-Learning-Modelle, haben in verschiedenen Anwendungsbereichen, die von Computer Vision über Audio und Signalverarbeitung bis hin zur Verarbeitung natürlicher Sprache reichen, beispiellose Erfolge erzielt. In der Regel "lernen" Maschinen, eine bestimmte Aufgabe unter Aufsicht zu lösen, indem sie eine große Menge an gelabelten Beispieldaten betrachten. Stellen Sie sich ein Bildklassifizierungsmodell vor, das lernt, verschiedene Tiere zu unterscheiden, indem es viele Beispielbilder der verschiedenen Tierarten vorgesetzt bekommt. Dies unterscheidet sich erheblich von der Art und Weise, wie wir Menschen normalerweise lernen: Nachdem wir im Laufe unseres Lebens immer wieder mit dem Erkennen verschiedener Tiere konfrontiert wurden, sind wir in der Lage, das Konzept einer neuen Tierart zu lernen, nachdem wir nur sehr wenige Beispiele gesehen haben. Die Einbeziehung solcher "adaptiven" Lernstrategien in den Bereich des maschinellen Lernens ist der Kern des Meta-Lernens. Dies wurde bereits in den 1980er und 1990er Jahren erforscht, z. B. von Schmidhuber (Schmidhuber, 1987) und Bengio et al. (Bengio et al., 1991). In jüngster Zeit hat mit den raschen Verbesserungen im Bereich des Deep Learning das Interesse an auf neuronalen Netzen basierenden Meta-Learning-Ansätzen zugenommen, und es wurde eine Vielzahl von Varianten vorgeschlagen und entwickelt. Im Folgenden werden wir eine Auswahl davon genauer betrachten.

Supervised vs Unsupervised Learning


Serdar Palaoglu


Supervised und unsupervised learning sind grundlegende Konzepte im Bereich des maschinellen Lernens und spielen eine entscheidende Rolle bei der Entwicklung von Systemen der künstlichen Intelligenz (KI). In diesem Blogartikel werden wir uns mit den Prinzipien des supervised und unsupervised learning befassen und ein umfassendes Verständnis ihrer wichtigsten Merkmale, Unterschiede und ihrer jeweiligen Anwendungen im Bereich der KI vermitteln.

Neueste Entwicklungen in der Welt von Natural Language Processing: Ein Vergleich verschiedener Sprachmodelle


Justus Tschötsch


Die Verarbeitung natürlicher Sprache (NLP) ist ein sich rasch entwickelnder Teilbereich der künstlichen Intelligenz. Mit immer neuen Entwicklungen und Durchbrüchen sind Sprachmodelle bereits in der Lage, menschenähnliche Sprache mit beeindruckender Genauigkeit zu verstehen und zu erzeugen. Um den Überblick zu behalten, vergleichen wir verschiedene Sprachmodelle und werfen einen Blick auf die neuesten Fortschritte, Möglichkeiten und Herausforderungen der natürlichen Sprachverarbeitung.

Wie ChatGPT mit Hilfe von Reinforcement Learning optimiert wird


Thanh Long Phan


Ende 2022 veröffentlichte OpenAI ChatGPT (ein auf Transformer basierendes Sprachmodell) für die Öffentlichkeit. Obwohl es auf dem bereits viel diskutierten GPT-3 basiert, löste es einen beispiellosen Boom in Sachen generativer KI aus. Es ist in der Lage, menschenähnlichen Text zu generieren, und bietet eine breite Palette von Anwendungen, darunter Sprachübersetzung, Sprachmodellierung und die Generierung von Text für Anwendungen wie Chatbots. Lesen Sie sich dazu gerne unsere Einführung zu LLMs durch. ChatGPT scheint so leistungsfähig zu sein, dass es von vielen als ein wesentlicher Schritt in Richtung künstliche allgemeine Intelligenz angesehen wird. Der Hauptgrund für die jüngsten Erfolge von Sprachmodellen wie ChatGPT liegt in ihrer Größe (gemessen an den trainierbaren Parametern). Doch indem man Sprachmodelle größer macht, werden sie nicht automatisch besser darin, die Absichten des Benutzers zu verfolgen. Ein größeres Modell kann auch toxischer werden und eher zu "Halluzinationen" neigen. Eine Möglichkeit, diese Probleme zu entschärfen und die Modelle allgemeiner an die Absichten der Benutzer anzupassen, ist die Anwendung von Reinforcement Learning. In diesem Blogbeitrag geben wir einen Überblick über den Trainingsprozess von ChatGPT und werfen einen genaueren Blick auf die Verwendung von Reinforcement Learning bei der Sprachmodellierung. Auch interessant: Unser aggregierte Sammlung an LLM Inhalten .

Frühzeitige Klassifizierung von Anbauflächen anhand von Satellitenbild-Zeitreihen


Tiago Sanona


In einer schnelllebigen und sich ständig verändernden globalen Wirtschaft bietet die Möglichkeit, Erntefelder am Ende eines Wachstumszyklus per Fernerkundung zu klassifizieren, nicht den dringend benötigten unmittelbaren Einblick, den die Entscheidungsträger benötigen. Um dieses Problem zu lösen, haben wir ein Modell entwickelt, das eine kontinuierliche Klassifizierung von Anbaufeldern zu jedem beliebigen Zeitpunkt ermöglicht und die Vorhersagen verbessert, sobald mehr Daten zur Verfügung stehen. In der Praxis haben wir ein einziges Modell entwickelt, das in der Lage ist, auf der Grundlage von Satellitendaten Vorhersagen darüber zu treffen, welche Kulturen zu einem beliebigen Zeitpunkt im Anbau sind. Bei den Daten, die zum Zeitpunkt der Inferenz zur Verfügung stehen, kann es sich um einige wenige Bilder zu Beginn des Jahres oder um eine vollständige Zeitreihe von Bildern aus einer kompletten Wachstumsperiode handeln. Dies übersteigt die Möglichkeiten aktueller Deep-Learning -Lösungen, die entweder nur Vorhersagen am Ende der Vegetationsperiode bieten oder mehrere Modelle verwenden müssen, die auf Ergebnisse zu vorher festgelegten Zeitpunkten spezialisiert sind. Dieser Artikel beschreibt die wichtigsten Änderungen, die wir an dem Modell vorgenommen haben, das in einem früheren Blog-Beitrag " Classification of Crop fields through Satellite Image Time Series" beschrieben wurde. Die in diesem Artikel vorgestellten Ergebnisse beruhen auf einem kürzlich von der dida veröffentlichten Forschungspapier. Ausführlichere Informationen zu diesem Thema und weitere Experimente zu diesem Modell finden Sie im Originalmanuskript: "Early Crop Classification via Multi-Modal Satellite Data Fusion and Temporal Attention" .

Mit Machine Learning die Umwelt schützen


Edit Szügyi


Maschinelles Lernen löst schon seit Jahrzehnten komplexe Probleme. Man denke nur daran, wie Methoden des maschinellen Sehens lebensbedrohliche Krankheiten zuverlässig vorhersagen können, wie selbstfahrende Autos auf dem Weg sind, die Verkehrssicherheit zu revolutionieren, oder wie die automatische Übersetzung uns in die Lage versetzt, mit fast jedem Menschen auf der Welt zu sprechen. Die Möglichkeiten des maschinellen Lernens sind in vielen Bereichen der Industrie und Wissenschaft angekommen. Es gibt jedoch einige Bereiche, in denen das Potenzial des maschinellen Lernens schwerer zu erkennen ist und auch weniger genutzt wird. Einer dieser Bereiche ist der Umweltschutz. Der Schutz der Natur ist eine der größten Herausforderungen unserer Generation, die mit drängenden Problemen wie Klimawandel, Plastikverschmutzung oder Ressourcenverknappung konfrontiert ist. Sehen wir uns nun an, wie maschinelles Lernen als Werkzeug im Umweltschutz eingesetzt wurde und werden kann.

Mehrschichtige Requirements mit pip-tools verwalten


Dr. Augusto Stoffel


Bei der Erstellung von Python-Anwendungen für die Produktion ist es eine gute Praxis, alle Abhängigkeitsversionen zu fixieren, ein Prozess, der auch als "Einfrieren der Requirements" bekannt ist. Dies macht die Deployments reproduzierbar und vorhersehbar. (Bei Bibliotheken und Benutzeranwendungen sind die Anforderungen ganz anders; in diesem Fall sollte man eine große Bandbreite an Versionen für jede Abhängigkeit unterstützen, um das Konfliktpotenzial zu verringern.) In diesem Beitrag erklären wir, wie man ein mehrschichtiges Requirements-Setup verwaltet, ohne auf den verbesserten Konfliktlösungsalgorithmus zu verzichten, der kürzlich in pip eingeführt wurde. Wir stellen ein Makefile zur Verfügung, das Sie sofort in jedem Ihrer Projekte verwenden können!

Kollaboratives Filtern für Empfehlungsdienste


Konrad Mundinger


In diesem Blogartikel gebe ich einen Überblick über kollaboratives Filtern und stelle python-Code dazu zur Verfügung. Dies ist der zweite Blogpost in einer Reihe von Artikeln über Empfehlungsmaschinen. Schauen Sie sich den ersten Artikel an, wenn Sie sich einen Überblick über Empfehlungssysteme im Allgemeinen verschaffen wollen oder eine Auffrischung der Terminologie benötigen. Das jupyter Notebook, welches zum Erstellen der plots benutzt wurde, wird in Kürze verfügbar gemacht. Ich werde die Techniken an dem berühmten MovieLens-100K -Datensatz illustrieren. Es enthält 100.000 Nutzer-Film-Bewertungspaare von 943 Nutzern zu 1682 Filmen. Für die meisten Algorithmen habe ich bestehende Implementierungen aus der surprise -Bibliothek für python verwendet. Auch wenn sie etwas gewöhnungsbedürftig ist, denke ich, dass es eine schöne Bibliothek ist, die Sie sich ansehen sollten, wenn Sie anfangen, mit Empfehlungsmaschinen herumzuspielen.

Metric Learning - eine Einführung


Dr. William Clemens


Die wahrscheinlich häufigste Form von Problemen, die wir mit maschinellem Lernen angehen, ist die Klassifizierung, d. h. die Einordnung neuer Datenpunkte in eine von mehreren festgelegten Gruppen oder Klassen. Was aber, wenn wir nicht unbedingt alle Klassen kennen, wenn wir das Modell trainieren? Ein gutes Beispiel hierfür ist die Gesichtserkennung, bei der wir ein System benötigen, das Gesichter speichern und dann erkennen kann, ob neue Bilder, die es sieht, eines dieser Gesichter enthalten. Natürlich können wir das Modell nicht jedes Mal neu trainieren, wenn wir der Datenbank ein neues Gesicht hinzufügen, also brauchen wir eine bessere Lösung. Eine Möglichkeit, dieses Problem zu lösen, ist das Metric Learning. Beim Metric Learning besteht unser Ziel darin, eine Metrik oder ein Abstandsmaß zwischen verschiedenen Datenpunkten zu lernen. Wenn wir unser Modell richtig trainieren, wird dieses Abstandsmaß Beispiele der gleichen Klasse nahe beieinander und verschiedene Klassen weiter auseinander liegen lassen.

Empfehlungssysteme - Ein Überblick


Konrad Mundinger


Empfehlungssysteme (engl. recommendation systems ) sind überall. Wir verwenden sie, um Kleidung zu kaufen, Restaurants zu finden und lassen uns von Ihnen Fernsehsendungen empfehlen. In diesem Blogartikel gebe ich einen Überblick über die zugrundeliegenden Konzepte, häufige Anwendungsfälle und diskutiere einige Einschränkungen. Dies ist der erste Teil einer Reihe von Artikeln über Empfehlungssysteme. Bleiben Sie dran für die Folgeartikel, in denen wir einige der erwähnten Konzepte noch ausführlicher behandeln werden! Bereits im Jahr 2010 kamen 60 % der Zeit, die auf youtube verbracht wird, von Empfehlungen [1]. Außerdem sollen personalisierte Empfehlungen die Konversionsraten auf E-Commerce Webseiten um das bis zu 5-fache erhöhen [2]. Sicher ist, dass Kunden, denen eine gute Vorauswahl an Produkten präsentiert wird, weniger überwältigt sind, eher etwas konsumieren und insgesamt eine bessere Erfahrung auf der Website machen. Aber wie funktionieren Empfehlungsmaschinen?

Die besten (Python-)Tools für die Fernerkundung


Emilius Richter


Schätzungsweise 906 Erdbeobachtungssatelliten befinden sich derzeit im Erdorbit und stellen der Wissenschaft und Industrie täglich mehrere Terabyte an Daten zur Verfügung. Die Satelliten arbeiten sowohl mit Radar als auch optischen Sensoren und decken dabei verschiedene Spektralbereiche mit unterschiedlicher spektraler, räumlicher und zeitlicher Auflösung ab. Durch dieses breite Spektrum an geographischen Daten, ist es möglich, dass Fernerkundungsmethoden in vielen Industriebranchen und staatlichen Einrichtungen neue Anwendungsbereiche finden. Auf unserer Webseite finden Sie einige Projekte , in denen wir erfolgreich Satellitendaten eingesetzt haben, und mögliche Anwendungsfälle von Fernerkundungsmethoden für verschiedene Industrien . Bekannte Satellitensysteme und -programme sind z.B. Sentinel-1 (Radar) und Sentinel-2 (optisch) von der ESA, Landsat (optisch) von der NASA, TerraSAR-X und TanDEM-X (beide Radar) von der DLR und PlanetScope (optisch) von Planet. Es gibt im Wesentliche zwei Arten an geographischen Daten: Rasterdaten und Vektordaten . Rasterdaten Rasterdaten sind ein Gitter von regelmäßig angeordneten Pixeln, wobei jeder Pixel mit einem geographischen Standort verbunden ist, und werden als Matrix dargestellt. Die Pixelwerte hängen von der Art der Informationen ab, die gespeichert werden, z.B. Helligkeitswerte bei digitalen Bildern oder Temperaturwerte bei Wärmebildern. Die Größe der Pixel bestimmen außerdem die räumliche Auflösung des Rasters. Geographischen Rasterdaten werden also dazu verwendet, Satellitenbilder zu repräsentieren. Rasterbilder enthalten in der Regel mehrere Bänder bzw. Kanäle, z.B. einen roten, grünen und blauen Kanal. Bei Satellitendaten gibt es zudem oft infrarote und/oder ultraviolette Bänder. Vektordaten Vektordaten repräsentieren geographische Eigenschaften auf der Erdoberfläche, wie z.B. Städte, Ländergrenzen, Straßen, Gewässer, Besitzrechte etc.. Solche Eigenschaften werden durch ein oder mehrere miteinander verbundene Vertices repräsentiert, wobei ein Vertex durch x-, y- und z-Werte eine Position im Raum festlegt. Ein einzelner Vertex ist ein Punkt, mehrere verbundene Vertices sind eine Linie und mehrere (>3) verbundene und geschlossene Vertices werden als Polygon bezeichnet. Die x-, y- und z-Werte sind dabei immer auf das entsprechende Koordinatenreferenzsystem (CRS) bezogen, das in Vektordateien als Metainformation gespeichert ist. Die gebräuchlichsten Dateiformate für Vektordaten sind GeoJSON, KML und SHAPEFILE. Um diese Daten prozessieren und analysieren zu können, werden verschiedene Tools benötigt. Im Folgenden stelle ich die Tools vor, mit denen wir bei dida die besten Erfahrungen gemacht haben und die in unseren Fernerkundungsprojekten regelmäßig zum Einsatz kommen. Ich stelle ein Tool nach dem anderen vor, in folgende Kategorien gruppiert: Abrufen von Satellitendaten EOBrowser Sentinelsat Sentinelhub Verarbeitung von Rasterdaten Rasterio Pyproj SNAP (new) pyroSAR Rioxarray (new) Verarbeitung von Vektordaten Shapely Python-geojson Geojson.io Geopandas Fiona Bereitstellung geographischer Daten QGIS GeoServer Leafmap (new) Verarbeitung meteorologischer Satellitendaten Wetterdienst Wradlib

Der Projektantrag - der erste Schritt zu einem erfolgreichen ML-Projekt


Emilius Richter


Viele Machine-Learning-Projekte (ML) sind zum Scheitern verurteilt. Dies kann verschiedene Gründe haben, die oft in Kombination auftreten. Um ein Scheitern zu vermeiden, müssen alle beteiligten Akteure die technischen und organisatorischen Anforderungen des Projekts verstehen. Neben allen Vorgesprächen, die das Projekt definieren, ist es wichtig, die projektrelevanten Informationen in einem umfassenden Projektantrag zusammenzufassen. Dieser sollte die technischen und organisatorischen Anforderungen, mögliche Problembereiche und technische Beschränkungen umfassen. In diesem Artikel beschreibe ich die wichtigsten Module eines Machine-Learning-Projektantrags. Für einen Softwareanbieter wie dida ist der Projektantrag der erste Schritt, um den Anforderungen des Kunden gerecht zu werden.

Image Captioning mit Attention-Mechanismus


Madina Kasymova


Man sieht ein Bild und kann leicht sagen, was darin passiert, denn es ist die grundlegende Fähigkeit des Menschen, Details eines Bildes mit einem Blick zu erfassen und zu beschreiben. Können Maschinen verschiedene Objekte und ihre Beziehungen in einem Bild erkennen und sie in einer natürlichen Sprache beschreiben, so wie es Menschen tun? Dies ist das Problem, das Image Captioning (die Bildbeschriftung) zu lösen versucht. Bei der Bildbeschriftung geht es um die Beschreibung von Bildern in natürlicher Sprache (z. B. Englisch), wobei zwei Kernthemen der künstlichen Intelligenz kombiniert werden: Computer Vision und Natural Language Processing (zu Deutsch: Verarbeitung natürlicher Sprache). Bildbeschriftung ist eine Anwendung von Deep Learning, die sich in den letzten Jahren erheblich weiterentwickelt hat. Dieser Artikel gibt einen Überblick über die Architektur von Bildbeschriftungsalgorithmen und untersucht den Aufmerksamkeitsmechanismus - den häufigsten Ansatz zur Lösung dieses Problems. Die jüngsten Arbeiten zu Bildbeschriftung haben gezeigt, dass die Verwendung eines transformatorbasierten Ansatzes, der ausschließlich auf Aufmerksamkeit basiert und die Beziehungen zwischen den Elementen einer Sequenz lernt, ohne rekurrente oder konvolutionäre Schichten zu verwenden, Vorteile bietet. Wir werden hier keine transformatorbasierten Architekturen betrachten, sondern uns nur auf den aufmerksamkeitsbasierten Ansatz konzentrieren.

AI Index Report 2022: Der aktuelle Stand der KI


David Berscheid


Der AI Index Report sammelt Daten über die weltweite Entwicklung von künstlicher Intelligenz (KI). Die diesjährige fünfte Ausgabe der unabhängigen Initiative des Stanford Institute for Human-Centered Artificial Intelligence (HAI) zielt erneut darauf ab, relevante Stakeholder wie politische Entscheidungsträger, Forscher oder verwandte Branchen über die enormen Fortschritte von KI, die technologischen und gesellschaftlichen Stadien der wichtigsten KI-Disziplinen zu informieren und ein Bewusstsein für entstehende Probleme zu schaffen. In diesem Artikel werden wir ausgewählte Kernaussagen des Berichts bzgl. Machine Learning (ML) präsentieren und unsere Perspektive von dida zu den folgenden Themen geben: Forschung und Entwicklung Technische Leistung Technische KI-Ethik Wirtschaft und Bildung KI-Politik und Governance Den vollständigen Bericht finden Sie in der Originalquelle hier .

Datenschutz: Machine Learning und die DSGVO


Ana Guerra


Datensätze sind für die Forschung und die Entwicklung von Modellen in den Bereichen der natürlichen Sprachverarbeitung (NLP) und des maschinellen Lernens (ML) unerlässlich. Mit der zunehmenden Nutzung, Sammlung und Speicherung von Daten nehmen jedoch auch die Bedenken hinsichtlich des Datenschutzes zu. Um mit bewährten Methoden ("best practice") in Einklang zu stehen, ist es wichtig zu verstehen, was Datenschutz bedeutet und wie er geregelt wird. Dieser Beitrag bietet daher einen kurzen Überblick darüber, wie der Datenschutz in der Europäischen Union geregelt ist. Neben der Einhaltung der EU-Vorschriften müssen datengesteuerte Projekte auch ethisch verantwortungsvoll sein. Daher endet dieser Artikel mit einigen Worten zur Ethik bei der Verarbeitung personenbezogener Daten.

Wie man ein Jupyter Notebook-basiertes Labeling-Tool zur Bildklassifizierung implementiert


Felix Brunner


Hotdog" oder "kein Hotdog"? So könnte die Frage lauten - zumindest, wenn man eine Bildklassifizierungsaufgabe durchführt. Um diese oder eine ähnlich wichtige Frage mit Hilfe eines Machine-Learning-Modells beantworten zu können, müssen wir zunächst einen gelabelten Datensatz für das Training erstellen. Es kann vorkommen, dass wir hunderte oder sogar tausende von Bildern von potentiellen Hotdogs anschauen müssen, um zu entscheiden, ob sie tatsächlich Hotdogs enthalten. Eine Möglichkeit wäre, ein Bild nach dem anderen zu öffnen und die Bildklassen in einer anderen Datei, z. B. in einer Excel-Tabelle, zu speichern. Ein solch umständlicher Ansatz klingt jedoch ziemlich mühsam und ist wahrscheinlich anfällig für Flüchtigkeitsfehler. Wäre es nicht toll, wenn es eine schlanke Lösung gäbe, die diesen Labeling-Prozess effizienter gestaltet und sogar Spaß macht? Genau das ist es, was wir uns in diesem Artikel vorgenommen haben: Ein einfaches Annotationstool zu erstellen, mit dem man einer Reihe von Bildern auf einfache Weise Klassen-Labels zuweisen kann.

Ethik im Natural Language Processing


Dr. Marty Oelschläger


KI und maschinelles Lernen haben einen großen Einfluss auf unser tägliches Leben. Wir verwenden zum Beispiel Suchanfragen und sind überrascht oder sogar verärgert, wenn der Algorithmus nicht verstanden hat, wonach wir eigentlich suchen. Stellen Sie sich nur einmal vor, was für ein Aufwand es wäre, all diese Anfragen von Menschen bearbeiten zu lassen. Für den Fall, dass Sie sich das nicht vorstellen können, hat CollegeHumor bereits eine Vision davon vorbereitet: Glücklicherweise haben wir Maschinen - zumindest bis zu einem gewissen Grad - beigebracht, die menschliche Sprache zu "verstehen". Dieser Zweig des maschinellen Lernens wird natürliche Sprachverarbeitung (NLP) genannt. Wir haben bereits eine Einführung gegeben, falls Sie die Grundlagen nachlesen wollen. Da Suchmaschinen, Chatbots und andere NLP-Algorithmen keine Menschen sind, können wir sie in großem Maßstab, d. h. weltweit, einsetzen. Weil sie allgegenwärtig sind und von sehr unterschiedlichen Menschen in verschiedenen Kontexten verwendet werden, wollen wir, dass sie objektiv und neutral sind (und nicht wie im obigen Video ein verärgerter und skeptischer Mensch). Was aber, wenn sie keine neutralen Zahlenjongleure sind? Was, wenn sie subjektiv sind und sogar schädliche Stereotypen gegen bestimmte Gruppen enthalten?

GPT-3 und darüber hinaus - Teil 2: Schwächen und Gegenmittel


Fabian Gringel


Im ersten Teil dieses Artikels habe ich die Grundidee von GPT-3 beschrieben und einige Beispiele dafür gegeben, wozu es gut ist. Dieser zweite und letzte Teil ist dem "darüber hinaus" im Titel gewidmet. Hier werden Sie erfahren in welchen Situationen GPT-3 versagt und warum es weit davon entfernt ist, natürliche Sprache richtig zu verstehen, welche Ansätze helfen können, die Probleme zu beheben und vielleicht zum nächsten Durchbruch zu führen, welche Alternativen zu GPT-3 es bereits gibt, und, falls Sie sich sich wundern, was die Verbindung zwischen GPT-3 und einem Oktopus ist.

Datenzentriertes maschinelles Lernen: Maßgeschneiderte ML-Lösungen zur Produktionsreife bringen


David Berscheid


Im Jahr 2021 besteht kaum ein Zweifel daran, dass Machine Learning (ML) ein großes Potenzial für die heutige Welt bietet. In einer Bitkom -Studie geben 30 % der Unternehmen in Deutschland an, dass sie Versuche geplant oder zumindest diskutiert haben, den Mehrwert von ML zu nutzen. Doch während die Bereitschaft der Unternehmen, in ML zu investieren, steigt, schätzt Accenture , dass 80% - 85% dieser Projekte eine Machbarkeitsstudie bleiben und nicht in die Produktion überführt werden. Nach unseren Erfahrungen mit verschiedenen Kunden würden wir dieser Einschätzung zustimmen. Deshalb haben wir es uns bei dida zur Aufgabe gemacht, die Lücke zwischen Machbarkeitsstudie und Produktionssoftware zu schließen, was wir u.a. durch den Einsatz datenzentrierter Techniken erreichen. In diesem Artikel werden wir sehen, warum viele ML-Projekte es nicht in die Produktion schaffen, die Konzepte des modell- und datenzentrierten ML vorstellen, und Beispiele geben, wie wir bei dida Projekte durch den Einsatz datenzentrierter Techniken verbessern.

GPT-3 und darüber hinaus - Teil 1: Das Grundrezept


Fabian Gringel


GPT-3 ist ein neuronales Netz, das in der Lage ist, eine breite Palette von Aufgaben zur Verarbeitung natürlicher Sprache (NLP) zu lösen. Es wurde im Sommer 2020 von OpenAI vorgestellt (als Weiterentwicklung der Vorgängermodelle GPT und GPT-2). Für verschiedene Aufgaben hat es neue Spitzenleistungen erbracht und wird von vielen als wesentlicher Schritt in Richtung künstliche allgemeine Intelligenz angesehen. "Allgemeine Intelligenz" bezieht sich auf die Fähigkeit, sich nicht nur in Bezug auf eine bestimmte Aufgabe intelligent zu verhalten, sondern sich auch an neue, unvorhergesehene Aufgaben anzupassen und diese zu bewältigen. Dieser Blogartikel ist der erste einer Serie von zwei Artikeln über GPT-3. In diesem ersten Artikel werde ich erklären wie GPT-3 funktioniert, wozu es gut ist und warum manche Leute es für gefährlich halten, und wie Sie ein GPT-3-ähnliches Modell kostenlos ausprobieren können. Der zweite Teil wird sich mit den Schwächen von GPT-3 befassen und damit, wo in Zukunft der nächste Durchbruch zu erwarten ist.

Klassifizierung von Anbauflächen anhand von Satellitenbild-Zeitreihen


Tiago Sanona


Der Bereich der Fernerkundung hat von den Fortschritten im maschinellen Lernen (ML) profitiert. In diesem Artikel arbeiten wir mit einer modernen Modellarchitektur, dem Transformer , der ursprünglich für Probleme der natürlichen Sprachverarbeitung (NLP) entwickelt wurde und inzwischen für die Verarbeitung sequentieller Daten weit verbreitet ist. In Anlehnung an die Arbeit von Garnot et al. verwenden wir eine abgewandelte Version dieser Architektur, um Getreidefelder aus Zeitreihen von Satellitenbildern zu klassifizieren . Damit erzielen wir bessere Ergebnisse als herkömmliche Methoden (z. B. Random Forests) und benötigen weniger Ressourcen als rekurrente Netzwerke.

Informationsextraktion aus technischen Zeichnungen


Dr. Frank Weilandt


Mussten Sie schon einmal Daten über ein Objekt aus zwei verschiedenen Quellen kombinieren, zum Beispiel Bilder und Text? Bei unserer Arbeit bei dida stehen wir oft vor solchen Herausforderungen. Hier stellen wir ein Beispiel aus dem Bereich technischer Zeichnungen vor. Solche Zeichnungen werden in vielen Bereichen von Fachleuten verwendet, um Informationen auszutauschen. Sie bestehen aus Zeichnungen, die ganz bestimmten Richtlinien folgen, damit jeder Fachmann verstehen kann, was darauf abgebildet ist. Normalerweise liegen technische Zeichnungen in Formaten vor, die eine Indizierung ermöglichen, wie z. B. svg, html, dwg, dwf, usw., aber viele, vor allem ältere, existieren nur im Bildformat (jpeg, png, bmp, usw.), z. B. aus Buchscans. Auf diese Art von Zeichnungen kann man nur schwer automatisch zugreifen, was ihre Verwendung schwierig und zeitaufwändig macht. Hier könnten automatische Erkennungstools eingesetzt werden, um die Suche zu erleichtern. In diesem Blogpost zeigen wir, wie sowohl traditionelle als auch Deep-Learning-basierte Computer-Vision-Techniken für die Informationsextraktion aus Explosionszeichnungen eingesetzt werden können. Wir gehen davon aus, dass eine solche Zeichnung zusammen mit einigen textuellen Informationen für jedes Objekt auf der Zeichnung gegeben ist. Die Objekte können durch Nummern, die mit ihnen verbunden sind, identifiziert werden. Hier ist ein recht einfaches Beispiel für eine solche Zeichnung: Eine elektrische Bohrmaschine. Auf jeder Zeichnung gibt es drei Hauptkomponenten: Die Zahlen, die Objekte und die Hilfslinien. Die Hilfslinien werden verwendet, um die Objekte mit den Zahlen zu verbinden. Die vorliegende Aufgabe besteht darin, alle Objekte einer bestimmten Art / Klasse über eine große Anzahl von Zeichnungen zu finden , z. B. die Buchse mit der Nummer 653 im obigen Bild kommt in mehreren Zeichnungen und sogar in Zeichnungen anderer Hersteller vor. Dies ist eine typische Klassifizierungsaufgabe, allerdings mit einer Einschränkung: Da es zu jedem Objekt zusätzliche Informationen gibt, die über die Nummern zugänglich sind, müssen wir zunächst jede Nummer auf dem Bild dem entsprechenden Objekt zuordnen . Im Folgenden beschreiben wir, wie diese Zusatzaufgabe mit Hilfe traditioneller Computer-Vision-Techniken gelöst werden kann.

Visual Transformers: Wie eine NLP-Architektur auf Computer Vision angewendet wird


Konrad Mundinger


Seit seiner erstmaligen Einführung Ende 2017 hat sich der Transformer schnell zur State-of-the-Art-Architektur im Bereich der Verarbeitung natürlicher Sprache (NLP) entwickelt. Kürzlich haben Forscher begonnen, die zugrundeliegenden Ideen auf den Bereich Computer Vision anzuwenden und die Ergebnisse deuten darauf hin, dass die resultierenden Visual Transformers ihre CNN-basierten Vorgänger sowohl in Bezug auf Geschwindigkeit als auch Genauigkeit übertreffen. In diesem Blogpost werden wir einen genaueren Blick darauf werfen, wie Transformers auf Computer-Vision-Aufgaben angewendet werden können und was es bedeutet, ein Bild zu tokenisieren .

CLIP: Wie sich der Schatz ungelabelter Bilddaten heben lässt


Fabian Gringel


Die Digitalisierung und vor allem das Internet haben uns nicht nur eine scheinbar unerschöpfliche Quelle an Textdaten, sondern auch an Bildern beschert. Im Falle von Texten wurde dieser Schatz in Form von aufgabenagnostischem Pretraining durch Sprachmodelle wie BERT oder GPT-3 gehoben. Contrastive Language-Image Pretraining (kurz: CLIP) macht nun etwas Ähnliches mit Bildern, oder besser: der Kombination von Bildern und Texten. In diesem Blog-Artikel gebe ich einen groben, nicht-technischen Überblick über die Funktionsweise von CLIP, und ich zeige auch, wie Sie CLIP selbst ausprobieren können! Wenn Sie eher technisch veranlagt sind und sich für die Details interessieren, dann empfehle ich Ihnen die Lektüre der Originalpublikation , die ich für gut geschrieben und verständlich halte.

21 Fragen, die wir unseren Kunden stellen: Start eines erfolgreichen ML-Projekts


Emilius Richter


Die Automatisierung von Prozessen mithilfe von Machine Learning (ML) kann die Effizienz eines Systems über menschliche Kapazitäten hinaus steigern und wird daher in vielen Branchen immer beliebter. Doch zwischen einer Idee und einem gut definierten Projekt gibt es einige Punkte, die berücksichtigt werden müssen, um das wirtschaftliche Potenzial und die technische Komplexität des Projekts richtig einzuschätzen. Gerade für Unternehmen wie dida, die individuelle Workflow-Automatisierungssoftware anbieten, hilft ein gut vorbereitetes Projekt dabei, die Machbarkeit und die technische Gesamtkomplexität der Projektziele schnell einzuschätzen - was es wiederum ermöglicht, Software entwicklen, die den Anforderungen des Kunden gerecht wird. In diesem Artikel besprechen wir, welche Themen im Vorfeld berücksichtigt werden sollten und warum die Fragen, die wir stellen, wichtig sind, um ein erfolgreiches ML-Softwareprojekt zu starten.

Automatische Fragebeantwortung für Suchmaschinen


Angela Maennel


Was in Veröffentlichungen zum maschinellen Lernen als Open-Domain Question Answering bezeichnet wird, ist nichts anderes als die Beantwortung einer Frage auf der Grundlage einer großen Textsammlung, z. B. die Beantwortung der Frage eines Besuchers einer großen Website unter Verwendung des Inhalts der Website. Aufgrund der jüngsten Fortschritte im Bereich des maschinellen Leseverstehens haben sich Open-Domain Question Answering-Systeme drastisch verbessert. Früher verließen sie sich auf die Redundanz von Informationen, aber jetzt sind sie in der Lage, sorgfältiger zu "lesen". Moderne Systeme sind in der Lage, einen Textabschnitt zu zitieren, der die Frage beantwortet, oder sie sogar neu zu formulieren. Was noch angestrebt wird, ist die Generierung längerer, absatzlanger Antworten oder die Verwendung mehrerer Quellen, um eine Antwort zusammenzustellen. Google hat kürzlich eine solche Funktion in seine Suchmaschine implementiert. Wenn sie eine Passage finden, die die in das Suchfeld getippte Frage beantwortet, zeigt das erste Ergebnis die entsprechende Website mit der hervorgehobenen Passage. Es gibt viele verschiedene Systeme, die sich mit Open-Domain Question Answering befassen, hier werde ich auf ein System im Besonderen eingehen, DrQA (von Chen et al. 2017 ). Dieses spezielle System teilt die Aufgabe in zwei Teile auf, für die es jeweils einfacher ist, Trainingsdaten zu erhalten als für die kombinierte Aufgabe. Ich werde auch erklären, wie diese Idee verwendet werden kann, um ein Fragebeantwortungssystem für eine Website aus einer bereits vorhandenen Suchfunktion zu erstellen.

Die besten Bildannotations-Tools für Computer Vision


Dmitrii Iakushechkin


Die Erstellung eines qualitativ hochwertigen Datensatzes ist ein entscheidender Teil einer jeden Machine-Learning-Lösung . In der Praxis dauert dies oft länger als das eigentliche Training und die Optimierung der Hyperparameter. Daher ist die Wahl eines geeigneten Tools für das Labeling entscheidend. Hier werden wir uns einige der besten Bildannotations-Tools für Computer-Vision-Aufgaben genauer ansehen: labelme labelImg CVAT hasty.ai Labelbox Wir werden die Werkzeuge installieren und konfigurieren und ihre Fähigkeiten veranschaulichen, indem wir sie auf die Annotation echter Bilder für eine Objekterkennungsaufgabe anwenden. Wir werden uns jedes der oben genannten Tools einzeln ansehen. Unser Sammlung von Computer Vision Inhalten zeigt ebenfalls deutlich, wie zentral die Nutzung solcher Labelingtools für uns als Machine-Learning-Spezialisten ist.

didas Tech-Stack


Fabian Gringel


Dieser Artikel gibt einen Überblick über unseren Tech-Stack bei dida. Natürlich passen wir die Tools, die wir verwenden, an die Erfordernisse eines bestimmten Projekts an, aber die hier aufgeführten sind unsere bevorzugten Tools, wenn wir die freie Wahl haben. Ich werde zunächst die Werkzeuge beschreiben, die unseren Softwareentwicklungsprozess prägen, und dann unsere bevorzugten Python-Bibliotheken und Software-Tools für Machine und Deep Learning.

Exploration mineralischer Rohstoffvorkommen mittels Fernerkundung


Fabian Dechent


Es überrascht nicht, dass eine wichtige Voraussetzung für den Erfolg von Bergbaubetrieben der richtige Standort ist - einer, bei dem das Unternehmen mit Sicherheit weiß, dass der Boden hochgradige Mineralien von Interesse trägt. Einen solchen Standort zu finden, stellt jedoch eine große Herausforderung dar. Wenn Bergbauunternehmen sich im Frühstadium der Exploration befinden (sogenannte "Greenfield-Exploration"), werden üblicherweise Feldstudien und Bohrungen durchgeführt. Da diese sehr teuer sind, sollten sie nur als letzte Sicherheit dienen, nachdem potenziell interessante Regionen identifiziert wurden. An dieser Stelle kommt die Fernerkundung ins Spiel. In diesem Artikel werfen wir einen Blick auf die Möglichkeiten, welche die satellitengestützte Bildgebung für die Greenfield-Exploration bietet. Lassen wir einen Satelliten vielversprechende Stellen auskundschaften.

Graph Neural Networks anhand von CNNs verstehen


Dr. Augusto Stoffel


In diesem Artikel werden wir die grundlegenden Ideen hinter Graph Neural Networks (GNNs) durch eine Analogie zu Convolutional Neural Networks (CNNs) vorstellen, die aufgrund ihrer Verbreitung im Bereich der Computer Vision sehr bekannt sind. In der Tat werden wir sehen, dass Convolutional Nets ein Beispiel für GNNs sind, wenn auch eines, bei dem der zugrunde liegende Graph sehr einfach, vielleicht sogar langweilig ist. Sobald wir sehen, wie man ein Convolutional Net durch diese Linse betrachten kann, wird es nicht schwer sein, diesen langweiligen Graphen durch einen interessanteren zu ersetzen, und wir werden auf natürliche Weise zum allgemeinen Konzept von GNN gelangen. Danach werden wir einen Überblick über einige Anwendungen von GNNs geben, einschließlich unserer Verwendung hier bei dida. Aber fangen wir mit den Grundlagen an.

Mit Python MGRS-Koordinaten konvertieren


Tiago Sanona


Wenn man mit Satellitendaten arbeitet, muss man die Koordinaten , in denen die Daten vorliegen, verstehen und eventuell umrechnen . Manchmal, insbesondere wenn sie von offiziellen Stellen freigegeben werden, werden Satellitendaten in MGRS-Kacheln bereitgestellt, die vom UTM-Koordinatensystem abgeleitet sind. Dies ist zum Beispiel bei den Sentinel-2 -Kacheln der Fall. In diesem Beitrag möchte ich die folgenden drei Fragen beantworten, wobei ich die Python-Bibliotheken mgrs und pyproj verwende: Was ist der Unterschied zwischen MGRS und UTM? Zu welcher MGRS-Kachel gehört ein bestimmter, in Breiten- und Längengraden referenzierter Punkt? Wie kann ich eine MGRS-Kachel in Lat/Lon-Koordinaten ausdrücken? Bevor wir diese Fragen beantworten, wollen wir uns zunächst ansehen, was MGRS ist.

Satellitengestütztes Monitoring der Verstädterung


Johan Dettmar


Die Urbanisierung auf globaler Ebene vollzieht sich in einem immer höheren Tempo. Im Jahr 2008 lebten mehr als 50% der Weltbevölkerung in Städten, und es wird vorhergesagt, dass bis 2050 etwa 64% der Entwicklungsländer und 86% der entwickelten Welt verstädtert sein werden. Dieser Trend stellt eine erhebliche Belastung für die Infrastrukturplanung dar. Die Bereitstellung von sanitären Einrichtungen, Wassersystemen und Verkehrsmitteln bis hin zu angemessenem Wohnraum für mehr als 1,1 Milliarden neue Stadtbewohner in den nächsten 10 Jahren wird eine außerordentliche Herausforderung darstellen. In einem Forschungsprojekt für das Programm "KI für soziale Auswirkungen" der Europäischen Weltraumorganisation (ESA) untersuchte dida den Einsatz modernster Computer-Vision-Methoden zur zeitlichen Überwachung der Stadtentwicklung von drei schnell wachsenden Städten in Westafrika: Lagos, Accra und Luanda. Es wird erwartet, dass die Bevölkerung dieser Städte bis Ende 2030 um 30-55 % wachsen wird, was bedeutet, dass eine in-situ-Datenerhebung über die Entwicklung dieser Städte angesichts der verfügbaren Ressourcen fast unmöglich ist. Stattdessen haben wir ein Konzept entwickelt, das sich ausschließlich auf Satellitenbilder und maschinelles Lernen stützt.

Mit Python doppelte Dateien finden


Ewelina Fiebig


Angenommen, Sie arbeiten an einem NLP -Projekt. Ihre Eingabedaten sind wahrscheinlich Dateien wie PDF, JPG, XML, TXT oder ähnliches und es gibt eine Menge davon. Es ist nicht ungewöhnlich, dass in großen Datenbeständen einige Dokumente mit unterschiedlichen Namen exakt den gleichen Inhalt haben, d.h. es handelt sich um Duplikate. Dafür kann es verschiedene Gründe geben. Der wohl häufigste ist die fehlerhafte Speicherung und Archivierung der Dokumente. Unabhängig von der Ursache ist es wichtig, die Duplikate zu finden und aus dem Datensatz zu entfernen, bevor Sie mit dem Labeling der Dokumente beginnen. In diesem Blogbeitrag werde ich kurz demonstrieren, wie der Inhalt verschiedener Dateien mit Hilfe des Python-Moduls filecmp verglichen werden kann. Nachdem die Duplikate identifiziert wurden, werde ich zeigen, wie sie automatisch gelöscht werden können.

Illegale Minen aus dem Weltraum erkennen


Matthias Werner


Überall auf der Welt sind Regenwälder und andere Naturlandschaften durch illegalen Bergbau gefährdet, der ehemals artenreiche Gebiete in Ödland verwandelt. Damit lokale Regierungen Gegenmaßnahmen ergreifen können, müssen sie zuerst über die Standorte der illegalen Minen Bescheid wissen. In Ländern, die von riesigen Gebieten nahezu undurchdringlichen Regenwalds bedeckt sind, wie z.B. Brasilien oder Kongo, ist die Beschaffung dieser Informationen ein schwieriges Problem. In diesem Blog-Beitrag beschreibe ich einen Ansatz zur Erkennung illegaler Minen, der auf Deep Learning und Fernerkundung basiert und den wir entwickelt haben, um die Naturschutzbemühungen von Regierungen und NGOs zu unterstützen. Insbesondere verwenden wir ein U-Net für die semantische Segmentierung , einen Zweig der Computervision. Im Rahmen des Projekts zur automatischen Erkennung von Kleinbergbau wurden wir auch von Wissenschaftlern des Institute of Mineral Resources Engineering (MRE) der RWTH Aachen unterstützt, die ihr bergbauspezifisches Fachwissen einbrachten. Das Projekt wurde von der European Space Agency (ESA) finanziert.

Text aus PDF-Dateien extrahieren


Lovis Schmidt


In NLP -Projekten hat man es oft mit PDFs als Ausgangsdokumenten zu tun. Manchmal enthalten die PDFs bereits zugrundeliegende Textinformationen, wodurch es möglich ist, Text ohne den Einsatz von OCR-Werkzeugen zu extrahieren. Im Folgenden möchte ich einige Open-Source-PDF-Werkzeuge vorstellen, die in Python verfügbar sind und mit denen sich Text extrahieren lässt. Ich werde ihre Eigenschaften vergleichen und auf ihre jeweiligen Vor- und Nachteile hinweisen. Die Tools heißen PyPDF2 , pdfminer und PyMuPDF . Es gibt andere Python-PDF-Bibliotheken, die entweder nicht in der Lage sind, Text zu extrahieren oder sich auf andere Aufgaben konzentrieren. Darüber hinaus gibt es Werkzeuge, die in der Lage sind, Text aus PDF-Dokumenten zu extrahieren, die aber in Python nicht verfügbar sind. Auf beide wird hier nicht eingegangen. Besuchen Sie außerdem die vergangenen dida-Projekte, in denen wir eine Informationsextraktion mit KI für Produktbeschreibungen, eine Informationsextraktion aus Kundenanfragen oder eine Informationsextraktion aus PDF-Rechnungen entwickelt haben.

Was ist Reinforcement Learning? (Teil 2)


Matthias Werner


Im vorherigen Beitrag haben wir die Grundlagen des Reinforcement Learning (RL) und die Art des Problems, auf das es angewendet werden kann, vorgestellt. Das diskutierte Setting war insofern begrenzt, als wir es mit einem einzelnen Agenten zu tun hatten, der in einer stationären Umgebung agiert. Jetzt gehen wir einen Schritt weiter und diskutieren das Multi-Agent Reinforcement Learning ( MARL ). Hier haben wir es mit mehreren explizit modellierten Agenten in derselben Umgebung zu tun, daher ist jeder Agent Teil der Umgebung, wie er von allen anderen wahrgenommen wird. Da alle Agenten im Laufe der Zeit lernen und anfangen, sich unterschiedlich zu verhalten, wird die Annahme einer stationären Umgebung verletzt.

Mit BERT automatisiert Fragen beantworten (Teil 1)


Dr. Mattes Mollenhauer


In diesem Artikel werden wir einen genaueren Blick auf BERT werfen - ein hochmodernes Modell für eine Reihe verschiedener Probleme bei der Verarbeitung natürlicher Sprache. BERT wurde von Google entwickelt und 2018 veröffentlicht und wird zum Beispiel in Googles Suchmaschine verwendet . Der Begriff BERT ist ein Akronym für den Begriff Bidirectional Encoder Representations from Transformers , der zunächst recht kryptisch erscheinen mag. Der Artikel ist in zwei Teile gegliedert: Im ersten Teil werden wir sehen, wie BERT funktioniert, und im zweiten Teil werden wir uns einige seiner praktischen Anwendungen ansehen - insbesondere werden wir das Problem der automatisierten Beantwortung von Fragen untersuchen.

Pretraining für die Fernerkundung


Dr. William Clemens


In diesem Blogbeitrag werde ich eine Reihe von Pretraining-Aufgaben beschreiben, die man entweder einzeln oder in Kombination verwenden kann, um gute "Start"-Gewichte zu erhalten, bevor man ein Modell auf dem eigentlichen gelabelten Datensatz trainiert. Typischerweise fallen Fernerkundungsaufgaben unter den Begriff der semantischen Segmentierung, daher sind alle hier beschriebenen Pretraining-Aufgaben für Aufgaben gedacht, die eine Vorhersage für jedes Pixel ausgeben und ein U-Net als Architektur verwenden.

Was ist Reinforcement Learning? (Teil 1)


Matthias Werner


Beim maschinellen Lernen geht es darum, komplizierte Aufgaben zu lösen, indem eine Software die Regeln eines Prozesses aus Daten lernt. Man kann versuchen, Struktur in einem unbekannten Datensatz zu entdecken (unüberwachtes Lernen) oder man kann versuchen, eine mathematische Funktion zwischen verwandten Größen zu lernen (überwachtes Lernen). Aber was wäre, wenn Sie wollten, dass der Algorithmus lernt, auf seine Umgebung zu reagieren und sich auf eine bestimmte Art und Weise zu verhalten? Keine Sorge, Machine Learning bietet Ihnen eine Lösung! Dieser Zweig des maschinellen Lernens (ML) wird Reinforcement Learning (RL) genannt. In diesem Beitrag werden wir eine kurze Einführung in den allgemeinen Ansatz geben und einige grundlegende Lösungsversuche näher betrachten. Schließlich werden wir ein visuelles Beispiel für RL im Einsatz geben und weitere Ansätze diskutieren. Im einem zweiten Teil werden wir Multi-Agent Reinforcement Learning diskutieren.

Wozu gelabelte Daten? (Un)überwachtes Machine Learning


Lorenzo Melchior


Es scheint ein weit verbreiteter Irrtum zu sein zu glauben, dass maschinelles Lernen in der Regel eine unüberwachte Aufgabe ist: Sie haben Daten (ohne vorher existierende Etiketten), die Sie z.B. in einem neuronalen Netz für Aufgaben wie Klassifikation oder Bildsegmentierung trainieren. Die Wahrheit ist, dass die meisten Modelle beim maschinellen Lernen überwacht sind, d.h. sie stützen sich auf gelabelte Trainingsdaten . Aber das Labeling nimmt oft viel Zeit in Anspruch und kann sehr mühsam sein. In diesem Blogbeitrag möchte ich herausfinden, ob ich in der Lage bin, die gleiche Klassifizierungsaufgabe einmal mit und einmal ohne Labels durchzuführen. Für diese Aufgabe werde ich den bekannten MNIST-Datensatz verwenden, der 60.000 Trainings- und 10.000 Validierungsbilder handgeschriebener Ziffern enthält, die alle gelabelt sind. Jedes Bild besteht aus 28x28 Graustufenpixeln und enthält nur eine Ziffer, die sich in der Mitte des Bildes befindet. Um die Sache zu vereinfachen, verwende ich die CSV-Version des Datensatzes .

Die besten kostenlosen Labeling-Tools für NLP-Textannotationen


Fabian Gringel


In diesem Blogbeitrag stelle ich die drei besten kostenlosen Annotationswerkzeuge für die manuelle Annotation von Dokumenten in NLP-Projekten ( Natural Language Processing ) vor. Sie werden lernen, wie man sie installiert, konfiguriert und benutzt, und Sie werden herausfinden, welches von ihnen am besten für Ihre Zwecke geeignet ist. Die Werkzeuge, die ich vorstellen werde, sind brat , doccano , INCEpTION . Die Auswahl basiert auf diesem umfassenden wissenschaftlichen Übersichtsartikel und unserer praktischen Erfahrungen innerhalb unserer dida NLP-Projekte . Ich werde die Werkzeuge nacheinander besprechen. Für jedes von ihnen werde ich zunächst einen allgemeinen Überblick darüber geben, wofür das Werkzeug geeignet ist, und dann Einzelheiten (oder Links) zur Installation, Konfiguration und Verwendung angeben. Möglicherweise ist auch unsere Sammlung von NLP-Inhalten interessant für Sie.

Objekterkennung in Videos mit PyTorch


Dr. William Clemens


Selbstfahrende Autos haben immer noch Schwierigkeiten, vor ihnen liegende Objekte mit ausreichender Zuverlässigkeit zu erkennen. Im Allgemeinen ist die Leistung modernster Objekterkennungsmodelle jedoch bereits sehr beeindruckend - und sie sind nicht allzu schwierig anzuwenden. Hier werde ich Sie durch das Streaming eines YouTube-Videos in Python und die anschließende Anwendung eines vortrainierten PyTorch -Modells zur Erkennung von Objekten führen. Wir werden ein auf dem Objekterkennungsdatensatz COCO vortrainiertes Modell. (In Wirklichkeit würden wir natürlich selbst die Feinabstimmung des Modells vornehmen!)

Digitale Verwaltung: Intuitiver Online-Zugang durch KI


Jona Welsch


Der folgende Artikel beschreibt, wie KI bei der Etablierung digitaler Verwaltungsdienstleistungen helfen kann. Dabei wird zunächst ein grundsätzliches Problem beschrieben, das KI an dieser Stelle lösen kann: Behörden sprechen häufig eine von der Umgangssprache sehr verschiedene Sprache. Anhand des Beispiels von Gewerbeanmeldungen und des KI-Modells "BERT" werden ein möglicher Lösungsweg erklärt und Ideen für weitere Einsatzgebiete aufgezeigt.

Was ist Bayes'sche Lineare Regression? (Teil 1)


Matthias Werner


Bayes'sche Regressionsmethoden sind sehr leistungsfähig, da sie uns nicht nur Punktschätzungen von Regressionsparametern geben, sondern vielmehr eine vollständige Verteilung über diese Parameter liefern. Das kann so verstanden werden, dass man nicht nur ein Modell, sondern eine ganze Familie von Modellen lernt und ihnen je nach ihrer Wahrscheinlichkeit, korrekt zu sein, unterschiedliche Gewichte zuweist. Da diese Gewichtsverteilung von den beobachteten Daten abhängt, können Bayes'sche Methoden uns eine Unsicherheitsquantifizierung unserer Vorhersagen geben, die darstellt, was das Modell aus den Daten lernen konnte. Das Unsicherheitsmaß könnte z.B. die Standardabweichung der Vorhersagen aller Modelle sein. Dies ist etwas, was Punktschätzer nicht standardmäßig liefern. Zu wissen, was das Modell nicht weiß, trägt dazu bei, die KI besser erklärbar zu machen. Um die Grundidee der Bayes'schen Regression zu klären, bleiben wir bei der Diskussion der Bayes'schen linearen Regression (BLR). BLR ist der Bayes'sche Ansatz zur linearen Regressionsanalyse. Wir werden mit einem Beispiel beginnen, um die Methode zu motivieren. Zur Verdeutlichung stellen wir dann einige nicht-bayesianische Methoden vor, mit denen der Leser vielleicht bereits vertraut ist, und diskutieren, wie sie sich zur Bayes'schen Regression verhalten. Im Folgenden gehe ich davon aus, dass Sie über elementare Kenntnisse der linearen Algebra und der Stochastik verfügen. Fangen wir also an!

Beat Tracking mit tiefen neuronalen Netzen


Julius Richter


Dies ist der letzte Beitrag in der dreiteiligen Reihe, die sich mit maschinellen Lernansätzen für Zeitreihen- und Sequenzmodellierung befasst. Im ersten Beitrag wurden die grundlegenden Prinzipien und Techniken für serielle Sequenzen in künstlichen neuronalen Netzen gezeigt. Der zweite Beitrag stellte einen neueren Faltungsansatz für Zeitreihen vor, das so genannte Temporal Convolutional Network (TCN), das bei Sequenz-zu-Sequenz-Aufgaben große Leistungsfähigkeit zeigt ( Bai, 2018 ). In diesem Beitrag werde ich jedoch über eine Anwendung aus der realen Welt sprechen, die ein maschinelles Lernmodell für die Zeitreihenanalyse einsetzt. Zu diesem Zweck werde ich einen Beat-Tracking-Algorithmus vorstellen, bei dem es sich um eine rechnerische Methode zur Extraktion der Beat-Positionen aus Audiosignalen handelt. Das vorgestellte Beat-Tracking-System ( Davies, 2019 ) basiert auf der TCN-Architektur, die die sequentielle Struktur der Audioeingabe erfasst.

Test von OCR-Scannern: die beste Software für Texterkennung


Fabian Gringel


Die optische Zeichenerkennung (kurz: OCR) hat die Aufgabe, Text automatisch aus Bildern zu extrahieren (die in typischen Bildformaten wie PNG oder JPG vorliegen können, aber auch als PDF-Datei). Heutzutage gibt es eine Vielzahl von Werkzeugen und Diensten zu Texterkennung, die einfach zu bedienen sind und diese Aufgabe zu einem Kinderspiel machen. In diesem Blogbeitrag werde ich vier der beliebtesten Tools vergleichen: Tesseract-OCR ABBYY FineReader Google Cloud-Vision Amazon-Textrakt Ich werde zeigen, wie man sie einsetzt und ihre Stärken und Schwächen auf der Grundlage ihrer Leistung bei einer Reihe von Aufgaben bewerten kann. Nach der Lektüre dieses Artikels werden Sie in der Lage sein, ein OCR-Tool auszuwählen und anzuwenden, das den Anforderungen Ihres Projekts entspricht. Beachten Sie, dass wir uns auf die OCR nur für Dokumentenbilder konzentrieren, im Gegensatz zu Bildern, die lediglich nebenbei auch Text enthalten. Werfen wir nun einen Blick auf die Dokumentenbilder, die wir zur Beurteilung der OCR-Engines verwenden werden.

Temporal Convolutional Networks für die Sequenz-Modellierung


Julius Richter


Dieser Blog-Post ist der zweite in einer dreiteiligen Serie, die sich mit maschinellen Lernansätzen für Zeitreihen befasst. Im ersten Post habe ich darüber gesprochen, wie man mit seriellen Sequenzen in künstlichen neuronalen Netzen umgehen kann. Insbesondere wurden rekurrente Modelle wie das LSTM als ein Ansatz zur Verarbeitung von Zeitdaten vorgestellt, um zukünftige Ereignisse zu analysieren oder vorherzusagen. In diesem Beitrag werde ich jedoch einen einfachen aber mächtigen Ansatz für Sequenzen vorstellen, der Temporal Convolutional Network (TCN) ("convolution" heißt "Faltung") genannt wird. Die Netzwerkarchitektur wurde in ( Bai, 2018 ) vorgeschlagen und zeigt eine große Leistungsfähigkeit bei Sequenz-zu-Sequenz-Aufgaben wie maschineller Übersetzung oder Sprachsynthese in Text-zu-Sprache-Systemen (TTS). Bevor ich die Architekturelemente im Detail beschreibe, werde ich eine kurze Einführung über Sequenz-zu-Sequenz-Lernen und den Hintergrund von TCNs geben.

Wie ein TensorFlow-Model zu einer JavaScript-Web-App wird


Johan Dettmar


Jeder, der heutzutage ein Machine Learning (ML)-Modell trainieren möchte, hat eine Vielzahl von Python-Frameworks zur Auswahl. Wenn es jedoch darum geht, das trainierte Modell in einer Nicht-Python-Umgebung einzusetzen, sinkt die Anzahl der Optionen schnell. Glücklicherweise gibt es Tensorflow.js , eine JavaScript (JS)-Untermenge des beliebten Python-Frameworks mit dem gleichen Namen. Durch die Konvertierung eines Modells, so dass es vom JS-Framework geladen werden kann, kann die Inferenz in einem Webbrowser oder einer mobilen Anwendung effektiv durchgeführt werden. Das Ziel dieses Artikels ist es, zu zeigen, wie man ein Modell in Python trainiert und es dann als JS-App bereitstellt, die online vertrieben werden kann.

Mit ConvNets Wolken auf Satellitenbildern erkennen


Dr. William Clemens


In diesem Post werde ich erklären, wie wir das Problem der Erkennung konvektiver Wolken anhand von Satellitendaten angegangen sind. Ich werde erklären, was genau wir suchen (und warum!) und näher auf den Machine Learning-Ansatz eingehen, den wir verwendet haben. Dieser Beitrag wird aus vier Teilen bestehen: Zuerst werden wir konvektive Wolken vorstellen und einen kurzen Überblick über das Problem geben. In Abschnitt 2 werden wir die Satellitendaten erläutern, mit denen wir arbeiten. In Abschnitt 3 besprechen wir, wie wir mit dem manuellen Labelling der Daten umgehen, was eine besonders schwierige Aufgabe ist, welche die Verwendung einiger externer Daten erfordert. Schließlich geben wir in Abschnitt 4 einen kurzen Überblick über die von uns verwendete neuronale Netzwerkarchitektur, das U-Net, und wie wir es trainieren.

Wie Google Cloud Machine Learning-Projekte beschleunigt


Johan Dettmar


Da nicht nur die Komplexität der Machine Learning (ML)-Modelle, sondern auch die Größe der Datensätze weiter wächst, steigt auch der Bedarf an Computerleistung. Während die meisten Laptops heute eine erhebliche Arbeitslast bewältigen können, ist die Leistung für unsere Zwecke bei dida oft nicht ausreichend. Im Folgenden führen wir Sie durch einige der häufigsten Engpässe und zeigen, wie Cloud Services helfen die Dinge zu beschleunigen.

Wie GANs helfen, Produktionsfehler zu erkennen | dida blog


Lorenzo Melchior


Im Machine Learning behindert oft eine unzureichende Menge an Trainingsdaten die Leistung von Klassifikationsalgorithmen. Die Erfahrung zeigt, dass der Mangel an Trainingsdaten eher die Regel als die Ausnahme ist, weshalb die Menschen clevere Methoden zur Datenvermehrung ( Data Augmentation ) entwickelt haben. In diesem Blogbeitrag zeige ich, wie Sie mit einem Generative Adversarial Network (GAN) neue Bilder einer Verteilung von Bildern erstellen können. Dies kann als Data Augmentation-Methode bei Problemen wie der Fehlererkennung in der industriellen Produktion eingesetzt werden.

Mustererkennung in der medizinischen Bildgebung


Matthias Werner


Künstliche Intelligenz (KI) und insbesondere Computer Vision versprechen wertvolle Hilfsmittel zur Diagnose von Krankheiten auf der Grundlage medizinischer Bildgebungstechniken zu sein. Für den Menschen dauert es Jahre der akademischen und praktischen Ausbildung, um z.B. die medizinische Diagnose anhand von Röntgenbildern durchzuführen. Wie wir sehen werden, ist es auch eine große Herausforderung für intelligente Algorithmen. Auf der diesjährigen KIS-RIS-PACS- und DICOM-Konferenz der Medizinischen Fakultät der Universität Mainz trafen sich Forscher aus der Radiologie und angrenzenden Fachgebieten, um den Stand der Technik der KI in ihrem Bereich zu diskutieren. Philipp Jackmuth von der dida war der Referent der Wahl für dieses Thema und hier werden wir die Eckpunkte seines Vortrags diskutieren.

Was ist Natural Language Processing (NLP)?


Fabian Gringel


Natural Language Processing (kurz: NLP , manchmal auch Computerlinguistik ) ist eines der Gebiete, das eine Revolution erfahren hat, seit Methoden des Machine Learning (ML) auf es angewendet wurden. In diesem Blogbeitrag werde ich erklären, worum es bei NLP geht und zeigen, wie Machine Learning ins Spiel kommt. Am Ende werden Sie gelernt haben, mit welchen Problemen sich NLP beschäftigt, welche Methoden es verwendet und wie Machine Learning-Modelle an die Besonderheiten natürlichsprachlicher Daten angepasst werden können.

Was ist KI?


Matthias Werner


In den letzten fünf bis zehn Jahren hat kaum ein Thema einen so rasanten Anstieg der Popularität erlebt wie Deep Learning . Seit 2009 hat sich die Anzahl der jährlich veröffentlichten Deep Learning-Forschungsbeiträge mehr als verdoppelt. Es scheint, dass jeder über KI spricht und jedes Technologieunternehmen tiefe neuronale Netze für sein neuestes Produkt verwendet. Die Begriffe Künstliche Intelligenz (KI) , Machine Learning (ML) und Deep Learning (DL) werden mit erstaunlicher Häufigkeit verwendet. Es ist jedoch nicht offensichtlich, was sie beschreiben sollen und wie sie sich zueinander verhalten. Dieser Blog-Artikel soll einige der in diesen Bereichen verwendeten Begriffe für den technikbegeisterten Laien erläutern und eine Vorstellung davon vermitteln, wie diese Technologien in der Computer Vision (CV) eingesetzt werden können.

Semantische Segmentierung von Satellitenbildern


Dr. Nelson Martins


Dieser Beitrag stellt einige wichtige Erkenntnisse aus unserer Arbeit zur Identifizierung von Dächern auf Satellitenbildern vor. Unser Ziel war es, ein Planungswerkzeug für die Platzierung von Solarmodulen auf Dächern zu entwickeln. Zu diesem Zweck haben wir ein Machine Learning-Modell erstellt, das diese Bilder präzise in verschiedene Arten von Dachteilen und Hintergrund unterteilt. Wir haben gelernt, dass das UNet -Modell mit Würfelkoeffizientenverlust und einer Pixelgewichtungsstrategie Kreuzentropie-basierte Verlustfunktionen bei der semantischen Segmentierung von Satellitenbildern deutlich übertrifft. Die folgende idealisierte Pipeline veranschaulicht die Funktionalität des Planungstools:

Informationen aus Dokumenten auslesen


Dr. Frank Weilandt


Die Nachfrage nach der automatischen Verarbeitung von Briefen und anderen Dokumenten steigt. Moderne OCR-Verfahren (Optical Character Recognition), die durch maschinelles Lernen unterstützt werden, können den Text digitalisieren. Aber der nächste Schritt besteht darin, ihn zu interpretieren. Dies erfordert Ansätze aus Bereichen wie Informationsextraktion und NLP (Natural Language Processing). Hier zeigen wir anhand simpler Heuristiken, wie man das Datum eines Briefes mit dem Python OCR-Tool pytesseract automatisch einliest. Hoffentlich können Sie einige Ideen für Ihr eigenes Projekt verwenden.