1

公立はこだて未来大学 2013 年度 システム情報科学実習
グループ報告書
Future University-Hakodate 2013 System Information Science Practice
Group Report
プロジェクト名
未体験レシピの探求∼食の新世界を目指して∼
Project Name
Exploring recipe ∼ for a new concept of food ∼
グループ名
グループ A
Group Name
Group A
プロジェクト番号/Project No.
1-A
プロジェクトリーダ/Project Leader
1011013
駒形憲彦
Norihiko Komagata
グループリーダ/Group Leader
1011001
池藤大記
Daiki Ikefuji
グループメンバ/Group Member
1011001
池藤大記
Daiki Ikefuji
1011008
大谷皓暉
Koki Ootani
1011004
岩井翼
Tubasa Iwai
指導教員
佐藤仁樹教授
新美礼彦准教授
Advisor
Professor Hideki Sato Associate professor Ayahiko Niimi
提出日
2014 年 1 月 15 日
Date of Submission
July 24, 2013
概要
本プロジェクトでは食品成分表と食事摂取基準のデータを用い,健康状態,栄養バランス,お
よび料理の色彩を考慮して料理のレシピをコンピュータを使って提案した.本グループでは
ユーザの体調不良や栄養不足を解消するための栄養素ベクトルの目標値を計算するツールを開
発した.まず初めに,ユーザの現在の健康状態を入力した.次に,入力された健康状態に応じ
て栄養素ベクトルの目標値を計算した.これをレシピ設計支援ツールに入力し,ユーザの体調
不良や栄養不足を解消するための食材及びその食材配合量を出力した.また,その結果を用
いて実際に調理実験を行い,必要な栄養バランスの整った料理を提案できることを確認した.
我々の成果を利用することにより,体調不良や栄養不足を解消できる.
キーワード
健康状態,栄養バランス,レシピ設計支援ツール,体調不良,栄養不足
(※文責: 岩井翼)
-i-
Abstract
In this project, food ingredients and their quantities were optimized using a recipe design tool taking health condition, nutritional values, and color of foods into account.
Our group developed a tool to calculate a target nutrient vectors to avoid malnutrition
and poor physical condition. First, a target nutrient vector was determined using user’s
current health condition. Using the target nutrient vector, the recipe design tool calculated food ingredients and their guantities to avoid malnutrition and poor physical
condition. Cooking foods using the result demonstrated that we could develope variaus
recipes to get necessary nutrients. Malnutrition and poor health can be solved using
our products.
Keyword
health
health condition, nutritional values, recipe design tool, malnutrition, poor
(※文責: 岩井翼)
- ii -
目次
第1章
はじめに
1
1.1
背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2
従来手法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.3
従来手法の問題点
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.4
提案手法の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
レシピ設計支援ツール
4
2.1
ブレンド比率の最適化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.2
遺伝的アルゴリズム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.3
レシピ設計支援ツールのパラメータ及び入出力データ
. . . . . . . . . . . . . . .
6
2.4
出力ファイル詳細
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.5
各出力ファイルのフォーマット . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.6
実行手順 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
第2章
第3章
3.1
第4章
4.1
提案手法
11
提案の流れ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
3.1.1
概要・目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
3.1.2
使用するデータについて
. . . . . . . . . . . . . . . . . . . . . . . . . . .
12
3.1.3
システム概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
性能評価
16
レシピ設計支援ツールの性能評価 . . . . . . . . . . . . . . . . . . . . . . . . . .
16
従来手法と提案手法の比較 . . . . . . . . . . . . . . . . . . . . . . . . . .
16
調理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
4.2.1
使用する食材 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
4.2.2
調理を行うに当たって . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
4.2.3
調理実験 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
4.2.4
調理マニュアルの確認 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
4.2.5
レシピ設計支援ツールが実現したこと . . . . . . . . . . . . . . . . . . . .
22
4.2.6
今後の課題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
4.1.1
4.2
第5章
成果発表会
24
5.1
中間発表会 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
5.2
成果発表会 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
5.3
アカデミックリンク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
まとめ
28
6.1
提案手法の特徴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
6.2
提案手法の位置づけ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
第6章
- iii -
6.3
評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
6.4
今後の課題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
参考文献
31
- iv -
Exploring recipe ∼ for a new concept of food ∼
第1章
はじめに
本プロジェクトでは,レシピ設計支援ツール [1] を用いて人々の生活に役立つようなツールを作
成することを目標とした.レシピ設計支援ツールは,食事制限が必要な患者のための特別食の作成
や,健康補助食のレシピの作成等の用途に使われることが期待されるツールである.
本グループでは,健康状態を考慮した食材配合量の計算を目的とした.
(※文責: 岩井翼)
1.1
背景
近年,食生活の乱れが原因となり様々な体調不良を訴える人が増えている.生活習慣病をはじ
め,軽い症状では倦怠感や風邪を引きやすくなったり,便秘等の消化器官になんらかの症状がでる
ことが挙げられる.また,食生活でなくとも長期間のデスクワークによる目の疲れ,頭痛,肩こり
等のような症状に悩まされる人も増えている.このような症状は,放置していると大きな病気の原
因になることもありえる.健康の維持には,大きな病気の原因となる前に,このような小さな初期
症状のうちに対策を打つことが望ましい.
人間が自分の健康を維持するのに最も身近な方法は食生活を改善することであるが,普段食生活
に気をつけている人でも自分の体調に合わせて適した栄養素を含んだ料理を作るのは困難なことで
ある.そこで本グループでは,体調管理を楽に行いたいというテーマを基に,ユーザに取得したい
栄養素を入力してもらう事で,一日に必要な栄養素に,取得したい栄養素を加算したものを出力す
るツールを作成した.
中間発表会にて,このツールに対して,通常はユーザ自身が自分に足りていない栄養素を把握し
ていないのではないか,という意見が寄せられた.後期の活動では,前期の反省点とこの意見を参
考にし,ユーザ自身が自分に足りていない栄養素を把握していなくてもユーザの体調や健康状態か
ら自動的に必要な栄養素を計算できるようなプログラムへと改良した.
(※文責: 岩井翼)
1.2
従来手法
従来,レシピを提案する物と言えば,レシピ本や,クックパッド等のようなレシピサイトが主で
あった.これらは,ユーザ自身が食べたいと思う料理をその中から探し選び,レシピどおりに料理
をするものである.
レシピ本は載せられる情報量に限りがあるため,ほとんどの場合は冊子ごとに野菜料理,季節料
理,等のようにテーマ分けされていることが多い.内容は,料理手順が写真付きで記載されている
ものが多い.
後者のレシピサイトは情報量が多く,使用する食材や料理のテーマ等様々な要素で検索をかけ,
目的の料理のレシピを探し出すことができる.また,ユーザが自身で作った料理やレシピをアップ
ロードし共有することもでき,それにより,情報量が実質無限に増えていく.多くのレシピサイト
Group Report of 2013 SISP
-1-
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
には評価機能が付いており,ユーザが投稿したレシピに別のユーザが評価を付けることで,そのレ
シピの人気度やおいしさ,コストの安さなどが一目で分かるようになる.検索結果を評価順でソー
トすることで,人気のあるレシピやより信頼度の高いレシピを探し出すこともできるため,味重視
やコスト重視等,より目的のレシピを探し出し易くなっている.
(※文責: 岩井翼)
1.3
従来手法の問題点
レシピ本は一冊あたりに記載されている情報量が少ないため,実際に活用するには複数冊必要に
なることが多い.レシピ本に載っている料理だけを作ろうとすると,いつも同じ料理が食卓に並び
がちになってしまう.また,書店に足を運ばなければ入手することが難しいのもデメリットであ
る.
レシピサイトは情報量が多く,それ故に料理のバリエーションも多く,インターネットを使うこ
とができればすぐに使うことができる点でレシピ本より優れていると言える.しかし,膨大な情報
から目的の料理にたどり着くのは難しく,目的のレシピを探し出すのに時間が掛かることがある.
また,ユーザが投稿したレシピなどは情報の信憑性が低く,本当においしい料理を作れるのかは定
かでないという点も挙げられる.
レシピ本,レシピサイト共に,ある程度目的の料理やレシピを探し出すことはできるが,取得し
たい栄養素を満たす料理をピンポイントに探し出すことは事実上不可能である.
(※文責: 岩井翼)
1.4
提案手法の概要
上記の従来手法の問題点の多くはレシピ設計支援ツールを使用することで解消できる.レシピ設
計支援ツールは,目標となる栄養素ベクトルを入力することでその栄養素を満たす食材配合量を出
力するものである.ユーザ本人が取得したい栄養素を目標となる栄養素ベクトルに設定すること
で,それを満たすような食材配合量を得られる.今回本グループで提案する手法は,ユーザの取得
したい栄養素を入力してもらうことで,目的となる栄養素ベクトルをレシピ設計支援ツールで扱え
る形式で出力するものである.しかし,ユーザ自身が自分に必要な栄養素,不必要な栄養素を判断
し料理するのは困難である.そこで,本ツールではユーザに現在の体調や健康状態を選択形式で入
力してもらい,自動的に必要な栄養素を計算するプログラムを作成した.
具体的なプログラムの仕様を解説する.レシピ設計支援ツールで使用する目標値には csv ファイ
ルを用いているため,ユーザから入力された健康状態や症状を基に目標となる栄養素ベクトルを
csv ファイル形式として出力するプログラムを実装した.基本となる栄養素ベクトルは人間が一日
に必要な各栄養素の量を,単純に全て三分の一としたものを一食分と考え,そこに健康状態や症状
によって決められた栄養素を加減算することで目標となる栄養素ベクトルとした.入力される健康
状態や症状は選択形式とした.症状ごとに加算する栄養素,減算する栄養素を定め基本となる栄養
素ベクトルに加減算することになる.
ここまでで得られた目標となる栄養素ベクトルはレシピ設計支援ツールに自動的に入力され,レ
シピ設計支援ツールによりその栄養素の条件を満たす食材配合量が得られる.ここで出力される食
Group Report of 2013 SISP
-2-
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
材配合量のパターン数は予めレシピ設計支援ツールで設定することができる.出力結果は,より栄
養素ベクトルの目標値に近い物から優先して表示する.ユーザは,出力された食材配合量のパター
ンから好きな物を選びそこに記載されている食材を記載されている量だけ使用して料理を作ること
で,摂取すべき栄養素を効率よく摂取することができる.ただ,本ツールは体調や健康状態から最
適な栄養素を含む食材を提案するが,調理方法は指定していない点は留意しなければならない.
(※文責: 岩井翼)
Group Report of 2013 SISP
-3-
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
第 2 章 レシピ設計支援ツール
レシピ設計支援ツール [1] とは,栄養素とコストに関する評価関数が最大になるよう,食材およ
びその配合量を最適化するツールである.具体的には,はじめに状態変数の番号を遺伝子とした染
色体を定義する.次に,高次元非線形最適化問題を染色体で与えられた状態変数のみを変数とする
問題に縮小する.縮小された非線形最適化問題の評価関数を染色体の適応度として遺伝的アルゴリ
ズム(以下 GA)により染色体を改良し,縮小された非線形最適化問題を解くことにより,高次元
非線形最適化問題に対するスパースな近似解を導出する.この解法を食材選択及び食材配合量の最
適化問題に適用し,食材及びその食材配合量を栄養素バランスの目標値に対して最適化する.
(※文責: 岩井翼)
2.1
ブレンド比率の最適化
レシピ設計支援ツールの目的は,コストを目標値内に抑え,かつ目標の栄養素ベクトルに近い食
材及び食材配合量のブレンド比率を求めることである.ブレンド比率について説明する.各原料の
ブレンド比率の最小値と最大値は 0∼1 の範囲でユーザによりあらかじめ決められている.例えば,
ブレンド比率の最小値= 0.1 と指定された原料は,少なくとも 0.1 の割合で必ず使用することとな
る.ブレンド比率の最大値= 0 と指定された原料は,ブレンド原料として使用しないこととなる.
例えば実際の生産現場において,数百種類におよぶ原料をすべてブレンドすることは品質管理の観
点からも不可能で,せいぜい数種類,多くとも 10 種類程度の原料をブレンドする場合が多い.ま
た,アレルギーや食事制限がある場合,ダイエット等が目的である特定の食材を取得したくない場
合にも,ブレンド比率の設定は重宝する.
しかし,この手法には問題点が存在する.使用可能な全ての原料からブレンドする原料を選び,
その組み合わせ全てに対してブレンド比率を求めるには膨大な計算量が必要になり,一般的にこの
ような問題は NP 困難となることが示されている.例えば,100 個の原料から 10 個のブレンド原
料を選ぶ場合,100 C10 = 1.73103 × 1013 通りの組み合わせが考えられる.厳密に最適なブレンド
比率を求めるためには,1.73103 × 1013 通りの組み合わせに対してブレンド比率を計算すること
になり,実用上不可能である.
そこで,一部の組み合わせに対してブレンド比率を求め,これを近似解とする手法をとらざるを
えない.このとき,できるだけ広い解空間を効率的に探索し,良いブレンド原料の組み合わせを選
択する必要がある.本提案では,遺伝的アルゴリズムを用いたブレンド原料最適化により効率的に
ブレンド原料の最適化を行う.
(※文責: 岩井翼)
2.2
遺伝的アルゴリズム
遺伝的アルゴリズム(GA)は,最適化問題を解決するための進化的アルゴリズムの一つである.
i 番目の個体は染色体に対応する mmax 次元のベクトル gi を持ち,個体の優劣は gi から計算され
Group Report of 2013 SISP
-4-
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
る適応度 Ji で表される.ここで,染色体 gi の d 番目の遺伝子を gi;d とすると,レシピ設計支援
ツールでは,gi;d を gi;d ∈ {1,2,・・・,m̂max } で定義した.GA は,優秀な個体を得るために,選
択,交叉,突然変異を繰り返すことにより,染色体 gi を改良するアルゴリズムである.GA は解空
間を大域的に探索できるため,局所解に陥りにくいという特徴がある.
・交叉による部分列の交換により効率的な探索を行うことができる.
・複数の解を解集合として扱うため,多様な解を得る事ができる.
以上の特徴から,ブレンド原料の最適化に GA が適している.
レシピ設計支援ツールでは,エリート戦略に従い染色体を選択した.
以下にその具体的な手順を記す.
• 個体の適応度が高い順に gi をソートする.
• g0 ,…,gbmax ×( 1 − r )− 1 の個体を残し,gbmax ×( 1 − r ),…,bmax − 1 の個体を廃棄する.
• ここで r は個体数 bmax を更新する割合である.
• g0 ,…,gbmax ×( 1 − r )− 1 からランダムに 2 つのベクトル gi ,gj を選ぶ.
• gi と gj を交叉する.交叉後,gi (bmax ×( 1 − r )≦ i ≦ bmax − 1)の各要素を確率 pm で変
更する(突然変異).
• 突然変異を起こした gi の要素の値を一様乱数で決定する.
使用可能食材集合を M̂ とする.創作料理の候補となる食材配合量をブレンド食材集合 M(
i
0 ≦ i ≦ bmax − 1)とする.
• M̂ の要素数は m̂max .
• Mi の要素数は mmax .
• Mi の要素からなるベクトルを gi とする.
• 無数にある Mi から適応度 Ji の高いブレンド食材集合を抽出する.
• 適応度 J を式 (2.1) により定義し,食材配合量選択問題を GA を用いて最適化する.
J ≡ −wε errTast − wJc cost
(2.1)
• ここで, wε は栄養素の誤差に対する重み,wJc はコストに対する重みを表す.
• 味よりコストを重視する場合には,wε < wJc とする.
• Algorithm1 に GA を用いた食材配合量最適化の手順を示す.
• Algorithm1:GA を用いた食材配合量最適化
• Step(1-1)g0 ,…,gbmax −1 を初期化する.
• Step(1-2)ループ回数=0 とする.
• Step(1-3)g0 ,…,gbmax −1 から評価 J0 ,…,Jbmax −1 を式 (2.1 により計算する.
• Step(1-4)評価の値により J0 ,…,Jbmax −1 及び g0 ,…,gbmax −1 をソートする.(Ji > Ji+1 )
• Step(1-5)ループ回数が指定された回数に達すれば終了.そうでない場合,Step(1-6)へ
• Step(1-6)N = bmax ×( 1 − r)とする.g0 ,…,gN −1 を残し,gN ,…,gbmax −1 を廃棄
する
• Step(1-7)n=N とする.
• Step(1-8)g0 ,…,gN −1 から,2 つのベクトル gi ,gj をランダムに選ぶ.
• Step(1-9)gi と gj を交叉し,gn ,gn+1 を作成する.交叉ポイントは 1 から mmax − 1 まで
の乱数とする.
Group Report of 2013 SISP
-5-
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
• Step(1-10)以下の条件を満たさない場合,以下の条件を満たすように,gn または gn+1 を
乱数で生成する.
• gn ∈
/{g0 ,…,gN −1 }
• gn+1 ∈
/{g0 ,…,gN −1 }
• gn ̸= gn+1
• Step(1-11)n+2 ≧ bmax ならば,Step(1-12)へ.n+2 < bmax ならば,n=n+2 として
Step(1-8)へ.
• Step(1-11)n+2 ≧ bmax ならば,Step(1-12)へ.n+2 < bmax ならば,n=n+2 として
Step(1-8)へ.
• Step(1-12)g(
.突然変異
i N ≦ i ≦ bmax − 1)の各要素を確立 Pm で変更する(突然変異)
を起こした gi の要素の値を 0,1,…,mmax
ˆ − 1 の一様乱数で決める.
• Step(1-13)以下の条件を満たさない場合,以下の条件を満たすように,gi を乱数で生成
する.
• gi ∈
/{g0 ,…,gi−1 }(N ≦ i ≦ bmax )
• Step(1-14)ループ回数を 1 増やして,Step(1-3)へ戻る.
上記の手順を繰り返し行い,出力される食材及び食材配合量を最適化する.
2.3
レシピ設計支援ツールのパラメータ及び入出力データ
レシピ設計支援ツールで使用する主なパラメータ及び入力データを以下に示す.
• 栄養素ベクトルの目標値 y
• 食材価格行列 F[c]
• 栄養素ベクトルの誤差εの重み行列 Wv
• GA のパラメータ(r,ρM ,m̂max ,bmax )
• 栄養素ベクトルの誤差εに対する重み wε ,コストに対する重み wC
レシピ設計支援ツールで実際にユーザが用意し入力するデータ,出力されるデータを以下に
示す.
• 入力するデータ
– M の数と要素数
使用する食材の数と栄養素の数を予め定めておく必要がある.
– 原料に関するデータ
食材ひとつひとつに含まれる栄養素の量や食材毎にコストを設定する.このとき,食材
の量を表す単位は全て統一するものとする.
– 栄養素の目標値
ユーザが摂取すべき栄養素をベクトルとしたもの.これにより出力される食材の種類や
量を定める.
– 制約条件
アレルギー等で特定の食材を摂取できない場合や,カロリーが気になる等,ある程度出
力する原料を絞りたいときは制約条件を定めることで,最小量と最大量を設定できる.
Group Report of 2013 SISP
-6-
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
• 出力されるもの
– 最適な gi とそのブレンド比率
最適化された食材配合量のリストをより良い結果の順に表示する.
– ブレンドした栄養素ベクトル
– 評価値
入力パラメータファイルを以下に示す.
• inparMain.par : プログラム全体に関する項目
• inparMtlSet.par : 原料に関する項目
• inparEval.par : 評価に関する項目
• inparRsltData.par : 途中経過(評価 J,栄養素の誤差,コスト,計算時間のみ)出力条件
に関する項目
• inparIBMNrandom.par : ブレンド原料番号ベクトルの初期化(random 方式)に関する
項目
• inparIBMNdjudge.par : ブレンド原料ベクトルの初期化(djudge 方式)に関する項目
• inparIBMNdjudge2.par : ブレンド原料ベクトルの初期化(djudge2 方式)に関する項目
• inparCBRrandom.par : ブレンド比の計算(random 方式)に関する項目
• inparNM.par : ブレンド比の計算(NMM)に関する項目
• inparSDM.par : ブレンド比の計算(SDM 方式)に関する項目
• inparRBMNrandom.par : ブレンド原料番号ベクトルの更新(random 方式)に関する項目
• inparOPCO.par : ブレンド原料番号ベクトルの更新(一点交叉方式)に関する項目
2.4
出力ファイル詳細
以下の 3 つのファイルに計算結果が出力される.
○結果:rsltBlenFin.dat
○途中経過:rsltBlen.dat:評価 J,コスト,栄養素の誤差,g のみ
一定の間隔で rsltBlen.dat に現在の結果がアペンドモードで出力される.出力のタイミングは
inparMain.par の prmodRsltCond / prmod で指定する.prmodRsltCond には以下の 3 種類が
指定可能である.
• numGAloop : prmod[回] 毎に出力
• timeGAloop : prmod[分] 毎に出力
• evalFunc : 初期設定された gi で最も良い J と現在最も良い J の差が prmod で指定された
値の倍数以上になったときに出力.
○途中経過:rsltBlenDataJ.dat:評価 J,栄養素の誤差,コスト,計算時間のみ
指定された間隔で rsltBlenDataJ.dat に現在の結果が出力される.出力のタイミングは in-
Group Report of 2013 SISP
-7-
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
parRsltData.par で指定する.inparRsltData.par で指定する項目は以下の 3 つである.
• outputSW : (0/1) 0 : rsltBlenDataJ.dat には出力しない. 1 : rsltBlenDataJ.dat に
出力する.
• base : (1,2,3...)
inparMain.par の prmodRsltCond が numGAloop の場合,
GA ループ回数== pow(base,i) のとき出力. i=0,1,2,...
inparMain.par の prmodRsltCont が timeGAloop の場合,
実行時間 [sec] > pow(base,i)[sec] のとき出力. i=0,1,2,...
• avRat : (0 ≦ avRat ≦ 1)
J,栄養素の誤差,コストの平均値を出力するとき,上位何割の平均値を計算するかを示す
値 (0 ≦ avRat ≦ 1).avRat=0.25 とすると上位 1/4 の J の平均値を出力する.
2.5
各出力ファイルのフォーマット
それぞれの出力ファイルのフォーマットについて説明する.
●結果:rsltBlenFin.dat
• noGAlp : ループ回数
• runtime : 実行時間 [min.]
評価 J が良い順に以下の値を出力.
• J : 評価
• cost : コスト
• errTast : 栄養素の誤差
• g : ブレンド原料の番号
• blenRatBlenSet : x =(x0 ,…,xmmax−1 ) : ブレンド原料のブレンド比率
• blenRatTotal : x0 ,…,xmmax−1 の和
• blenRatMtlSetVec : x̂ : 原料のブレンド比率
• tastRslt : ブレンドした栄養素
●途中経過:rsltBlen.dat
• noGAlp : ループ回数
• runtime : 実行時間 [min.]
評価 J が良い順に以下の値を出力.
• J : 評価
• cost : コスト
Group Report of 2013 SISP
-8-
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
• errTast : 栄養素の誤差
• g : ブレンド原料の番号
●途中経過(評価 J,栄養素の誤差,コスト,計算時間のみ):rsltBlenDataJ.dat
○出力項目
• mHat max : m̂max : 原料の数
• b max : bmax : ブレンド原料集合の数
• m max : mmax : ブレンド原料の数
• d y : 栄養素ベクトルの次元数
• initBlenMtlNoMethod : 初期化方式
• calcBlenRatMethod : ブレンド比計算方式
• renewBlenMtlNoMethod : 更新方式
• LoopNum : GA ループ回数
• J-dNo-best : 最も良い g の評価値 J
• J-dNo-av. : 上位 1/4 の g の評価値 J の平均値
• errTastbest : 最も良い g の栄養素の誤差
• errTastav. : 上位 1/4 の g の栄養素の誤差の平均値
• costbest : 最も良い g のコストの値
• costav. : 上位 1/4 の g のコストの平均値
• runtime : 実行時間 [sec]
2.6
実行手順
実際にレシピ設計支援ツールを動かす,具体的な手順を説明する.
• 実行ファイルが入ったディレクトリに移動する.
• eiyouTargetS1.csv に,栄養素の目標値を入力する.
栄養素の目標値には各栄養素毎に取得したい量を設定,コストの目標値を設定,各栄養素に
重みづけを設定する.
本グループで作成したツールを用いた場合,自動的に入力される.
• eiyouMtlS1.csv には,食材栄養素行列を入力する.
食材栄養素行列には食材名,各食材に含まれる各栄養素の量を設定する.
実際に使うときは,予め用意されている,及び調達が容易な食材を入力することになる.こ
こに入力した食材は検索結果として出力されるため,用意できない食材を追加するのは望ま
しくない.
• 扱う食材の数,栄養素の数,出力される食材配合量の数,食材配合量のパターン数は,
inparMtlSet.par ファイルで設定する.
扱う食材の数と栄養素の数は,それぞれ eiyouMtlS1.csv と eiyouTargetS1.csv に入力した
要素の数を設定する.出力される食材配合量の数や食材配合量のパターン数は任意で決める
事ができるが,値を増やすほど出力に掛かる時間は長くなる.
Group Report of 2013 SISP
-9-
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
• inparMtlSet.par ファイル内の numElmMtlSet には食材の数を,dimTastVec には栄養素
の数を入力する.
• 同じく,numBlenSet には出力する食材配合量のパターン数を,numElmBlenSet にはひと
つの食材配合量に含む食材の数を設定する.
• ./exe より実行する.実行後は rsltBlenFin.dat ファイルで出力結果を確認できる.
Group Report of 2013 SISP
- 10 -
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
第3章
3.1
3.1.1
提案手法
提案の流れ
概要・目的
我々は普段の食生活の中で栄養バランスを意識することが大切である. しかしそのような思考に
至った場合, ビタミンはカラダに良い, 野菜は多く摂るべきだといった, およその情報を元に食事の
栄養バランスを考える. しかし, そのような情報を使い調理を行うと, 必要以上の栄養素をとってし
まったり, 予想していたよりも栄養が取れていない, 現在の健康状態に相応しくない栄養を多く摂
取してしまうという状態になり得る可能性がある. 我々はそこに着目し, ユーザの健康状態を考慮
したレシピを提案することを考えた.
本チームで開発するツールでは、レシピ設計支援ツールを用いて目標の栄養素ベクトルを満たす
事を目的とし, 目標の栄養素はユーザーの健康状態によって最適な値に変更される.
このツールでは, ユーザーの健康状態を入力し, それをもとにユーザーに適した栄養素ベクトル
を作成する仕組みとなっている.
このツールを使用することで, ユーザーの健康状態の改善, 更に日常生活で手軽に健康を意識し
た食生活が行えると考えた. また, 将来的には病院食などのたくさんの病状を抱える患者に対し, 素
早く一人ひとりに適した栄養バランスを提供できるようになると考えている.
現在は日常生活に重点を置き,風邪や頭痛などといった, 普段の生活の中でよく見かける症状をい
くつか挙げ,それらに良いとされている栄養素ベクトルを増やすようにした.
(※文責: 池藤大記)
Group Report of 2013 SISP
- 11 -
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
図 3.1 ツールの流れ
3.1.2
使用するデータについて
今回本プロジェクトで使用したレシピ設計支援ツールではそれぞれ正規化された食材栄養素行列
(正規化後)と栄養素ベクトルの目標値(正規化後)が入力として求められる.従って各グループ
から一人づつがデータ作成担当として集まり,データ班として今回のデータ作成を行った.
正規化とはレシピ設計支援ツールを用いて利用する際に計算の誤差を無くす為に食材栄養素行列
(正規化前),栄養ベクトルの目標値(正規化前)をそれぞれ栄養ベクトルの目標値(正規化前)で
割ったものである.今回はそれぞれの班が作成した栄養ベクトルの目標値(正規化前)を作成し,
そこからレシピ設計支援ツールの入力データとして用いた栄養ベクトルの目標値(正規化後)と食
材栄養素行列(正規化後)を作成した. 今回作成した主なデータである食材栄養素行列(正規化
後)を作成にするにあたり,まずは料理のレシピが記載されているいくつかの書籍から料理のデー
タを抜き出して料理食材行列を作成した.食材栄養素データについては,前期と同じく文部科学省
科学技術・学術審議会資源調査分科会報告「日本食品標準成分表 2010」[2] を利用した.また,栄
養ベクトルの目標値として採用する栄養素として,エネルギーをはじめとする 35 の栄養素を「日
本人の食事摂取基準(2010 年度版)」[2] を参考にし,各班が作成するそれぞれの栄養ベクトルの
目標値に含まれる栄養素の種類に違いが無いように統一した.しかしその際,ビタミン A やビタ
ミン E など書籍やデータごとに異なる表記や扱いをしている栄養素が存在することが判明したの
で「性・年齢。身体活動レベル別食事摂取基準値早わかり改訂新版」 [3] を参考にして本プロジェ
クト内での栄養素の扱いを統一した.
(※文責: 池藤大記)
Group Report of 2013 SISP
- 12 -
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
3.1.3
システム概要
まずは栄養素ベクトル(正規化前)を作成する. 栄養素ベクトル(正規化前)はツールを使用す
る際にユーザーが入力した健康状態を利用する必要がある. そのために, 人間が一食に必要な栄養
素が入っている栄養素行列(正規化前)を作成した. ユーザーが入力した健康状態によって不足し
ている栄養素を予測し, その栄養素の摂取量が多く取れるように人間が一日に必要な栄養素が入っ
ている栄養素行列(正規化前)を書き換える.
栄養素ベクトル(正規化前)の目標値を書き換える際に使用した, 栄養素の増加量は, 栄養ベク
トルの目標値として採用する栄養素として,「性・年齢。身体活動レベル別食事摂取基準値早わか
り改訂新版」を参考にした時と同じものを使用した. これは使用する資料ごとに記してある内容が
異なるため, 参考資料ごとに生じる誤差をなくすために参考資料を統一した.
図 3.2.1 栄養素ベクトルの目標値(正規化前)
次に, 作成した栄養素の目標ベクトル(正規化前)と料理食材行列と食材栄養素行列からレシピ
設計支援ツールのマニュアルにした上がって食材栄養素行列(正規化前)を作成する. この時に作
成した食材栄養素行列(正規化前)に入っている食材が最後に出力される食材配合量に含まれるこ
とになる. つまり, ユーザーが所有していない食材を削除することにより, ユーザーが使用すること
が出来る食材のみを出力することができる.
図 3.2.2 食材栄養素行列(正規化前)
Group Report of 2013 SISP
- 13 -
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
この時作成した食材栄養素行列(正規化前)に入っている食材が最後に出力される食材配合量に含
まれることになる.この段階で食材栄養素行列(正規化前)の食材の必要のない食材を削ることで
ユーザーが使用することができる食材のみを出力することができる.
図 3.2.3 栄養素ベクトルの目標値(正規化後)
図 3.2.4 食材栄養素行列(正規化後)
栄養素ベクトルの目標値(正規化前)と食材栄養素行列(正規化前)に正規化を行い, 栄養素ベク
トルの目標値(正規化後), 食材栄養素行列(正規化後)の二つを作成する. これらのデータに遺伝
的アルゴリズムに基づく非線形スパース最適化ツールを用いて, 栄養素ベクトルとコストを評価関
数として, 栄養素ベクトルの目標値(正規化後)に近い食材配合量が出力されるリストを作成する.
図 3.2.5 出力された食材配合量
Group Report of 2013 SISP
- 14 -
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
出力された食材配合量のリストを元に,調理手順を考え,調理を実際に行う.
調理手順は,既存の料理の調理方法や分量などを参考にし,出力された食材配合量の過不足が発生
しないよう,精密に計量した上で考察した.
(※文責: 池藤大記)
Group Report of 2013 SISP
- 15 -
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
第 4 章 性能評価
4.1
レシピ設計支援ツールの性能評価
この節ではレシピ設計支援ツールの性能評価を行う.
(※文責: 池藤大記)
4.1.1
従来手法と提案手法の比較
レシピ設計支援ツールと従来のブレンド比率の出力方法を比較するために COOKPAD など
のレシピサイト, スマホアプリ, 専門家の知識を例にあげ, 比較する.
まず,従来手法の性能を評価する.
• レシピサイトで可能なこと.
– 食材名,料理名からレシピを検索できる.
– 料理の目的別にレシピを検索できる.
– 旬の食材からレシピを検索できる.
– ユーザが考案したレシピを投稿できる.
– 投稿されたレシピについて相互に評価することができる.
• レシピサイトの欠点
– 評価が高いものを見つける場合に課金が必要になる場合がある.
– 作りたい料理があっても手元に食材がないと作れない.
– 栄養素を考慮していないレシピがある.
• スマホアプリで可能なこと.
– スマートフォンユーザが多いので, 提供されているレシピなどの情報量が豊富
– どこでも手軽に利用することができる.
– キッチンタイマーなどの機能を使用できる.
– 使用食材からレシピを検索できる.
• スマホアプリの欠点
– アレンジレシピが多いため, 学生など料理の経験が少ない人には難しい料理が多い
– 作りたい料理があっても手元に食材がないと作れない.
– 栄養素を考慮していないレシピがある.
– 種類が多岐に渡り,使いやすいアプリを見つけるのに時間がかかる可能性がある.
• 専門家によるブレンド比率の調整で可能なこと.
– アレルギー食材や危険な食べ合わせを避けることができる.
– 栄養価の高い料理が作成できる.
– 味に対する信頼性が高い.
• 専門家によるブレンド比率の調整の欠点
– レシピの考案に多大な時間を要する.
Group Report of 2013 SISP
- 16 -
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
– 個人の経験に頼ることになるため,人材育成に非常に長い時間がかかる.
– 食材配合量が最適である保証はない.
次にレシピ設計支援ツールの性能を評価する.
• レシピ設計支援ツールで可能なこと.
– 栄養価の高い料理を作成できる.
– 使用できる食材のみを含む食材配合量を作成できる.
– 最適な食材配合量を得ることができる.
– 短時間で新しい食材配合量を得ることができる.
• レシピ設計支援ツールの欠点
– 料理の味がどのようになるのかの予測が難しい.
– 調理手順はユーザ自身が考えなくてはならない.
– 食材配合量は重さで出力されるため,体積がどの程度になるかが分かり難い.
以上を踏まえてレシピ設計支援ツールの従来手法に対する優位性と欠点を述べる.
• 優位性
– より栄養価の高い料理が作成できる.
– 使用できない食材を考慮する必要がない.
– 料理の見た目をある程度制御できる.
• 欠点
– 調理手順を考案する作業を行わなければならない.
– レシピサイト,スマホアプリのような手軽さがない.
– 食材配合量がわかりやすい形式(例:キャベツ 1/2 玉)で確認できない.
– 専門家の調整に比べ,味の信頼性が薄い.
(※文責: 池藤大記)
4.2
調理
本プロジェクトでは, 三回の調理実験を行った. 内容は実際にレシピ設計支援ツールを使用し, 出
力された食材配合量を利用することでバランスのとれた料理が作れるのか確認し, 課題点, 反省点
をいくつか挙げた.
• 調理の手順を予め調べ, 考えておく.
• グループのメンバーで役割を決めておき, 円滑に調理実験を行うように心がける.
• 調理実験の内容を調理実験終了後に記録しておく.
• レシピ設計支援ツールが出力した結果や調理方法を予め記録しておく.
• 使用する調理器具は料理実験前, 実験後に確認する.
(※文責: 池藤大記)
Group Report of 2013 SISP
- 17 -
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
4.2.1
使用する食材
調理をするにあたり食材の購入を行った.2 回食材調達を行い,1 回目は丸井今井で食材を購入
し 2 回目は大槻スーパーで食材を購入した.第1回目は直近の調理分のみの食材を調達した。そ
のため、2 回目以降の調理のときも食材の調達をしに行かなくてはならなくなった.そこで佐藤教
授の意見によって長期間の保存ができる冷凍食材を購入することになった.2 回目は大槻スーパー
で食材を買いに行くことになった.そこでホウレン草などの冷凍食材を買った.購入した冷凍食品
はリストと照合し,冷凍庫に保存した.以下が食材の購入の手順である.
• 1. 商店に行く.
• 2. リストから食材を探し,購入.
• 3. 事務室で領収書と食材の照合.
• 4. 冷蔵庫もしくは冷蔵庫に管理.
(※文責: 池藤大記)
4.2.2
調理を行うに当たって
調理実験を行うに当たって, 事前に調理実験で使用する調理器具, 食材の名前が記されたチェッ
クリストを作成した. チェックリストは各グループで使用する調理器具を管理したり, グループ全
体で利用するものを, 調理器具を管理するためのグループを作り管理した. また, 調理実験を行う
際に, 衛生面に配慮するために以下のことをチェック項目として設けた. 以下の条件を満たせない
者は調理実験を行えないものとした.
• 前日までに嘔吐, 下痢等の症状が無いこと.
• 手指にできものや化膿した傷が無いこと.
• 爪を短く切っておくこと.
• 三角巾, エプロンを着用.
• 時計, 腕時計の非着用.
途中退室についてはエプロン,三角巾,着用のまま調理実験場所からでないことが条件として挙げ
られる.また調理品については持ち帰らないことを条件とした.食中毒を起こさないために、調理
実験では「清潔,温度管理,迅速」を徹底した.夏場の実験では以下の菌に繁殖する可能性が高い
ので特に注意する必要がある.
• サルモレラ菌
• ブドウ球菌
以上に加えて, 以下の事を実践し衛生面を厳重にし, 調理実験を行った.
• 調理実験室から退出する際, 三角巾, エプロンを脱いで退出すること.
• 石鹸を用いて, 両手指, 腕までしっかり洗い, 20秒以上かけて流水で洗い流した.
• 調理実験を行う前に, 用いる調理テーブル, 調理器具, シンク, ガス台を除菌してから行った.
• 野菜類, 肉類, 魚介類は, 全て使用するまな板を分けて下処理等を行った.
• 使用する食材は全て中心部まで火を通した.
Group Report of 2013 SISP
- 18 -
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
• 調理が完了した際,試食をする前に検品用として料理の一部をとりわけラップで包み, 日付
を記録して冷凍保存した.
• 使用した調理器具・機材を全て洗剤を用いて洗浄, 濯ぎを行った.
• 洗浄, 濯ぎを行った器具の水気をふき取り, 除菌スプレーをかけ, しっかりと乾燥させ片付け
を行った.
(※文責: 池藤大記)
4.2.3
調理実験
本グループはレシピ設計支援ツールから出力された食材配合量を使い美味しい料理が出来るのか
を検討するために練習も含めて調理実験を3回行った.7 月 19 日,10 月25日,11 月 29 日に調
理実験は調理器材の運搬から,調理,片付けをすべて含むものとする.実験内容は第三回に行った
ものを使用する. 第一回第二回で得た反省点と改善点を踏まえて行ったものであり, 行った調理実
験の中で最も正確な成果が出たと考えられるからである.
ささ身 36.2g
にんじん 34.8g
しいたけ 86.4g
根深ねぎ 77.6g
まだこ/生 31.6g
スパゲッティ 100g
オリーブ油 9.84g
調合油 16.48g
中濃ソース 39.4g
トウバンジャン 22.2g
プロセスチーズ 30g
各食材配合量は正確に計量を行った.
1. パスタを茹でる, 時間などは使用するものに依存する.
2. ゆでている間に豆板醤, ソーズを合わせておく, そしてしいたけ, 人参, ネギ, ささみを炒める.
3. 炒めているものに火が通ったら合わせたソースを入れる.
4. 茹で上がったパスタにオリーブオイルを和える.
5. パスタに炒めたものをかけ, タコと混ぜ, 最後に細かくしたチーズを載せる.
(※文責: 池藤大記)
4.2.4
調理マニュアルの確認
調理は調理手順に基づいて行われた.調理を行う際は調理実験管理者を決めて行った.調理実験
は調理器具の運搬,調理,片付けの全てを含んでいる.調理監督者の役割は多くく分けて2つある.
• 調理器具借用書への記入,調理器具借用書とは実験に必要な調理器具を佐藤研究室から持ち
出す時に何を持ち出したのかを確認するためのリストである.
Group Report of 2013 SISP
- 19 -
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
• 調理実験の監督業務
監督者は調理実験マニュアル,調理器具借用書,コンテナ確認書,主に調理実験記録書を常に所持
する.
調理実験に使用した調理方法はレシピサイトに記されていた基本的なパスタの調理方法や, 分量
を参考にして調理方法を作成した.
調理実験に続き, 実食実験を行った, 栄養素行列をユーザーの健康状態を利用することで書き換え
ることができ, 書き換えた栄養素行列を利用することで食材配合量を出力できるようになる. しか
し、これだけでは味の評価が出来ない. 味についてより美味しく食材配合量を出力できるようによ
りコストや最小値の値を調整する必要があると考える. 結果, 今回の調理実験で出力された料理は
豆板醤の分量が多く, とても辛いの強い料理となった.
この第3回の調理実験は, 第1回, 第2回の調理実験のテストで発生した課題点・反省点を以下
のように活かして行った.
• 計算結果の報告書を作成し,調理手順をあらかじめ記載した.
• 器具・食材のチェックリストを作成し,チェックを行った.
• 班員の役割をあらかじめ決めておいた.
課題点,反省点を活かして行ったことで,第三回は以下のように改善された.
• 計算結果の報告書を作成し,調理手順をあらかじめまとめておくことで,今までその場で考
えた調理手順で行っていたため,非常に効率よく調理を行うことができた.
• 器具・食材のチェックリストを作成し,チェックを行うことで,素早く食材の軽量を行うこ
とができた.
• 班員の役割をあらかじめ決めておくことで,調理時間の短縮,効率化された.
Group Report of 2013 SISP
- 20 -
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
図 4.1 調理実験の様子
図 4.2 実際の調理過程
Group Report of 2013 SISP
- 21 -
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
図 4.3 調理実験の成果物
(※文責: 池藤大記)
4.2.5
レシピ設計支援ツールが実現したこと
今回本グループが提案した,ユーザの現在の健康状態を使用し目標ベクトルを書き換えることで
健康状態に合わせた栄養バランスを提案するシステムでは,人の手で考案された食材の調理方法や
実際の調理などの手順を除いたコンピュータのシステム部分をレシピ設計支援ツールの性能を考慮
して行った.
そこでレシピ設計支援ツールそのものの性能またはその出力である食材配合量が今回の要件を十分
に満たせているのか評価する必要がある考えた.
今回初めてレシピ設計ツール を使って得た食材配合量から料理を作ることできたということを考
えたい.料理方法や料理手順など人の手によって行われた部分もあるが,結果としてコンピュータ
が示した食材のみを使って人間が食べることの出来る料理を作ることに成功した.この試みはレシ
ピ設計支援ツールにとっても初めての試みであり,最初の一年間の成果としてきちんと料理が作成
出来る事,またで示す今後に活かせるいくつかの課題も見つけることができた. 次に料理に含ま
れる栄養素についてであるが,今回私たちが提案した手法を用いて栄養素の目標ベクトルを設定す
ることでユーザに必要な栄養素を求めてそれを補うことが出来る食材配合量を得ることができた.
(※文責: 池藤大記)
4.2.6
今後の課題
今回実際に私たちのグループで開発した料理の提案手法を用いて料理のレシピを作成し,前期
に行ったものも含めると 3 回の調理実験を行った.これらの調理実験で食材配合量や調理の手順
など一見無事成功したかのように思えたレシピであっても実際に調理を行い試食することで様々な
課題が挙げられた.ここではその課題を列挙し,今後どのような展開が望めるかということについ
て考察していきたいと思う.
Group Report of 2013 SISP
- 22 -
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
まずは食材配合量の出力である,レシピ設計支援ツールを用いて食材配合量を出力するためには
れレシピ設計支援ツールへの理解と利用経験のある人間による作業が求められる.現段階のレシピ
設計支援ツールは非常に時間のかかるもので,長い場合には 1 時間以上掛かってしまう事がある.
それでは我々の目標としている,日常生活において,手軽にこのツールを使い,栄養バランスを考
えた食生活を続けてもらう.という目標が難しくなってしまう.以上のことが存在するので現段階
ではユーザーにこのツールを使ってもらうのは難しく,またパソコンやサーバへの負担が大きいの
で大人数での使用も難しい.
次に調理の自動化について挙げられた課題であるが,レシピ設計支援ツールでは最適な食材の種
類と量しか示されておらず,どのような調理を行うべきなのかは出力されない.従って現段階では
出力された食材配合量を人間が見て調理方法,調理手順を考えなければならない.しかしながら人
間が考案するとなると考案作業を行う人間の経験や参考にした書籍などが成果に大きく影響してし
まい,コンピュータを用いたシステムであることを考えるとこのように扱う人間が結果に大きく影
響してしまうようなシステムは好ましくない.従って将来的には出力された食材配合量に合わせた
調理手順をレシピ設計支援ツールが考案するようなシステムとなれば望ましい.また調理方法や調
理手順を含めたレシピをコンピュータを用いて自動的に作成するという技術は研究されている最中
であるため,既存のシステムやサービスで食材から調理方法を提案することが出来るものはまだ少
ない.今後はそのような研究機関などを調査しつつ,出力した食材配合量からどのように調理して
いくのかも考えていく必要がある.
これらの意見はアカデミックリンクや,成果発表会でもいくつか意見が上がった,技術者視点から
の意見からだけではなく,このような機会を通して利用者視点からでのコメントも多く貰うことが
できた.このことは今回のプロジェクトを行うにあたって非常に有益な情報であったと言える.
本プロジェクトの成果物は将来的に多くのユーザーの役に立つものとなるはずなので,これからの
活動においてもこのような利用者視点の意見も意識して収集してゆきたい.
また味の調整に関してもいくつかの問題が見受けられた.レシピ設計支援ツールは栄養素ベクト
ルの目標値に従い栄養素を判断材料として食材の種類と量を選び出すため,味の良し悪しがプログ
ラム上で判断されることはない.現状は調味料も食材として扱っていることからレシピ設計支援
ツールの出力に上限を設定することで辛くなりすぎたり塩気が甘くなりすぎたりすることを抑え,
出力されたいくつかの食材配合量の中から人間が実際に調理を行うことを考えながら食材の組み合
わせでなるべく自然な食材配合量を選び出した.加えて選び出した食材配合量に含まれているナト
リウムから塩分相当量を計算し,塩気が強くなり過ぎないように調整した.しかしながら実際に調
理を行った際は上限内であっても辛味が強すぎてしまったり食材の組み合わせが悪く想定していた
味にならなかったりと問題も多かった.しかしながらレシピ設計支援ツールには味の評価をする機
能は存在していない.従って実際の現場でこのツールで作成した料理のレシピを用いて食事を提供
しようとした場合,例え理想的な栄養素を含んでいたとしてもそれらの料理を楽しく食べることが
できるような工夫をする必要がある.
そのためにもこれから研究を続けるにあたって,料理の基本や参考文献を使い,調理に関する豊富
な知識を持つことが研究を効率良く行うためには重要になって行くと考える.
(※文責: 池藤大記)
Group Report of 2013 SISP
- 23 -
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
第 5 章 成果発表会
5.1
中間発表会
2013 年 7 月 12 日にはこだて未来大学にてプロジェクト学習の中間発表を行った.プロジェク
トの全体の目的とレシピ設計支援ツール,前期までの活動,以降の予定について発表した.
そして,聴衆に聞いてもらい,発表に対するコメントをもらった.以下に,このときに寄せられた
コメントを示す.
• 実際に調理したものが見たい
• 具体的な進捗がわかりにくい
• レシピ設計支援ツールの説明が足りない,わかりにくい
• 目標が曖昧
• スライドがわかりにくい
• 相手を見て話すべき
• 料理をユーザー間で共有できると面白そう
まず,実際に調理したものが見たいという意見について,実際に衛生面のことを考えて試食な
どは行っていなかった.しかし,作った料理を各グループごと料理にラップを巻いた状態で展示
した.
次に具体的な進捗が分かりにくいという意見について,これは発表練習などの発表対する準備不
足が露呈した.
3点目としてレシピ設計支援ツールの説明が足りない分かりにくいという意見について自分たち
なりには分かりやすく説明した.しかし,ツールの中身について説明するものが多く聞き手には伝
わりづらかった.
4点目として目標が曖昧だという意見についてこれもしっかり説明した.しかし,支援ツールの
中身が聞き手に伝わっていなかった分目標も伝わりづらかった.
5点目としてスライドがわかりにくいという意見について,これも発表の準備不足が露呈した.
6点目に相手を見て話すべきという意見について,これも発表の準備不足に対する意見である.
7点目に料理をユーザー間で共有できると面白そうという意見について,これはユーザー側から
の意見として参考になった。
発表のコメントとしてプロジェクトの目的・内容について興味を持ったなど関心を持ってくれる
コメントが多く,その上で内容がわかりにくかった,難しい,実際に調理の結果などの出力をみた
いなど発表の未熟さと進捗の遅れからツールで得られた出力結果を示せず,内容を伝えきれない結
果となってしまった.また声が小さい,スライドが見難いなどという発表の技術の低さや準備不足
を指摘するようなコメントもあった.全ての聴衆のコメントを通して実物をみたい,成果物が無い
ためわかりにくいという意見が多かったため,後期では調理実験を多く行い,それらの改善を目指
した.
(※文責: 大谷皓暉)
Group Report of 2013 SISP
- 24 -
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
5.2
成果発表会
2013 年 12 月 6 日に公立はこだて未来大学にてプロジェクト学習の最終発表を行った.中間発
表のコメントを元にスライドの改善,発表の準備を強化し望んだ.内容は,一年を通しての活動と
レシピ設計支援ツール,グループでの活動,調理実験の結果を発表した.また,第三回の調理実験
で作った料理を冷凍保存し,それを解凍したものを展示した.
ここでは実験したものを聞き手に食べてもらうのは衛生面を考え,行っていない.以下に,このと
きに寄せられたコメントを示す.
• プロジェクトの目標は本当に達成されたのか?
• 料理はほんとうに美味しかったのか
• 調理の手法が乏しい
• パスタ以外は作れるのか?
• 味と使う素材を分けて考えておいしい味を出せるアルゴリズムが考えられる
• 具体的にどのような数値を入力したかわかりにくい
まず最初にプロジェクトの目標が本当に達成されたのかという意見について,二つ目に,料理は
ほんとうに美味しかったのかという意見について,見た目はよくはなかったが食べてみると食べら
れないものではなく意外と美味しく頂けた.三番目に,調理の手法が乏しいという意見について味
を整えてレシピ設計支援ツールで出力された食材配合量で調理するにはパスタを使って味を整えた
料理を作る方法しか思いつかなかった.四番目に,パスタ以外は作れるのかという意見について,
味を考慮しなければまったく違う食材で作れるが,プロジェクト的には味を調えるためにパスタを
使って調理した.五番目に,味と使う素材を分けて考えておいしい味を出せるアルゴリズムが考え
られるという意見について,味と素材は切り離せないものであり,それは困難だという意見に落ち
着いた.最後に具体的にどのような数値を入力したかわかりにくいという意見について,成果発表
で寄せられた上記のコメントを検討すると,中間発表の時に比べて内容がわからないというコメン
トは少なく,また,プログラムの出力結果を発表で示すのが出来た.また,中間発表に比べて内容
の曖昧さを緩和するのができた.また,発表で指摘された点として味や達成度の評価の基準が曖昧
であるのを多く指摘された.それ以外にも,栄養素の面で比較しやすいように調理の際,全グルー
プの料理をパスタ料理のテーマを統一したことについて逆にわかりづらいなどと裏目に出てしまっ
た点も反省点である.また,説明がわかりづらい,真面目すぎてつまらないなど発表技術の未熟さ
や発表内容に関して指摘されるコメントも少なくはなかった.
(※文責: 大谷皓暉)
5.3
アカデミックリンク
2013 年 11 月 9 日に千代台町にある函館市青年センターで行われたアカデミックリンクという
イベントに参加した.アカデミックリンクとは函館市内の大学や企業がそれぞれの研究を発表し交
流する場となっている.このアカデミックリンクで,私たち公立はこだて未来大学の学生による未
体験レシピの探求プロジェクトの発表を通じて,自分たちの今までやってきた成果の確認を行うこ
とが出来た.また,函館市内の企業や函館市内の他の大学との交流を通して,様々な視点からのコ
Group Report of 2013 SISP
- 25 -
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
メントをもらうことができた.
以下に,このときに寄せられたコメントを示す.
• 料理を複数作ることができるように出力して欲しい
• 使用する材料を個人で簡単に変更できるようにして欲しい
• 材料を選ぶ際に「∼風」の料理から選べるようにしたら面白いのでは?
• 栄養士に提供するツールとしてもいいかもしれない
• 調理手順についてはクラスタリングを用いてみては?
• レシピ設計支援ツールに味の評価もできると面白い
• 「食欲が出るように∼」フレーズを変更するべき
まず一点目に,料理を複数作ることができるように出力して欲しいという意見について,レシピ
設計支援ツールを用いて同じ栄養素でも色々な食材配合量が出力されるように改善した.しかし,
まだ調理手順も含めたレシピに関してまでは出力されておらず,今後の課題とした.
二点目に,使用する材料を個人で簡単に変更できるようにして欲しいという意見について,現段
階ではまだレシピ設計支援ツールの中身を知っている人やC言語が理解できている人しか変更でき
ず,外部的には変更できていないので,今後の課題としてユーザ側から指定する材料について変更
できるようにしていくつもりである.
三点目に,材料を選ぶ際に「∼風」の料理から選べるようにしたら面白いのではないかという意
見について,この段階では料理の味付けで評価分けできている状況ではないので,現段階では「∼
風」という味で分けることが出来ず,これは今後の課題としてあげていく予定である.
四点目に,栄養士に提供するツールとしてもいいかもしれないという意見について,レシピ設計
支援ツールを応用,実用化として使用するのには今後このような場面が出てくるかもしれないと考
えた.
五点目に,調理手順についてクラスタリングを用いたら良いという意見について,現段階では足
りない栄養素を症状ごとにこっちで定めている段階であるので,足りない栄養素を細かい症状ごと
にクラスタリングして予測できるようにできる可能性がある.
六点目に,レシピ設計支援ツールに味の評価もできると面白いという意見について,一応,味の
評価値としてJの値を用いて,この値までなら食べられるという味の範囲の値を定めて収まるよう
にし,味の評価値はつけた.よってこのコメントに対する問題は解決できた.
七点目に食欲が出るようにフレーズを変更するべきという意見について,ポスターに関してその
ようにフレーズを変更した.
アカデミックリンクでは,技術者視点の意見だけでなくユーザ視点の意見が多くでた.このこと
を通じて技術者視点しか見ていなかった我々にとってユーザ視点の意見が出たことで視野を広げる
ことができた.また,他にはレシピ設計支援ツールへの意見も出た.このことについては聞き手か
ら,このツールが将来,栄養士に提供できるなど将来のレシピ設計支援ツールの展望や,実用化に
ついての発展的な意見も出た.このアカデミックリンクを通じてレシピ設計支援ツールを使用する
ユーザ側の意見や将来のレシピ設計支援ツールの応用の仕方を得ることが出来た.
Group Report of 2013 SISP
- 26 -
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
図 3.1 ツールの流れ
(※文責: 大谷皓暉)
Group Report of 2013 SISP
- 27 -
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
第 6 章 まとめ
6.1
提案手法の特徴
本プロジェクトでは,健康状態,栄養バランス,及び料理の色彩を考慮し、レシピ設計支援
ツールによって食材及びその配合量を最適化した。レシピ設計支援ツールは,行を食材名,列を食
材の栄養素とする食材栄養素行列と栄養素ベクトルの目標値を入力とし,食材配合量が複数記載さ
れたリスト(食材配合量行列)を出力するプログラムであった.
本グループでは,ユーザ本人がどんな栄養素が足りていないか具体的に把握していなくてもユーザ
の健康状態から不足している栄養素を出力する手法を実現するために活動に取り組んだ.そのため
にレシピ設計支援ツールに通す前に,ユーザに自分の健康状態に応じた症状を入力してもらい,そ
の症状にあわせた栄養素を多く出力するような栄養素の目標値を決めるものであった.例えば,風
邪の症状であれば栄養素の目標値としてビタミン C が多く出力される.
本グループの活動の大きな特徴としては,レシピ設計支援ツールの本来の目的である栄養素で最適
化した食材配合量を出力するのに加えて,入力としてユーザが不足している栄養素を健康状態から
予測する.このツールの使用によりユーザが現状で不足している栄養素を含んだ食材配合量を出力
出来る.このツールの応用として,例えば糖尿病患者で,ある特定のものが食べられない場合,一
定の栄養素がとりたい場合などにこの支援ツールの使用によりアレルギーなどで摂取できない食
材を除いて,さらにユーザが取りたい栄養素を摂取することができる。現段階では,料理の名前や
料理手順の出力できず,必要な栄養素ベクトルを含んだ食材配合量を出力するというのが現状で
ある.
(※文責: 大谷皓暉)
6.2
提案手法の位置づけ
従来のレシピサイトや本等はユーザの健康状態に応じた目的の料理を探すのが困難であった.し
かし,本ツール(レシピ設計支援ツールと目標値変更ツール)を用いることで,その都度自分の健
康状態に適した食材配合量を出力することができる.また、材料と食材配合量が出力して目的のレ
シピの探索が容易になる.
ここでレシピ設計支援ツールの活用が期待できる場所,場面を以下に示す.
• 初等教育機関,一部中等教育機関で提供される学校給食
• 病院や介護施設で提供される食事
• 食事の摂取量を減らしたい場合
まず,初等教育機関,一部中等教育機関で提供される学校給食について,小学校や中学校の多感
な時期で成長期のため,栄養素の面はかなり重要視される.そこで本ツールを用いれば,栄養素満
点の食材配合量を使った料理が量も考えて出力されるわけである.
次に,病院や介護施設で提供される食事について,病気等である一定の栄養素を満たす食事を一
日でとりたい場合,レシピ設計支援ツールを使用すれば病気等で摂れない食材を除いた食材で一定
Group Report of 2013 SISP
- 28 -
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
の栄養素ベクトルを摂取出来るようになる.このようにすることでアレルギーや病気を持った人に
ついて一日の栄養素を摂るのが出来るようになる.これは病院食などの応用として考えられる.
次に一般の人に向けて,ダイエットなどで食事の摂取量を減らしたい場合が三点目として挙げら
れる.ダイエットでは通常,食事の量を減らすことで取れる栄養素が少なくなり体調を壊すことな
どが考えられる.しかし,本ツールを用いれば一日の栄養素を食事をしながらとれ,さらに食事の
摂取量も減らせる.こうなれば体調不良のリスクなどを大幅に下げれる.
(※文責: 大谷皓暉)
6.3
評価
cookpad 等に見られる従来手法である料理名から食材を検索する方法と比べて,我々が作った
目標値変更ツール,そして,レシピ設計支援ツールを用いれば,必要な栄養素ベクトルを含んだ食
材配合量のデータがツールによって出力されるため,目的にあったレシピを探索するのに要する時
間が短くなった.また、一つの栄養素ベクトルに対しいくつかの食材配合量の候補が出力されるた
め,同じ栄養素ベクトルでも様々な食材を使った料理を作ることが可能となった.また,本などで
調べるとユーザの健康状態,その健康状態に必要な栄養素,そしてその栄養素のベクトルに必要な
食材を調合して適切な状態になるように計算しなければならない.本提案手法はそこまでの流れを
自動化している.さらに今後の展望として,その材料を使った食材配合量を使用した料理のレシピ
を出力することも考えられ将来は病院食への応用,ダイエット志向が強い人への提示,栄養を考慮
した,学校給食への応用などが考えられる.
(※文責: 大谷皓暉)
6.4
今後の課題
本グループではユーザの健康状態をプログラム側で,チェックボックス形式の形で入力してもら
うことでその健康状態に適した食材配合量を出力するということを一年間目標に活動してきた.今
後の課題として挙げられるのは以下のとおりであった.
• ユーザの健康状態の項目を増やす.
• 健康状態の入力からレシピ設計支援ツールに至る出力を一つのプログラムにする.
• レシピ設計支援ツールのインタフェースの改良.
• レシピ設計支援ツールの出力を食材配合量だけでなく調理手順も出力する.
まず一点目として,ユーザの健康状態のチェックボックス項目を増やす必要がある.現段階では
4段階ほどしかあらず,種類が少なすぎるためもっと細かい症状の項目を作る必要があり,さらに
その症状では何の栄養素がどれくらい不足しており,どのくらいの量をとればよいか抽象的には予
測しているが,精密には分からないため,その指標を明確に定める必要がある.また,そのために
はユーザ側を被験者としたデータを大量に集める必要がある.
二点目として,レシピ設計支援ツールと groupA で作っていた健康状態からその症状に不足してい
る栄養素の目標値を決めるプログラムを結合する必要がある.現段階ではこれらがばらばらなプロ
グラムで動いており,健康状態を選ぶことで直接,必要な食材リストが出てこない状態である.そ
Group Report of 2013 SISP
- 29 -
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
のためこれらのプログラムを統合して一つのプログラムで実行できるようなものにすることが必要
である.
三点目として,レシピ設計支援ツールのインタフェースの改良が求められる.現在は C 言語で書
かれたもので無機質な画面のインタフェースで,ユーザー側から見て面白みがなく淡々と必要な栄
養素ベクトルから食材配合量が出力されるといったものになっている.このため,ユーザー側から
見ると面白くないだけでなく,C 言語を知らない人が扱うにはどこをどう操作してよいか分からな
いなどの問題が発生する可能性がある.そのため,今後は java などの言語で,画面インタフェー
ス等を含め,概観の実装をすることが必要である.
四点目としては,レシピ設計支援ツールの出力を調理手順も含めたレシピとして出力することが課
題である.現段階のレシピ設計支援ツールでは,遺伝的アルゴリズムによって,ユーザの症状に不
足している栄養素ベクトルを各食材に含まれている栄養素で近似し,その栄養素ベクトルに近い食
材の配合量が出力されるだけである.現段階では食材の配合量が出力されるだけで,調理手順やこ
のような料理ができるなどの料理名の出力が得られないため,今後はその食材ごとに適した調理方
法のデータを入れるなどしてプログラムが料理のレシピ手順までを出力できるようにし実際にこの
レシピ設計支援ツールの出力をみて何も知らない一般の人が不足している栄養素を補う料理を作れ
るようにする事が今後の目標であり,現段階の課題である.
(※文責: 大谷皓暉)
Group Report of 2013 SISP
- 30 -
Group Number 1-A
Exploring recipe ∼ for a new concept of food ∼
参考文献
[1] 佐藤仁樹,佐藤雅子, “遺伝的アルゴリズムに基づく非線形スパース最適化∼食材・配合量最
適化問題の解法∼, ” 信学技法 NLP2013-78, pp. 47–52, Oct. 2013.
[2] 文部科学省科学技術・学術審議会資源調査分科会報告「日本食品標準成分表 2010」.
[3] 第一出版編集部,日本人の食事摂取基準(2010 年度版),第一出版,2010..
Group Report of 2013 SISP
- 31 -
Group Number 1-A