Shogun (Toolbox)
Shogun ist eine Open-Source-Toolbox aus dem Bereich des maschinellen Lernens. Mit ihr lassen sich Regressions- und Klassifikationsprobleme lösen sowie unter anderem Hidden Markov Models lernen.
Anwendungsschwerpunkt
[Bearbeiten | Quelltext bearbeiten]Der Fokus dieser Toolbox liegt auf den sogenannten Kernel-Methoden mit dem Anwendungsschwerpunkt Bioinformatik. Dazu wurde eine Reihe von Kernen auf Sequenzen (sogenannte String-Kerne) implementiert und besonders auf Geschwindigkeit zur Anwendung auf großen Datenmengen getrimmt. So lassen sich mit der Toolbox Probleme mit String-Kernen auf sehr großen Datenmengen lösen (bis zu 10 Millionen).
Insbesondere bietet Shogun generische Schnittstellen zu vielen verschiedenen Implementierungen von Support Vector Machines (SVMs), wie z. B. SVMlight und libSVM. Dies ermöglicht es allen SVMs, dieselben Kern-Implementierungen zu verwenden, und erleichtert das Hinzufügen neuer kernbasierter Lernmethoden. Neben Standard-Kernen (linearer, polynomieller, Gauss- und Sigmoid-Kern) sind in Shogun effiziente Implementierungen für kürzlich publizierte String-Kerne vorhanden, wie z. B. der Locality Improved, Fischer, TOP, Spektrum, Weighted Degree Kernel (with shifts). Für die letzteren wurden die effizienten LINADD-Optimierungen implementiert.
Besonderheiten
[Bearbeiten | Quelltext bearbeiten]Shogun ermöglicht es außerdem, mit eigenen vorberechneten Kernen zu arbeiten. Eines der Hauptmerkmale dieser Toolbox ist der sogenannte kombinierbare Kern (engl. combined Kernel), welcher sich aus einer gewichteten Linearkombination von Unter-Kernen zusammensetzt: . Dabei müssen die Unter-Kerne nicht notwendigerweise auf demselben Eingaberaum arbeiten, sondern auf verschiedenen Domänen. Shogun kann eine optimale Unter-Kern-Gewichtung, d. h. , durch den Multiple Kernel Learning Algorithmus lernen. Neben den SVM 2-Klassen Klassifikations und Regressionsproblemen ist in Shogun auch eine Reihe von linearen Methoden implementiert. Beispiele hierfür sind die Diskriminanzanalyse (engl. Linear Discriminant Analysis (LDA)), Linear Programming Machine (LPM), (Kernel) Perceptronen und Hidden Markov Modelle. Shogun kann ein reiches Spektrum an Daten verarbeiten. Nicht nur sind voll besetzte Eingabe-Matrizen, sondern auch dünn besetzte, sowie Strings, die jeweils vom Typ Integer/Gleitkomma (einfache oder doppelte Genauigkeit) sein können, möglich. Weiterhin können Ketten von Präprozessoren an die Eingaben angehängt werden, so dass die Eingaben on-the-fly von den Lernalgorithmen weiterverarbeit werden können.
Schnittstellen
[Bearbeiten | Quelltext bearbeiten]Shogun ist in C++ implementiert und bietet Schnittstellen zu Matlab, R, Octave und Python. Diese Schnittstellen erlauben interaktives Experimentieren mit den Lernalgorithmen (siehe Abbildung 1 für die Python-Schnittstelle), aber auch Batch-Skript-Verarbeitung auf Rechenclustern.
Literatur
[Bearbeiten | Quelltext bearbeiten]- Corinna Cortes, Wladimir Wapnik: Support-vector networks. In: Machine Learning, Bd. 20 (1995), Nr. 3, Seiten 273–297, ISSN 0885-6125.
- Sören Sonnenburg, Gunnar Rätsch, Christin Schäfer und Bernhard Schölkopf: Large Scale Multiple Kernel Learning. In: Journal of Machine Learning Research, Bd. 7 (2006), Heft 7, Seiten 1531–1565, ISSN 1532-4435.
- Thorsten Joachims: Making large-scale SVM learning practical. In: Bernhard Schölkopf, Christopher J. Burges, Alex J. Smola (Hrsg.): Advances in Kernel Methods. Support Vector Learning. MIT Press, Cambridge, MA 1999, Seiten 169–184, ISBN 0-262-19416-3.
- Chih-Chung Chang, Chih-Jen Lin: LIBSVM. A library for support vector machines. 2001.