Connect with us

Künstliche Intelligenz

Künstliche Neuronale Netze im Überblick 2: Schichten und Feed-Forward-Netzwerke


Neuronale Netze sind der Motor vieler Anwendungen in Künstlicher Intelligenz (KI) und GenAI. Diese Artikelserie gibt einen Einblick in die einzelnen Elemente. Nach der Vorstellung der Neuronen im ersten Teil widmet sich der zweite Teil den Schichten des Netzwerks.


Michael Stal

Michael Stal

Prof. Dr. Michael Stal arbeitet seit 1991 bei Siemens Technology. Seine Forschungsschwerpunkte umfassen Softwarearchitekturen für große komplexe Systeme (Verteilte Systeme, Cloud Computing, IIoT), Eingebettte Systeme und Künstliche Intelligenz.

Er berät Geschäftsbereiche in Softwarearchitekturfragen und ist für die Architekturausbildung der Senior-Software-Architekten bei Siemens verantwortlich.

Wenn mehrere künstliche Neuronen so gruppiert sind, dass sie alle denselben Satz von Eingaben erhalten und ihre Ausgaben parallel erzeugen, bezeichnen wir diese Sammlung als Schicht. In einer einzelnen Schicht wendet jedes Neuron seinen eigenen Gewichtsvektor und seinen eigenen Bias-Term auf das eingehende Signal an, aber alle Neuronen teilen sich dieselbe Eingabe. Durch die Anordnung von Schichten in einer Reihenfolge erstellen wir ein Netzwerk, das einfache numerische Eingaben in beliebig reichhaltige Darstellungen umwandeln kann.

Mathematisch ausgedrückt: Wenn wir die Aktivierungen der Schicht ℓ−1 durch den Spaltenvektor aℓ−1 und die Gewichte der Schicht ℓ durch eine Matrix Wℓ bezeichnen, deren Zeilen die Gewichtsvektoren der einzelnen Neuronen sind, dann ergibt sich der Präaktivierungsvektor zℓ der Schicht ℓ aus dem Matrix-Vektor-Produkt:

zℓ = Wℓ · aℓ−1 + bℓ

Wobei bℓ der Bias-Vektor für die Schicht ℓ ist. Anschließend wenden wir eine elementweise nicht lineare Aktivierungsfunktion σ an, um die Ausgabe der Schicht zu erhalten:

aℓ = σ(zℓ)

Wenn wir einen Stapel von Eingaben einspeisen, stapeln wir einfach jede Eingabe als Spalte (oder Zeile, je nach Konvention) einer Matrix X und ersetzen die Vektoroperationen durch Matrixmultiplikationen auf dem Stapel, was zu einer hocheffizienten vektorisierten Berechnung führt.

Im Code lassen sich mit PyTorch auf einfache Weise Schichten und ihre Verbindungen ausdrücken. Die integrierte Klasse torch.nn.Linear kapselt sowohl die Gewichtsmatrix als auch den Bias-Vektor und verbindet sie für die automatische Differenziation mit dem Berechnungsgrafen. Nachfolgend finden Sie ein minimales Beispiel für ein kleines Feed-Forward-Netzwerk mit einer versteckten Schicht. Jede Zeile wird ausführlich erklärt.


import torch
import torch.nn as nn

class SimpleMLP(nn.Module):
    def __init__(self, input_dim, hidden_dim, output_dim):
        super(SimpleMLP, self).__init__()
        # Definieren Sie eine vollständig verbundene Schicht, die input_dim auf hidden_dim abbildet
        self.fc1 = nn.Linear(input_dim, hidden_dim)
        
        # Wählen Sie eine nichtlineare Aktivierungsfunktion für die versteckte Schicht
        self.relu = nn.ReLU()
        # Definieren Sie eine zweite vollständig verbundene Schicht, die hidden_dim auf output_dim abbildet
        self.fc2 = nn.Linear(hidden_dim, output_dim)

    def forward(self, x):
        # Wende die erste lineare Transformation an
        x = self.fc1(x)
        # Wende die nichtlineare Aktivierungsfunktion elementweise an
        x = self.relu(x)
        # Wende die zweite lineare Transformation an, um die Ausgabe zu erzeugen
        x = self.fc2(x)
        return x


Die Import-Anweisungen laden torch für Tensoroperationen und torch.nn als Namespace für Bausteine neuronaler Netze. Die Klasse SimpleMLP erbt von nn.Module, der Basisklasse von PyTorch für alle Komponenten neuronaler Netze. Der Aufruf von super(SimpleMLP, self).init()stellt sicher, dass die interne Maschinerie von Module ordnungsgemäß initialisiert wird.

Innerhalb des Konstruktors sind self.fc1 und self.fc2 Instanzen von nn.Linear. Jede Linearschicht weist eine Gewichtungsmatrix der Form (output_features, input_features) und einen Bias-Vektor der Länge output_features zu. Durch das Speichern dieser Schichten als Attribute des Moduls registriert PyTorch automatisch ihre Parameter, sodass wir beim Aufruf von model.parameters() alle Gewichtungs- und Bias-Tensoren in einem einzigen iterierbaren Objekt zurückgeben können.

Die Wahl von ReLU für self.relu spiegelt dessen weitverbreitete Verwendung wider: Die rektifizierte lineare Einheit gibt für jede negative Eingabe Null zurück und für jede nicht negative Eingabe die Eingabe selbst. Diese einfache, nicht lineare Operation führt die Nichtlinearität ein, die das Netzwerk benötigt, um komplexe Funktionen zu approximieren.

Die Vorwärtsmethode definiert die Transformation des Eingabetensors x, während er durch das Netzwerk fließt. Wenn x die Form (batch_size, input_dim) hat, hat er nach self.fc1(x) die Form (batch_size, hidden_dim) und behält nach Anwendung von ReLU die gleiche Form, wobei sich negative Werte auf Null abbilden. Der letzte Aufruf von self.fc2 erzeugt eine Ausgabe der Form (batch_size, output_dim). Durch die Rückgabe von x am Ende von forward ermöglichen wir es, das Netzwerk wie eine Funktion aufzurufen:


model = SimpleMLP(input_dim=10, hidden_dim=50, output_dim=1)
batch_of_inputs = torch.randn(32, 10)
outputs = model(batch_of_inputs)


In diesem Beispiel ist batch_of_inputs ein Tensor der Form (32, 10), der zweiunddreißig Samples mit jeweils zehn Merkmalen darstellt. Der Aufruf model(batch_of_inputs) ruft im Hintergrund forward auf, und outputs hat die Form (32, 1), sodass wir pro Sample eine Vorhersage erhalten.

Im Hintergrund erstellt PyTorch einen Berechnungsgraphen, der jede Operation – Matrixmultiplikationen, Additionen und Nichtlinearitäten – aufzeichnet, sodass bei der Berechnung eines Verlusts auf der Grundlage der Outputs und dem anschließenden Aufruf von loss.backward() sich die Gradienten aller Parameter in fc1 und fc2 automatisch berechnen lassen. Diese Gradienten lassen sich dann von Optimierern verwenden, um die Gewichtungsmatrizen und Bias-Vektoren zu aktualisieren.

Durch das Stapeln weiterer Schichten – beispielsweise durch mehrmaliges Abwechseln von linearen und Aktivierungsschichten – und durch Variieren der versteckten Dimensionen lassen sich tiefere und breitere Netzwerke erstellen, die hochkomplexe Zuordnungen lernen können.

Der nächste Teil der Serie zeigt, wie die gebatchten, vektorisierten Operationen den Vorwärtslauf in seiner Allgemeinheit bilden und wie die Wahl der Aktivierungen mit der Netzwerktiefe zusammenwirkt.


(rme)



Source link

Künstliche Intelligenz

Pixel 7 und 7 Pro: Nutzerbeschwerden über aufgeblähte Akkus


In den vergangenen Monaten häuften sich die Berichte über Batterieprobleme bei mehreren Pixel-Modellen. Neben dem Pixel 4a und 6a war auch das Pixel 7a betroffen. Nun beschweren sich einige Besitzerinnen und Besitzer der Modelle Pixel 7 und 7 Pro über aufgeblähte Akkus, die den Bildschirm aus dem Gehäuse drücken können.

Wie PiunikaWeb und Android Authority berichten, kann einer der ersten Fälle zum Pixel-7-Pro-Problem auf Anfang Mai dieses Jahres zurückdatiert werden. Damals schrieb ein Nutzer im Google-Support-Forum:“Ich schreibe Ihnen, um ein ernstes Problem mit meinem Pixel 7 Pro zu melden, das ich vor etwa zwei Jahren gekauft habe. Vor kurzem habe ich festgestellt, dass sich die Seitenabdeckung des Geräts zu lösen beginnt, wie auf dem beigefügten Foto deutlich zu sehen ist.“

Der Beitrag sammelte bislang über 140 Stimmen von Personen, die offenbar mit dem gleichen Problem konfrontiert sind. Zudem teilten unter dem Post weitere Nutzer Bilder ihrer Pixel-7-Geräte mit aufgeblähten Akkus.

Ein weiterer betroffener Nutzer schrieb, dass er sein Pixel 7 Pro mit aufgeblähtem Akku zu einer renommierten Reparaturkette gebracht hätte. Die Reparaturwerkstatt teilte ihm mit, dass wegen der Ablösung des Bildschirms mit hoher Wahrscheinlichkeit auch der Bildschirm ausgetauscht werden müsse.

Lesen Sie auch

Zum Begleiteffekt der aufgeblähten Akkus des Pixel 7 und 7 Pro gehört den Berichten zufolge auch eine rapide Abnahme der Laufzeit, wobei es ohnehin ratsam ist, die betroffenen Geräte besser nicht mehr zu verwenden. Einige berichten zudem, dass einige Geräte trotz vollem Akku nicht mehr einschaltbar seien.

Kommentare im Google-Forum deuten darauf hin, dass das Support-Team bei der Bearbeitung der Nutzerbeschwerden keine einheitliche Vorgehensweise hatte. In einigen Fällen seien Kunden gebeten worden, dem Support Fotos von allen Seiten ihres Smartphones zuzusenden. Ein Nutzer erhielt etwa eine Erstattung für den Austausch des Akkus durch einen Drittanbieter. Ein anderer gab an, dass Google ihm eine kostenlose Reparatur angeboten und versprochen hätte, das aufgeblähte Pixel 7 durch ein generalüberholtes Gerät zu ersetzen, falls die Reparatur nicht erfolgreich sein sollte.

Von Google gab es bislang noch keine offizielle Stellungnahme zu der neuen Akkuproblematik. Wir haben Google Deutschland um ein Statement gebeten. Angesichts der sich offenbar häufenden Stimmen dürfte der Konzern alsbald reagieren.

Es ist leider nicht das erste Mal, dass Chargen von Googles Pixel-Geräte mit Akku-Problemen zu kämpfen haben. Im April startete der Konzern ein kostenloses Akku-Austauschprogramm für Pixel-7a-Geräte und räumte ein, dass sich die Akkus bei einigen Geräten aufblähen können. Je nach Garantiestatus und Region bietet Google auch eine andere Kulanzleistung von bis zu 400 Euro an.

Neben dem Pixel 7a bestätigte Google auch Akkuprobleme beim Pixel 6a, für das der Hersteller im Juli ein Softwareupdate zur Reduzierung der Batteriekapazität wegen möglicher Überhitzungsprobleme veröffentlicht hatte. Nutzer, die bei ihren Pixel-Geräten einen aufgeblähten Akku feststellen, sollten die Richtlinien im Support-Bereich studieren und den Kundendienst kontaktieren.


(afl)



Source link

Weiterlesen

Künstliche Intelligenz

„Die Sonne wacht langsam auf“: Sonnenaktivität steigt seit 2008 überraschend an


Die Sonnenaktivität ist seit 17 Jahren kontinuierlich gestiegen, sollte dieser Trend anhalten, könnten Sonnenstürme und Sonneneruptionen unabhängig vom jeweiligen Sonnenzyklus häufiger werden. Das haben zwei Forscher der NASA ermittelt, die verschiedene Entwicklungen beim Verhalten unserer Sonne ausgewertet haben. Demnach hat ein in den 1980er-Jahren begonnener Trend der abnehmenden Sonnenaktivität 2008 geendet, aber das damals erwartete Verharren auf diesem niedrigen Niveau sei nicht eingetreten. Stattdessen habe die Sonne den Kurs gewechselt und sei immer aktiver geworden. Das könnte künftig nicht nur Folgen für die Raumfahrt haben.

Dass die Sonne bei ihrer Aktivität einen ungefähr elfjährigen Zyklus durchläuft, ist seit mehr als 200 Jahren bekannt. Die wurden von dem Schweizer Astronomen Rudolf Wolf im 18. Jahrhundert bis zum Jahr 1749 zurückgerechnet, dem Maximum des sogenannten 0. Zyklus. Inzwischen wurde der Elfjahreszyklus anhand von Baumringen sogar lückenlos für die vergangenen 1000 Jahre bestätigt und bis ins Jahr 969 zurückverfolgt. Gleichzeitig durchläuft die Sonne aber langfristigere Veränderungen, die dafür sorgen, dass die Aktivität unabhängig von den Zyklen zu- oder abnimmt. Am inaktivsten war die Sonne beispielsweise aus bislang ungeklärten Gründen im 17. Jahrhundert und dann noch einmal am Anfang des 19. Jahrhunderts. Am Beginn des Raumfahrtzeitalters war sie dann so aktiv wie lange nicht mehr.

Dass der aktuelle 25. Sonnenzyklus stärker ausgefallen ist als erwartet, war bereits bekannt. Auch sein Maximum hat er früher erreicht. Die beiden NASA-Forscher haben nun aber bestätigt, dass das Teil eines größeren Trends ist: „Die Sonne wacht langsam auf“, meint Studienleiter Jamie Jasinski vom Jet Propulsion Laboratory der NASA. Insgesamt sei das eine Überraschung gewesen, denn eigentlich habe alles darauf hingedeutet, dass die Sonne in eine längere Phase geringer Aktivität eingetreten ist. Dass dem nicht so ist, hat er mit Marco Velli unter anderem anhand von Daten zum Sonnenwind und zum Magnetfeld ermittelt. Ihre Forschungsarbeit haben sie in den Astrophysical Journal Letters veröffentlicht.

Die kontinuierliche Beobachtung und Vorhersage der Sonnenaktivität sind nicht nur für die Erforschung unserer Sonne von Belang, Phasen besonders hoher Aktivität können ganz konkrete Folgen auf der Erde haben. Schlimmstenfalls kann eine besonders aktive Sonne – also eine mit vielen Sonnenflecken und großen Ausbrüchen auf der Oberfläche – technische Systeme wie etwa Satelliten beschädigen oder gar zur Gefahr für Astronauten werden. Eine besonders starke Sonneneruption könnte sogar eine „Internet-Apokalypse“ auslösen. Zudem hat erst vor wenigen Monaten ein Forschungsteam herausgefunden, dass sogenannte Superflares unserer Sonne viel häufiger sind als angenommen. Dabei handelt es sich um gigantische Eruptionen auf der Sonne mit potenziell verheerenden Folgen für moderne Infrastruktur.


(mho)



Source link

Weiterlesen

Künstliche Intelligenz

Steam-Spiele tauchen jetzt in der Xbox-App auf


Microsoft macht die Xbox-App zur zentralen Anlaufstelle für alle installierten PC-Spiele. Aktuell verteilt Microsoft ein Update für die Xbox-App, nach dessen Installation auch Spiele in der Xbox-Bibliothek auftauchen, die über andere Plattformen installiert wurden. Zu den unterstützten Stores gehören Steam, GOG und der Epic Games Store.

Angekündigt hat Microsoft diese Neuerung schon im Juni, seitdem wurden die neuen Features getestet. Nun wurde die überarbeitete Xbox-App für alle Nutzer veröffentlicht. Das Update kann auch in Deutschland bereits heruntergeladen werden. Dazu klickt man in der Xbox-App auf die Glocke und stößt den Download der neuen Version an – insofern sie nicht schon automatisch heruntergeladen wurde.

Nach dem Update braucht die App einen kurzen Moment, um alle auf dem PC installierten Spiele aus den unterschiedlichen Stores zu erfassen. Dieser Schritt erfolgt automatisch. Die zuletzt gespielten Titel tauchen in der linken Leiste auf, eine Komplettübersicht bekommt man über den Bibliotheks-Reiter.

Aktuell nicht installierte Spiele, die in anderen Stores erworben wurden, können über die Xbox-App nicht verwaltet werden. Die Integration installierter Spiele beschränkt sich vorrangig auf das Starten der Titel – für alles andere muss man in die App der jeweiligen Plattform wechseln.

Standardmäßig indiziert die Xbox-App Spiele aus allen unterstützten Apps. Wer einzelne Apps abschalten oder das Feature komplett deaktivieren möchte, muss aktiv werden: Über den Klick auf den Benutzernamen und „Einstellungen“ kann man zu „Bibliothek und Erweiterungen“ navigieren. Dort kann man die Einbindung für jede einzelne Plattform aktivieren oder deaktivieren.

Das Feature wurde vorrangig für den Xbox Ally entwickelt: Nutzer des kommenden Handhelds von Asus und Microsoft bekommen eine neue, um die Xbox-App aufgebaute Oberfläche, die viele fürs Gaming weniger wichtige Funktionen in den Hintergrund rückt. Damit Handheld-User nicht ständig zwischen verschiedenen Apps hin- und herwechseln müssen, hat Microsoft an einer Einbindung der Spiele aus anderen Stores gearbeitet. Davon profitieren nun auch alle anderen PC-Systeme.


(dahe)



Source link

Weiterlesen

Beliebt