コンクリートのMLレビュー論文を読む
2022年6月にnpj Computational materials掲載されたレビュー論文"Machine learning in concrete science: applications, challenges, and best practices" を読み、簡単に(雑に)まとめます(まとめようとします)。この論文は、建築資材のコンクリートに関するレビューであり、"しっかりした"サイエンスに関してのMLというわけではありません。著者グループはThe Pennsylvania State Universityの環境工学科に所属しており、ざっとfirst authorの過去の出版物をみると、このかたはbio infomaticsを研究?されてきた方のようです。
私はコンクリート業界の人間ではないですが、この論文を読むとすぐわかる通り、コンクリートも多次元の組成やプロセスが絡み合った系で、かつデータを集めるのがツラいという点で、他の素材系と一緒です。そんな業界の"best practice"を紹介するのですから、絶対知っておいた方がいい、ハズ。また業界が違うのは、むしろ異なる視点を入れることで、なにかひらめきがあるかもしれません。そんな期待を胸に読んでいきます。
さきにまとめ(感想)
ベストプラクティスを簡単にまとめますと、・質の良いデータをたくさん集めましょう・trainingデータと実地(test)データの質の違いを考慮しましょう・シンプルなモデルから始めましょう・モデルの信頼性を考えましょう、ということでした。普通ですね!
結論から言って、おお!という新しい知見はありませんでした。しかしながら、コンクリートという業界であっても、そこでの課題や対処は他の素材でのMLと変わらないということでもあるでしょう。今後もコンクリートの文脈であっても、MLの成果を追っていく必要があると言えるのかも知れません。そういう意味で、こういうレビューはとてもありがたいです。
次↓からは、論文の流れと同じ形で簡単に内容をつまんでいきます。
これまでの報告例の概観
初めにコンクリート開発の歴史をざっと紹介しています。ほぼ他の素材に関する歴史と一緒で、初めはトライアルアンドエラーでなんとかやってたのが、系が複雑になってキツくなった経験の時代。次に1980年ごろからの微細構造のモデル計算やDFT計算などのシミュレーションが普及したものの、計算リソースの面ですごいちっさい体積とか時間の系のシミュレーションしかできず、実験で確かめるのも難しかった理論の時代。そしてそれらを補完する形で今キテいるのが、機械学習(ML)を用いる計算の時代だと説明しています。
著者らはコンクリートに対しMLを用いている389の査読付き論文を調査しています。これらの論文は、1992に初めて現れ、2件目は1994年、2009年になるまで10件に満たなかったのですが、その後急激に数を伸ばしていきます。全期間を通してNeural Netが一番モデルとして使われており、加えてSVMや決定木やランダムフォレストなども用いられています。利用されたデータ数の中央値は174で、それらデータのほぼ全て(9割超)が実験室で得られた実験データによるものでした。これら研究でのMLの適用内容を以下のようにまとめています。
特性予測:硬化前後のコンクリートの性能や耐久性など工業的興味の対象を予測することにMLを用い、実験のサイクルを短縮化。コストやCO2排出量を特性として考慮に入れる例も存在している。
特性評価:評価技術の発展によって得られるようになった膨大なデータの解析にMLを利用。特に非破壊的にコンクリートの性能やダメージを検査したり、表面をスキャンしてクラックなどを見つける用途などにおいて使われており、MLと画像評価を組み合わせることで、人ができる以上の性能を発揮する。
シミュレーション:機械、熱、力学シミュレーションと組み合わせて、本来は膨大な実験が必要だったパラメーターの推定を可能にしている。他にはDFT計算での機械学習ポテンシャルなどが例として挙げられる。
課題
著者らはMLをコンクリート研究(特に教師あり回帰問題)に用いる時に現れる課題を、データ、評価、解釈性の3つに分けて解説していきます。
データでの課題
データの課題について、以下のように列挙しています。
データ量の不足
コンクリート実験でデータを集めるのには時間がかかるため、そもそもデータ量が不足する傾向にある(コンクリート試料つくるのに28日、耐久試験するならさらに数年かかる)。ここ数十年で数十万のデータが報告されてはいるものの、それぞれデータの形式や実験環境が異なるためにMLに有効利用ができていない。高次元データ
コンクリートの実験条件は多岐にわたるため、データのパラメータが多く、次元の多いデータになりやすい。(パラメータの例としては、セメント、骨剤、混和剤の量、種類やその物理、化学的性質。また温度や湿度、処理時間など環境、時間の条件など)データのバイアス
MLの手法は、対象の収集データがちゃんと背後にある母集団データから均一に取得されたデータであればこそ有効にはたらく。しかしながら上で述べたように収集データの少なさやパラメータの多さから、収集データにはバイアスが含まれていることが多い。以下には代表的なバイアスについて4例挙げる。
1. 代表データからのバイアス(本文ではRepresentation biasと表記され、一般に言及される代表性バイアスと同表記ですが、どうやら内容は異なるようです)。
文献に示されている数値を収集する際、その値はいくつかのデータの代表値(平均値)であろう。そのようなデータを不確かさの考慮なしで学習に含めてしまう恐れがある。
2. データ収集時でのバイアス
収集すべきパラメータが、測定系、モデルを単純化しすぎたために見逃されてしまうことがある。例えばfly ashはそれぞれ全く異なる性質をもつクラスCとクラスFに分類される。しかしながら、この分類の関係なしに、単なるfly ashとして扱われてしまっているデータが存在する。
3. データがとられた時間(時期)の違いからのバイアス
時期によって、データの性質が大きく異なることがある。コンクリートで言えば、昔は水が多く強度の低いものが多かったが、現代では混和剤も多く強度も高い。またセメント材の性質も大きくことなっている。昔の実験データを現在のものと同じように扱うことはできないだろう。
4. 運用とのバイアス
実際に運用する状況と、データが収集された状況がことなる場合に問題となることがある。実験室で作製されたコンクリートは、フィールド(実地)でのコンクリートとは性質が異なることが多い。そのため実験室でのデータから作ったモデルが、実際の建設現場で活用できる保証はない。
評価での課題
ここではいわゆるvalidationについて言及しており、metricsについての言及はありません。hold-out法について、test setを使ってハイパーパラメータチューニングをしてはいけない(そらそうだ)など注意しています。対処法として、train-testではなく、train-valid-testと三つに分けて絶対testは評価だけに使いましょう、と提案しています。
クロスバリデーション(CV)については、著者によってはヤバいCVの切り方している場合があるので、ちゃんと切り方の詳細を書きましょう、また、CV内のtrain-validの分け方も均一な分け方になるよう気をつけましょう、と述べています。後者の均一な分け方については、CVを使ってもやっぱりデータは1000欲しいという報告があるらしく、多くて200のコンクリート界隈ではむずいよねーと締めています。
解釈可能性の課題
解釈可能性に関して、作成したモデルについてのdiagnostics(診断)の面ではpermutation importance(ある一つの特徴量について、その順序をバラバラにしてしまって、モデルの性能変化を見ることによって測る特徴量の重要性)について述べています。permutation importanceは、モデルの再調整を必要とせず、一貫した説明を与えるのですが、特徴量どうしの相関が存在する場合はうまくいきません。例として、相互相関のある特徴量を並び替えた結果、本来全く影響がないはずの他の特徴量に影響を与えて、全くナンセンスな結果を導き出すことを挙げています。正しい解釈のため、データの前処理の段階で相関の高い特徴量は除いておく必要があるとのことです。
因果関係については、MLの結果自体を因果関係と解釈したい欲に駆られるものですが、実際得られるのはデータの相関、関連性の情報であって、そこから介入効果や反実仮想などの解析を加えることで、因果関係が議論できるものです。著者らはここで、MLモデルの結果を因果分析のよりよい出発点とするため、現在利用可能なデータセットには欠落しているものの、重要と思われる特徴量について以下のように列挙しています。
・骨材の特性 骨材の空隙率,密度,形状,表面性状,鉱物組成,粒度など
・セメントやその補助材料の物理的、化学的特性、例えば、形状、繊度、密度、化学組成(特にCaO、SiO2、Al2O3の含有量)。またそれらは産出地に依存性がある
・化学混和剤の性質
・硬化方法、その温度と相対湿度に関する詳細な情報
ベストプラクティス
ここまで課題を挙げてきましたが、ここでこれらに対するベストプラクティス(理想的手法といった方が正しいっぽい)を紹介しています。
ちゃんとした(再現できるような)データをいっぱい作って公開しましょう
それはそうですね。。実験室と実地(フィールド)データをつなげましょう
やはりコンクリートを実際に取り扱う場では、色々な点で理想的な系とは異なります。例えば現場では扱える原料が違ったり、気温や湿度に変化があります。また作業者の熟練度も影響してきて、間違えて水を多く加えてしまう、なんてミスも少なくありません。でも現場で正確な予測をするのが第一の目的ですから、たくさん取れる実験室データと、現場でのデータとをつなぐ方法を探索する必要があります。著者がその一例として挙げているのが、DeRousseau et al.の成果です。彼らは実験室でのデータのみからなる教師データの一部を実地データで置き換えることによって、実地での予測性能が向上することを示しています。シンプルなモデルからはじめましょう
これはよく聞く話です。上述のようにデータにバイアスが入りやすいので、複雑なモデルを用いても過学習を招く可能性が高いと指摘しています。単純なモデルから始めて、より高い精度が必要であれば複雑なモデルに進む、といった手順がよいと述べています。モデルを信頼できる基準をもちましょう
コンクリートは建設の基礎となるものですから、怪しいモデルの結果を用いてしまうと大変なことになります。モデルが本当に信頼できるのか、ちゃんと判断しなければなりません。著者は、モデル作成のプロセスを透明化し、実地データでの検証も行い、また解釈可能性を担保することも、モデルの信頼性を判断する上で重要だと指摘します。
最後に
最後に今後進んでいくべきMLの技術を挙げています。それは、physics-informedなモデル、転移学習、データスクレイピングのための自然言語処理技術、とのことでした。以上。普通!!
この記事が気に入ったらサポートをしてみませんか?