Inhaltsverzeichnis
Mal sehen, ob wir mit etwas Python-Code das gleiche Ergebnis erzielen können.
EXP – wird zur Generierung des natürlichen Exponenten verwendet;
Heim Backend-Entwicklung Python-Tutorial Lassen Sie uns kurz den Inhalt der Erstellung neuronaler Netzwerkmodelle in Python verstehen

Lassen Sie uns kurz den Inhalt der Erstellung neuronaler Netzwerkmodelle in Python verstehen

Oct 08, 2018 pm 05:18 PM
python random 函数 神经网络

Der Inhalt dieses Artikels soll Ihnen einen kurzen Überblick über die Erstellung eines neuronalen Netzwerkmodells in Python geben. Ich hoffe, dass er für Sie hilfreich ist.

Zusammenfassung: Neugierig, wie neuronale Netze funktionieren? Probieren Sie es aus. Der beste Weg, die Funktionsweise neuronaler Netze zu verstehen, besteht darin, selbst ein einfaches neuronales Netz zu erstellen.

Neuronales Netzwerk (NN), auch bekannt als künstliches neuronales Netzwerk (ANN), ist eine Teilmenge von Lernalgorithmen im Bereich des maschinellen Lernens und lehnt sich lose an das Konzept biologischer neuronaler Netzwerke an. Derzeit werden neuronale Netze häufig in Bereichen wie Computer Vision und Verarbeitung natürlicher Sprache eingesetzt. Andrey Bulezyuk, ein hochrangiger deutscher Experte für maschinelles Lernen, sagte: „Neuronale Netze revolutionieren das maschinelle Lernen, weil sie komplexe Abstraktionen in verschiedenen Disziplinen und Branchen ohne große menschliche Beteiligung effektiv simulieren können.“
Im Allgemeinen umfassen künstliche neuronale Netze das Netzwerk die folgenden Komponenten:

  • Eingabeschicht, die Daten empfängt und überträgt;

  • verborgene Schicht; 🎜>Ausgabeschicht;

  • Das Gewicht zwischen den Schichten;

  • Die von jeder verborgenen Schicht verwendete Aktivierungsfunktion; 🎜>

    In diesem Tutorial wird eine einfache Sigmoid-Aktivierungsfunktion verwendet. Bitte beachten Sie jedoch, dass in tiefen neuronalen Netzwerken in Netzwerkmodellen die Sigmoid-Aktivierungsfunktion im Allgemeinen nicht die erste Wahl ist, da sie anfällig für Gradientendispersion ist.

  • Darüber hinaus gibt es verschiedene Arten von künstlichen neuronalen Netzen, wie zum Beispiel Feedforward-Neuronale Netze, Faltungs-Neuronale Netze und wiederkehrende Neuronale Netze. In diesem Artikel wird als Beispiel ein einfaches Feedforward- oder wahrnehmungsbezogenes neuronales Netzwerk verwendet. Diese Art von künstlichem neuronalem Netzwerk überträgt Daten direkt von vorne nach hinten, was als Vorwärtsausbreitungsprozess bezeichnet wird.
  • Das Training von Feedforward-Neuronen erfordert normalerweise einen Backpropagation-Algorithmus, der die Bereitstellung entsprechender Eingabe- und Ausgabesätze für das Netzwerk erfordert. Wenn Eingabedaten an ein Neuron übertragen werden, werden diese entsprechend verarbeitet und die resultierende Ausgabe wird an die nächste Schicht übertragen.

    Die folgende Abbildung zeigt einfach die Struktur eines neuronalen Netzwerks:

Außerdem lässt sich die Funktionsweise eines neuronalen Netzwerks am besten verstehen, indem man lernt, wie es funktioniert um eines von Grund auf mit einer beliebigen Toolbox zu erstellen. In diesem Artikel zeigen wir, wie man mit Python ein einfaches neuronales Netzwerk erstellt.

Problem

Die folgende Tabelle zeigt das Problem, das wir lösen werden: Lassen Sie uns kurz den Inhalt der Erstellung neuronaler Netzwerkmodelle in Python verstehenWir werden das neuronale Netzwerk trainieren, damit es den korrekten Ausgabewert vorhersagen kann, wenn ein neuer Satz von gegeben wird Daten.

Wie Sie der Tabelle entnehmen können, ist der Ausgabewert immer gleich dem ersten Wert im Eingabeabschnitt. Daher können wir davon ausgehen, dass der Ausgabewert (?) der neuen Situation 1 ist.

Mal sehen, ob wir mit etwas Python-Code das gleiche Ergebnis erzielen können.

Neurale Netzwerkklasse erstellen|NeuralNetwork-Klasse

Wir werden eine NeuralNetwork-Klasse in Python erstellen, um Neuronen zu trainieren, um genaue Vorhersagen zu liefern. Wir werden die neuronale Netzwerkbibliothek nicht verwenden, um dieses einfache Beispiel für ein neuronales Netzwerk zu erstellen, sondern die grundlegende Numpy-Bibliothek importieren, um die Berechnung zu unterstützen.

Die Numpy-Bibliothek ist eine Basisbibliothek für die Datenverarbeitung. Sie verfügt über die folgenden vier wichtigen Berechnungsmethoden:

EXP – wird zur Generierung des natürlichen Exponenten verwendet;

Array – wird zum Generieren von Matrizen verwendet;

  • Punkt – wird für die Matrixmultiplikation verwendet;

    zufällig – wird verwendet um Zufallszahlen zu generieren;

  • Anwenden der Sigmoid-Funktion

  • Wir verwenden die Sigmoid-Funktion, die eine „S“-förmige Kurve zeichnet. Sie dient als Aktivierungsfunktion von das in diesem Artikel erstellte neuronale Netzwerk.
  • Diese Funktion kann jeden Wert zwischen 0 und 1 abbilden und hilft uns, die gewichtete Summe der Eingabe zu normalisieren.
Danach erstellen wir die Ableitung der Sigmoidfunktion, um bei der Berechnung grundlegender Anpassungen der Gewichte zu helfen.

Die Ausgabe der Sigmoid-Funktion kann zur Generierung ihrer Ableitung verwendet werden. Wenn die Ausgabevariable beispielsweise „x“ ist, dann ist ihre Ableitung x *(1-x).

Training des Modells

Training des Modells bedeutet die Phase, in der wir dem neuronalen Netzwerk beibringen, genaue Vorhersagen zu treffen. Jede Eingabe hat eine Gewichtung – positiv oder negativ, was bedeutet, dass Eingaben mit großer positiver oder großer negativer Gewichtung einen größeren Einfluss auf die resultierende Ausgabe haben. Lassen Sie uns kurz den Inhalt der Erstellung neuronaler Netzwerkmodelle in Python verstehenBeachten Sie, dass beim ersten Training des Modells jedes Gewicht mit einer Zufallszahl initialisiert wird.

Das Folgende ist der Trainingsprozess im Beispielproblem des neuronalen Netzwerks, das in diesem Artikel konstruiert wurde:

1 Holen Sie sich die Eingaben aus dem Trainingsdatensatz und nehmen Sie einige Anpassungen entsprechend ihrer Gewichtung vor , und berechnen Sie das neuronale Netzwerk durch Die Ausgabemethode wird verwendet, um Schicht für Schicht zu übertragen
  • 2. Berechnen Sie die Fehlerrate der Backpropagation. In diesem Fall handelt es sich um den Fehler zwischen der vorhergesagten Ausgabe des Neurons und der erwarteten Ausgabe des Trainingsdatensatzes.

  • 3. Verwenden Sie den Fehler gewichtet Ableitung Die Formel nimmt einige kleine Gewichtsanpassungen vor.

  • 4. Wiederholen Sie diesen Vorgang 15.000 Mal, und bei jeder Iteration wird der gesamte Trainingssatz gleichzeitig verarbeitet >

    Hier verwenden wir die Funktion „.T“, um die Matrix zu beeinflussen. Daher werden die Zahlen folgendermaßen gespeichert:
  • Lassen Sie uns kurz den Inhalt der Erstellung neuronaler Netzwerkmodelle in Python verstehen Schließlich werden die Gewichte der Neuronen für die bereitgestellten Trainingsdaten optimiert. Wenn die Ausgabe des neuronalen Netzwerks mit der erwarteten Ausgabe übereinstimmt, bedeutet dies, dass das Training abgeschlossen ist und genaue Vorhersagen getroffen werden können. Dies ist die Methode der Backpropagation.

    Kapselung

    Nach der Initialisierung der NeuralNetwork-Klasse und dem Ausführen des gesamten Programms finden Sie hier schließlich den vollständigen Code zum Erstellen eines neuronalen Netzwerks in einem Python-Projekt:

    import numpy as np
    
    class NeuralNetwork():
        
        def __init__(self):
            # 设置随机数种子
            np.random.seed(1)
            
            # 将权重转化为一个3x1的矩阵,其值分布为-1~1,并且均值为0
            self.synaptic_weights = 2 * np.random.random((3, 1)) - 1
    
        def sigmoid(self, x):
            # 应用sigmoid激活函数
            return 1 / (1 + np.exp(-x))
    
        def sigmoid_derivative(self, x):
            #计算Sigmoid函数的偏导数
            return x * (1 - x)
    
        def train(self, training_inputs, training_outputs, training_iterations):
            
            # 训练模型
            for iteration in range(training_iterations):
                # 得到输出
                output = self.think(training_inputs)
    
                # 计算误差
                error = training_outputs - output
                
                # 微调权重
                adjustments = np.dot(training_inputs.T, error * self.sigmoid_derivative(output))
    
                self.synaptic_weights += adjustments
    
        def think(self, inputs):
            # 输入通过网络得到输出   
            # 转化为浮点型数据类型
            
            inputs = inputs.astype(float)
            output = self.sigmoid(np.dot(inputs, self.synaptic_weights))
            return output
    
    
    if __name__ == "__main__":
    
        # 初始化神经类
        neural_network = NeuralNetwork()
    
        print("Beginning Randomly Generated Weights: ")
        print(neural_network.synaptic_weights)
    
        #训练数据
        training_inputs = np.array([[0,0,1],
                                    [1,1,1],
                                    [1,0,1],
                                    [0,1,1]])
    
        training_outputs = np.array([[0,1,1,0]]).T
    
        # 开始训练
        neural_network.train(training_inputs, training_outputs, 15000)
    
        print("Ending Weights After Training: ")
        print(neural_network.synaptic_weights)
    
        user_input_one = str(input("User Input One: "))
        user_input_two = str(input("User Input Two: "))
        user_input_three = str(input("User Input Three: "))
        
        print("Considering New Situation: ", user_input_one, user_input_two, user_input_three)
        print("New Output data: ")
        print(neural_network.think(np.array([user_input_one, user_input_two, user_input_three])))
        print("Wow, we did it!")
    Nach dem Login kopieren

    Nach dem Ausführen des Codes wird Folgendes ausgegeben:

    Oben ist ein einfaches neuronales Netzwerk, das wir erstellen konnten. Zuerst beginnt das neuronale Netzwerk, sich selbst einige zufällige Gewichte zuzuweisen, danach trainiert es sich anhand von Trainingsbeispielen. Lassen Sie uns kurz den Inhalt der Erstellung neuronaler Netzwerkmodelle in Python verstehen

    Wenn also eine neue Beispieleingabe [1,0,0] auftritt, beträgt ihr Ausgabewert 0,9999584. Die erwartete richtige Antwort ist 1. Man kann sagen, dass die beiden sehr nahe beieinander liegen. Wenn man bedenkt, dass die Sigmoid-Funktion eine nichtlineare Funktion ist, ist dieser Fehler akzeptabel.

    Darüber hinaus verwendet dieser Artikel nur eine Schicht eines neuronalen Netzwerks, um einfache Aufgaben auszuführen. Was würde passieren, wenn wir Tausende dieser künstlichen neuronalen Netze zusammenfügen würden? Können wir das menschliche Denken zu 100 % nachahmen? Die Antwort lautet ja, aber die Umsetzung ist derzeit schwierig. Man kann nur sagen, dass es sehr ähnlich ist. Interessierte Leser können Materialien zum Thema Deep Learning lesen.

    Das obige ist der detaillierte Inhalt vonLassen Sie uns kurz den Inhalt der Erstellung neuronaler Netzwerkmodelle in Python verstehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

    Heiße KI -Werkzeuge

    Undresser.AI Undress

    Undresser.AI Undress

    KI-gestützte App zum Erstellen realistischer Aktfotos

    AI Clothes Remover

    AI Clothes Remover

    Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

    Undress AI Tool

    Undress AI Tool

    Ausziehbilder kostenlos

    Clothoff.io

    Clothoff.io

    KI-Kleiderentferner

    AI Hentai Generator

    AI Hentai Generator

    Erstellen Sie kostenlos Ai Hentai.

    Heißer Artikel

    R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
    2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Beste grafische Einstellungen
    2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
    2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

    Heiße Werkzeuge

    Notepad++7.3.1

    Notepad++7.3.1

    Einfach zu bedienender und kostenloser Code-Editor

    SublimeText3 chinesische Version

    SublimeText3 chinesische Version

    Chinesische Version, sehr einfach zu bedienen

    Senden Sie Studio 13.0.1

    Senden Sie Studio 13.0.1

    Leistungsstarke integrierte PHP-Entwicklungsumgebung

    Dreamweaver CS6

    Dreamweaver CS6

    Visuelle Webentwicklungstools

    SublimeText3 Mac-Version

    SublimeText3 Mac-Version

    Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

    Ist die Konversionsgeschwindigkeit beim Umwandeln von XML in PDF auf Mobiltelefon schnell? Ist die Konversionsgeschwindigkeit beim Umwandeln von XML in PDF auf Mobiltelefon schnell? Apr 02, 2025 pm 10:09 PM

    Die Geschwindigkeit der mobilen XML zu PDF hängt von den folgenden Faktoren ab: der Komplexität der XML -Struktur. Konvertierungsmethode für mobile Hardware-Konfiguration (Bibliothek, Algorithmus) -Codierungsoptimierungsmethoden (effiziente Bibliotheken, Optimierung von Algorithmen, Cache-Daten und Nutzung von Multi-Threading). Insgesamt gibt es keine absolute Antwort und es muss gemäß der spezifischen Situation optimiert werden.

    Wie konvertiere ich XML -Dateien in PDF auf Ihrem Telefon? Wie konvertiere ich XML -Dateien in PDF auf Ihrem Telefon? Apr 02, 2025 pm 10:12 PM

    Mit einer einzigen Anwendung ist es unmöglich, XML -zu -PDF -Konvertierung direkt auf Ihrem Telefon zu vervollständigen. Es ist erforderlich, Cloud -Dienste zu verwenden, die in zwei Schritten erreicht werden können: 1. XML in PDF in der Cloud, 2. Zugriff auf die konvertierte PDF -Datei auf dem Mobiltelefon konvertieren oder herunterladen.

    Was ist die Funktion der C -Sprachsumme? Was ist die Funktion der C -Sprachsumme? Apr 03, 2025 pm 02:21 PM

    Es gibt keine integrierte Summenfunktion in der C-Sprache, daher muss sie selbst geschrieben werden. Die Summe kann erreicht werden, indem das Array durchquert und Elemente akkumulieren: Schleifenversion: Die Summe wird für die Schleifen- und Arraylänge berechnet. Zeigerversion: Verwenden Sie Zeiger, um auf Array-Elemente zu verweisen, und eine effiziente Summierung wird durch Selbststillstandszeiger erzielt. Dynamisch Array -Array -Version zuweisen: Zuordnen Sie Arrays dynamisch und verwalten Sie selbst den Speicher selbst, um sicherzustellen, dass der zugewiesene Speicher befreit wird, um Speicherlecks zu verhindern.

    Gibt es eine mobile App, die XML in PDF umwandeln kann? Gibt es eine mobile App, die XML in PDF umwandeln kann? Apr 02, 2025 pm 09:45 PM

    Es gibt keine App, die alle XML -Dateien in PDFs umwandeln kann, da die XML -Struktur flexibel und vielfältig ist. Der Kern von XML zu PDF besteht darin, die Datenstruktur in ein Seitenlayout umzuwandeln, für das XML analysiert und PDF generiert werden muss. Zu den allgemeinen Methoden gehören das Parsen von XML mithilfe von Python -Bibliotheken wie ElementTree und das Generieren von PDFs unter Verwendung der ReportLab -Bibliothek. Für komplexe XML kann es erforderlich sein, XSLT -Transformationsstrukturen zu verwenden. Wenn Sie die Leistung optimieren, sollten Sie Multithread- oder Multiprozesse verwenden und die entsprechende Bibliothek auswählen.

    So konvertieren Sie XML in Bilder So konvertieren Sie XML in Bilder Apr 03, 2025 am 07:39 AM

    XML kann mithilfe eines XSLT -Konverters oder einer Bildbibliothek in Bilder konvertiert werden. XSLT -Konverter: Verwenden Sie einen XSLT -Prozessor und Stylesheet, um XML in Bilder zu konvertieren. Bildbibliothek: Verwenden Sie Bibliotheken wie Pil oder Imagemagick, um Bilder aus XML -Daten zu erstellen, z. B. Zeichnen von Formen und Text.

    Empfohlenes XML -Formatierungswerkzeug Empfohlenes XML -Formatierungswerkzeug Apr 02, 2025 pm 09:03 PM

    XML -Formatierungs -Tools können Code nach Regeln eingeben, um die Lesbarkeit und das Verständnis zu verbessern. Achten Sie bei der Auswahl eines Tools auf die Anpassungsfunktionen, den Umgang mit besonderen Umständen, die Leistung und die Benutzerfreundlichkeit. Zu den häufig verwendeten Werkzeugtypen gehören Online-Tools, IDE-Plug-Ins und Befehlszeilen-Tools.

    Wie konvertieren Sie XML mit hoher Qualität auf Ihr Telefon in PDF? Wie konvertieren Sie XML mit hoher Qualität auf Ihr Telefon in PDF? Apr 02, 2025 pm 09:48 PM

    Konvertieren Sie XML in PDF mit hoher Qualität auf Ihrem Mobiltelefon müssen: XML in der Cloud analysieren und PDFs mithilfe einer serverlosen Computerplattform generieren. Wählen Sie eine effiziente Bibliothek für XML -Parser- und PDF -Generation. Fehler korrekt behandeln. Nutzen Sie die Cloud -Computing -Leistung voll, um schwere Aufgaben auf Ihrem Telefon zu vermeiden. Passen Sie die Komplexität gemäß den Anforderungen an, einschließlich der Verarbeitung komplexer XML-Strukturen, der Erzeugung von mehrseitigen PDFs und dem Hinzufügen von Bildern. Drucken Sie Protokollinformationen zum Debuggen. Optimieren Sie die Leistung, wählen Sie effiziente Parser- und PDF -Bibliotheken aus und können asynchrone Programmier- oder Vorverarbeitungs -XML -Daten verwenden. Gewährleisten Sie eine gute Codequalität und -wartbarkeit.

    Gibt es eine mobile App, die XML in PDF umwandeln kann? Gibt es eine mobile App, die XML in PDF umwandeln kann? Apr 02, 2025 pm 08:54 PM

    Eine Anwendung, die XML direkt in PDF konvertiert, kann nicht gefunden werden, da es sich um zwei grundlegend unterschiedliche Formate handelt. XML wird zum Speichern von Daten verwendet, während PDF zur Anzeige von Dokumenten verwendet wird. Um die Transformation abzuschließen, können Sie Programmiersprachen und Bibliotheken wie Python und ReportLab verwenden, um XML -Daten zu analysieren und PDF -Dokumente zu generieren.

    See all articles