2018年12月30日日曜日

SAR + 機械学習

土木分野において、SAR の認知が広まりつつあるようです。

 PS-InSAR を利用した変位観測を示す文献もちらほら。例えば以下。
古関潤一
道路土構造の維持管理の効率化のための干渉SARによる変状調査方法
地盤工学会誌 66 2018

国交省「社会インフラのモニタリング技術活用推進検討委員会」で SAR を用いた技術開発案が複数採り上げられていますので、認知が広まってきたのでしょう。http://www.mlit.go.jp/tec/monitoring.html
河川堤防では日本工営さんが特許をかけようとされています。が、認められるのでしょうか?せっかく芽吹きそうな分野ですが、広まる前に芽をつぶすことになければよいと思います。ま、従来からあるPS-InSAR や経産省のコンペに出ていた機械学習による崩壊個所自動抽出には特許をかけられないと思いますので、個人的には影響ないでしょう。


近年は、SARデータに機械学習を組み合わせるのが流れのようです。例えば、以下。

山谷 祐貴ほか
CバンドSARデータを利用した 機械学習アルゴリズムによる圃場の作物分類
写真測量とリモートセンシング 56(4), 143-148, 2017
Random Forest 利用

郷右近 英臣ほか
TerraSAR-X画像の機械学習による津波被災地の自動検出
土木学会論文集B2(海岸工学) / 69 巻 (2013) 2 号
Logistic function、SMO(SVM)

支倉 一磨ほか
光学衛星画像とSAR画像の統合解析による東北地方太平洋沖地震の津波浸水域抽出手法の検討
生産研究 / 70 巻 (2018) 4 号
決定木

災害前後 SAR 画像と DEM データを用いた CNN による土砂災害検出
人工知能学会全国大会論文集 / 第32回全国大会(2018) 
CNN、転移学習(ImageNet)

大野 翔平
多偏波 SAR画像を用いた自己組織化マップによる自動目標認識法
電気通信大学 修士論文 2015


私も流れに載って年始早々に開催される東京・大阪の研修に申し込みました。残念ながら大阪は外れましたが、東京の結果は来てません。当たればいいな。

2018年12月26日水曜日

RAPIDS

第三段階は GPU での機械学習。

環境作成には、手軽な NVIDIA の RAPIDS を選択。Docker コンテナを稼働し、ノートブックを開くと、準備OK。
のはずが、そのままでは流れませんでした。Python 3.7 で作成していたコードでしたが、RAPIDS の イメージは 3.5。微調整が必要でした。

最初に試したのは KMeans と DBSCAN。教師なし学習です。コチラは GPU を使用し、すんなり流れました。OKです。

次は教師あり。XGBoot と KNN。
コチラはダメ。個人的に前者は難しく、後者は Faiss のエラーが取れませんでした。コンテナの example でも同じエラーが出ていましたので、早々にあきらめました。

第三段階は50点。
年内に片を付けたいので、次の段階に進みましょう。


2018年12月24日月曜日

Matplotlib

週末は、昼大掃除、夜 python の生活でした。

数千万行のデータの扱いにも慣れ、図化までは早々に実装できました。が、それをブラッシュアップするのに時間がかかりました。使っていたデータに日本語が入っていたため、それを Matplotlib で表示させるとか、変数への手入力箇所を一元化するとか。Python の能力不足でなく、私の能力不足。ま、初心者ですから仕方ありません。
それでも、データ読み込みから複数の図化、出力まで10秒ほどで流せるようになりました。データ規模に対しては速い方だと思います。

使った中でのお気に入りは MatPlotlib の hist2d。最初は散布図を作成していたのですが、同じデータで縦横のビン数を指定すると2Dヒストグラムにしくれます。賢い。
そこから値を抜きだし、演算して新たなデータフレームを作成。pcolor 等を使えば同種の絵ができます。気を抜くと1行・1列少なりますが、そこさえ対策しておけば使える機能です。

まだ(私の能力不足で)使えない機能が山ほどあり、展開も速く、マスターするには道のりの長い言語になりそう。
ま、テストとしての第一段階(CPU での機械学習)、第二段階(大規模データの取り扱い)は終了しました。次の段階に向かいましょう。


2018年12月21日金曜日

巨大CSVファイルの操作

5000万行以上の CSV データを取り扱い。

ファイルサイズは 13GB 程度。
ひとまず、手元の Ubuntu + Python + Pandas で読み込もうとしましたが、途中でメモリ実装分の 24GB を超えたため中止。何も指定せずに取り込んでも大丈夫だろうと安易に試行しましたが、ダメでしたね。
調べてみると、分割読み込み、for ループを利用した分割ファイルの一括操作など、メモリに載らない巨大データの取り扱い方法はありました。が、今回はWin10 に帰り EmEditor で不要な列を削除。半分程度の容量に落とし、再度 Python へ。
今度は読めました。

データフレームにしてしまえば、あとは速い。
describe で簡単な統計量を表示。最小値、最大値等で異常値を確認し、その値を含む行を削除。Nanを含む行も削除。それらのチェックを各列を対象に数度回繰り返せば、4000万行程度になりました。EmEditorだと削除だけでも時間かかりますからね。このあたりは Pyhton + Pandas 様サマ。ありがたい。

できたデータは hdf5 で保存。容量が減って、次回からのアクセスも早くなりました。
これ、今後のデフォにしましょう。

*****************************************************
20181230追記
DASK を試しました。
途中の表示は速いのですが、最後にcsv保存しようとすると、メモリーオーバー。
hdfだと時間はかかるものの保存できました。が、18GBに。なぜ?

2018年12月19日水曜日

Fortran とEXCEL

先輩が Fortran で SCE-UA を改変されていました。

ちょうど EXCEL で作成したタンクモデルの最適化シートのチェックができると思い、お手伝い。RMSE にペナルティを与える箇所だけ修正し、返しました。

Fortran の SCE-UA と EXCEL のソルバーを比較すると、RMSE ベースでは似たようなもの。見た目はどちらもそこそあっていますが、昔の方が見られるとおそらく嘆かれるような出来(RMSE を選択する時点で嘆かれるかもしれませんが)。やはり、データを見て半減期を考えて1段目から合わせていく方が良いように思われます。先輩曰く「データは見たもの勝ち」。よくわかります。

1時間単位で2年間のデータがあったのですが、計算時間は SCE-UA の圧勝。数十秒対数時間のオーダーです。グラフ化まで考えても、長期のデータに対しては EXCEL に勝ち目がありません。短期では手軽でグラフまで描いてくれる EXCEL ソルバー、長期では SCE-UA を選択するのが現状では BEST でしょう。

まだまだ Fortran を捨てられません。

2018年12月15日土曜日

災害と降雨にかかわる文献

たまっていた文献にざっと目を通しました。
※20181230追加しました。

災害と降雨指標

複合土砂災害シミュレータSiMHiSを用いた山間地域における土砂災害の警戒避難情報の提供に関する一考察
山野井 一輝, 藤田 正治
砂防学会誌 / 69 巻 (2016) 6 号
https://www.jstage.jst.go.jp/article/sabo/69/6/69_15/_article/-char/ja/
H26広島土砂災害、H25伊豆大島土砂災害、H23紀伊半島大水害のスネークラインを区分

斜面崩壊の誘因となった降雨の評価手法
小杉 賢一朗
砂防学会誌 / 67 巻 (2014) 5 号
https://www.jstage.jst.go.jp/article/sabo/67/5/67_12/_article/-char/ja/
4つの災害事例において崩壊発生時間には降雨の既往最大値超過
深層崩壊の方が表層崩壊に比べて実行雨量半減期大

RBF ネットワークを用いた土壌雨量指数の確率評価について
五十嵐淳博ほか
平成26年度砂防学会研究発表会概要集
http://www.jsece.or.jp/event/conf/abstract/2014/
100年、50年、30年、10年超過確率の土壌雨量指数は、RBFN出力値0.4、0.5、0.7、0.9に概ね対応

日本列島における土砂災害発生危険性を高めた大雨の空間分布とその地域的特徴―土壌雨量指数を用いて―
瓜田 真司, 齋藤 仁, 中山 大地, 泉 岳樹, 松山 洋
地学雑誌 / 120 巻 (2011) 4 号
https://www.jstage.jst.go.jp/article/jgeography/120/4/120_4_615/_article/-char/ja/
過去10年間のSWIの履歴上位3位以内を更新する降雨を「大雨」と定義し抽出


災害要因の分析と予測

地域への適用性をふまえた斜面崩壊発生確率のモデルとアウトプットの開発
齋藤 洋介, Thuy Thi Thanh LE, 川越 清樹
土木学会論文集G(環境) / 73 巻 (2017) 5 号
https://www.jstage.jst.go.jp/article/jscejer/73/5/73_I_229/_article/-char/ja/
多重ロジスティック回帰(標高・斜面傾斜度・表層土壌・降水量)
250×250mまでダウンサイジング
空間解像度の細分化により地形的要因の影響が高まる
動水勾配0(水の影響を考慮しない)場合、発生確率の高い地質の序列は崖錐、凝灰岩、泥岩、花崗岩、礫岩、安山岩
泥岩は動水勾配の上昇に対して鈍感

数値地理情報と降雨極値データを利用した土砂災害発生確率モデルの構築
川越 清樹
自然災害科学 27(1), 69-83, 2008-05-31
https://ci.nii.ac.jp/naid/110006812761
地質4区分(崩積土・新第三系・古第三系・花崗岩)
多重ロジスティック回帰(地質・起伏量・動水勾配データ(降雨・浸透流))
土砂災害発生確率モデルを構築
再現期間10年の土砂災害発生確率は急峻な山岳地が中心
中国山地の山裾部でも高い地域あり
解像度1kmの発生確率は50mの発生確率と概ね同値

ロジスティック回帰分析を用いた土砂災害発生危険基準線の確率的評価
篠崎 嗣浩ほか
土木学会論文集F 66(1), 122-131, 2010
https://ci.nii.ac.jp/naid/130004468701
災害発生時刻以前で最も小さいRBFN値
・ピークと発生が一致・・・ピークのRBFN値を採用
・ピーク前に発生・・・発生前の最小値を採用
・ピーク後に発生・・・ピークのRBFN値を採用
ロジスティック回帰によりRBFN値を確率値として表示

機械学習を用いた1kmメッシュごとの斜面崩壊に対する危険度評価
https://ci.nii.ac.jp/naid/40021669817/
伊藤 真一ほか
地盤工学会誌 66(9), 8-11, 2018-09
いくつかの機械学習手法を利用し、崩壊・非崩壊を教師として学習。GBMの予測性能が良かった。

土砂災害発生に関わる降雨規模と地質の関係分析
国土交通省 国土技術政策総合研究所 池田ほか
http://www.jsece.or.jp/event/conf/abstract/2017/pdf/518.pdf
・降雨・土砂災害・地質の情報をすべて 5km メッシュ単位で整理。
・土砂災害発生状況には、土砂量や崩壊地形などを網羅的に精度良く整理することが困難であるため、土砂災害の発生件数で整理。
・降雨データには、解析雨量・土壌雨量指数・Surface データを用いた。各メッシュにおいて、1988 年~2007 年の土壌雨量指数および RBFN 出力値の最大値(最小値?)を整理し、 2008 年~2014 年でその最大値(最小値)を超過する降雨を 抽出し、これを履歴順位 1 位相当の降雨とした。
・地質データには、20万分の1土地分類基本調査の結果を用いた。指標には岩石区分を用いることとし、メッシュに複数の岩石区分が含まれる場合 は、面積割合が最も大きい区分を代表区分とした。
・①RBFN 履歴 1 位降雨では複数の土石流が発生するポテンシャルが高いこと、 ②SWI履歴1位降雨とRBFN履歴1位降雨で災害が発生しやすい岩石区分が異なることが示唆された。また、③履歴順位 1 位相当の降雨では西日本の方が災害発生率が高い場合が多く、東日本と西日本で履歴順位のもつ意味が異なると推察された。


土砂災害警戒情報の対象とする災害

最近の豪雨による土砂災害と警戒避難強化に向けた取り組み
岡本 敦
平成30年度(公社)日本地すべり学会総会およびシンポジウム
https://japan.landslide-soc.org/symposium_index/symposium_symposium.html
基準雨量設定の対象とする現象は「土石流及び集中的に発生するがけ崩れ」
「集中的に発生するがけ崩れ」とは、土壌雨量指数が一定以上になった場合に一連降雨のピーク付近で、一定の範囲で発生する崩壊として定義。

都道府県と気象庁が共同して 土砂災害警戒情報を作成・発表するための手引き
国土交通省水管理・国土保全局砂防部・気象庁予報部
 平成17年6月 平成27年2月改訂
http://www.mlit.go.jp/river/sabo/seisaku/tebiki_h2702.pdf
土砂災害警戒情報は、個別の災害発生個所・時間・規模等を特定するものではない。
土砂災害警戒情報の基準設定は、一連の降雨のピーク付近で、ある一定の範囲で発生する急傾斜地の崩壊土石流が発生した際のデータ等に基づく。
降雨に関係なく発生する散発的な急傾斜地の崩壊は発表対象でない。
深層崩壊等も発表対象でない。
地すべりも発表対象でない。(国や都道府県等が個別箇所毎に実施する移動量等の監視・観測等の調査結果等に基づき、 市町村が避難勧告等の発令の判断をする等が原則。)



 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
全国的には雨だけで災害発生・非発生を区分できません。履歴1位に近いほど災害発生の危険性が高いというのも半分正解で、半分間違いでしょう。根拠データを見せてほしいところです。
残念ながら、現段階では全国を網羅した質の良い「災害発生データ」「崩壊データ」等はありません(文献の中にはその指摘もありました)。したがって、議論はいくつかの仮定や災害の定義、あるいはローカルな話題に絞られています。
まずは、質の良いデータを全国的に収集できるシステムを整備すること、ターゲットを「災害」にするのか「崩壊」にするのかを絞ること、扱う「災害」の定義を明確にすることなどが先決です。
多次元を扱える機械学習は予測に必要ですが、データの質を上げることの方が予測精度向上に効果的でしょう。

2018年12月13日木曜日

フレーズ

専門分野の技術資料は英語でも読みますが、それだけです。
専門分野外や日常生活に出てくる英語はわかりません。

Darren Cook「Practical Machine Learning with H2O」では、時折わからないフレーズが出てきました。


call it a day

black swan

It sure is trendy

cut to the chase

dive into

spoil the party

jump straight in

suck all the marrow out of

on a hunch

socially awkward


英語を使う環境にあれば自然と覚えられるのでしょうけど。
日本語も拙い年寄りに、今から実装するには難しい。