2018年11月25日日曜日

pandas

90万行×3列の csv データの処理。

後輩君が EXCEL で開いたものの、ピボットテーブルすら作成できなかったとのこと。もう一方が VBA にて処理するも、10万行くらいでフリーズするとのこと。
32bit 版だから、と思っていましたが 64bit 版でもダメ。ま、大きなデータをEXCELだけで処理しようとすること自体が無謀なのでしょう。

今回はヒストグラムを見たかったので、python+pandasで処理(実際はmatplotlibをpandasからcallしているようです)。
EXCELシートを読み込んで、ヒストグラムとサマリーを作成。ピボットテーブルを複数作成し、集計・演算を経て、EXCELデータとして保存。
ピボットテーブルの作成では、全データを複数の項目で整理しようとしたケースのみ時間がかかりました。ヒストグラムの作成や演算は軽い。
一番時間がかかるのは、書き込みですね。HDF5 だと速いのですが、EXCELへ持っていけません(書き出せないデータもありましたが)。

pandas を追加するだけ。pandas 偉い。

2018年11月24日土曜日

CNN

大量の画像データから、自動かつ高精度で異常を抽出できると、見逃しリスク低減に役立つでしょう。

ここ数日、画像を取り扱う機械学習手法について調べていました。2012年頃から深層学習による成果が報告され始め、フレームワークの整備され始めた2015年ごろから急速に増えているように感じます。現在、画像を扱う「教師あり学習」では 何らかの形で CNN を利用した手法がデファクトスタンダードになっているといっても良いでしょう。

医療分野においても CNN 全盛です。Medical Image Analysis での CNN の検索本数は以下の通り。

2018 50
2017 32
2016 2
2015 2

マンモグラフィーの画像を扱った例です。
Faster R-CNN
CNN、転移学習、アンサンブル
https://medium.com/stanford-ai-for-healthcare/deep-learning-goes-pink-474c08a77c92

リスク低減手法は多々あると思いますが、その有効な手段の一つにしたいですね。

2018年11月18日日曜日

SCE-UA

報告書を2つ書き上げて、一息。
やるべきことがたまっています。

to-do list
・機械学習手法の特徴整理
・VisualSPHysics・・・ようやくtutorial ができました。
・文献収集・・・医療系画像診断の自動化など
・sagemaker
・タンクモデル、SCE-UA

最後の項目は最適化手法の一つで、タンクモデルで使われてきたようですね。
一連降雨ではピーク以外の時間も多く占めますので、 RMS 最小化の対象になり、ピークがなまってしまうようです。改善するには重み付けが必要です。それを実装した文献はすぐに引っ掛かりました。
杉原他ほか「SCE-UA法を用いたタンクモデルの構築と. それを用いた土砂災害発生危険基準線の設定」
https://www.jstage.jst.go.jp/article/jscejsp/67/1/67_1_1/_pdf
ペナルティ関数(といってもただの重み)を手動で追加しているだけですが、これなら一気に複数の一連降雨、ピークに対して最適化が可能です。理論的ではないですが、実務向きです。

CLによる空振り低下を狙うのに、まず流量を合わせに行くのは手法として正しいのかわかりません。土壌雨量指数の推定精度が改善することと、空振り率低下には理論的繋がりがないからです。現行では、土壌雨量の推定精度が甘くても、CLの選択で調整すればよいでしょ、とも言えます。が、この文献で扱っているケースでは改善していました。たまたまなのか、一般化できるのかはわかりませんが、ある地域に限定すると、その傾向が得られる可能性を示していると思われます。

近年の降雨を用いた RBFN 値の更新とCLの再設定は必要ですから、それらと合わせて土壌雨量指数の精度向上進める手はあると思います。また、この手法であれば自動更新も可能ですよね。今後に期待しましょう。


2018年10月30日火曜日

AI とリスク管理

「AIビジネスの法律実務」人工知能法務研究会

AIに起因する問題の想定と法的責任、その対応について、ざっくりと書かれていました。リスクマネジメントです。新技術によるリスクの想定、リスク対応です。

扱うデータの著作権等を考えたことはありますが、それを利用して出てきた結果や生み出されたモデルの著作権、あるいはそれらが被害を与えた場合の法的責任については考えていませんでした。手落ちです。

自動車メーカーの自動運転に対するリスク管理は大変ですね。当然、実施されているでしょうし、対策も取られたうえで参戦されているのでしょう。リスクは多くても、管理がうまくいくと無事に利益を生み出せる、魅力的な分野なのだと思われます。生き残るためには必要に迫られている面もあるのでしょう。

土木分野でも「AI」を利用する話題を時々聞きます。が、自動車業界ほど真剣に取り組まれていません。どちらかというと、バズワードとなっている感があります。土木のことはわかっていてもデータサイエンスはわからない方々がほとんどで、そのプロとも交流のない、これからの分野なのでしょう。少子高齢化、働き手減少への措置としてロボット活用は叫ばれていますが、自動車業界ほど危機に感じていない executives が多いのかと思われます。

おそらく、土木分野へのAIの波には、技術より営業や財務といった非技術系の部署の方々が先に取り込まれていくでしょう。その場合、図書に書かれていたように、経営の観点からは社内規定や契約のありかたが問題になるでしょうね。
リスクマネジメントやAIにリスクを感じていない executives では、リスクが発現してから「どうしよう」になるのでしょうか?近い将来のことです。

2018年10月28日日曜日

AWS その2

Docker を入れてから気付きました。

「H2O の公式イメージがない」

無料枠のインスタンスでは GPU がついていませんので、Deep Water は無意味。開発も中止されているようですので、今後の実務での運用も期待できません。
公式には、AWS 用に Cloud Formation を利用したテンプレートが用意してありました。が、これも無料枠内のインスタンスは含まれていないようです。

Docker より Cloud Formation を利用した方が簡単で早い、というのはわかりましたが、AWS 初心者ですので、まずはその構成を理解することから始めました。

実際に手を動かしてみると機能や設定すべき項目が予想よりも多くありました。少し甘かったようです。
今回は、以下の設定を行いました。今後、各種インスタンスを立ち上げるにしても、最低限必要な設定でしょう。

・セキュリティ
 MFA, security group
・アカウント
 IAM (group, policy)
・ネットワーク
 VPC (IP, subnet, route table, internet gateway), elastic IP
・仮想マシン
 EC2
・ファイル転送
 WinSCPを利用

オンプレミスであれば、情報インフラ担当部署の範疇。ネットワークを組むなら家でも必要な設定ですので案外ハードルは低いのですが、AWS の仕様に沿って進めるのは初めてで(当たり前)、また関連付けも必要になります。今回は以下の図書を参考に設定しました。
「Amazon Web Services パターン別構築・運用ガイド 改訂第2版」NRIネットコム株式会社

最終的には H2O を稼働させ、外部から計算をかけることが可能となりました。
流れはわかったのですが、いくつか注意点があります。書き残しておきましょう。

まだ、社内ではAWS を導入していません。インフラ担当部署に整備を依頼しても、「やったことないからわからない」とか言われて投げ返されるでしょうね。積極的に関与してくれるプロがそばに欲しい。技術は担当技術だけに注力したいのですが。
ま、ハードの選定や準備、保守管理の手間が省ける(その時間を購入できる)のがメリットと、プラス方向に考えましょう。


2018年10月26日金曜日

石割り

先日、石割りの実演を見せていただきました。

2m角の石が、5cmほどの楔で綺麗に割れました。面白いですね。
割れた面は少ししっとり。観察しても割れた方向の「目」はわかりませんでした。

石工さん曰く、この山は水平方向が一番割れやすいとのこと。じっと見ると、確かに鉱物にクラックが見えます。目がそろっているようです。これはσ3方向、応力解放でしょう。
実際に割るのは、この水平方向ではなく、次に割れやすい南北方向。水平方向にマーキングして、上下方向を合わせて設置し小割するそうです。周辺の山は大体同じ方向で割れやすいとのことですので、応力履歴と関係しているのかなあ、と考えながら見ていました。

そういえば、落石源の撤去現場では石工さんを呼ぶことがあるそうです。先輩曰く、たいていの石は割ることが可能で、小割してモノレールで運び出されるそうです。製品にしない(綺麗に割る必要がない)のであれば、向きは関係ないのかもしれません。

小さな力で綺麗に割る方法を見出した昔の人には感心します。素晴らしい。

2018年10月20日土曜日

AWS

AWS を利用開始。

機械学習では使う必要もないかな?と思い始めていたのですが、他にも必要となる機会は容易に予想されますし、準備を続けてきたこともあって使用することに。

最初は無料枠でできることを体験。
チュートリアル通りに EC2 インスタンスを立ち上げ。色々用意されていますね。Deep Lerning 用に CUDA から各種ライブラリまでインストール済みのタイプも用意されていました。

アクセスは Win10 から。Windows Subsystem for Linux + Ubuntu を利用。
ssh -i ~/.ssh/Key.pem ec2-user@IP でOK。簡単ですね。

ひとまず、立ち上げて、アクセスして、削除するまでの流れはわかりました。
次は Docker を使って動かしてみましょう。