AI・機械学習の活用における
ソフトウェア工学の今後の課題
~ノンプログラミングで作成する予測APIの事例から~
筑波大学大学院 ビジネス科学研究科
岡野 道太郎
1
ソフトウェアシンポジウム 2017 宮崎 WG13
背景・問題意識
• AIを活用したシステムと活用しない方法では開
発方法や管理すべきポイント等が異なる
– 開発工程:設計・実装/テストの意義
– 品質への影響:データの影響度
• AI活用システムの要求仕様研究を踏まえ、要求
仕様以降の工程での相違点を議論する
– システム開発の実例:AI版酒屋倉庫問題
• 機械学習による予測API作成
– 従来のソフトウェア開発/AIとの違い
• これらの議論を踏まえ、ソフトウェア工学の今後
の課題について考察する
2
アジェンダ
• AI版酒屋倉庫問題の事例
– AI版酒屋倉庫問題とは
– 機械学習の利用例
• SPSS Modeler→クラウド(IBM Bluemix)へAPI公開
• 事例から見た「従来」との相違点
– 従来の開発との相違点
– 従来のAIとの相違点
• 今後のソフトウェア工学
– AIブームが続いた場合
– AIブームが終わった場合
3
普通プログラミング
しますが、わざとノン
プログラミングの例
付録1:CNN(ニューラルネット)
付録2:SPSS予測API呼び出し部分
付録3:node-redによるAPI呼び出し
AI版酒屋倉庫問題(1)
• そもそも、酒屋倉庫問題とは?
– 酒屋倉庫問題とは,情報処理[1]に記載されてい
る「ある酒類販売会社」(以下酒屋と記す)におけ
る「受付係の仕事(在庫なし連絡,出庫指示書作
成,在庫不足リスト作成)のための計算機プログ
ラムを作成する」という問題である.
• 今回は、「受付係」の「出庫指示書作成」業務
について考える
– 出庫依頼に基づき、倉庫の酒を出庫する指示書
を作成する
[1]山崎利治,共通問題によるプログラム設計技法解説, 情報処理Vol25 No9(1984).
4
AI版酒屋倉庫問題(2)
• 酒屋倉庫問題では
– (先入先出等の)出庫方法の指示はない
– 「倉庫内のコンテナは出来るだけ最小にしたい」とい
う記述がある
• そこで、出庫方法に以下の指定をつけたものを
「AI版酒屋倉庫問題」とする
– できるだけコンテナが空になるようにする
– その際、1日でも早く、コンテナが空になったほうが望
ましい
• 何が問題で、それがどうAIと関係するのか?
– 混載のとき問題で、そのとき売上予測が必要となる
5
売上予測にAI・機械学習
• 具体例
• これだけの情報から判断すると・・・
– コンテナ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日おき
に売れる
AI版酒屋倉庫問題(4)
• 追加情報
• この条件が付加された時どちらのコンテナ?
– コンテナ1
• 一番早く空になるコンテナを知るには
– 混載されている酒が売り切れる日の予測が必要
7
酒Aが売れるのは毎週金曜日である
今日は木曜日
昨日、酒Bが売れた
機械学習による解決
• 手順:学習済みモデルが無く、作成する場合
– (1)売上予測の機械学習プログラムの設計・実装
– (2)売上データを元に機械学習を実施
– (3)機械学習した結果が十分な予測精度を持つか
評価する
– (4) 十分な予測精度が得られた場合,実稼動する.
• すなわち,機械学習を行い,十分な予測精度を持った
システム(「学習済みモデル」)を用いて売上予測する
– (5)環境変化に対応する場合には,新たな売上
データを用いて再度学習する→(2)へ
8
学習済みモデルがあれば、ここから
(参考:機械学習の手法)
• 手法の選択
• 教師データの有無
– 教師あり学習
– 教師なし学習
– (半教師あり学習)
9
実際に行動を起こし、そ
の結果を評価・良いもの
を学習する「強化学習」
もある
図はSVMの場合
SVMと異なり(クラス
に分けるのでなく)
類似性で分類する
場合もある
(クラスタリング)
機械学習の手順
(1)機械学習プログラムの設計・実装
• 手順(回帰の場合)
– 欲しい結果である目的変
数を決める
• 今回は売上本数
– 目的変数を説明するであ
ろう変数(=説明変数)を
とりあえず決める
• 前の売上までの間隔
– 機械学習手法と、その手
法で利用する変数(ハイ
パーパラメータ)を決める
• 今回は線形回帰
• SPSSでここまでを作成
– 目的変数・説明変数設定
– 手法、ハイパーパラメータ
10
[1]機械学習を自動化するプラットフォーム DataRobot
https://www.itnex.jp/datarobot/
手法やハイパーパラ
メータの決定支援ソ
フトも存在[1]
参考:機械学習の手順
(1)機械学習プログラムの設計・実装
• 手順(SVMの場合)
– 欲しい結果である目的変
数を決める
• 2本以上売れるかどうか
– 目的変数を説明するであ
ろう変数(=説明変数)を
とりあえず決める
• 前の売上までの間隔
• 曜日
– 機械学習手法と、その手
法で利用する変数(ハイ
パーパラメータ)を決める
• SVM
• SPSSでここまでを作成
– 目的変数・説明変数設定
– 手法、ハイパーパラメータ
11
*畳み込みニューラルネット(CNN)については付録1
機械学習の手順
(2)機械学習の実施
• 手順
– データを入手
• 今回はmydata.txtという
CSVファイルを作成
– データ前処理
• クレンジングなど
• 売上までの間隔を計算
– 機械学習の実施
• 実行する
• ここまでを実施
– CSVデータの入手・設定
– 機械学習実施
12
*詳細の手順については、以下のブログ参照
SPSSで、機械学習させるまで
http://ameblo.jp/smeokano/entry-12278125148.html
機械学習の手順
(3)機械学習結果の評価
• 手順
– 結果を評価基準に基づ
き評価(不十分→(2)へ)
• 決定係数、P値など、手法
によって評価基準がある
– 評価結果上、十分であ
れば、学習済みモデル
として保存
• SPSSでここまでを実施
– 評価を見る
13
学習済み
データとして
保存
機械学習の手順
(4)学習済みモデルの稼動
• 手順
– 学習済みモデルをシス
テムに組み込む(プログ
ラミングする)
• 今回はBluemix+SPSS
を使うことで、この部分を
ノンプログラミングで実現
している
– 利用時、その学習済み
モデルを呼び出し、予測
を実施する
• SPSS+Bluemixで実施
– クラウドBluemix上でイン
スタンスを作成
– インスタンスに学習済み
モデルを組み込む
– 利用時はREST API呼出
14
*呼び出しプログラムは付録2
node-redによる呼び出しは付録3
従来の開発との相違点
従来の開発の流れ
• 環境変化時
– 再設計・再実装
機械学習による開発
• 環境変化時
– 追加学習・学習のやりなおし
15
金曜日に
買っていた客
が引っ越した
学習済みモデ
ルの呼び出し
は従来と同じ
従来の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/ データはモデルの構築
にも検証にも用いる
(クロスバリデーション)
今後のソフトウェア工学:
AIが続く場合
• 要求を満たしているか、テスト(評価)で確認
– テストが重要:AIでは論理的な設計レビューに限界
– ただし、テストで十分な精度が得れば良いとは限らない
• そのテストデータのみ良い結果の可能性(過学習)
• 学習済みモデルの品質保証
– 環境が変われば、学習内容も変える可能性
– 学習後、修正が入った場合のテスト[1]
• データの種類が不足したとき
– オープンデータの利用:APIで呼び出せれば活用可能
– 特徴を見つけないといけない場合も:Feature Engnieering
• AIは、論理的に説明できない分野へ、データによる問
題解決手法を持ち込んだ点で重要
17
[1]専門家が警告! 人工知能システムのテストは「カオス」
http://itpro.nikkeibp.co.jp/atcl/watcher/14/334361/050800832/
感性・野性
入出力は画面と
は限らないので
APIが増えた
今後のソフトウェア工学:
AIがブームで終わる場合
• 背景にあるソフトウェアの複雑性は不変
– ブラックボックス化:テストの重要性
– 複雑性→手作業煩雑:自動化へ期待
– 自動化による生産性向上/手組困難
• プロセスからコンポーネントへ
– 昔:フレームワーク(MVC)利用。画面遷移重要
– 今:コンポーネント化。API呼出&マッシュアップ
• APIの中身はブラックボックス
• 要求から全テストケースを示し、要求をチケットとする開発
に移行する可能性
– この場合、テストを通れば、プログラミングでもAIでも、自動生
成(超高速開発・形式仕様の自動定理証明)でもよい
– AI:データ、計算量の多さ/ボトムアップアプローチにも限界?
– ただし手組は既に限界→形式仕様における自動化のほうが…
18
要求=
問題の
定式化
まとめ
• 要求工学は、課題の定式化を行う
– データによる定式化もあり得る
19
付録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
付録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>
この画面
付録3:node-redによるAPI呼び出し
• 以下のように設定して、timestampの前の=>をクリックする
と、SPSSのAPIを呼び出し、結果をdebugに表示する
22
Accesskey
は途中で
切れてい
る

More Related Content

PPTX
IoT活用システムへのゴール指向要求分析の適用に関する考察
PPTX
ゴール指向要求分析における不確かさの考察 ~ IoT・AIのケース ~
PPTX
中小規模のIoT
PPTX
機械学習活用のための要求分析手法の研究 AI版酒屋倉庫問題のケース
PDF
DataRobot活用状況@リクルートテクノロジーズ
PDF
「UI自動テストツールとAI」〜AIを使った自動テストの「今」と「未来」〜
PDF
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
PPTX
組込みSW開発技術研究会キックオフミーティング
IoT活用システムへのゴール指向要求分析の適用に関する考察
ゴール指向要求分析における不確かさの考察 ~ IoT・AIのケース ~
中小規模のIoT
機械学習活用のための要求分析手法の研究 AI版酒屋倉庫問題のケース
DataRobot活用状況@リクルートテクノロジーズ
「UI自動テストツールとAI」〜AIを使った自動テストの「今」と「未来」〜
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
組込みSW開発技術研究会キックオフミーティング

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

PDF
Samurai CodingなどにみるゲームAIプログラミングコンテストのための原則とパターン
PDF
ソフトウェア工学における問題提起と機械学習の新たなあり方
PDF
機械学習品質マネジメントプロジェクトのご紹介
PDF
20150425 iiba日本支部講演 日米比較 一色浩一郎
PDF
超スマート社会時代のシステム&ソフトウェア品質知識体系 - SQuBOK 2020 における AI、IoT、クラウド、オープンソース、アジャイル、DevO...
PDF
機械学習システムの33のアーキテクチャパターンおよびデザインパターン
PDF
機械学習アーキテクチャ・デザインパターン
PDF
ソフトウェアエンジニアリングとEssenceの広がり
PDF
鷲崎弘宜, "機械学習システムの多面的モデリング・パイプライン統合フレームワーク", 第6回 AI/IoTシステム安全性シンポジウム, 2024
PDF
機械学習応用アーキテクチャ・デザインパターン概観
PDF
『アプリケーション アーキテクチャ ガイド2.0』のガイド
PDF
SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質
PPTX
AIシステムの要求とプロジェクトマネジメント-前半:機械学習工学概論
PPT
サービス作る系 20110128
PDF
鷲崎 メトリクスの基礎とGQM法によるゴール指向の測定 2014年12月18日 日本科学技術連名SQiP研究会 演習コースI ソフトウェア工学の基礎
PDF
次世代AI時代のトレンドと高信頼AIソフトウェアシステム開発に向けたフレームワーク&パターン
PDF
伊久美様 アジャイルジャパン2010プレゼン資料(4 9)
PPTX
ECサイトにおける商品紹介文の作成支援システムの開発と評価に関する研究
PDF
ソフトウェア工学2023 02 上流工程
PDF
コンピューティングおよびソフトウェア工学の潮流: IEEE-CS技術予測&SWEBOK Guideに基づくAI・アジャイル・サステナビリティの展望
Samurai CodingなどにみるゲームAIプログラミングコンテストのための原則とパターン
ソフトウェア工学における問題提起と機械学習の新たなあり方
機械学習品質マネジメントプロジェクトのご紹介
20150425 iiba日本支部講演 日米比較 一色浩一郎
超スマート社会時代のシステム&ソフトウェア品質知識体系 - SQuBOK 2020 における AI、IoT、クラウド、オープンソース、アジャイル、DevO...
機械学習システムの33のアーキテクチャパターンおよびデザインパターン
機械学習アーキテクチャ・デザインパターン
ソフトウェアエンジニアリングとEssenceの広がり
鷲崎弘宜, "機械学習システムの多面的モデリング・パイプライン統合フレームワーク", 第6回 AI/IoTシステム安全性シンポジウム, 2024
機械学習応用アーキテクチャ・デザインパターン概観
『アプリケーション アーキテクチャ ガイド2.0』のガイド
SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質
AIシステムの要求とプロジェクトマネジメント-前半:機械学習工学概論
サービス作る系 20110128
鷲崎 メトリクスの基礎とGQM法によるゴール指向の測定 2014年12月18日 日本科学技術連名SQiP研究会 演習コースI ソフトウェア工学の基礎
次世代AI時代のトレンドと高信頼AIソフトウェアシステム開発に向けたフレームワーク&パターン
伊久美様 アジャイルジャパン2010プレゼン資料(4 9)
ECサイトにおける商品紹介文の作成支援システムの開発と評価に関する研究
ソフトウェア工学2023 02 上流工程
コンピューティングおよびソフトウェア工学の潮流: IEEE-CS技術予測&SWEBOK Guideに基づくAI・アジャイル・サステナビリティの展望
Ad

More from Michitaro Okano (17)

PDF
データマネジメント概論
PDF
イノベーションについて
PDF
機械学習によるモデル自動生成の一考察 ー 決定表と決定木によるアプローチ -
PDF
高校・大学(院)の統計学の俯瞰図
PDF
ワクワクする商店・製品を作るには?
PDF
経営学の俯瞰図
PPTX
GSNを利用したゴール指向要求分析における要求間の依存性の検証手法に関する提案
PPTX
ゴール指向分析KAOSにおける依存性を考慮した要求抽出法の考察
PPTX
状態と状態遷移に着目したゴール指向要求分析手法の考察
PPTX
Rによるデータ分析手順入門
PPTX
仮説とデータ解析の関係2
PPTX
仮説とデータ解析の関係
PPTX
ゴール指向要求分析における構成要素に着目した分解に関する一考察
PPTX
A study on the or decomposition of goal-oriented analysis using GSN
PPTX
要求分析におけるゴール抽出パターンについての考察
PPTX
要求獲得過程の観測と評価に関するツールの開発
PPTX
Ms wordでの効率的な文書作成
データマネジメント概論
イノベーションについて
機械学習によるモデル自動生成の一考察 ー 決定表と決定木によるアプローチ -
高校・大学(院)の統計学の俯瞰図
ワクワクする商店・製品を作るには?
経営学の俯瞰図
GSNを利用したゴール指向要求分析における要求間の依存性の検証手法に関する提案
ゴール指向分析KAOSにおける依存性を考慮した要求抽出法の考察
状態と状態遷移に着目したゴール指向要求分析手法の考察
Rによるデータ分析手順入門
仮説とデータ解析の関係2
仮説とデータ解析の関係
ゴール指向要求分析における構成要素に着目した分解に関する一考察
A study on the or decomposition of goal-oriented analysis using GSN
要求分析におけるゴール抽出パターンについての考察
要求獲得過程の観測と評価に関するツールの開発
Ms wordでの効率的な文書作成
Ad

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