Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ダイエット体重予測AIの開発

93d5352aef63be97026716736ff738c8?s=47 tanaka-kaz
November 27, 2019

 ダイエット体重予測AIの開発

当社のパーソナルトレーニングジムに2ヶ月通うとどれだけダイエットできるかを予測するAIアプリを開発しました。
全国65店舗とWeb広告で運用しお客様獲得に貢献しています。アプリは、IBM SPSS modeler とIBM cloud で開発しています。本セッションではその開発の手順を説明します。特にSPSS modeler のニューラルネットワークでの予測モデルの作成については詳しくお話しいたします。

93d5352aef63be97026716736ff738c8?s=128

tanaka-kaz

November 27, 2019
Tweet

Transcript

  1. ダイエット体重予測AIの開発 2019年11月27日 株式会社トゥエンティーフォーセブン マーケティング部 マネージャー 田中 一利

  2. ・1994年にニューラルネットワークに出会い虜に ・2004年SPSS modelerに出会い中毒に ・大手通信キャリアで携帯電話解約予測で事業に貢献 ・現在、トゥエンティーフォーセブンで未来のダイエット を創造中 田中 一利 Kazutoshi Tanaka

    プレゼンター紹介
  3. トゥエンティーフォーセブンの紹介 ・ダイエット目的のパーソナルトレーニングジム ・全国67店舗 RIZAP社につぐ業界2位 ・11月21日、東証マザーズに上場

  4. AIの広がり ・自動運転 ・医療各種診断(ガンなど) ・タクシー配車 ・チャットボット ・ネット投稿分析 ・製造業不良品検査

  5. ダイエット向けパーソナルジムでのAI活用 ・カウンセリング時体重予測(新規契約獲得) ・卒業間近体重予測(延長契約獲得) ・ダイエット向け食事リコメンド など

  6. 一番の課題 ダイエット向けパーソナルジムでのAI活用 ・AI人材の不足 当社の解決策 ・SPSS modeler + Watson Studio ・田中

    + インターン数名で開発
  7. SPSS modeler

  8. SPSS modeler の紹介 ・IBM社が提供するデータマイニング専用のソフトウェア 元々はSPSS 社が「Clementine」の名称で販売 2009年にSPSS 社をIBM社が買収 現在、国内データマイニング市場で国内シェア1位 ・ニューラルネットワーク、サポートベクターマシーン(SVM)、

    ランダムフォレストなどの機械学習モデルの開発が可能 ・GUIベースでデータ入力、データ加工、分析、機械学習、モデル評価、 グラフ作成、エクスポートを実行
  9. SPSS modeler の紹介 長所 短所 SPSS modeler ・データ事前処理が容易 ・ノープログラミング ・ハイパーパラメータのチューニング

    をお任せできる ・できあがったモデルの評価が容易 ・ディープラーニングはできない (隠れ層2層までのニューラル ネットワークしかできない) TensorFlow, Keras, Caffe, Chainer など ・ディープラーニングを柔軟に作る ことができる ・データ事前処理が工数大 ・プログラミングが必要 ・ハイパーパラメータの チューニングが必要 ・できあがったモデルの評価に 時間がかかる
  10. TensorFlow, Keras, Caffe, Chainerなど SPSS modeler の紹介 SPSS modeler 機械学習

    ハイパーパラメータ チューニング モデルの評価 プログラミング デバッグ データ事前処理 機械学習 モデルの評価 データ事前処理 ・体重予測、食事リコメンドでは、ディープ ラーニングではなくSPSS modelerで十分 ・一番こわいのはバグに気付かず モデルをリリースしてしまうこと
  11. どうしてもディープラーニングしたいときは… Watson Studio の Neural Network modeler を使えば本格的なディープラーニングがGUIで可能(BETA版で提供中) ・活性化関数がtanhだけでなくシグモイド、ReLU、ソフトマックスなど が使える(SPSS

    modelerはtanhだけ) ・畳み込みニューラルネットワーク、リカレントニューラルネットワーク (LSTMも)ができる ・その他各種手法ができる 詳細は下記URL https://dataplatform.cloud.ibm.com/docs/content/wsj/analyze-data/ml-canvas-nnd-nodes.html
  12. Neural Network Modeler Flow Editor 502 Bad Gateway エラーが頻発 ブラウザのキャッシュとCookieのクリアをすれば修正が可能

  13. カウンセリング時体重予測アプリ ・入会カウンセリング時点の性別、年齢、身長、 体重、体脂肪率、内臓脂肪レベル、血圧を入力 入会してして2ヶ月後の体重、体脂肪率を出力として 機械学習を行い体重、体脂肪の予測モデルを作成 ・標準的に到達する体重・体脂肪率と95%信頼区間に おいてmaxの減量となる体重・体脂肪率をグラフ表示 ・どのくらいダイエットできるかを数値で見ていただき 入会カウンセリングからの契約率の向上を図る

  14. データ取込・クレンジング・整形 モデリング 精度分析 SPSS modelerのフロー

  15. ODBC接続したDBから身体測定 データを読み込む データの読み込み お客様の身体測定データ 身長、体重、体脂肪、内臓脂肪レベル、血圧など

  16. データスクリーニング ・古いデータは除外 ・15~80歳の範囲で抽出 データスクリーニング ・トレーニングでは16回以上行った お客様だけを抽出 データのスクリーニング

  17. データ整形 ・お客様ごとに16回のトレーニング データを1行にまとめる データ整形

  18. アンサンブル学習である ブースティングかバギングかを選択 ニューラルネットワークモデル 入力と出力を設定

  19. 各種パラメータの設定はmodelerにお任せ ニューラルネットワークモデル

  20. できあがったモデル 線の太さは重みの大きさを表す

  21. PMML(Predictive Model Markup Language)

  22. 正規化 <DerivedField dataType="double" name="body_weight1Norm" optype="continuous"> <NormContinuous field="body_weight1"> <LinearNorm norm="-2.06698779196136" orig="39.85"/>

    <LinearNorm norm="5.41128654079941" orig="148"/> </NormContinuous> </DerivedField> 活性化関数 <NeuralNetwork activationFunction="tanh" algorithmName="MLP" functionName="regression"> 隠れ層1つのニューロンへの重み係数 <Neuron bias="-0.724846018313902" id="14"> <Con from="0" weight="-0.271848772847346"/> <Con from="1" weight="-0.299660236145384"/> <Con from="2" weight="0.149979419900175"/> <Con from="3" weight="-0.463556812497122"/> <Con from="4" weight="-0.392756792982911"/> <Con from="5" weight="0.476198030460483"/> <Con from="6" weight="0.00752802853327331"/> <Con from="7" weight="0.0164592451047535"/> <Con from="8" weight="0.301551204845497"/> <Con from="9" weight="0.443040310611891"/> <Con from="10" weight="-0.549531123820282"/> <Con from="11" weight="-0.555442700451134"/> <Con from="12" weight="0.0129715811871202"/> <Con from="13" weight="-0.448142951653085"/> </Neuron> PMML(Predictive Model Markup Language)
  23. できあがったモデルの評価 オーバーフィッティングが 起こってないかを確認

  24. できあがったモデルの評価 入力の重要度 出力に及ぼす影響の度合い 評価曲線 (ゲインチャート)

  25. Watson Studio

  26. Watson Studioの紹介 ・IBM社が提供する機械学習、ディープラーニングのモデル作成のための IBM cloud 上のソフトウェア ・ビジネスへのAI 活用のために必要な機能がオールインワンとなっている 統合開発プラットフォーム ・モデルの開発をプログラミング無しにGUIベースでデータのクレンジング

    や加工が可能に
  27. modelerフローのアップロード Watson Studioでプロジェクトを作成し SPSS modelerで作ったフローをアップロード

  28. モデルのSave 事前にWatson Machine Learningの インスタンスを作成しておく PMMLでモデルをSave

  29. モデルのデプロイ SaveしたモデルをAPI化するためにデプロイする 少し待ってデプロイ完了

  30. デプロイしたモデルのTest テストデータを入力し Predictをクリック デプロイしたものが正常に動くか、まずはTest 結果レスポンスを確認 modelerでやった結果と比較

  31. Implementationの確認 WebアプリからのAPI呼び出し方を確認

  32. Node-RED

  33. ・Node-REDはフローベースドプログラミングツールで2013年にIBMの プロジェクトとして誕生、2016年10月にJS Foundationへ移行 ・単機能のノードを線(データの流れ)でつなぎプログラムを開発 ・Node.js上にフローエディタが構築されシングルクリックで アプリケーションを実行環境へデプロイ ・コミュニティによって開発された新しいノードをインストール可能 ・ 作成したフローはJSONファイルによって共有 Node-REDの紹介

  34. Node-REDで開発する理由 ①Webサーバーの運用をしたくない 当社には数名の開発者しかおらず、しかも多くはインターン生。 ②プログラムの構造が視覚的にわかる 半年から1年でインターン生はいなくなり、代わりの新しいインターン生が 入ってくる。Node-REDプログラムは引き継ぎがし易い。 ③自動スケーリングできる IBM Cloud の

    Node-RED はCPU稼働率、メモリ、スループット、 レスポンスタイムの状況より自動的にインスタンスを増やしたり減らしたりする ことが可能。
  35. 実際の体重予測アプリのNode-REDプログラム

  36. 予測値をWatson Machine Learningから取得するNode-REDプログラム 最初にトークンを取得 API化した15回分の予測モデルより 各々の予測体重を取得 https://us- south.ml.cloud.ibm.com/v3/wml_instances/**** */deployments/*****/online POST

    header 'Content-Type: application/json' 'Accept: application/json' "Authorization: Bearer $IAM_TOKEN" "ML-Instance-ID: $ML_INSTANCE_ID"
  37. Node-REDでいろいろ開発しています

  38. 最後に

  39. 無料カウンセリングクーポンをお配りします 1. 無料カウンセリング予約・お問い合わせ先(0120-017-247)に連絡 2. 予約が確定次第、裏面の店舗名・氏名を記入のうえ、ご予約店舗にご持参ください! 表面 裏面

  40. 仕事関連のお知らせ ご連絡ください! tanaka-k@247group.jp, hara-h@247group.jp この資料で紹介した業務をやってみたい方、正社員募集中です この資料の開発手法で貴社のAIアプリ開発をお手伝いします

  41. EoF