Der Inception Score (IS) ist ein Algorithmus zur Bewertung der Qualität von Bildern, die von einem generativen Bildmodell wie einem generativen adversarialen Netzwerk (GAN) erzeugt wurden. Er wurde 2016 von Tim Salimans und Kollegen in einem Artikel über verbesserte Techniken zum Training von GANs eingeführt. Der Score wird auf Grundlage der Ausgabe eines separaten, vortrainierten Inception-v3-Bildklassifikationsmodells berechnet, das auf eine Stichprobe von (typischerweise etwa 30.000) vom generativen Modell erzeugten Bildern angewendet wird. Der Inception Score wird maximiert, wenn die folgenden Bedingungen erfüllt sind: Die Entropie der Verteilung der vom Inception-v3-Modell für die erzeugten Bilder vorhergesagten Labels wird minimiert (das Klassifikationsmodell sagt für jedes Bild zuversichtlich ein einzelnes Label voraus, was Bildern entspricht, die 'scharf' oder 'deutlich' sind), und die Vorhersagen des Klassifikationsmodells sind gleichmäßig über alle möglichen Labels verteilt (was einer 'vielfältigen' Ausgabe entspricht). Er wurde teilweise durch die verwandte Fréchet-Inception-Distanz (FID) abgelöst. Während der Inception Score nur die Verteilung der erzeugten Bilder bewertet, vergleicht die FID die Verteilung der erzeugten Bilder mit der Verteilung einer Menge realer Bilder ('Ground Truth').
Der Inception Score ist eine weit verbreitete Metrik im Bereich der generativen KI, insbesondere zur Bewertung der Leistung von GANs und anderen generativen Modellen. Er liefert einen einzelnen Skalarwert, der sowohl die Qualität als auch die Vielfalt der erzeugten Bilder erfassen soll, was ihn praktisch für den Vergleich verschiedener Modelle oder Trainingsläufe macht. Er hat jedoch bekannte Einschränkungen, darunter die Empfindlichkeit gegenüber der Wahl des vortrainierten Klassifikators und das Fehlen eines Vergleichs mit realen Bildern, was die FID adressiert.
Definition
Es seien zwei Räume gegeben, der Bildraum \(\Omega_X\) und der Labelraum \(\Omega_Y\). Der Labelraum ist endlich. Sei \(p_{gen}\) eine Wahrscheinlichkeitsverteilung über \(\Omega_X\), die wir beurteilen möchten. Sei ein Diskriminator eine Funktion vom Typ \(p_{dis}:\Omega_X \to M(\Omega_Y)\), wobei \(M(\Omega_Y)\) die Menge aller Wahrscheinlichkeitsverteilungen auf \(\Omega_Y\) ist. Für jedes Bild \(x\) und jedes Label \(y\) sei \(p_{dis}(y|x)\) die Wahrscheinlichkeit, dass Bild \(x\) das Label \(y\) hat, gemäß dem Diskriminator. Er wird üblicherweise als ein auf ImageNet trainiertes Inception-v3-Netzwerk implementiert.
Der Inception Score von \(p_{gen}\) relativ zu \(p_{dis}\) ist definiert als:
\[ IS(p_{gen},p_{dis}) := \exp\left(\mathbb{E}_{x\sim p_{gen}}\left[D_{KL}\left(p_{dis}(\cdot|x)\|\int p_{dis}(\cdot|x)p_{gen}(x)dx\right)\right]\right) \]
Äquivalente Umformungen umfassen:
\[ \ln IS(p_{gen},p_{dis}) := \mathbb{E}_{x\sim p_{gen}}\left[D_{KL}\left(p_{dis}(\cdot|x)\|\mathbb{E}_{x\sim p_{gen}}[p_{dis}(\cdot|x)]\right)\right] \]
In der Praxis wird die Erwartung über \(p_{gen}\) durch das Ziehen einer endlichen Stichprobe erzeugter Bilder approximiert, und die Randverteilung der Labels wird aus dieser Stichprobe geschätzt.
Intuition und Interpretation
Der Inception Score ist darauf ausgelegt, zwei Eigenschaften erzeugter Bilder zu belohnen: Klarheit und Vielfalt. Klarheit wird durch die Zuversicht des Klassifikators gemessen: Wenn der Klassifikator für jedes Bild eine hohe Wahrscheinlichkeit für ein einzelnes Label zuweist, hat die bedingte Labelverteilung \(p_{dis}(\cdot|x)\) eine geringe Entropie, was die KL-Divergenz erhöht. Vielfalt wird durch die Gleichmäßigkeit der Randverteilung der Labels gemessen: Wenn die erzeugten Bilder viele Klassen abdecken, ist die Randverteilung nahezu gleichmäßig, was ebenfalls die KL-Divergenz erhöht. Die Exponentialfunktion wird angewendet, um den Score leichter interpretierbar zu machen, wobei ein höherer Wert eine bessere Qualität anzeigt.
Der Score ist nach dem Inception-v3-Modell benannt, einem tiefen convolutional neuronalen Netzwerk, das von Google für die Bildklassifikation entwickelt wurde. Das Modell wird als fester Feature-Extraktor verwendet, und seine Vorhersagen dienen als Proxy für die menschliche Wahrnehmung des Bildinhalts.
Verwendung in der Bewertung generativer Modelle
Der Inception Score wurde zu einer Standardmetrik bei der Bewertung von GANs und anderen generativen Modellen, insbesondere im Zeitraum von 2016 bis 2018. Er wurde in vielen einflussreichen Arbeiten verwendet, darunter solche über progressive GANs, StyleGAN und andere Architekturen. Forscher berichteten IS-Werte auf Benchmark-Datensätzen wie CIFAR-10 und ImageNet, um Verbesserungen gegenüber früheren Arbeiten zu demonstrieren.
Der Score wurde jedoch aus mehreren Gründen kritisiert. Erstens vergleicht er erzeugte Bilder nicht mit realen Bildern, sodass ein Modell, das eine vielfältige Menge unrealistischer Bilder erzeugt, dennoch einen hohen Score erzielen könnte. Zweitens ist der Score empfindlich gegenüber dem spezifischen vortrainierten Klassifikator; verschiedene Versionen von Inception v3 oder unterschiedliche Trainingsverfahren können unterschiedliche Scores liefern. Drittens kann der Score von Modellen ausgetrickst werden, die Bilder mit bestimmten Artefakten erzeugen, die der Klassifikator fälschlicherweise für reale Objekte hält.
Beziehung zur Fréchet-Inception-Distanz
Die Fréchet-Inception-Distanz (FID), die 2017 von Martin Heusel und Kollegen eingeführt wurde, wurde entwickelt, um einige der Einschränkungen des Inception Scores zu adressieren. Die FID berechnet die Fréchet-Distanz zwischen den Feature-Verteilungen erzeugter und realer Bilder, wobei die vorletzte Schicht des Inception-v3-Netzwerks als Feature-Extraktor verwendet wird. Im Gegensatz zum IS vergleicht die FID die erzeugte Verteilung mit einer Referenzverteilung realer Bilder und bietet so ein umfassenderes Maß für Qualität und Vielfalt.
In der Praxis hat die FID den IS in vielen Forschungskontexten weitgehend als bevorzugte Metrik ersetzt, da sie besser mit menschlichem Urteil korreliert und weniger anfällig für Manipulationen ist. Dennoch bleibt der IS in Gebrauch, insbesondere in Kontexten, in denen kein Referenzdatensatz verfügbar ist oder wenn eine schnelle, einfache Metrik gewünscht wird.
Einschränkungen und Kritik
Mehrere Studien haben die Einschränkungen des Inception Scores hervorgehoben. Beispielsweise bestraft der Score keinen Modus-Kollaps, ein häufiges Versagensmuster von GANs, bei dem das Modell nur wenige verschiedene Bilder erzeugt. Wenn die erzeugten Bilder scharf, aber nicht vielfältig sind, kann die Randverteilung der Labels dennoch einigermaßen gleichmäßig sein, wenn die kollabierten Modi zufällig viele Klassen abdecken, aber in der Praxis reduziert der Modus-Kollaps oft die Vielfalt und senkt somit den Score. Der Score kann jedoch nicht zwischen einem Modell unterscheiden, das eine gleichmäßige Verteilung aller Klassen erzeugt, und einem, das ein einzelnes Bild pro Klasse mit perfekter Schärfe erzeugt.
Eine weitere Kritik ist, dass der Inception Score nicht invariant gegenüber der Wahl des Klassifikators ist. Verschiedene Klassifikatoren, die auf verschiedenen Datensätzen trainiert wurden, können für dieselbe Menge erzeugter Bilder unterschiedliche Scores liefern. Dies erschwert den Vergleich von Scores über verschiedene Arbeiten hinweg, es sei denn, es wird exakt derselbe Klassifikator verwendet.
Implementierungsdetails
Zur Berechnung des Inception Scores verwendet man typischerweise ein vortrainiertes Inception-v3-Modell, das in Bibliotheken wie TensorFlow oder PyTorch verfügbar ist. Das Modell wird auf eine Stichprobe erzeugter Bilder angewendet, und die Softmax-Ausgaben werden gesammelt. Die bedingten Labelverteilungen werden dann verwendet, um die KL-Divergenz mit der Randverteilung zu berechnen, und der Exponentialwert des Mittelwerts wird genommen. Die Stichprobengröße wird oft auf 30.000 Bilder festgelegt, wie im ursprünglichen Artikel empfohlen, um die Varianz zu reduzieren.
In der Praxis wird der Score in Batches berechnet, um Speicherprobleme zu vermeiden, und die Randverteilung wird aus der gesamten Stichprobe geschätzt. Die Berechnung ist relativ schnell, was sie für die Überwachung des Trainingsfortschritts geeignet macht.
Anwendungen und Erweiterungen
Der Inception Score wurde über GANs hinaus auf andere generative Modelle wie variational autoencoder und Diffusionsmodelle angewendet, obwohl seine Verwendung mit dem Aufstieg der FID zurückgegangen ist. Er wurde auch auf verschiedene Weise erweitert, wie etwa der modifizierte Inception Score (mIS), der in einigen Arbeiten verwendet wird und die Anzahl der Klassen berücksichtigt oder einen anderen Klassifikator verwendet.
Im breiteren Kontext von maschinellem Lernen und Deep Learning stellt der Inception Score einen frühen Versuch dar, die Qualität generativer Modelle zu quantifizieren, was eine offene Herausforderung bleibt. Andere Metriken wie Precision und Recall für generative Modelle wurden vorgeschlagen, um detailliertere Informationen zu liefern.
Historischer Kontext
Der Inception Score wurde in dem Artikel 'Improved Techniques for Training GANs' von Tim Salimans, Ian Goodfellow, Wojciech Zaremba, Vicki Cheung, Alec Radford und Xi Chen eingeführt, der 2016 veröffentlicht wurde. Der Artikel führte auch andere Techniken wie Feature Matching und Minibatch-Diskriminierung ein. Der Score gewann schnell an Popularität aufgrund seiner Einfachheit und des Mangels an alternativen Metriken zu dieser Zeit.
Seitdem hat sich das Feld der generativen Modellierung erheblich weiterentwickelt, mit der Entwicklung anspruchsvollerer Modelle und Bewertungsmethoden. Der Inception Score bleibt ein historischer Meilenstein und wird in vielen Lehrbüchern und Tutorials zu generativen Modellen weiterhin referenziert.