Как стать автором
Обновить
Selectel
IT-инфраструктура для бизнеса

Как машинное обучение и TensorFlow помогают готовить гибридную выпечку: хобби-кейс разработчика Google

Время на прочтение4 мин
Количество просмотров3.2K

Вынужденная самоизоляция стимулировала многих из нас вспомнить о своих pet-проектах или просто найти себе хобби. Кто-то увлекается радиосвязью, кто-то разрабатывает корпуса для Raspberry. Ну а кто-то занимается выпечкой. Но не простой, а с привлечением машинного обучения.

Разработчик Сара Робинсон, специалист по машинному обучению, решила испечь идеальный кекс. Но не методом проб и ошибок — этим занимались наши бабушки, а при помощи технологий. Все началось с того, что взяла 33 разных рецепта печенья, пирогов и хлеба и построила TensorFlow модель для анализа всех этих данных. Сначала целью было понять, почему хлебобулочные изделия иногда сильно крошатся и как этого можно избежать. Но в конечном итоге Сара смогла получить рецепт идеального кекса, который на самом деле является чем-то средним между печеньем и пирогом. А еще — рецепт гибрида хлеба и печенек.

От набора данных до кухонного стола


В декабре 2020 года Сара привлекла к проекту своего коллегу — сотрудника Google по имени Дейл Маркович. Вместе они и разработали гибридный рецепт. Полученная в итоге модель позволяла по введенным игредиентам определить, что получится в итоге — печенье, пирог или хлеб.


После того, как все получилось, разработчики (немного странно употреблять этот термин в применении к выпечке, правда?) решили пойти дальше. Проект масштабировали. На этот раз для анализа отобрали уже 600 рецептов. Их тщательно проанализировали для того, чтобы выделить 16 самых важных ингредиентов, которые влияют на текстуру и упругость выпечки, плюс, конечно, на вкусовые качества.

Этими ингредиентами оказались:

  • дрожжи,
  • мука,
  • сахар,
  • яйца,
  • жир (любое масло),
  • молоко,
  • пищевая сода,
  • разрыхлитель,
  • яблочный уксус,
  • пахта,
  • банан,
  • тыквенное пюре,
  • авокадо,
  • вода,
  • масло,
  • соль.

Авторы проекта при помощи новой модели составили не только список ингредиентов, но и определили правильные пропорции, которые помогают создать идеальную выпечку.


Кроме того, модель оказалась способной самостоятельно определять тип выпечки, отделяя мух от котлет печенье от пирожных, и хлеба. На этом этапе разработчики использовали инструмент Google’s AutoML Tables, который позволяет быстро строить модели на основе табличных данных. Они загрузили в модель CSV файл и проанализировали его, проверив свою модель.

Для каждого из типов выпечки — печенья, пирога или хлеба модель предсказывала оптимальное количество и соотношение масла, сахара, дрожжей и яиц. А еще полученная модель давала возможность получить рецепт для гибридных блюд. Ниже — фото гибрида пирога и печенья с использованием шоколадной крошки.


Пример кода, модель и работающий сервис


Что касается TensorFlow модели, то код достаточно короткий. Для модели использовался Keras API.

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

При помощи Python разработчики создали функцию, которая преобразовывает вводимые ингредиенты сначала в привычные для любителей выпечки единицы измерения (чашки, чайные ложки и т.п.), а потом — в проценты.

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)


Вот, что получается в итоге.


Ну а само приложение, точнее, веб-сервис, доступен здесь. Так что опробовать его можно самостоятельно.

Тестовые испытания


Гибрид пирога и печенья

Проектом заинтересовались другие разработчики, некоторые решили опробовать результаты работы модели на практике. Один из рецептов, который проверили — «пирог-печенье».


Ингредиенты и процедура приготовления были соблюдены. Например, модель показала, что оптимальной температурой для добавляемого масла является 18.33 °C. Конечно, за десятыми и сотыми долями градуса никто не следил, но условие в 18°C было соблюдено.


Единственное, что пришлось изменить — размеры формы для выпечки. Требовалась 6-дюймовая форма, но такой не было, так что обошлись 9-дюймовой. В общем, после того, как «пирог-печенье» было выпечено, ему дали чуток остыть и опробовали. По словам тестировщиков, текстура выпечки была необычной, но вкус — просто отличный. Все, кто попробовали эту вещь, одобрили ее.

Гибрид хлеба и печенья


Второй опробованный рецепт — это «хлебопеченье». С ним пришлось повозиться чуть дольше, но в итоге все получилось. Рецепт, предложенный моделью, разделен на две части — собственно, хлеб и печенье. Тесто получилось гораздо более густым, чем обычно требуется для печенья, напоминая тесто для хлеба.


Но в итоге все оказалось вкусным, текстура напомнила овсяное печенье, хотя чуть мягче. В рецепте использовались дрожжи, так что и на хлеб чем-то похоже.

В целом, эксперимент оказался удачным — машинное обучение и предиктивная модель помогли создать необычные блюда, которые понравились всем, кто их попробовал.

Теги:
Хабы:
Всего голосов 19: ↑19 и ↓0+19
Комментарии2

Публикации

Информация

Сайт
slc.tl
Дата регистрации
Дата основания
Численность
1 001–5 000 человек
Местоположение
Россия
Представитель
Влад Ефименко