匠の技をプログラムする(メカAG)

匠の技をプログラムする(メカAG)

今回はメカAGさんのブログからご寄稿いただきました。

匠の技をプログラムする(メカAG)

今まで人間が手作業で作っていたものがある。それを機械に置き換えたい。まず普通に「これこれこういうことをするプログラムを作ってください」と言われる。やることは複雑だけど、淡々とコーディングしていけば、別に難しいことじゃない。

で機械を動かしてみる。なんとなくそれっぽい動きはするんだけど、全然だめ。まともに作れるケースの方が少ない。不良品率60%とか、笑える。目標値と何桁も違うんですけど。高い性能の機械を導入したのに「こんなはずでは…」となる。

当然なんでうまくいかないか分析するわけですな。調べていくと、確かにこんなケースは組み込んであるアルゴリズムじゃ処理できないとわかる。じゃあなんで人間は処理できてるんだ?と。

   *   *   *

で、作ってる人に聞いたり、作ってる所を見たりして研究する。「ああ、そういうときはこうするんだよ」と事もなげに答えたりする。「(だったら最初から教えろよ…)」と。

でも、これはいじわるして最初に隠してたわけじゃない。作ってる人間はそれが当たり前になってしまってるから、重要なことという意識がないんだよね。

逆に機械が動作しているところを見てもらったりもする。こうやってるんですけど、なんかうまくいかないんですよね…と。すると「ああ、そこはこうしなきゃダメだよ」と。だったら最初から(ry。

勉強もそうだけど、理解できてる人は、理解できない人がどこでつまづいているのかわからない。

   *   *   *

あと機械では人間とはまったく同じことはできないから、機械が得意な別な方法でやる。飛行機が鳥のように羽ばたかないのと同じ。

でもそうすると人間が作る場合には起きなかった独自の問題も出てくる。それはしょうがないから自分たちで工夫して、問題の回避方法を考えるしかない。

そういうこと一つ一つ積み上げていくと、そのうち不良品率が下がっていく。人間よりも不良品率が下がった時は、内心「ざまぁみろ!」ですな。表面的には「親切なご指導のお陰で、ようやくここまできました」と謙るけど。

一歩一歩の前進。部屋の掃除を思い浮かべてみれば分かるけど、まず大きなゴミを片付けないと、小さなゴミの片付け方は分からない。一気に同時に全部やろうとしても無理。アルゴリズムの改良も、大幅に不良品率が下がりそうなケースから順に改良していく。そうしないと小さな改良点は見えてこない。いずれそういう小さな部分も改良しなければならないけれど、順番に。だから時間がかかる。

経験の習得に時間がかかるというのも、こういうことなのだろう。最初から完璧を求めて細かく教えても覚えきれないから、最初はいろいろなことを大目に見ている。上達するに連れて要求水準も高度になってくる。「おまえはそんなこともできないのか、この仕事を何年やってるんだ」と。

   *   *   *

どうやっても下回らないこともある。やっぱ人間にはかなわない。でもそれは人間の中でもトップクラスの熟練者にかなわないというだけで、人間の作業者にもピンからキリまでいる。トータルでは機械の方が勝つ(というか勝たないと、お金がもらえない。「何のために機械化したと思ってるんだ」と)。

なんで人間に勝てないか?すごくレアなケースなんだよね。イレギュラーというか、「まさかそんな方法でやってしまうか…」と。体の動きは人間の方がはるかに自由度が大きい。機械(ロボット)はあらかじめ想定した動きしかできない。プログラムで改良できるのもあくまでその範囲。

人間がやってるのと同じ事を真似しようとすると、メカの追加が必要になってしまう。モータを増やしたり。でも確率的にあまり起きない状況にまで対処するために、そこまでコストはかけられない。

ソフトウェアの部分も同じで、その処理をするために、さらに1年ぐらいかけてプログラムを開発すれば可能かもしれないけど、やっぱ滅多に起きないケースに対処するのに、そこまで開発コストはかけられない。

なので最後の「あと一歩」というところでは人間に勝てない。というかどう考えても人間の頑張りすぎ。「わりに合わない程技術を磨いた人間」を達人というのだろう。

   *   *   *

機械は勤勉だよ。体で覚えようとする。まあ、実際に勤勉なのはプログラマだが。忍耐力がなければプログラマなんてやってられない。精神修行に持ってこい。自己との戦い。コンピュータはプログラマの投影でしかない。鏡に写った自分と戦うわけだ。

やっぱね~「どうすればいいか、教えてください」というよそよそしい態度だと、最初の説明のようなざっくりとした部分しか学べないと思うんだよね。間違いじゃないが実践レベルとは程遠い。失敗を繰り返しながら、見よう見まねで「どこが悪いのか?」を研究しようとするプロセスの中で、達人から技術や経験を引き出せる。

執筆:この記事はメカAGさんのブログからご寄稿いただきました。

寄稿いただいた記事は2014年06月26日時点のものです。

  1. HOME
  2. デジタル・IT
  3. 匠の技をプログラムする(メカAG)

寄稿

ガジェット通信はデジタルガジェット情報・ライフスタイル提案等を提供するウェブ媒体です。シリアスさを排除し、ジョークを交えながら肩の力を抜いて楽しんでいただけるやわらかニュースサイトを目指しています。 こちらのアカウントから記事の寄稿依頼をさせていただいております。

TwitterID: getnews_kiko

  • ガジェット通信編集部への情報提供はこちら
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。