質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

1553閲覧

スポーツの練習メニューの最適化(AI、機械学習、ディープラーニング)

hawaii

総合スコア7

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/07/24 05:27

ディープラーニングで、例えば水泳の100m自由形のタイムを縮めるための最適な練習方法を求めたいと思っています。

(属性)
性別、年齢、身長、体重、脚の長さ、腕の長さ、体脂肪率、筋肉量、握力、肺活量等

から

(練習メニュー)
1日の最適練習時間 120分
1日の最適練習距離 5km
筋トレメニュー 上半身〇〇を20分、下半身〇〇を30分

等が導き出されるようにしたいです。

異なる属性を持つ何人もの選手に対して、ある練習メニューを一定期間やらせたら「タイムが〇〇秒縮まった」というデータ群が必要かと思うのですが、そのようなデータ群があるとして、入力層、出力層、教師データをどのように設定したら良いか頭が混乱してきました。ご助言頂けますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ご自身が何をしたいのかを今一度整理されてください。

最適化(AI、機械学習、ディープラーニング)

とタイトルにあり、ご質問冒頭で

ディープラーニングで、(中略)求めたい

とおっしゃってますが、本当になさりたいことは

ディープラーニングの勉強でしょうか?
⇒であればもっとシンプルな問題からがよろしいと思います。
練習メニューの最適化でしょうか?
⇒であれば一旦ディープラーニングから離れてください
スポーツ科学(水泳)の専門家でしょうか?
⇒まず基礎を学ばれないと厳しいと思います。
膨大なデータがあって専門知識を考慮せずに機械学習に掛けて何らかの望ましい値を得る
ということも可能性はゼロではありませんが、スポーツ科学の専門家でなければそういう
データを入手することはまずないかと。

課題もゴールも定まらないうちに「入力層、出力層、教師データをどのように設定したら良いか」は決まりません。

ご質問をそのまま受け取り、糸口として私なりに考えるには
「練習メニューの最適化」なのか「タイムが〇〇秒縮まった」なのか
まずここからと思います。「タイムが〇〇秒縮まった」のデータが必要と考えられるということはタイムが縮まるのを望ましいと考えられているのでしょう。
であれば、
目的変数:水泳100m自由形のタイム(あるいは元のタイムからの短縮時間)
説明変数:(属性)で挙げられている選手固有の値
練習メニューで挙げられている値
がベースとなるかと思いますが、ただ練習することにより選手の属性も変わり(筋肉量が増えるなど)、練習メニューも変わっていく(わからないですけど、筋肉量を増やす→効率的な筋肉動作を促す→瞬発力になるか持久力を伸ばすか、、、)ので、
あるときにベンチプレス20回が最適だったとしてそれも変わってきます。

環境に対してエージェントが行動して報酬を得、また新たな環境に、、、を繰り返しながら学習する強化学習の方が近いかなと思います。

人工知能 Vol.34 No.4 (2019年7月号)に練習メニューは直接ありませんが、「スポーツ競技のAI」の特集があり、スポーツとデータそしてAIの関係性についてご参考となるかも知れません。

投稿2020/07/24 06:29

aokikenichi

総合スコア2235

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hawaii

2020/07/26 05:50

早速のご回答ありがとうございました。 「練習メニューの最適化」により選手の「タイムが〇〇秒縮まった」を実現したいです。 選手の属性と練習メニューを入力層にして、 水泳100m自由形のタイムを出力層するということでしょうか? 例えば、事前に練習メニューを100パターンくらい用意しておいて、 学習データとして、 (学習データセット) 選手A属性, 練習メニュー(パターン1), 縮まったタイム 選手A属性, 練習メニュー(パターン2), 縮まったタイム 選手B属性, 練習メニュー(パターン5), 縮まったタイム 選手D属性, 練習メニュー(パターン20), 縮まったタイム ・・・・・・・・ 選手X属性, 練習メニュー(パターン55), 縮まったタイム で学習させて、 「選手属性」と「練習パターン」を入れれば「縮まったタイム」が出力されるようになるという感じでしょうか。 それも有用性があろうかと思いますが、 「選手属性」を入力すると、「タイムが最大限縮まる最適な練習メニュー」を出力するように設計したいと考えています。 選手の属性と縮めたいタイム(秒)を入力層にして、 上記と同じ「学習データセット」を用いて、学習させ、 100個の出力層から練習メニューが1つ選ばれるという方がイメージに近いです。 最終的には、最適な練習メニューを100個からひとつ選ぶということではなく、練習時間、練習距離、筋トレ負荷等のパラメーターも最適化したいのです。
aokikenichi

2020/07/26 06:04

機械学習で何が出来るかを誤解なさっていると思います。 私は機械学習では困難ではないかと申し上げております。 ーーー (略) 「選手属性」と「練習パターン」を入れれば「縮まったタイム」が出力されるようになるという感じでしょうか。 ーーー これは出来なくはないですが困難かと。 選手A が パターン1 を実施した場合と 選手B が パターン1 を実施た場合 また同じ選手Aでも筋力がつく前と、筋力がついた後では結果がぜんぜん異なると思われます。 ーーー それも有用性があろうかと思いますが、 「選手属性」を入力すると、「タイムが最大限縮まる最適な練習メニュー」を出力するように設計したいと考えています。 選手の属性と縮めたいタイム(秒)を入力層にして、 上記と同じ「学習データセット」を用いて、学習させ、 100個の出力層から練習メニューが1つ選ばれるという方がイメージに近いです。 ーーー 入力層、学習させ を誤解なさっています。 入力層に入れたデータにて学習させます。ですので 「選手の属性と縮めたいタイム(秒)を入力層にして」は入力層に入れての意味かと思いますが、そうしますと「練習メニュー」は入力されていないので「上記と同じ『学習データセット』を用いて、学習させ、」は出来ません。 「最終的には、最適な練習メニューを100個からひとつ選ぶということではなく、練習時間、練習距離、筋トレ負荷等のパラメーターも最適化したいのです。」 はい、それは理解しますが回答致しました理由の通りで困難だと申し上げております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問