Stellen Sie sich vor, Sie entwickeln eine Anwendung für Lebensmittelempfehlungen, Nutzende geben ihre Lieblingsgerichte ein und die App schlägt ähnliche Mahlzeiten vor. das ihnen gefallen könnte. Sie möchten ein ML-Modell entwickeln die Ähnlichkeiten zwischen Lebensmitteln vorhersagen, Empfehlungen ("Da Sie Pfannkuchen mögen, empfehlen wir Crêpes").
Zum Trainieren Ihres Modells stellen Sie ein Dataset mit 5.000 beliebten Mahlzeiten, darunter Borscht, Hotdog Salat Pizza, und shawarma.
![Abbildung 1: Illustrationen von fünf Lebensmitteln. Im Uhrzeigersinn ab
links oben: Borschtsch, Hotdog, Salat, Pizza, Schawarma.](https://developers.google.cn/static/machine-learning/crash-course/embeddings/images/food_images.png?authuser=8&hl=de)
Sie erstellen ein meal
-Element, das Folgendes enthält:
One-Hot-codiert
Darstellung der einzelnen Mahlzeiten im Dataset.
![Abbildung 2. Oben: Eine Visualisierung der One-Hot-Codierung für Borschtsch.
Der Vektor [1, 0, 0, 0, ..., 0] wird über sechs Feldern angezeigt,
jeweils ausgerichtet von links
mit einer der Vektorzahlen nach rechts. Die Felder, von links nach rechts
die folgenden Bilder enthalten: Borschtsch, Hotdog, Salat, Pizza, [leer],
Schawarma. Mitte: eine Visualisierung der One-Hot-Codierung für Hotdogs.
Der Vektor [0, 1, 0, 0, ..., 0] wird über jeweils sechs Feldern angezeigt.
von links nach rechts an einer der Vektornummern ausgerichtet. Die Boxen haben
dieselben Bilder von links nach rechts wie bei der Borschtsch-Visualisierung
oben. Unten: eine Visualisierung der One-Hot-Codierung für Schawarma. Die
Der Vektor [0, 0, 0, 0, ..., 1] wird über sechs ausgerichteten Feldern angezeigt.
von links nach rechts mit einer der Vektornummern. Die Boxen haben
dieselben Bilder von links nach rechts wie Borschtsch und Hotdog
Visualisierungen.](https://developers.google.cn/static/machine-learning/crash-course/embeddings/images/food_images_one_hot_encodings.png?authuser=8&hl=de)
Fallstricke bei dünnbesetzten Datendarstellungen
Bei der Überprüfung dieser One-Hot-Codierungen stellen Sie zwei Hauptprobleme fest, Darstellung der Daten.
- Anzahl der Gewichte. Große Eingabevektoren bedeuten eine große Anzahl von
weights
für ein neuronales Netzwerk.
Mit M-Einträgen in Ihrer One-Hot-Codierung und N
nach der Eingabe in der ersten Netzwerkschicht befinden, muss das Modell trainieren
MxN-Gewichtungen für diese Ebene. Eine große Anzahl von Gewichtungen verursacht weitere Probleme:
- Anzahl der Datenpunkte. Je mehr Gewichtungen Ihr Modell hat, desto mehr Daten effektiv trainieren.
- Umfang der Berechnung. Je mehr Gewichtungen, desto mehr Rechenaufwand um das Modell zu trainieren und zu nutzen. Es ist leicht, die Möglichkeiten Ihrer Hardware.
- Größe des Arbeitsspeichers. Je mehr Gewichtungen das Modell hat, desto mehr Arbeitsspeicher wird für die Beschleuniger benötigt, die es trainieren und bereitstellen. Ausbauen ist sehr schwierig.
- Schwierigkeiten, den Support On-Device-Machine-Learning (ODML) Wenn Sie Ihr ML-Modell auf lokalen Geräten ausführen möchten, müssen Sie sich darauf konzentrieren, Ihr Modell zu verkleinern, um die Anzahl der Gewichtungen zu verringern.
- Fehlende aussagekräftige Beziehungen zwischen Vektoren. Die Vektorwerte in der One-Hot-Codierungen für Lebensmittel liefern keine aussagekräftigen Informationen Ähnlichkeit von Lebensmitteln. Mathematisch ist Index 1 ("Hotdog") näher an Index 2 ("Salat") als Index 4999 ("Shawarma"), obwohl ein heißer Hund ähnelt Schawarma (beide enthalten Fleisch und Brot) als Salat.
In diesem Modul erfahren Sie, wie Sie Einbettungen mit einer niedrigeren Dimension erstellen. dünnbesetzte Datendarstellungen, die beide Probleme lösen.