More Related Content
More from harmonylab (20)
ono b
- 3. ランチャーの利点・欠点
• 利点
– ワンタップでアプリを起動できる
– 自分好みの配置に変更できる
– アプリ使用中に呼び出せるランチャーも存在
• 欠点
– 便利な配置を自ら考えることの大変さ
– 登録してないアプリはランチャーから起動できない
自ら学習してアプリを推薦する知的なランチャーを作成したい
• Google Now:インテリジェントパーソナルアシスタント
– 端末内のカレンダー情報,スケジュール,位置情報などの複数の情報を連
結させ.ユーザーがどのような情報を必要とするかを予測した上で提示す
る
– 例)外出する前に,交通情報や迂回ルートを知らせてくれる
- 5. 使用アプリケーションの予測
仮説
• アプリの使用には,何らかの法則が存在している
– 複数のアプリを使用する際に,使う順番が決まっている
– 特定の状況において,使用頻度の高いアプリが存在する[1]
• センサデータ,位置情報,アプリの使用履歴を用いて予測が可能ではないかと
考えられる
先行研究
• 位置情報を含む携帯の利用履歴に基づく予測[2]
• センサ情報から特徴量を抽出し,特徴量と特徴量の関係をクラスタリングする
ことで予測[3]
予測手法に必要なこと
• 特徴抽出から学習までを自動的に行える
• 入力データの次元が多く,データ間の複雑なパターンを学習するのに向いている
• ランチャーにアプリを複数表示するため,予測を確率として得られる
ニューラルネットワークを用いるのが最も適切だと考えた
[1]大澤純, 岩田麻佑, 原隆浩, & 西尾章治郎. (2012). スマートフォンユーザのコンテキストと利用アプリケーションの関連性調査.
[2]松本光弘, 清原良三, 沼尾正行, & 栗原聡. (2010). 位置情報を含む携帯端末利用履歴からのコンテキストに基づく最適アプリケーション推定
法の提案. 情報処理学会数理モデル化と問題解決研究会 (MPS) 研究報告, 2010, 1-8.
[3]嶋谷健太郎, 間下以大, 原隆浩, 清川清, 竹村治雄, & 西尾章治郎. (2013). スマートフォン利用者のコンテキストログを用いたアプリケーショ
ン推薦システム (行動認識, 状況推定 (1), モバイルアドホックネットワーク, モバイル時代を支える次世代無線技術, フィールドセンシング及び
一般). 電子情報通信学会技術研究報告. AN, アドホックネットワーク, 112(494), 101-108.
- 6. 実験データ収集
• 実験に用いるデータ収集のために,Android用アプリの開発を行った.
アプリの仕様
• 端末のバックグラウンドで常に起動し続けるように設計
– 端末の再起動やメモリ解放アプリなどによってアプリが停止しないように対応
• 4秒間隔でデータの取得を行う
– 取得時の日付・時刻,センサデータ,位置情報,使用中アプリ
• 取得したデータは,データベース(SQLite)へ保存
• 使用プログラミング言語:Java
データ収集
• 研究室の3名の学生の使っているスマホに開発したアプリをインストール
• 特別な指示は与えず,普段と同じようにスマホを使ってもらいデータの収集に協力
してもらった.
データ取得期間 取得回数 使用アプリ数
学生A 10/22 15:26:02 ~ 12/07 23:59:59 812,497 47
学生B 10/22 17:19:03 ~ 01/12 14:14:06 1,383,555 66
学生C 11/06 12:43:57 ~ 01/12 15:07:42 1,004,277 48
- 10. 勾配降下法と学習係数の調整方法
• 勾配降下法での重み𝐰の更新式:𝐰(𝑡+1) = 𝐰(𝑡) − 𝜖𝛻𝐸 𝜖:学習係数
• 今回は学習係数を自動で調整する方法を用いた.
AdaGrad
出典:Duchi, J., Hazan, E., & Singer, Y. (2011). Adaptive subgradient methods for online learning and stochastic
optimization. The Journal of Machine Learning Research, 12, 2121-2159.
Adam
出典:Kingma, D., & Ba, J. (2014). Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980.
−
𝜖
𝑡′=1
𝑡
𝑔𝑡′,𝑖
2
𝑔𝑡,𝑖
𝐯(𝑡+1) = 𝛽𝐯(𝑡) + 1 − 𝛽 𝐠 𝑡 (𝐯 0 = 𝑂)
𝐫(𝑡+1)
= 𝛾𝐫(𝑡)
+ 1 − 𝛾 𝐠 𝑡
2
(𝐫(0)
= 𝑂)
𝐰(𝑡+1)
= 𝐰(𝑡)
−
𝛼
𝐫(𝑡)
1 − 𝛾 𝑡 + 𝜖
𝐯 𝑡
1 − 𝛽
誤差関数の勾配を 𝐠 𝑡 ≡ 𝛻𝐸𝑡,このベクトルの成分を 𝑔𝑡,𝑖と書
くと,普通の勾配降下法では更新量のi成分は−𝜖𝑔𝑡,𝑖だが,
AdaGradはこれを左式のようにする.
基礎的な学習係数の調整方法でもあり,今回の実験で用いる
ことにした.
4つのハイパーパラメータ 𝛼, 𝛽, 𝛾, 𝜖を用いて
左式のようにパラメータの更新を行う.
ハイパーパラメータは 𝛼 = 0.001, 𝛽 = 0.9,
𝛾 = 0.999, 𝜖 = 10−8
の値を用いる.
AdaGradよりも学習の収束が早くなる効果が期待でき,
予備実験から,他の手法と比べて良い結果を得られた
ので採用した.
- 13. 結果
• ランチャーに表示するアプリの数がそれぞれ1個・3個・5個とした時の,パラメータ
の違いによる,使用アプリが含まれている割合(学生A,B,Cの3人分の平均値)
表示数:5個
表示数:1個 表示数:3個
• アプリを表示する数が1個の時は,僅かだ
が起動頻度順の方が上回る
• だが,表示数を3個,5個とした時は,
ニューラルネットワークを用いた方法が
上回っている
層数 ユニット AdaGrad Adam 起動頻度順
30 25.60% 22.61%
100 22.93% 18.75%
300 18.37% 17.17%
30 25.17% 22.96%
100 21.03% 19.47%
300 21.23% 17.79%
2
3
25.71%
層数 ユニット AdaGrad Adam 起動頻度順
30 59.51% 61.56%
100 62.29% 64.21%
300 62.90% 66.03%
30 63.96% 65.25%
100 63.23% 61.45%
300 61.63% 63.93%
2
65.71%
3
層数 ユニット AdaGrad Adam 起動頻度順
30 47.55% 45.07%
100 45.18% 46.56%
300 44.36% 47.81%
30 39.41% 45.66%
100 44.68% 46.01%
300 43.17% 45.83%
2
45.52%
3