Como o aprendizado de máquina e o TensorFlow estão ajudando a preparar assados ​​híbridos: um caso de passatempo de um desenvolvedor do Google



O auto-isolamento forçado tem estimulado muitos de nós a lembrar de nossos projetos favoritos ou apenas encontrar um hobby para nós mesmos. Alguém gosta de comunicação por rádio, alguém desenvolve caixas para o Raspberry. Bem, alguém está empenhado em cozinhar. Mas não é simples, mas com o envolvimento do aprendizado de máquina.



A desenvolvedora de aprendizado de máquina Sara Robinson decidiu assar o cupcake perfeito. Mas não por tentativa e erro - nossas avós fizeram isso, mas com a ajuda da tecnologia. Tudo começoude pegar 33 receitas diferentes de biscoitos, tortas e pães e construir um modelo TensorFlow para analisar todos esses dados. O primeiro objetivo era entender por que os produtos assados ​​às vezes se esfarelam tanto e como isso pode ser evitado. Mas, no final, Sarah conseguiu uma receita do cupcake perfeito, que na verdade é um cruzamento entre um biscoito e uma torta. E também - uma receita para um híbrido de pão e biscoitos.



Do conjunto de dados à mesa da cozinha



Em dezembro de 2020, Sarah recrutou seu colega, um funcionário do Google chamado Dale Markovich, para o projeto. Juntos, eles desenvolveram uma receita híbrida. O modelo resultante permitiu determinar, pelos ingredientes introduzidos, qual seria o resultado - biscoitos, torta ou pão.





Depois que tudo deu certo, os desenvolvedores (é um pouco estranho usar esse termo quando aplicado a panificação, certo?) Decidiram ir mais longe. O projeto foi ampliado. Desta vez, 600 receitas foram selecionadas para análise. Eles foram cuidadosamente analisados ​​para destacar os 16 ingredientes mais importantes que afetam a textura e a firmeza dos produtos assados, além, é claro, do sabor.



Esses ingredientes acabaram sendo:



  • levedura,
  • farinha de trigo,
  • açúcar,
  • ovos,
  • gordura (qualquer óleo),
  • leite,
  • bicarbonato de sódio,
  • fermento em pó,
  • Vinagre de maçã,
  • Soro de leite coalhado,
  • banana,
  • purê de abóbora,
  • abacate,
  • agua,
  • óleo,
  • sal.


Os autores do projeto, usando o novo modelo, compilaram não apenas uma lista de ingredientes, mas também determinaram as proporções corretas que ajudam a criar os produtos de panificação perfeitos.





Além disso, o modelo foi capaz de determinar de forma independente o tipo de assados, separando as moscas de costeletas, biscoitos, bolos e pães. Nesse estágio, os desenvolvedores usaram a ferramenta AutoML Tables do Google, que permite construir modelos rapidamente com base em dados tabulares. Eles carregaram um arquivo CSV no modelo e o analisaram, validando seu modelo.



Para cada tipo de produto assado - biscoitos, torta ou pão, o modelo previu a quantidade e proporção ideais de manteiga, açúcar, fermento e ovos. E o modelo resultante possibilitou obter uma receita de pratos híbridos. Abaixo está uma foto de um híbrido de bolo e biscoito usando gotas de chocolate.





Código de amostra, modelo e serviço em execução



Quanto ao modelo TensorFlow, o código é bastante curto. A API Keras foi usada para o modelo .



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')                
])
      
      





Usando Python, os desenvolvedores criaram uma função que converte os ingredientes de entrada primeiro nas unidades de medida familiares aos amantes de panificação (xícaras, colheres de chá etc.) e depois em porcentagens. Isso é o que acontece no final.



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)














Bem, o próprio aplicativo, ou melhor, um serviço da web, está disponível aqui . Então você pode tentar você mesmo.



Testes de teste



Um híbrido de torta e biscoitos



Outros desenvolvedores se interessaram pelo projeto, alguns decidiram testar os resultados do modelo na prática. Uma das receitas testadas é "torta de biscoito".





Os ingredientes e o procedimento de preparação foram seguidos. Por exemplo, um modelo mostrou que a temperatura ótima para o óleo adicionado é 18,33 ° C. Claro, ninguém seguia os décimos e centésimos de um grau, mas a condição de 18 ° C foi atendida.





A única coisa que precisava ser mudada era o tamanho da assadeira. Era necessário um formulário de 6 polegadas, mas não havia ninguém, então um de 9 polegadas foi usado. Em geral, depois que o "biscoito do bolo" era assado, ele podia esfriar um pouco e ser testado. De acordo com os testadores, a textura dos produtos assados ​​era incomum, mas o sabor era excelente. Todos que tentaram fazer isso aprovaram.



Um híbrido de pão e biscoitos





A segunda receita experimentada e testada é "assados". Tive que mexer nele um pouco mais, mas no final tudo deu certo. A receita proposta pela modelo é dividida em duas partes - na verdade, pão e biscoitos. A massa acabou ficando muito mais espessa do que o normal para biscoitos, lembrando massa de pão.





Mas no final tudo acabou ficando uma delícia, a textura lembrava biscoitos de aveia, embora um pouco mais macia. O fermento foi usado na receita, por isso parece um pouco com pão.



De modo geral, o experimento teve sucesso - o aprendizado de máquina e o modelo preditivo ajudaram a criar pratos incomuns que agradaram a todos que os experimentaram.






All Articles