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

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

新規登録して質問してみよう
ただいま回答率
85.46%
機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

解決済

2回答

854閲覧

目的変数の推定結果を基に計算した結果と実際の値との差を最小にするように予測する機械学習はありますでしょうか

RARUSAN

総合スコア8

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

0クリップ

投稿2020/11/16 10:09

通常、機械学習の目標は目的変数の実際の値と予測値のズレを最小にすることだと思います。
今回質問したいのは、目的変数の推定結果を基に計算した数値とある数値の差が最小になるように、機械学習でその問題を解くことが可能かということです。
イメージとしては以下の通りです。
もし、このような問題を解く既存の機械学習モデルが存在する場合、そのモデルについてご教授いただければ幸いです

イメージ説明

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

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

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

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

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

guest

回答2

0

ベストアンサー

ニューラルネットワークを使うといいかと思います。
質問のケースであると予測値を隠れ層として定義して説明変数からから計算されるようにします。次に予測値から所定の計算式で最終的に欲しい値を計算します。
これでモデルの本体ができたので、目的変数との差異を評価するコスト関数を定義してこのコスト関数が最小になるパラメーター(説明変数から隠れ層を計算する係数)を求めればいいかと思います

投稿2020/11/16 22:54

編集2020/11/16 23:00
R.Shigemori

総合スコア3376

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

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

toast-uz

2020/11/17 03:17

・説明変数を3セットずつ並べ直す操作 ・説明変数→隠れ層を、同じモデル×3セットと表現する方法 ・「所定の計算式」を正規化して、予測した後にその正規化影響を元に戻す操作 が必要に思います。「所定の計算式」は一種の活性化層になるという解釈です。 ただ、ここまで複雑なことをしてニューラルネットワークにモデルを限定するのが、有効なのかどうなのかはわからないです。
guest

0

説明変数が18個になっただけで、問題の本質としては同じであると思います。説明変数間の相関があるので増えた分だけ予想がしやすいわけではありませんが。

別の言い方をすると、いままで毎月の月平均気温を予測していたのだが、同じだけの説明変数を使って、3か月ごとの平均気温を予測せよ、といっているのと同等であると思います。

イメージ説明

投稿2020/11/16 11:34

編集2020/11/16 11:50
toast-uz

総合スコア3266

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

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

RARUSAN

2020/11/16 16:39

ご回答いただきありがとうございます。 確かにご提案いただいたような方法も考えられますが、この方法においては計算式で処理をする部分がとても重要で、ここは機械学習ではなく、明確に数式で処理したいと考えています。
toast-uz

2020/11/16 22:40 編集

私の方法は簡単に試せると思いますが、やってみたのでしょうか? 「通常の例」だと、予測値=f(説明変数6つ) となる関数fを機械学習で求めるわけですよね。 「今回計算したいもの」は私の表現では、予測値=g・(f(説明変数6つその1)+f((説明変数6つその2)+f(説明変数6つその3)))となる関数F: 説明変数18個→予測値、を機械学習で求めることだと思います。gが既知なので考慮すればよいのでは、というのが質問者様で、未知のfを求めるのと未知のFを求めるのは本質的には変わらないのでは、とするのが私です。いくらgが数式であらわせても、未知のfが入っている限り、全体としてわかっているgに着目するのではなく、gは忘れて、未知のFと解釈するのがよいのでは、というのが私の主張です。 質問者様の実現したい方法だと、何らかの層を設計して、特定の機械学習アルゴリズムにあてはめて、といったことが必要と思います。難易度は高いですし、そもそも機械学習のアルゴリズムをいろいろ試したり、アンサンブルしたりといった手法に制約を与える可能性があり、結果として精度は私の方法よりも落ちる可能性もあります。 まずは簡単にできる私の方法を試してみて、それでは求める精度に遠かった(fを求める問題と比較して)のであれば事情はわかります。機械学習というのは試行錯誤なエンジニアリングが影響大なものですので、正しい方法をいろいろ考える前に、できそうな方法は試してみることをオススメします。 なお、gが機械学習には難易度が高いような(収束困難な)関数として有名なもの(例えば多次元Rosenbrock関数とか機械学習アルゴリズム開発を研究者が競うようなもの)であり、一方fは線形回帰で簡単に予測できるような関数で、みたいな、特殊状況であれば、質問者様の主張は理解できます。よい方法があるかどうかはわかりませんが、明らかに収束困難そうなFを求めるよりも、簡易な方法を探したくなると思います。そういった事情があるのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問