2017年11月3日金曜日

深層学習で土軟硬区分

ここ1年で、機械学習・深層学習の環境や認知度がかなり向上したように感じます。

土木分野でも、導入・開発を進められている企業があります。雑誌やNHKでの特集も見ましたが、「人口減少、働き手不足といった将来のリスクに今から備える」と考えられている会社もあるようですね(良い会社だと思います)。

この3連休はゆっくりできるので、この間に最近の動向を追っておきましょう、とweb を見ていると、このようなものがありました。

H2O
https://www.h2o.ai/

早速、DL してみました。
以前、地下水位の時系列予測を deep learning で実施した際には、Python の コードを修正しながら利用しました。が、これ、コードを組む必要がありません。コマンドプロンプトから jar ファイルをロードさせておけば、あとは WebUI で作業できます。(Ver.3.14.0.7ですので、数年前からあったのでしょうね)。
しかも、R や Python でも使えるようです(今回は試用せず)。Rでラフセットかけて、その結果(重要属性のみ)を H2O に投げる、なんてこともインタラクティブにできそうです。

今回の題材は、「柱状図の土砂・軟岩・中硬岩区分」。
使用する属性はコアの「硬軟・形状・割れ目・風化・変質」。いずれも基準書でカテゴライズされており、利用しやすい指標です。相関性も土軟硬区分と高いのは明らかで、(ラフセットで事前に選別しなくても)良い結果が得られると思い選定しました。今回は泥質岩のみで実施しましたが、多くの地質に対応させるなら、地質を属性に加えて学習させれば良いでしょう。(今回は単一地質かつ5属性ですので、わざわざ deep learning を使わなくても良いのですが。)

まずは柱状図からデータを集めて CSV に整理し、それを H2O に読ませます。
あとは、WebUI で指示のあるまま進めるだけでした。以前の時系列予測の経験が役に立ち、マニュアルを見なくても入力の流れを理解できましたし、入力する項目も迷いませんでした(手を動かしていて良かった)。
H2O は多くのアルゴリズムを実装していましたが、今回は deep learning を選択。

結果は上々。正答率86%
MR:中硬岩、SR1:軟岩I、SR2:軟岩II、WS:土砂(風化土)

TRAINING METRICS - CONFUSION MATRIX ROW LABELS: ACTUAL CLASS; COLUMN LABELS: PREDICTED CLASS
MR
SR1
SR2
WS
Error
Rate
MR
24
0
0
0
0
0 / 24
SR1
1
22
4
1
0.2143
6 / 28
SR2
5
1
44
0
0.1200
6 / 50
WS
0
0
0
45
0
0 / 45
Total
30
23
48
46
0.0816
12 / 147

VALIDATION METRICS - CONFUSION MATRIX ROW LABELS: ACTUAL CLASS; COLUMN LABELS: PREDICTED CLASS

MR
SR1
SR2
WS
Error
Rate
MR
6
0
1
0
0.1429
1 / 7
SR1
0
9
1
0
0.1000
1 / 10
SR2
2
0
5
0
0.2857
2 / 7
WS
0
1
0
12
0.0769
1 / 13
Total
8
10
7
12
0.1351
5 / 37



このような情報も参考に表示してくれます↓



これ、良い判別器が作れるでしょうね。部署全体で入力すれば、部署全体のナレッジが集結し、かつそれを反映した判別器が作れます。将来的には新人の良い教育材料になるでしょうし、現場での判別にも使えるでしょう。掘削現場での土軟硬区分は「音が必要」などと考えていましたが、「コア形状(長さ)」を「亀裂間隔」に読み替える等工夫すると、容易に適用できると思います(見る距離によって1:1ではないので補正は必要でしょうが)。
また、国交省さんは Kunijiban で大量のデータをお持ちですから、国交省標準の判別器が作れそうです(柱状図の質を判断する必要はあると思いますが)。あるいは、スクレイピング可能なら、各社独自に利用されるかもしれません。

いずれにしても、H2O のようなソフトは今後も改善・提供されると思われます。当分は環境も劇的に変わり続けるでしょうから、executives にとってはリスク管理が大変になるでしょう。
私も置いて行かれないよう、手を動かし続けなければなりませんね。


0 件のコメント:

コメントを投稿