見出し画像

ノンプログラマにSVMの仕組みを理解してもらおうとした話(前編)

 これはとある研修会社がノンプログラマにもAIの仕組みや事例をクライアントに理解してもらおうと奮闘するお話…。
 
 やれやれ、いつまで続くんだかこの状況は…。
 
 もはや日常と化してしまった報道にため息をつき、スイッチを切った。マスクの在庫を気にしたり、視線を気にしながら家を出るということはもっぱらなくなったが、それでも一年前の生活とはワケが違う。このままじゃもはや元の生活を忘れてしまうんじゃないか…。大切なことはわかっているが耳にタコができるくらい聞いた報道にうんざりして、無意識的にテレビを切ってしまうのは仕方がないと思いたい。
 さてこのあとどうするかとぼんやり考えていたところでテーブル脇から着信音がした。

 え?ノンプログラマに機械学習の仕組みを理解してもらえるようなDIY(実際に手を動かしながら理解を深める演習)を作ってほしい…?

 上司からの電話は今までの要望よりもさらに難易度の高いものだった。我々の研修ではAIに関して「自然言語処理」や「画像認識」といった大枠からビジネスにつなげられるようなDIYやレクチャーを行うことがあったが、それらはAIそのものの理解とは違ったものだった。しかし今回は「機械学習そのものの仕組み」をプログラミングに精通していなくても理解できるようにとのこと。

 プログラミングわからなくても機械学習の仕組みが理解できるようになのかぁ...

 きっと詳しくない人でもプログラミングとAIが切っても切れないのはわかるだろう。しかし、ノンプログラマであっても、これからはAIとはどんな仕組みで学習しているかの大まかな理解はイノベーションを起こすうえで必要な基盤になるのは間違いないだろう。うむ、有意義なDIYになるはずだ。私はとりあえず、機械学習でも古典的かつ典型的なSVM(サポートベクターマシン)の仕組みを理解してもらえるDIYを考えることにした。

 SVMは大量のデータがあったときの、2種類に適切に分けるためのAIの学習方法である。AIが複雑なデータを分類したり、判断する際の材料に使われる。詳しくは以下の記事を読んでみると良いかもしれない。

https://www.sist.ac.jp/~kanakubo/research/neuro/supportvectormachine.html
 
(これを読んでくれている読者のみなさまも、この記事を読めば大方SVMとはなにかを理解してもらえるでしょう)

 プログラミングにおける大きな壁のひとつが独自の言語である。ある文系出身の知り合いはコードをちらっとみせた途端に「これが地球外生命体との交信なのか…」と思考を停止してしまったし、英語が苦手な友人は「日本語でおk」と匙を投げたくらいである。正直ここまでの拒絶反応はDXが進むこれからの世の中においてマズすぎるように感じるが、プログラミング言語に対して抵抗感が強い人が多いのは間違いない。そんな人にもまだ抵抗感が少ないツールがある。そう、Excelだ。
 SVMは機械学習の中でも古典的な手法であり、簡単なものであれば手計算でもできなくもない。ただデータが増えれば増えるほど厳しくなってくるのでExcelに頼りたいのだ。Excelであれば数式ツールを使うだけで、コーディングをする必要はなくなる。計算式を追いながら表を作成し、出来上がったツールがこれだ。

スクリーンショット 2020-11-17 15.30.32

スクリーンショット 2020-11-17 15.36.50

 画面に映っている表は四則演算で全てすんでいる。計算量が多いだけで何一つむずかしいことはしていない。ただしひとつ難しい機能「ソルバー」を使っている。SVMの最終目標はマージンの最大化である。しかしこの最大化には大量のパターンが存在する。というのも、変数が複数個ある計算式における最小値は「局所的最適解」と「大域的最適解」という二種類が考えられるからだ。

画像3

                 出典:http://highfai.com/blog/?p=2241

上の画像を見てほしい。最小の値を探したいとなったとき、①の位置にいるボールは②まで下っていく。②の位置でボールはそのさきが上り坂であることから、止まってしまう。このようにSVMも谷底に来ると、ここから先は今より高い(大きい値)であると認識して最小値だとおもってしまう。しかし実は山を越えた先にはもっと深い谷があり、そこが本当の最小値(大域的最適解)なのである。僕らはこのグラフを天の位置からみることができるので、ボールに「そこじゃないよ!もっと先にいかないと!」と言ってあげたいが、もちろんボールからはそんなのは見えない。よって、SVMもたとえ谷底に来たと一度なっても、無理矢理それ以上のところまで調べる必要があるのだ。そのために「ソルバー」という機能は必要となる。逆に言えば、これがただ計算するだけでは求められない、SVMがAIと呼ばれる所以でもある。

 一通り仕組みを理解してもらえただろう!と満足して上司に見てもらったところ、返ってきた反応は渋いものだった。
 
 そもそも数式が難しいから理解できないのでは…。

 な、なるほど、たしかに…。こんなの見せられてもポカンとしちゃうか…。我々の使命として、受講者と伝えるべき内容を遠ざけることはあってはならないのである。とするとアレルギーを促進するような内容であってはなおさらまずい。
 
 しかし困ったな…。これ以上どうやったらDIYとしてSVMを体験してもらえる…?

 (次週に続く…)


この記事が気に入ったらサポートをしてみませんか?