Основні поняття
Differenzierbares Programmieren ist ein Programmierparadigma, bei dem komplexe Computerprogramme (einschließlich solcher mit Kontrollflüssen und Datenstrukturen) vollständig differenzierbar sind, was die gradientenbasierte Optimierung von Parametern in Programmen ermöglicht.
Анотація
Dieser Artikel gibt eine umfassende Einführung in die Grundlagen des differenzierbaren Programmierens. Er behandelt folgende Themen:
Teil I: Grundlagen
Differentiation: Ableitung von Funktionen, Gradienten, Jacobi-Matrizen, höhere Ableitungen
Probabilistische Lernverfahren: Wahrscheinlichkeitsverteilungen, Maximum-Likelihood-Schätzung, überwachtes Lernen
Teil II: Differenzierbare Programme
Parametrisierte Programme: Feedforward-Netzwerke, rekurrente Netzwerke, Aktivierungsfunktionen
Kontrollstrukturen: Vergleichsoperatoren, logische Operatoren, bedingte Anweisungen, Schleifen
Teil III: Differenzieren von Programmen
Finite Differenzen
Automatische Differentiation: Vorwärts- und Rückwärtsmodus
Differenzieren durch Optimierung und Integration
Teil IV: Glätten von Programmen
Glättung durch Optimierung: Infimale Faltung, Legendre-Fenchel-Transformation
Glättung durch Integration: Faltung, Fourier- und Laplace-Transformation
Teil V: Optimieren von Programmen
Grundlagen der Optimierung: Lipschitz-Stetigkeit, Konvexität, Performanzgarantien
Optimierungsalgorithmen: Gradientenabstieg, Newton-Verfahren, quasi-Newton-Verfahren
Dualität
Статистика
"Differenzierbares Programmieren ist ein Programmierparadigma, bei dem komplexe Computerprogramme (einschließlich solcher mit Kontrollflüssen und Datenstrukturen) vollständig differenzierbar sind."
"Automatische Differentiation ermöglicht die effiziente Berechnung von Ableitungen komplexer Funktionen."
"Glättung von Programmen durch Optimierung und Integration ermöglicht die Handhabung nicht-differenzierbarer Operationen in differenzierbaren Programmen."
Цитати
"Differenzierbares Programmieren ist nicht nur tiefes Lernen, sondern eine allgemeine Technik, die über tiefes Lernen hinausgeht und in vielen Bereichen der Wissenschaftlichen Berechnung nützlich ist."
"Differentiation ist nützlich für Optimierung, und umgekehrt kann Optimierung verwendet werden, um differenzierbare Operatoren zu entwerfen."