LoginSignup
6
3

More than 1 year has passed since last update.

意思決定に疲れたのでAI🤖による行動レコメンドアプリを作ってみた【人工無能】

Posted at

はじめに

有名な話ですが、ケンブリッジ大学のバーバラ・サハキアン教授の研究によると、私たちは1日に最大で3万5000回の決断を下しているそうです。そこで、AIによるレコメンドを用いて、ちょっとした意思決定の積み重ねを減らすことができれば、パフォーマンスを上げることができるのではないかと考えました。この行動レコメンドアプリの名前は、AI Behavior Captainにしました!

AI🤖による行動レコメンドアプリの実装

  • ソースコードはこちらのGithubレポジトリで公開しています。使い方も書いていますので良かったら見てください!
  • 今回はPythonのGUIライブラリであるPySimpleGUIを用いています。PySimpleGUIの勉強にはこちらの動画が大変参考になりました。

完成したGUIアプリ

  • 行動テーブル(data/behaviors.csv)と行動履歴(data/history.csv)からAIに行動をレコメンドしてもらったり、新規の行動を追加したりできます。例として、下記の行動を初期値としています。

行動初期値

ID NAME
0 studying
1 reading
2 sleeping
3 coding
4 eating
5 training
6 walking
7 journaling
  • レコメンドアルゴリズムの中身は、①”人工知能おすすめボタン”としてSoftmax関数を用いた過去の選択から確率的なレコメンド、②”人工無能おすすめボタン”として完全にランダムにレコメンドの2つの手法を選択しました。

どちらもAIですが、機械学習ではないです。気が向いたら機械学習ボタンも実装するかもしれません。
参考:AIと機械学習の違い

実際に遊んでみた

  • 最初は人工知能ボタンと人工無能ボタン、両者ともにランダムにレコメンドします。

人工知能レコメンド

人工無能レコメンド

  • readingボタンを押しました。★マークで強調され、Let's reading ! という表示が出ます。
  • 人工知能おすすめボタンを何回か押すと、readingが上位にレコメンドされる確率的が上がっていることが直感的に確認できました!
  • 人工無能は変わらずランダムにレコメンドします。
  • drinkingを行動テーブルに追加してみます。
  • ちなみにもう一度drinkingを追加しようとすると、drinking exsit ! という表示が出ます。
  • レコメンドボタンを押すと、drinkingがレコメンドの候補に追加されていることが確認できました!

まとめ

完全にAIに行動を決めてもらうのではなく、あくまでいくつかの候補の順位を提示してもらえるようにしているのがポイントです。意思決定の主導権は人類にあります。(あれ、意思決定疲れの話は?)

完全にAIに行動を決めてもらいたい人は、引数の recommend_num を 1 にしてください。
ai_behavior_captain.py

if __name__ == "__main__":
    # ハイパーパラメータ
    recomend_num = 5 # レコメンド数 ⇐これを1にすると一つしかレコメンドされなくなります
6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3