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

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

ただいまの
回答率

90.83%

  • Python

    6375questions

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

  • TensorFlow

    560questions

  • Keras

    145questions

順序に強く依存する特性に対する機械学習の適用方法は?

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 145

horiegom

score 6

 前提・実現したいこと

TensorflowやKeras、scikit-learnを用いた機械学習を実装しています。

現在の課題は「順序に強く依存する」特性の予測です。

たとえば塗膜の様な分野では
Aを10mm、Bを5mm、Cを15mm   の順に塗ると特性Xが0.4
Aを10mm、Bを20mm、Cを15mm  の順に塗ると特性Xが0.8
Bを5mm、Aを10mm、Cを15mm   の順に塗ると特性Xが15.5

のように順序によって特性が大きく異なるケースがあります。
例えば(BがAの下地となったため、Aの特質が飛躍的に向上したため)などと説明はつけられる事が多いですが、
これを機械学習で予測したいです。

更に、同じAといっても
温度bb度、湿度cc%、時間dd秒で成膜したA
温度tt度、湿度rr%、時間ssで成膜したA
の様に条件をふっています。(↑はあくまでも例ですが。)

十分なデータベースがあることは前提として、
Cを15mm、Bを5mm、Aを10mm の順に塗ったときの特性Xを予測するには
どのような機械学習手法を使えばよいでしょうか。

時系列データとしてLSTMで解析すべきなのか、もしくは他に優れた手法があるのか数ヶ月悩んでいます。

*Tensorflow,Kerasは扱ったことはありますが、LSTMは未経験です。

 試したこと

順序に関するデータは入れずに、例で言えば厚みのデータだけを用いた
機械学習(SVR、木系)などは試しました。

 補足情報(FW/ツールのバージョンなど)

Windows7 or Ubuntu 14.04 LTS
on Anaconda
Tensorflow
Keras
scikit-learn
xgboost
など

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+2

とりあえず1層をどう表現するかですが、A,B,Cの塗料があるとして、3次元の特徴量で種類と厚みを表現すれば良いでしょう。
例:Aを10mm:[10,0,0](idnex:A,B,C)
複数の層がある場合は、これを並べて二次元の配列にします。
例:Aを10mm、Bを5mm、Cを15mm 
[[10,0,0],[0,5,0],[0,0,15]]

RNN系でも良いですし、CNNを自然言語処理に使うときの方法論も適用できるといえばできます。

参考:
自然言語処理における畳み込みニューラルネットワークを理解する · けんごのお屋敷

あるいは、極めて単純にこうしてしまう手もあります。学習データが十分で層の数が固定なら、これでも意外といけるかもしれません。
例:Aを10mm、Bを5mm、Cを15mm 
[10,0,0,0,5,0,0,0,15](index:1層目のA,B,C,2層目のA,...)

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/15 17:53 編集

    「n次元の特徴量で種類と厚みを表現」
    ありがとうございます。参考になりました。

    後だしで申し訳ないのですが、

    更に、同じAといっても
    温度bb度、湿度cc%、時間dd秒で成膜したA
    温度tt度、湿度rr%、時間ss秒で成膜したA
    の様に条件をふっています。(↑はあくまでも例ですが。)

    そうすると
    Aを10mm、温度25度、湿度50%、時間30sは
    [[10,25,50,30],[0,0,0,0],[0,0,0,0]](idnex:A,B,C)
    のように更に入れ子にすればよろしいでしょうか?

    キャンセル

  • 2018/05/15 18:13

    入れ子にしすぎると面倒くさいので、[10,25,50,30,0,0,0,0,0,0,0,0]にするという方法もあります。情報が4つ、塗料の数が3つで12次元になります。

    キャンセル

  • 2018/05/15 18:19

    なるほど。

    私の過去のやり方は A(10,25,50,30) / B (5,25,40,30)/ C (15,40,40,40) を
    [10,25,50,30,5,25,40,30,15,40,40,40]
    として表現していたのですが
    [
    [10,25,50,30,0,0,0,0,0,0,0,0] ,
    [0,0,0,0,05,25,40,30,0,0,0,0] ,
    [0,0,0,0,0,0,0,0,15,40,40,40]
    ]
    とするのがひとつの解法なのですね。是非試してみたいと思います。

    キャンセル

  • 2018/05/15 18:24

    それだとA,B,Cの違いが無視されますね>私の過去のやり方
    [
    [10,25,50,30,0,0,0,0,0,0,0,0] ,
    [0,0,0,0,05,25,40,30,0,0,0,0] ,
    [0,0,0,0,0,0,0,0,15,40,40,40]
    ]
    の3*12次元の配列にしても良いし(LSTMやCNNを使うならこっち)、回答に書いた通り36次元で与えるのもありといえばありです(これだとベクトルになるのでSVRやRFRにそのまま入れられるメリットがあります)。

    キャンセル

  • 2018/05/15 20:04 編集

    ちょっと0が多くて無駄っぽいので、A,B,Cを3次元のone-hotで表現し([1,0,0]等)、情報4つ+A,B,Cの7次元で一層を表現するというのもありかもしれません([1,0,0,10,25,50,30]等)。性能の良し悪しは一概にいえないです(塗料の違いが重要なら微妙に不利な気がする。塗料の違いは重要ではなく、温度、湿度、時間、厚さは共通で重要とかだと逆に有利な可能性もあるような気がする)。

    キャンセル

  • 2018/05/16 16:01

    >[1,0,0,10,25,50,30]も検討しましたが、仰るとおり「塗料の違いが重要なら微妙に不利な気がする」と「塗料によって、25度が最適なA、35度が最適なB、Cは温度に依存しない」などがあるため、
    提案いただいた「3*12次元の配列」で計算するのが良い予感がします。
    あと、[1,0,0,10,25,50,30]だと重要変数の導出が難しくなるでしょうか。
    Bの温度とCの膜厚が最も影響が大きい。という示唆も得るには「3*12次元の配列」が適している気がします。

    色々とご教示いただいたので、可能なら色々と試してみたいです。
    (実験屋なのであまり時間は取れませんが。。)

    A/B/CとB/A/Cを区別するために
    B/A/B/Cという順番だと仮定して
    A(10,25,50,30) / B (5,25,40,30)/ C (15,40,40,40) を
    [0,0,0,0,10,25,50,30,5,25,40,30,15,40,40,40]
    B (5,25,40,30) / A(10,25,50,30) / C (15,40,40,40) を
    [5,25,40,30,10,25,50,0,0,0,0,30,15,40,40,40]
    と表現していたのですが、ご指摘の通り情報が欠落していますし、何より美しくないので悩んでおりました。ありがとうございます。

    キャンセル

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

  • ただいまの回答率 90.83%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    Kerasで訓練データにIDがある場合のベストプラクティスについて

    前提・実現したいこと 一般的なcsvデータをKerasに食わせて他クラス分類を行おうと思っているのですが、 訓練データに含まれるID系のデータの扱いについて困っております。 ID系

  • 解決済

    kerasによる交差検証(k-fold)

    前提・実現したいこと 現在画像認識をこちらを参考にkerasで行おうと考えています. その際,交差検証(K-fold)を利用したいと思っているのですが,どう記述すればよいかわかりま

  • 解決済

    ディープラーニングによる学習回数の決定基準

    ディープラーニングによる学習回数の決定基準についてお聞きしたいことがあります。 学習回数(epoch数)はたくさん行えば行うほどよくなる。というわけではないということが知られて

  • 解決済

    画像認識課題での入力画像のサイズ変更

    ディープラーニングで、自分のモデルが200×200のサイズを入力として想定していて、それに対して190×200とか色々なサイズの画像を入力する場合は、直前にリサイズ(例えば、Ker

  • 解決済

    keras,scikit-learnを使ったパラメータの最適化

    深層学習のパラメータを最適化するためにグリッドサーチを用いたのですが、そこで問題が起きました。 初めはあるデータを5クラスに分類する問題です。以下のようにモデルを作成しました

  • 解決済

    Python上達方法と資格試験

    初めて質問させていただきます。 現在社会人2年目人工知能のシステム開発を行なっています。 学生時代、人工知能を専攻していたものの、 本格的なソフトウェア開発は初めてで、人工知能

  • 解決済

    KerasでSegnetを行いたい

    こちらのサイトを参考にセグメンテーションを行おうと思っています。コードはこちらのものを使っています。 https://qiita.com/uni-3/items/a62daa5a0

  • 解決済

    kerasによる推測の方法

    pythonでkerasを用いて簡単なNN(入力装850,中間層64,出力層3)を構築し学習させました. この学習結果を使って,自作の新たなデータを推測したいです. 理想の出力とし

同じタグがついた質問を見る

  • Python

    6375questions

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

  • TensorFlow

    560questions

  • Keras

    145questions