Funktionalisering för överföringsinlärning

Azure Databricks har stöd för funktionalisering med djupinlärningsmodeller. Förtränade djupinlärningsmodeller kan användas för att beräkna funktioner som ska användas i andra underordnade modeller. Azure Databricks har stöd för funktionalisering i stor skala och distribuerar beräkningen över ett kluster. Du kan utföra funktionalisering med djupinlärningsbibliotek som ingår i Databricks Runtime ML, inklusive TensorFlow och PyTorch.

Azure Databricks har även stöd för överföringsinlärning, en teknik som är nära relaterad till funktionalisering. Med överföringsinlärning kan du återanvända kunskap från en problemdomän i en relaterad domän. Funktionalisering är en enkel och kraftfull metod för överföringsinlärning: databehandlingsfunktioner med en förtränad djupinlärningsmodell överför kunskaper om bra funktioner från den ursprungliga domänen.

Den här artikeln visar hur du beräknar funktioner för överföringsinlärning med hjälp av en förtränad TensorFlow-modell med hjälp av följande arbetsflöde:

  1. Börja med en förtränad djupinlärningsmodell, i det här fallet en bildklassificeringsmodell från tensorflow.keras.applications.
  2. Trunkera modellens sista lager. Den ändrade modellen genererar en tensor med funktioner som utdata i stället för en förutsägelse.
  3. Tillämpa modellen på en ny bilddatauppsättning från en annan problemdomän, databehandlingsfunktioner för bilderna.
  4. Använd de här funktionerna för att träna en ny modell. Följande notebook-fil utelämnar det här sista steget. Exempel på hur du tränar en enkel modell, till exempel logistisk regression, finns i Databricks Machine Learning guide.

Följande notebook-fil använder pandas-UDF:er för att utföra funktionaliseringssteget. Pandas UDF:er och deras nyare variant Scalar Iterator Pandas UDF:er erbjuder flexibla API:er, stöder alla djupinlärningsbibliotek och ger höga prestanda.

Funktionalisering och överföring av inlärning med TensorFlow

Hämta notebook-fil