2017年6月4日日曜日

機械学習に取り組むために大切なこと

あるイベントでMAGELLAN BLOCKSについて説明したことがキッカケで、福岡本社まで来ていただいた製造業の社長。その会社の製品は、非常に斬新な方法で工場の電力消費を抑えるものだった。取り付けさえすれば効果は出るんだけど、取り付けないとどのくらい効果があるのか説明しずらい。

なので、BLOCKSを使って「どのくらい効果があるのか」を、事前に予測できないか。というのが相談だった。

話を伺うと、「どういうことが結果につながるのか」ということについて、当たり前なんだけど、かなり深い知識と経験があるのはハッキリとわかった。

なので「きっと、できると思います。だから、ぜひやってみてください。」と回答した。
そしたら、表情がちょっと曇った。「え?やってくれないんですか?」

なので、機械学習に取り組む人たちにとって大切なことについて説明した。



1.自分たちで取り組む


機械学習に取り組みたいほどの内容というのは、たいていの場合何かをドラスティックに変えることだ。

確かに世の中、機械学習のエキスパートはいる。

お願いしたら色々やってくれると思う。でも、色々やってもらうということは、色々わからないまま進むということだ。

ある企業は、1年以上にわたりエキスパートを起用して、すごい結果を出せるようになってきた。で、どうなったのかというと、やっぱり自分たちは以前と変わらず、大したことはわかってなくて、そのエキスパートがいないと何もできない状態だった。

自力で考えることができないというのは、とても危険な状態だ。相手の都合でスケジュールは決まる。相手の都合で、できること、できないことが決まる。さらには機械学習で何事ができるようになった時、その先の未来を自力で見抜くことができない。

相手がコンサルだったりSI会社だったりすると、会社の情報は漏らさないとしても、そこで得たノウハウは同業者に持っていく可能性もある。


2.プログラムよりデータ、データより業務、業務より社会


機械学習の勉強をするために、プログラミングからはじめている人がいる。仕組みを理解することは重要だと思う。でも同時に、やればやるほど、重要なのはプログラムではないことに気がついてくると思う。

ニューラルネットワークのプログラミングには、人それぞれの流儀があるのではなく、実績のあるネットワークモデルというのがあって、課題にあわせて適切なものを使っていく。そしてニューラルネットワークを使った仕組みは、与えられたデータから特徴を見つけ出し、そこから何かを予測したりするものなので、どんなデータを与えるかで予測精度は大きく変わる。

天候が大きな影響を与えているものもある。キャンペーンが重要なのかもしれない。材質が影響を与えているかもしれない。重要な因子は何か。そこにつきる。

ありがたいことにニューラルネットワークは、重要度の低い因子を入れると、重要度が低いのを見抜いてくれる。(だからといって、なんでもかんでも与えると計算にめちゃくちゃ時間がかかってしまうんだけどね。)だから、因子の選別に神経質になるよりも、とにかく影響の強い因子を上手く見つけること。

そうなると因子の見極めが重要なわけだ。つまり販売数を予測するのであれば、なぜその商品を人は買うのかということに精通している必要がある。機械の効果を予測するのであれば、その機械がやっていることに精通していなければ、どんな因子が重要かなんてわからない。

だからこそ、業務に対する深い知識が必要なのだ。そして、その業務というやつは、お客さんの気まぐれな気持ちに左右されているかもしれない。天気や自然の影響を受けているかもしれない。

ある小売店で、昼過ぎに雨が降ると売上が全く伸びなくなる。と聞いた。だから降水量を因子にして売上予測をしてみた。結果は、なんとなくモヤモヤした感じだったので、試しに日照時間を入れてみた。

そうしたら、なんと降水量よりもはるかに高い予測ができるようになった。

何かの本で読んだんだけど、人間の脳は、新石器時代からあまり進化していないらしい。つまり現代人は、新石器時代の人が感じるように感じ、新石器時代の人が行動するように行動しているらしい。

日照時間が影響を与えているというのは、澄み切った青空で人は行動したくなり、曇り始めると行動を抑え始める。雨や暗闇は行動しない。とも言える。長く食物連鎖の中間にいた人類は、捕食される生き物でもあったわけだ。新石器時代とかわらない意識があるのだとしたら、そういう感性があるのだとも言える。

こんなぼくの想像が、真理をついているのかどうかはわからない。でも機械学習に取り組めば取り組むほど、こうした人間という生き物の心理とか、社会の感性というか、そういうことがとても重要だと思えるようになってくる。

それは、つまり社会は経済の中にあるのではなく、経済が社会の中にある。ということにつきるのだと思う。人は、経済合理性だけで動いているのではない。人という生き物の感性を理解すること。そこに最適な因子を見つけるヒントが隠されている。


3.お金をかけたら負け


そうやって機械学習を駆使して、いままで想像もできなかったような結果を出すことができたら、おそらくビジネスの価値は飛躍的に高まるかもしれない。

100億円の価値を生み出すなら、30億円かけてもいいんじゃないかとか考える人がいるかもしれない。

でも30億円でも60億円でもいいんだけど、競合企業が全く同じことを数千万円でやってしまったらどうなるんだろう。数億円のPOCが、数百万円で行えたらどうなんだろう。その段階で勝負があるんじゃないか。そう思う。

金額が大きく違うというだけではない。多額の金額を投資した仕組みは、たいていの場合コンピュータの仕組みだけでなく、関わっている体制も複雑だ。だからシンプルで柔軟な仕組みと、複雑で巨大な仕組みは、変化への対応速度でも大きく差をつけられてしまう。


BLOCKSが実現していること


ぼくらは、未来は機械学習を必要としていると確信している。だからこそ、多くの人が機械学習を使えるような時代に向かいつつあるのだと思っている。つまり、機械学習はコモディティになっていくのだ。機械学習は、誰もが取り組めるものになっていなくてはならないのだ。

きっと、専門家しか取り組めないような仕組みを、未来は受け付けないだろう。

だからこそのBLOCKSなんだ。

BLOCKSを使うには、学習データを準備するだけでいい。ある商品の過去の販売数と、その商品の売上に関連すると思われる因子を、CSVファイルにまとめるだけだ。

そのCSVファイルをBLOCKSに見せれば、自動的に学習が行われる。ニューラルネットワークのチューニングは、BLOCKSが自動的に行う。だから、隠れ層の数を調整したり、細かな数値を微調整しながら最適解を見つける作業もいらない。

学習が終わったら、画面にブロックを置いて線でつなぎ、学習させたばかりのモデルを選択するだけ。

しかも初期費用無し、月々10万円から使える。


話は冒頭の製造業社長の話。

そんなことを説明して、それから言った。

ぜひ自分たちで取り組んでください。必ず結果は出ます。そして、その結果は、ぼくらも真似ができない、誰のものでもない御社の財産になるはずです。

なんとなく、開発してくれるならお金はいくらでも出す。という雰囲気だったのに、ぼくらが突っぱねたと思われたかもしれないなと、その後も気になっていた。

そうしたら数週間後にメールが。

なんと誤差0.03%で予測ができるようになったとのこと。
BLOCKSサイトのドキュメントで勉強して、自力で取り組んで、自力で出した結果だ。
なんか、とても嬉しかった。

BLOCKSの周りには、そんな人たちがたくさんいる。

BLOCKSを前に、自社製品のこと、利用者のこと、商品を買っていく人のこと、その生活、社会のこと。そういうことをキチンと考え、因子を取り出し、BLOCKSに見せていく。そして、驚くほどの高い精度で、商品や、人や、社会を予測していく。

そんな人たちが多くなっていくってことは、未来って思ったより素晴らしいものになっていくんじゃないか。なんか、そんな風に思えてしかたない。

ぼくら自身、BLOCKSから、教わっていることなんだよな。

0 件のコメント:

コメントを投稿