Software 2.0: Was ist das und warum ist es wichtig?
Kredit: Artibeus
Sie haben klassische Software 1.0-Codierungsstrukturen gesehen: Lernen Sie Software 2.0 kennen, in der Code durch eine Optimierung in Form von neuronalem Netzwerktraining geschrieben werden kann.
Software hat nicht nur die Computerwelt revolutioniert, sie hat die menschliche Kultur für immer verändert.
In etwas weniger als einem Jahrhundert haben wir uns von Konstrukteuren, Tieren, die unsere Werkzeuge manuell bauten, zur einzigen Spezies auf der Erde entwickelt, die Aufgaben programmiert; Kriege mit Bajonetten führen, bis hin zu Präsidenten, die die Codes für Atomraketen erhalten. Wir haben uns nicht mehr allgemein in kleinen Gemeinschaften niedergelassen und uns selbst behalten, sondern uns etwas mehr als zuvor verzweigt, sind in Ecken der Welt gezogen und haben über digitale Mittel Kontakt gehalten. Wir sind von Büchern und geschriebenem Wissen zu einer effektiven Demokratisierung des Lernens übergegangen und haben es Autodidakten ermöglicht, sich über Wikipedia und YouTube etwas über die Welt beizubringen.
Die Wörter, die Sie lesen, sind aufgrund von Software möglich. Das Gerät, auf dem Sie sie lesen, auch. Was wäre also, wenn wir Software aktualisieren könnten? Was, wenn eine Schockwelle durch das Gewebe der digitalen Welt reißt? Wie könnte das nächste Zeitalter der Menschheit aussehen? Geben Sie Software 2.0 ein, die Idee, dass Software sich selbst schreiben könnte.
Dies ist ein vertrautes Konzept für diejenigen, die sich für maschinelles Lernen interessieren. Diese neue Softwaremarke kann in komplexeren Sprachen als Software 1.0 geschrieben werden; Es ist nicht erforderlich, dass ein Mensch genau versteht, was verarbeitet wird. Software 2.0 wird von einem neuronalen Netz geschrieben: Anstatt alles, was Sie als Endergebnis produzieren möchten, in die Sprache zu programmieren, kann Software 2.0 eher als eine Einkaufsliste von Dingen angesehen werden, die der Computer selbst erledigen soll.
Ähnlich programmieren Sprachen wie Tensorflow und Keras. Indem Sie die Architektur des neuronalen Netzes statistisch definieren, können Sie Ihre Daten dann trainieren, um ein Endergebnis zu erzielen.
Wie funktionieren neuronale Netze?
Neuronale Netze sind Sätze von Algorithmen, die auf biologischen Gehirnen basieren. Sie interpretieren Daten durch Erkennen, Kennzeichnen und Gruppieren und zielen darauf ab, unsere Denkweise zu replizieren, um ein intuitiveres, realistischeres Ergebnis zu erzielen als etwas, das mit Code verbunden werden muss
Nehmen Sie zum Beispiel einen Spamfilter. Wenn Sie eine Sammlung von E-Mails als Daten verwenden, könnte ein Algorithmus Spam von echten E-Mails erkennen, vielleicht von den Adressen. Wenn der Algorithmus mehr E-Mails analysiert, stellt er möglicherweise fest, dass die in Spam verwendete Sprache von Nicht-Spam abweicht. Ein neuronales Netzwerk beginnt, die subtileren Aspekte von Spam zu lernen und herauszufiltern.
Dies unterscheidet sich radikal von der Funktionsweise des Codierens: Codieren lernt nicht. Sie können in ein E-Mail-Programm codieren, um verdächtig aussehende E-Mail-Adressen in einem Ordner abzulegen, aber es erkennt nicht, warum.
Anstatt dass die Ausgabe eine Summe der Eingabedaten ist, werden versteckte Schichten zwischen den Ins und Outs der Formel eingefügt. Mit mehreren Schichten zwischen den Eingabe- und Ausgabedaten, die alle rechnen, muss es eine sogenannte „Vorwärtsausbreitung“ geben, um die Ausgabe zu empfangen und mit den Daten zu vergleichen.
Neuronale Netze mögen komplex klingen, aber in Wirklichkeit könnten sie Software 2.0 vereinfachen. Der Befehlssatz eines neuronalen Netzes ist klein und es ist einfach, ein neuronales Netz auf einem kostengünstigen Chip zu platzieren. Und wenn verschiedene Software 2.0-Module interagieren könnten, könnte es beispielsweise einem Webbrowser möglich sein, verschiedene Systeme für eine bessere Effizienz automatisch zu übersetzen.
Wird sich Software 2.0 durchsetzen?
Menschen sind komplex und neigen dazu, in zwei entgegengesetzten Richtungen festzustecken. Gleichzeitig stecken wir in unseren Wegen fest, haben fast Angst vor Veränderungen, sind aber dennoch begeistert von Innovationen und der Möglichkeit, dass sich die Welt um uns herum entwickelt. Sind wir zu festgefahren in unseren bestehenden Wegen für Software 2.0 oder ist dies ein Upgrade, das wir nicht ignorieren können?
Software 2.0 bietet eine Reihe von Vorteilen, die von Entwicklern nicht ignoriert werden können. Von seiner Portabilität bis hin zu seinem Potenzial, mit geringem Stromverbrauch zu arbeiten, könnte diese neue Arbeitsweise in vielerlei Hinsicht viel effizienter sein als Software 1.0. Andererseits wissen wir immer noch nicht zu 100 %, was es über neuronale Netze zu wissen gibt – Das Gehirn ist bekanntlich kompliziert, schließlich – und wenn Fehler und Misserfolge natürlich auftauchen, kann es schwierig sein, sie zu finden und auszumerzen.
Der vielleicht größte Vorteil ist jedoch einfach, dass die Version 2.0 der Software den Alltag viel einfacher machen würde, vorausgesetzt natürlich, dass alles nach Plan läuft. Wenn ein Algorithmus schwierig zu erstellen ist, ist es sinnvoll, ihn in Software 2.0 zu erstellen: Es ist eine intuitivere Art zu programmieren.
Es ist noch unklar, ob Software 2.0 den Planeten verändern oder der Entwicklung nur eine weitere Dimension hinzufügen wird. Sicher ist jedoch, dass diese neue Art, Code zu schreiben, bestehende Strukturen in Frage stellen wird.