Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

AI・機械学習の活用におけるソフトウェア工学の今後の課題~ノンプログラミングで作成する予測APIの事例から~

1,744 views

Published on

ソフトウェア・シンポジウム2017 WG13で発表したプレゼン資料です(付録として、ディープラーニングの場合とnode-redで呼び出した場合も付け加えています)

Published in: Data & Analytics
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

AI・機械学習の活用におけるソフトウェア工学の今後の課題~ノンプログラミングで作成する予測APIの事例から~

  1. 1. AI・機械学習の活用における ソフトウェア工学の今後の課題 ~ノンプログラミングで作成する予測APIの事例から~ 筑波大学大学院 ビジネス科学研究科 岡野 道太郎 1 ソフトウェアシンポジウム 2017 宮崎 WG13
  2. 2. 背景・問題意識 • AIを活用したシステムと活用しない方法では開 発方法や管理すべきポイント等が異なる – 開発工程:設計・実装/テストの意義 – 品質への影響:データの影響度 • AI活用システムの要求仕様研究を踏まえ、要求 仕様以降の工程での相違点を議論する – システム開発の実例:AI版酒屋倉庫問題 • 機械学習による予測API作成 – 従来のソフトウェア開発/AIとの違い • これらの議論を踏まえ、ソフトウェア工学の今後 の課題について考察する 2
  3. 3. アジェンダ • AI版酒屋倉庫問題の事例 – AI版酒屋倉庫問題とは – 機械学習の利用例 • SPSS Modeler→クラウド(IBM Bluemix)へAPI公開 • 事例から見た「従来」との相違点 – 従来の開発との相違点 – 従来のAIとの相違点 • 今後のソフトウェア工学 – AIブームが続いた場合 – AIブームが終わった場合 3 普通プログラミング しますが、わざとノン プログラミングの例 付録1:CNN(ニューラルネット) 付録2:SPSS予測API呼び出し部分 付録3:node-redによるAPI呼び出し
  4. 4. AI版酒屋倉庫問題(1) • そもそも、酒屋倉庫問題とは? – 酒屋倉庫問題とは,情報処理[1]に記載されてい る「ある酒類販売会社」(以下酒屋と記す)におけ る「受付係の仕事(在庫なし連絡,出庫指示書作 成,在庫不足リスト作成)のための計算機プログ ラムを作成する」という問題である. • 今回は、「受付係」の「出庫指示書作成」業務 について考える – 出庫依頼に基づき、倉庫の酒を出庫する指示書 を作成する [1]山崎利治,共通問題によるプログラム設計技法解説, 情報処理Vol25 No9(1984). 4
  5. 5. AI版酒屋倉庫問題(2) • 酒屋倉庫問題では – (先入先出等の)出庫方法の指示はない – 「倉庫内のコンテナは出来るだけ最小にしたい」とい う記述がある • そこで、出庫方法に以下の指定をつけたものを 「AI版酒屋倉庫問題」とする – できるだけコンテナが空になるようにする – その際、1日でも早く、コンテナが空になったほうが望 ましい • 何が問題で、それがどうAIと関係するのか? – 混載のとき問題で、そのとき売上予測が必要となる 5 売上予測にAI・機械学習
  6. 6. • 具体例 • これだけの情報から判断すると・・・ – コンテナ1は7日後、コンテナ2は3日後に空になる – コンテナ2から酒Bを出荷したほうが早く空になる可能性大 AI版酒屋倉庫問題(3) 6 ・コンテナ1に、酒Aが2本、酒Bが2本ある ・コンテナ2に、酒Cが2本、酒Bが2本ある ・酒Aは1週間(7日)おきに2本売れる、 ・酒Cは3日おきに2本売れる ・今、酒B 2本出荷の依頼が来た ・コンテナ1、2どちらから出荷したらよいか コンテナ1 コンテナ2 ● ● ● ●酒A:7日おき に売れる ● ● ● ● 酒B 酒C:3日おき に売れる
  7. 7. AI版酒屋倉庫問題(4) • 追加情報 • この条件が付加された時どちらのコンテナ? – コンテナ1 • 一番早く空になるコンテナを知るには – 混載されている酒が売り切れる日の予測が必要 7 酒Aが売れるのは毎週金曜日である 今日は木曜日 昨日、酒Bが売れた
  8. 8. 機械学習による解決 • 手順:学習済みモデルが無く、作成する場合 – (1)売上予測の機械学習プログラムの設計・実装 – (2)売上データを元に機械学習を実施 – (3)機械学習した結果が十分な予測精度を持つか 評価する – (4) 十分な予測精度が得られた場合,実稼動する. • すなわち,機械学習を行い,十分な予測精度を持った システム(「学習済みモデル」)を用いて売上予測する – (5)環境変化に対応する場合には,新たな売上 データを用いて再度学習する→(2)へ 8 学習済みモデルがあれば、ここから
  9. 9. (参考:機械学習の手法) • 手法の選択 • 教師データの有無 – 教師あり学習 – 教師なし学習 – (半教師あり学習) 9 実際に行動を起こし、そ の結果を評価・良いもの を学習する「強化学習」 もある 図はSVMの場合 SVMと異なり(クラス に分けるのでなく) 類似性で分類する 場合もある (クラスタリング)
  10. 10. 機械学習の手順 (1)機械学習プログラムの設計・実装 • 手順(回帰の場合) – 欲しい結果である目的変 数を決める • 今回は売上本数 – 目的変数を説明するであ ろう変数(=説明変数)を とりあえず決める • 前の売上までの間隔 – 機械学習手法と、その手 法で利用する変数(ハイ パーパラメータ)を決める • 今回は線形回帰 • SPSSでここまでを作成 – 目的変数・説明変数設定 – 手法、ハイパーパラメータ 10 [1]機械学習を自動化するプラットフォーム DataRobot https://www.itnex.jp/datarobot/ 手法やハイパーパラ メータの決定支援ソ フトも存在[1]
  11. 11. 参考:機械学習の手順 (1)機械学習プログラムの設計・実装 • 手順(SVMの場合) – 欲しい結果である目的変 数を決める • 2本以上売れるかどうか – 目的変数を説明するであ ろう変数(=説明変数)を とりあえず決める • 前の売上までの間隔 • 曜日 – 機械学習手法と、その手 法で利用する変数(ハイ パーパラメータ)を決める • SVM • SPSSでここまでを作成 – 目的変数・説明変数設定 – 手法、ハイパーパラメータ 11 *畳み込みニューラルネット(CNN)については付録1
  12. 12. 機械学習の手順 (2)機械学習の実施 • 手順 – データを入手 • 今回はmydata.txtという CSVファイルを作成 – データ前処理 • クレンジングなど • 売上までの間隔を計算 – 機械学習の実施 • 実行する • ここまでを実施 – CSVデータの入手・設定 – 機械学習実施 12 *詳細の手順については、以下のブログ参照 SPSSで、機械学習させるまで http://ameblo.jp/smeokano/entry-12278125148.html
  13. 13. 機械学習の手順 (3)機械学習結果の評価 • 手順 – 結果を評価基準に基づ き評価(不十分→(2)へ) • 決定係数、P値など、手法 によって評価基準がある – 評価結果上、十分であ れば、学習済みモデル として保存 • SPSSでここまでを実施 – 評価を見る 13 学習済み データとして 保存
  14. 14. 機械学習の手順 (4)学習済みモデルの稼動 • 手順 – 学習済みモデルをシス テムに組み込む(プログ ラミングする) • 今回はBluemix+SPSS を使うことで、この部分を ノンプログラミングで実現 している – 利用時、その学習済み モデルを呼び出し、予測 を実施する • SPSS+Bluemixで実施 – クラウドBluemix上でイン スタンスを作成 – インスタンスに学習済み モデルを組み込む – 利用時はREST API呼出 14 *呼び出しプログラムは付録2 node-redによる呼び出しは付録3
  15. 15. 従来の開発との相違点 従来の開発の流れ • 環境変化時 – 再設計・再実装 機械学習による開発 • 環境変化時 – 追加学習・学習のやりなおし 15 金曜日に 買っていた客 が引っ越した 学習済みモデ ルの呼び出し は従来と同じ
  16. 16. 従来のAIとの相違点 従来(エキスパートシ ステム等) 統計的機械学習・ディー プラーニング 動作原理 ルールから演繹的(論 理的)に導く データから帰納的に学習 する 開発に必要なもの ルール (過去の)データ 開発上の課題 ルールが十分か? データが適切か?[1] フレーム問題[2] 起こる それほど発生しない[2] 現在での適用例 チャットボット 画像認識(文章作成[3]) 16 アブダクション はまだない [2]松尾 豊:AIの未解決問題とDeep Learning https://kaigi.org/jsai/webprogram/2014/pdf/785.pdf フレーム問題は、状況に応じて適切な知識を記述することができないという問題であり、環境にお いて何を表現すべきかに関わる。これを DeepLearning の観点から考えると、さまざまな現象を記 したデータがあり、そこにおいて何を表現すべきかという問題をボトムアップに解くのであれば、表 現されたものの範囲外にあるような事象というのはそれほど発生しないはずである。 [3]Goo オシエル https://oshiete.goo.ne.jp/ai [1]ヘイト発言のAI「Tay」と女子高生AI「りんな」の差 http://wired.jp/2016/03/28/tay-gets-autopsied/ データはモデルの構築 にも検証にも用いる (クロスバリデーション)
  17. 17. 今後のソフトウェア工学: AIが続く場合 • 要求を満たしているか、テスト(評価)で確認 – テストが重要:AIでは論理的な設計レビューに限界 – ただし、テストで十分な精度が得れば良いとは限らない • そのテストデータのみ良い結果の可能性(過学習) • 学習済みモデルの品質保証 – 環境が変われば、学習内容も変える可能性 – 学習後、修正が入った場合のテスト[1] • データの種類が不足したとき – オープンデータの利用:APIで呼び出せれば活用可能 – 特徴を見つけないといけない場合も:Feature Engnieering • AIは、論理的に説明できない分野へ、データによる問 題解決手法を持ち込んだ点で重要 17 [1]専門家が警告! 人工知能システムのテストは「カオス」 http://itpro.nikkeibp.co.jp/atcl/watcher/14/334361/050800832/ 感性・野性 入出力は画面と は限らないので APIが増えた
  18. 18. 今後のソフトウェア工学: AIがブームで終わる場合 • 背景にあるソフトウェアの複雑性は不変 – ブラックボックス化:テストの重要性 – 複雑性→手作業煩雑:自動化へ期待 – 自動化による生産性向上/手組困難 • プロセスからコンポーネントへ – 昔:フレームワーク(MVC)利用。画面遷移重要 – 今:コンポーネント化。API呼出&マッシュアップ • APIの中身はブラックボックス • 要求から全テストケースを示し、要求をチケットとする開発 に移行する可能性 – この場合、テストを通れば、プログラミングでもAIでも、自動生 成(超高速開発・形式仕様の自動定理証明)でもよい – AI:データ、計算量の多さ/ボトムアップアプローチにも限界? – ただし手組は既に限界→形式仕様における自動化のほうが… 18 要求= 問題の 定式化
  19. 19. まとめ • 要求工学は、課題の定式化を行う – データによる定式化もあり得る 19
  20. 20. 付録1:CNN(ニューラルネット) • KerasによるCNNの例(酒屋倉庫とは無関係) 20 引用元:https://github.com/fchollet/keras/blob/master/examples/mnist_cnn.py *https://deepage.net/deep_learning/2016/11/07/convolutional_neural_network.html ゅうにゅうりょく 評価 入力層 中間層 出力層 コンパイル 学習 モデル の作成 (設定) データ作成 各層の意味 【詳細は*に詳しい】 入力層 入力(input_shape)がある 中間層 畳み込み層 (コンボリューション層) →Conv2D プーリング層 →MaxPooling2D 過学習を防ぐ →Dropout 出力層 全結合 →Dense
  21. 21. 付録2:SPSS予測API呼び出し部分 21 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script> $(function(){ $("#bt1").click(function () { $.ajax({ type: "POST", url: “https://ibm-watson-ml.mybluemix.net/pm/v1/score/story3?accesskey=(ここにAccess Keyが入る)", dataType:"text", headers: {'Content-Type': 'application/json;charset=UTF-8'}, data: JSON.stringify({ "tablename":"mydata.txt", "header":["intv","buy"], "data":[[7,2]] }), success: function(msg){ $("#kekka").text(msg); }, error: function(XMLHttpRequest, textStatus, errorThrown){ alert(textStatus); } }); }); }); </script> </head> <body> 予測(下に結果)<BUTTON id="bt1">実行</BUTTON> <div id="kekka"></div> </body> </html> この画面
  22. 22. 付録3:node-redによるAPI呼び出し • 以下のように設定して、timestampの前の=>をクリックする と、SPSSのAPIを呼び出し、結果をdebugに表示する 22 Accesskey は途中で 切れてい る

×