OFFICE風太郎

日本のエンジニア、風太郎です。問題解決が飯のタネです。仕事や生活で問題解決を活用したり、問題解決の基礎となる統計とかデータ分析の話をしていきます

想定外と想定以上ー品質工学の損失関数ー

やっぱり田口玄一って天才じゃない!?

 昨今はやりのAI機械学習を仕事に使っていると。品質工学(タグチメソッド)で勉強したことが思い出されます。 手法そのものは基本的なコンセプトがコンピュータ普及以前の時代に考えられています。そのため、シンプルなものが多くなっていますが、いまだ使えることも多いです。
また、手法面より考え方がすごく使えますね。今日はその品質工学の基本の「損失関数」について考察してみます。

損失関数

 損失関数はかつて品質工学の書籍の最初に載っていました。損失関数→動特性→静特性とい順番が多くなっていました。 詳しくは述べませんが、「この順番めっちゃくちゃわかりにくいよね?」と意見が多くなって、静特性→動特性(損失関数は省く)という傾向が多くなってきたようです。
 ではなぜかつての書籍はこのような順番になっていたのでしょうか?これは品質工学の考え方の基本の順番になっているからだと考えます。
品質工学についてはいろいろ論じたいことがあるので、まずこの損失関数について考えたいと思います。

損失関数って何?

 ある基準値を守っていればいいというものではなく、基準内でも「いいところを狙って」いけばよいことがある。基準を超えても急に悪化するのは悪い設計だ。ということです。
もう少し例をあげてかみ砕いてみると

  • ルールを守っていれば何してもいいわけじゃない。ルール以上のことをすることは素晴らしい
  • ルール破ったからどうなっても知らないという発想はダメよ

 ということです。これが社会全体の話として考えるのが損失関数のポイントです。ルールを超えたら罰を受けるのではなくて、社会全体の損失があがるということです。 例えとしてはやや不適なので別の例をあげます。

ダムの例

 大昔にある少年がダムに見学にいきました。その時に説明した大人はこう言っていました。

  • 大雨の量は計算できる
  • このダムは最大の雨が降っても問題ないように設計されている

それに対して少年はこう質問しました。
「計算以上の雨が降ったらどうなるの?」
その問いかけに対して大人は
「最大で計算しているからそれ以上の雨は降りません」
という回答でした。その子供は納得できませんでした。あえて何度も問いかけましたが回答は変わりませんでした。
その子の問いかけは「計算がすべて当たるわけではない、それが外れた時どうなるの?」ということです。 その場でその問いに答えてもらうことができませんでした。
 そして、その数十年後、長じてエンジニアとなった風太郎は品質工学でその回答を考えるための方法に出会いました。

損失関数の考え方とその応用

 損失関数は製造工程の考え方という説明が多くなっています。しかし、田口博士は「社会損失」という言葉を使っているので、社会損失の面から考えます。

ダムに対して想定雨量以上の雨が降った場合どうなるか?

 具体的には風太郎にはわかりません。しかし、その場合どうするか?考えることが大事だ!ということはできます。「想定以上の雨が降ったから決壊しました」では済まされないということです。 もし、そのようなことを考えるエンジニアは処罰されるべきでしょう。
 想定以上の雨が降った場合にどのような被害があるか?それを軽減するにはどうしたらいいか?あらかじめ設定しておくことが大事になってきます。

そのほかに想定される例

 例えばスマホの充電器です。昔の充電器は電流が少ないものがありました。実際「やらたら充電に時間かかるんだけど?」と相談されて、その充電器の電流値を見ると非常に小さいものでした。 そのために充電に時間がかかったのです。
一見「一見当たり前じゃん」と思われるかもしれませんが、想定以上の電流値を要求された場合に、発熱や発火にならないように設計されているということです。ちゃんと設計しないと発火など発生してしまうかもしれません。

さらなる応用

 前述の例は「数値」として表した例です。そのほか使われ方の想定以上(ルール破り)やノイズも考えるべきでしょう。いま思いついたのは下記のとおりです。

  • 回転中に洗濯機の蓋を開けようとしても開けられない。(昔の洗濯機は開けることができて脱水中に手を入れると骨が折れる可能性あり)
  • 扇風機のカバーは指が入らないような隙間(昔は簡単に指が入りました)
  • ヒータにはリモコン機能を付けない(ノイズにより意図せず電源が入る可能性があります)

 など無数にあります。

It's common seance(そんなの当たり前だろう!)

 上記のようなことは「そんなの当たり前だろう」と言われることばかりです。まさにその通りで損失関数という言葉を知らなくてもできます。しかし、どのような場合でも出来ているわけではないので、「損失関数」とわざわざ言う必要があったと考えます。