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

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

新規登録して質問してみよう
ただいま回答率
85.48%
深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

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

Q&A

解決済

1回答

4147閲覧

機械学習 LSTMの分類予測が、最多の分類に収束する

ons_teratail

総合スコア10

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

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

0グッド

1クリップ

投稿2018/11/07 04:26

機械学習を独学で学んでいる者です。以下ような症状に嵌っています。大雑把な質問なので、この症状が機械学習において典型的な症状なのかどうかだけでもお教えいただけると幸いです。

さて、tensorflowのLSTMを用いて、特定銘柄の株価の翌日の値を分類する、といようなことを試みています。
回帰予測ではなく、たとえば翌日の株価は1.1-1.15倍の範囲になる、とか、0.95-1倍の範囲になる、というような多クラス分類です。

そのために、たとえば250日分(約一年分)の株価を一連の時系列データとしてモデルにつっこみ、その最終データと、翌日の値との比率を学習をさせています。(一つの銘柄の株価を1000日分集めて、それを250日一セットに小分けしてぐるぐる回しているというような具合です)

さて、様々なパラメータで試行してみたのですが(optimizerの変更やlossの計算方法も含めて)、どれも最終的にはlossが一定のところで下げ止まり学習が進まなくなります。しかも、どの時系列セットについても同じ分類結果だけを予測するようになります。たとえば、どのセットについても「1.0-1.05倍」のみを予測結果として出力する、というような具合です。そしてこの1.0-1.05倍というのは、最多の正解ラベルです。

つまり、最多の正解ラベルを一様に予測するという仕方で学習が止まってしまうということです。もちろん正答率は4割とかそのあたりで止まりますし(分類数に依存しますが)、lossもいくらだって下がる余地はあります(学習率を上げると収束せずいくらかブレますが、結局そのあたりに収束していきます)。

プログラミングのミスも疑って、sin波を学習させてみましたが、こちらは典型的な過学習となったので、モデルが根本的におかしいということはないと思っています。つまりsin波のような周期的なデータでは過学習が起こり、株価のようなランダムウォークでは最多の分類を抽出するようなモデル、というわけです。

さて、こういう症状は典型的なものなのでしょうか。典型的である場合、その典型的な原因は何でしょうか。多くのモデルを見てきたがそんな症状は聞いたことがない、という報告だけでも結構です。その場合はさらに試行錯誤してみるしかありませんが・・・。

以上、よろしくおねがいします。

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

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

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

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

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

tiitoi

2018/11/07 05:38

コードがないので詳しいことは言えませんが、モデルのパラメータ数やバッチサイズの調整は試されましたか?あと分類問題の場合、各クラスのデータ数が均一でないと学習がうまくいかないかもしれません。
ons_teratail

2018/11/07 06:36 編集

ご返答ありがとうございます。「各クラスのデータ数が均一でないと学習がうまくいかないかもしれません」これが原因だったようです。実質tiitoiさんに解決いただいたのですか、どう扱っていいのかわからなかったので、自己解決として解決済みとさせていただきました。その点申し訳ありません。
guest

回答1

0

自己解決

tiitoiさんのご指摘で状況が進展いたしました。

分類問題の場合、各クラスのデータ数が均一でないと学習がうまくいかないかもしれません。

おそらく原因はこれだったのだと思います。

とりいそぎテストとして、pandas.qcutで同一比率で分類してみました。そうしたところ、「同じ分類結果だけを予測するようになる」という症状は解消されました。まあそれはそれで学習が進まなくなったのですが、それは別の問題です。これから試行錯誤してみます。

というわけで、一番の疑問点が解消されましたので、この質問は解決済みとします。

tiitoiさん、ざっくりとした質問にお答えいただきありがとうございました。

投稿2018/11/07 06:32

ons_teratail

総合スコア10

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問