L'auto-isolement forcé a incité beaucoup d'entre nous à se souvenir de nos projets familiers ou simplement à trouver un passe-temps pour nous-mêmes. Quelqu'un aime la communication radio, quelqu'un développe des étuis pour Raspberry. Eh bien, quelqu'un est engagé dans la pâtisserie. Mais pas simple, mais avec l'implication de l'apprentissage automatique.
La développeur d'apprentissage automatique Sara Robinson a décidé de préparer le petit gâteau parfait. Mais pas par essais et erreurs - nos grands-mères l'ont fait, mais avec l'aide de la technologie. Tout a commencéde prendre 33 recettes différentes pour les cookies, les tartes et les pains et de construire un modèle TensorFlow pour analyser toutes ces données. Le premier objectif était de comprendre pourquoi les produits de boulangerie s'effritent parfois beaucoup et comment cela peut être évité. Mais à la fin, Sarah a pu obtenir une recette pour le cupcake parfait, qui est en fait un croisement entre un biscuit et une tarte. Et aussi - une recette pour un hybride de pain et de biscuits.
Du jeu de données à la table de cuisine
En décembre 2020, Sarah a recruté son collègue, un employé de Google nommé Dale Markovich, pour le projet. Ensemble, ils ont développé une recette hybride. Le modèle qui en a résulté a permis de déterminer par les ingrédients introduits quel serait le résultat - biscuits, tarte ou pain.
Une fois que tout a fonctionné, les développeurs (c'est un peu étrange d'utiliser ce terme lorsqu'il est appliqué à la cuisson, non?) Ont décidé d'aller plus loin. Le projet a été étendu. Cette fois, 600 recettes ont été sélectionnées pour analyse. Ils ont été soigneusement analysés afin de mettre en évidence les 16 ingrédients les plus importants qui affectent la texture et la fermeté des produits de boulangerie, ainsi que, bien sûr, le goût.
Ces ingrédients se sont avérés être:
- Levure,
- farine,
- du sucre,
- des œufs,
- graisse (toute huile),
- Lait,
- bicarbonate de soude,
- levure chimique,
- Vinaigre de pomme,
- Babeurre,
- banane,
- purée de citrouille,
- avocat,
- l'eau,
- pétrole,
- sel.
Les auteurs du projet, en utilisant le nouveau modèle, ont non seulement compilé une liste d'ingrédients, mais ont également déterminé les proportions correctes qui aident à créer les produits de boulangerie parfaits.
En outre, le modèle a pu déterminer indépendamment le type de produits de boulangerie, en séparant les
Pour chaque type de produits de boulangerie - biscuits, tarte ou pain, le modèle a prédit la quantité et le ratio optimaux de beurre, de sucre, de levure et d'œufs. Et le modèle qui en résulte a permis d'obtenir une recette de plats hybrides. Ci-dessous, une photo d'un hybride gâteau et biscuit utilisant des pépites de chocolat.
Exemple de code, modèle et service en cours d'exécution
Quant au modèle TensorFlow, le code est plutôt court. L' API Keras a été utilisée pour le modèle .
model = tf.keras.Sequential([
tf.keras.layers.Dense(16, input_shape=(num_ingredients,)),
tf.keras.layers.Dense(16, activation='relu'),
tf.keras.layers.Dense(3, activation='softmax')
])
En utilisant Python, les développeurs ont créé une fonction qui convertit d'abord les ingrédients d'entrée en unités de mesure familières aux amateurs de pâtisserie (tasses, cuillères à café, etc.), puis en pourcentages. C'est ce qui se passe à la fin.
def get_prediction(request):
data = request.get_json()
prescaled = dict(zip(columns, data))
scaled = scale_data(prescaled)
# Send scaled inputs to the model
prediction = predict_json('gcp-project-name', 'baking', scaled)
# Get the item with the highest confidence prediction
predicted_ind = np.argmax(prediction)
label_map = ['Bread', 'Cake', 'Cookies']
baked_prediction = label_map[predicted_ind]
confidence = str(round(prediction[predicted_ind] * 100))
if baked_prediction == 'Bread':
emoji = "It's bread!"
elif baked_prediction == 'Cake':
emoji = "It's cake!"
elif baked_prediction == 'Cookies':
emoji = "It's cookies!"
return "{} {}% confidence".format(emoji, confidence)
Eh bien, l'application elle-mĂŞme, ou plutĂ´t un service Web, est disponible ici . Vous pouvez donc l'essayer vous-mĂŞme.
Tests de test
Un hybride de tarte et de cookies
D'autres développeurs se sont intéressés au projet, certains ont décidé de tester les résultats du modèle en pratique. L'une des recettes qui a été testée est la "tarte aux biscuits".
Les ingrédients et la procédure de préparation ont été suivis. Par exemple, un modèle a montré que la température optimale pour l'huile ajoutée est de 18,33 ° C. Bien sûr, personne n'a suivi les dixièmes et centièmes de degré, mais la condition de 18 ° C était remplie.
La seule chose à changer était la taille du plat de cuisson. Un formulaire de 6 pouces était nécessaire, mais il n'y en avait pas, donc un 9 pouces a été utilisé. En général, après la cuisson du "gâteau-biscuit", il a été autorisé à se refroidir un peu et testé. Selon les testeurs, la texture des produits de boulangerie était inhabituelle, mais le goût était excellent. Tous ceux qui ont essayé cette chose l'ont approuvé.
Un hybride de pain et de biscuits
La deuxième recette éprouvée est celle des «produits de boulangerie». J'ai dû le bricoler un peu plus longtemps, mais à la fin, tout a fonctionné. La recette proposée par le modèle est divisée en deux parties - en fait, du pain et des biscuits. La pâte s'est avérée beaucoup plus épaisse que ce qui est habituellement requis pour les biscuits, ressemblant à de la pâte à pain.
Mais à la fin, tout s'est avéré délicieux, la texture ressemblait à des biscuits à l'avoine, bien qu'un peu plus doux. La levure a été utilisée dans la recette, elle ressemble donc un peu à du pain.
Dans l'ensemble, l'expérience s'est avérée fructueuse - l'apprentissage automatique et le modèle prédictif ont aidé à créer des plats inhabituels que tous ceux qui les ont essayés ont aimé.