MLSEの来し方を振り返って


[MLSEアドベントカレンダー](https://qiita.com/advent-calendar/2018/mlse)最終日の投稿です。

メリー・クリスマス。丸山＠PFNです。MLSEアドベントカレンダー最終日の記事をお送りします。「今年の振り返り」ということで、MLSEの来し方を振り返ってみましょう。公式に、というわけではなく、丸山個人が、それぞれの活動を通して、どのようなことを感じたかを記してみたいと思います。

# そもそもの始まり -- 2017年5月＠南山大学

私にとってのそもそもの発端は、2017年5月に南山大学の青山先生を訪ねたことです。私はその前年の暮からあるお客様のプロジェクトで、大量のセンサーデータから予測モデルを作る作業をしていました。私はもともと研究者ですが、企業の研究者として、お客様のプロジェクトに参加することも多々あり、ある程度経験はあったつもりです。しかし、深層学習を使ったプロジェクトでは、プロジェクトの運営の仕方とか、成果物の管理とかが、試行錯誤だったので気持ち悪さを感じていました。

私は体系的にソフトウェア工学を学んだことは無いのですが、IBMコンサルティング事業部にいた2005年に、IPAから委託を受けて[ソフトウェアアーキテクチャの調査研究](https://ipsj.ixsq.nii.ac.jp/ej/index.php?active_action=repository_view_main_item_detail&page_id=13&block_id=8&item_id=21262&item_no=1)をしたことがあります。その活動を通して、普段研究者としてはなかなか考えることのない、ステークホルダの間の調整とか、非機能要件の重要性など、ソフトウェア工学の成果の重要性を感じていました。機械学習を用いたシステム開発は、いろいろな意味で今までのシステム開発と違うのですが、それでもソフトウェア工学が積み重ねてきた知見を最大限利用しなければならないと思いました。それで青山先生にご意見を伺いたかったのです。

青山先生の直感は、「機械学習応用システムでは妥当性検証(validation)がより難しいだろう」ということでした。妥当性とは、システムがお客様のビジネスニーズを満たしているか、ということです。でも、「まずはソフトウェア工学のコミュニティにこの問題意識を提案して、どんな意見が出るか聞いてみましょう」ということで、その年のソフトウェア工学シンポジウムでパネルディスカッションをやることになったのでした。


# 2017年8月 ソフトウェア工学シンポジウム＠早稲田大学

今思えば、このソフトウェア工学シンポジウムでのパネルディスカッションがMLSEの始まりです。青山先生の司会で、NII石川先生、DeNA濱田さん、それに丸山がパネリストでした。私は、1960年代に「ソフトウェア危機」が叫ばれてその結果としてソフトウェア工学ができたように、今が「機械学習工学」をスタートすべきだ、という立場でお話ししたように思います。

このパネルに参加した今井さん(bonotakeさん)の[Facebookへの投稿](https://www.facebook.com/bonotake/posts/1504893489556668)がMLSE開始の直接のきっかけになりました。今井さんの呼びかけに、NII石川先生、吉岡先生、ブレインパッド太田さん、レベルファイブ土居さんが中心となって、MLSEの活動が始まりました。今井さんの強いドライブがなければ、MLSEは今のような形になっていなかったと思います。今井さんに感謝！です。


# 11月 SE4ML first meetup＠PFN

MLSEの最初の活動が、PFNの多目的室（今はなくなってしまいましたが）で行われたmeetupです。ここでは、機械学習応用システム特有の難しさや、それに対して既存のソフトウェア工学の手法が適用できるのか、というようなテーマで、機械学習が専門の方々、ソフトウェア工学が専門の方々が50名ほど集まって、グループに分かれて侃々諤々の議論をしました。私のいたグループでは、見るからにソフトウェア工学専門、という方がいらっしゃったのですが、その方から、「機械学習効用システムにおけるインバリアント（不変量）って何よ？」と聞かれて、がーん、となりました。そんなこと考えたこともなかったからです。機械学習をやっている人たちの多くは精度命です。より高い精度が出せることが、自分たちの価値だと固く信じています。そういう環境にいて、「インバリアント？ 何それ？ 美味しいの？」みたいな反応の自分がいました。。

それ以来、機械学習におけるインバリアントは私にとっての重要なテーマになりました。今年の8月のソフトウェア科学会、それから12月の国際ワークショップiMLSEで発表した論文[Guaranteeing Deep Neural Network Outputs in a Feasible Region](http://research.nii.ac.jp/iMLSE/iMLSE_2018_paper_2.pdf)は、深層学習におけるインバリアントに対する、私の１つの答えです。


# MLSE発足前夜 2017年11月-2018年2月

2017年11月には、日本ソフトウェア科学会ソフトウェア工学の基礎研究会(FOSE)2017が福井県のあわら温泉で開催されました。ここでは、吉岡先生がポスターでMLSEの活動を紹介してくださいました。年が明けて1月には、情報処理学会ソフトウェア工学研究会のウィンターワークショップが広島県の宮島で開催されました。ここでは、少人数の集中的な議論が行われました。このあたりで、MLSEの主要な２つの課題、すなわち（１）システムの検証、品質や安全の担保をどうするか、（２）要求、開発から運用までのライフサイクルをどのように管理するか、が浮き彫りになってきたのではないかと思います。

2月には、「機械学習・ディープラーニングでPythonを使う嬉しさとツラミを分かちあう会」というなんだかわかったようなわからないようなタイトルのMeetupが開かれました。そもそも戦後高度成長期に育った私には「ツラミ」などという言葉は聞いたことがなかったのですが。。

大学時代私が所属していた研究室では、現在電通大教授の久野先生が博士課程にいらっしゃって、Cluなどの抽象データ型の研究をされていました。当時の久野さんの教えは、「強い型付けの言語を使いなさい。コンパイルエラーがなくなれば、それでほぼデバッグは終わるから」でした。もちろん、それでデバッグが終わるわけではないですが、それでも強い型のある言語の重要性は身に沁みていて、なので今でも私が一番安心するプログラミング言語はJavaです。機械学習の世界に来て、日々Pythonを使うようになって、いろいろと気持ち悪さを感じています。特にこのMeetupで指摘されたのは、深層学習でよく用いられる多次元配列のshapeの不一致です。訓練を何時間か走らせたあげく、shapeの不一致で異常終了すると本当にがっかりしますよね？ Shapeの一致を含めて静的に型検査をしてくれるようになったら、本当に有り難いと思います。

# 機械学習工学研究会正式発足！

3月の日本ソフトウェア科学会理事会で、機械学習工学研究会（略称MLSE）が承認され、4月から正式に活動を開始しました。日本ソフトウェア科学会は、電子情報通信学会や情報処理学会と比べるとこぢんまりとした学会ですが、その分小回りも効いて、このような研究会発足は比較的やりやすいはずです。

同じ4月には、UC Berkeleyの Michael Jordanのブログ[ArtificialIntelligence — The Revolution Hasn’t Happened Yet](https://medium.com/@mijordan3/artificial-intelligence-the-revolution-hasnt-happened-yet-5e1d5812e1e7)が公開されました。このブログで、Jordan教授は「新しい工学的ディシプリン」の必要性を説いています。土木工学や化学工学が物理や化学の知識を体系化して有効かつ安全に利用できるようにしたのと同様に、我々の"inference-and-decision-makingsystems"が有効で安全に使えるようにする知識の体系が必要だということです。まさに、MLSEが狙っていることではないでしょうか。

MLSEの最初の大きなイベントが、５月に一橋記念講堂で行われたキックオフシンポジウムでした。500名入る一橋記念講堂が、2階席を含めてほぼ満杯になり、さらにニコニコ動画でも中継され、多くの人が視聴してくださいました。MLSEへの期待が大きいことを実感しました。アクセンチュア工藤さんの基調講演を始め、杉山先生、有賀さん、久保さん、中島先生の講演はそれぞれ非常に内容の濃いもので、参加・視聴された方には大いに参考になったのではないかと思います。

このイベントからは特に、アクセンチュア工藤さんの「機械学習モデルのビジネス適用フロー」が衝撃的でした。機械学習をビジネスに適用するための、分析基盤の構築から始まる7つのステップを解説したものですが、その最後のステップはなんと「ジョイントベンチャーを作る」なのだそうです。機械学習応用システムを既存ビジネスプロセスの改善に利用する場合は別ですが、機械学習がなければできない新しいビジネスを創造する場合には、機動的に動けるジョイントベンチャーの形が最適だ、ということなのでしょう。なお、[当日の雰囲気をよく伝えるレポート](https://sig-mlse.wixsite.com/kickoff/report)をLeapmindの坂口真里奈さんが書いてくださったので、ぜひ見てみてください。


# ソフトウェア工学は機械学習の夢を見るか

今年6月には、鹿児島で人工知能学会全国大会が開催されました。この大会では過去最多の2,611名が参加されたそうで、人工知能ブームの絶頂期を感じました。MLSEはあくまでも「人工知能」ではなく、機械学習をソフトウェア開発の1手法として位置づける活動ですが、それでも人工知能学会に参加される方々にも興味を持っていただくために、MLSEの企画セッションを開催しました。この企画セッションでは、ソフトウェア工学の旗手としてマイクロソフトCTOの榊原さんに来ていただき、ソフトウェア工学側から見て、機械学習応用システムの開発・運用がどうあるべきかという話をしていただき、その後パネルディスカッションを行いました（[この企画セッションの報告書](https://jsai.ixsq.nii.ac.jp/ej/?action=pages_view_main&active_action=repository_view_main_item_detail&item_id=9516&item_no=1&page_id=13&block_id=23)は、人工知能学会誌11月号に掲載されています）。

この議論の中では特に、データの品質が話題になりました。榊原さんによれば、ソフトウェア工学ではデータベースの設計など「データの入れ物」についての議論はされるが、データの中身についてはあまり議論されない、ということでした。一方で、パネリストの太田さんは、訓練時と推論時のデータがずれてしまうことは実際上避けられない、と指摘し、データ品質の問題が非常に難しい問題であることを浮き彫りにしました。

このデータ品質の問題は、翌月に三浦海岸で合宿形式で行われたMLSEワークショップでも議論されました。このワークショップでは、1日目にポジショントーク、2日目にオープンスペーステクノロジ（OST）という方法論で議論しました。楽天の川口恭伸さんにファシリテーションをしていただきましたが、とても楽しい経験になりました。このOSTの1つのチームが「こんなデータはゴミだ」というトピックで、データ品質の問題を話し合いました。このデータ品質に関しては、何らかの形で指標化できないか、と考えています。


# MLSEの展開

今年の後半は、MLSEの活動がさらに様々な方向へ花開いたと思います。まず、8月に東洋大学で開催されたソフトウェア工学シンポジウムでは、キカガクの吉崎さんが「機械学習デプロイ入門」というワークショップを開催してくださいました。機械学習応用システムでは、訓練で作った訓練済みモデルを推論パイプラインに組み込んでデプロイしなければならないのですが、訓練時のシステム環境と推論時のシステム環境が異なるなど、いろいろと考えなければならないことがあります。

同じ８月、大阪大学で開催された日本ソフトウェア科学会大会では、大阪ガスから滋賀大学へ移られた河本さんに基調講演をお願いしました。河本さんは、初代の「データサイエンティスト・オブ・ザ・イヤー」で、大阪ガスでのデータ分析チームを成功に導いた方です。機械学習に限らず、データ分析を現場で使ってもらうためには大変な努力が必要なのだということを、経験された方ならではの迫力でお話しいただきました。

今年後半は、MLSEはイベントだけでなく、出版においても大きな進展があったと思います。10月には、日経ロボティクスが[機械学習工学特集](https://tech.nikkeibp.co.jp/atcl/nxt/mag/rob/18/012600001/00004/)でMLSEの活動を報告してくださいました。12月には情報処理学会の学会誌が機械学習工学の特集をしてくれました。これには、MLSEメンバーが全力で執筆しました。また、機械学習におけるユーザ・インタラクションというテーマで、HCIがご専門の東京大学五十嵐先生にもご執筆いただきました。全体として、機械学習工学の現状を俯瞰するよい内容になったのではないかと思います。

さらには、12月に奈良で、MLSEの初めての国際ワークショップ、[iMLSE](http://research.nii.ac.jp/iMLSE/)が開催されました。モントリオール大学のAntoniol教授、Khomh教授らが来られ、活発な議論ができました。


# 来年に向けて

来年もMLSEは積極的に活動していきます。皆様の積極的なご参加をお待ちしています。

- 1月 [ウィンターワークショップ](https://mlxse.connpass.com/event/107448/)@福島 -- 深層学習システムのテスト・検証がテーマです。
- 2月 [ソフトウェアジャパン](https://www.ipsj.or.jp/event/sj/sj2019/)@一橋講堂 -- 「AIセッション」と銘打たれていますが、AIの話ではなく、機械学習工学の議論をします。
- 3月 情報処理学会大会[機械学習システムのセキュリティ](https://www.gakkai-web.net/gakkai/ipsj/81/event/html/event/C-2.html)@福岡
- 6月 [JSAI大会](https://www.ai-gakkai.or.jp/jsai2019/)@新潟 -- 丸山が招待講演をします。また、企画セッションも行う予定です。
- 7月頃 MLSEワークショップ
- 10月 湘南会議、シンポジウム

それでは皆様、良いお年を！