技術的貯金

鳴かぬなら 作ってしまおう ホトトギス

M5StackとPIRセンサー、switchbotで人感センサーで電気オンシステムを作ってみた

玄関の電気の壁スイッチが靴箱の裏にあり押しにくいので自作してみました。

www.youtube.com

ソースは下記記事を参考に作成しました。ありがとうございます!

参考記事 tech.fusic.co.jp b.okadajp.org

コード gist.github.com

困ったこと

・下記のエラーが出て、最初は快調に動くが途中で止まる現象に遭遇...

 lld_pdu_get_tx_flush_nb HCI packet count mismatch (0, 1)

どうも、windows10で起こるバグの模様...? githubmemory.com

macで起きるか試してみた。 電池節約のために、ディスプレイオフの部分を消して試したところでない。

ここをオンにすると、エラー出る。しかしwindowsの場合と違ってエラーが出てもmacだと動き続けてる... なぜ...

マイコンできるようになりたいですが、難しいですね... 本当にapple watchなど小さいのによくできていると感じる今日この頃です。

解消法

ちょうどAmazonタイムセールで2500円が2000円になってたswtichbotの人感センサーポチりました!

m5stackは電池持ちもあまりないですし、3dプリンタもなく(欲しい...)マウントなども作れないので既製品あるなら既製品で十分ですね。 楽しみにして待ちます。

統計検定準一級に...

落ちました!!!

f:id:littlewat:20210718175423p:plain
failed

くぅ。落ちた感覚は普通にありましたが、郵送でわざわざ来たので少し期待してしまったじゃないか。

不合格に花丸ついてるのもムムム。。

ま、浪人して再受験ですな。

結局、基本的な分布は導出できるレベルになってないと受からない内容だった気がするので、1級の対策もかねつつ頑張っていくしかないなと感じる今日この頃ですた。。

「2040年の未来」予測読んだ

youtubeで何気なく流れてきた成毛さんの動画を見て興味を持ち購入。 www.youtube.com

結論はなかなか暗い未来ということだ。 食料、経済、災害...

インデックス投資はここでも保険なんかよりも押しの商品として紹介されていた。

電池では覇権を日本がとってほしい。。

テクノロジーの発展くらいが明るいものだったのでそこに貢献できればと思った次第であった。

Federated Learningのレコメンデーション(行列分解)をやってみる

Federated Learningとは、自分が認識した範囲では、分散学習でエッジ側で訓練し、訓練結果の重みだけ(入力や出力そのものは送らず)を中央のサーバーに送って中央のサーバーのモデルを更新し、それをまたエッジに配信していくというアプローチである。入力や出力そのものは送らないため、プライバシー配慮ができていることで近年注目されているそうだ。 参考 - Microsoft PowerPoint - KCCS200423_Kashima_federated.pptx - https://hkashima.github.io/introductionFederatedLearning.pdf

しかし、ネットで検索してもレコメンデーションの分野でやってみた例や記事があまりなく、出てくるものは論文がほとんどである。 英語記事ではなんとかあったのが下記。

blog.openmined.org

今回、この記事を書いているopenmined社が開発している github.com

を使って、下記記事を参考にpytorchのmatrix factorizationを実装した。(記事ありがとうございます!)

takuti.me

成果物は下記。 github.com

pysyftは0.29系と0.3系で記述方法がだいぶ違っており、最初0.29で実装しようとしたが、EmbeddingLayerがなく0.3系に切り替える。

ライブラリのインストールで依存関係がうまく解消できずこけまくったが、なんとか解消できたのでライブラリのバージョンも成果物に含めた。

poetryで公式のflのexampleが動かなかったのでひとまずissueたてた。 github.com

オープンソースにコミットしてみたい欲求があったので、英語でreadme書くなどしてPR作ってみた。 特に欲せられてない気もするので、すぐリジェクトされそうではありますが....

github.com

最近、資格勉強などでgithubの草が生えてなかったが、本日統計検定準1級終わった(二重の意味で)ので、夏にもなったし草生やし活動していきたい。

「会社を変える分析の力」を読んだ

下記記事で紹介されていた bdm.change-jp.com

下記本を読んだ。

内容は統計の話というより、分析をビジネスに生かさないと意味ないよと繰り返し主張するものであった。

分析だけする人(バックオフィス型)ではなく、ビジネスに生かすところまで行う人(フォワード型)になれというもの。

たしかに自分の経験に照らし合わせても分析するのが楽しくなってしまい、ついつい個人の趣味でデータを分析してしまうこともあった。。気をつけねばと感じた。

そのためにもまず分析する前に、目的を確認し、4つの壁「データの壁」、「分析の壁」、「KKDKKT条件みたいにかっこいいものかと思ったら、勘と経験と度胸ということらしいです。。この重要性も本書では指摘されてました。)の壁」、「費用対効果の壁」を突破できるかを見据えるべきということでした。

下記の3ステップを一気通貫ですべてできることが大事とも。 ビジネス課題 -> 「1. 見つける」-> 分析問題 -> 「2. 解く」-> 数値解 -> 「3. 使わせる」-> ビジネスの意思決定

「2.解く」が視認性が高く身につけがちなスキルだが(私も現在身につけようととしていたが)、むしろ2はコンペに出したり外注すればよく、2以上に1と3が重要ということだった。(当然2の基礎も必要ではありますが...)

現在エンジニアとして手を動かす日々なので、分析ツールも自動化して手軽に「3. 使わせる」まで丁寧に面倒が見れるようになりたいと思った。

GCPのML Opsハンズオンに参加した

Kaz Satoさんによる講演。

下記簡易メモ

01 MLOps at Google

PoC段階で終わる例が多い。データサイエンスとエンジニアの壁。 Operatingの方がLaunchingより難しい。 精度が落ちた時に検出できるか。

  • DevOpsとMLOpsは別物。
    • DevOps: CI/CDを回す。Reproducibility大事。
    • MLOps: 振る舞いを決定するのは特徴データ。DevOpsのように単体テストで検証できない。データのガバナンスが大事。共変量シフト。機械学習のアウトプットをきちんと専門家ではない方にも説明できるか。デプロイした後で考えるは遅い!

Googleの論文。苦労の証。タイトルは「機械学習使うのは高いクレカ使うのと同じ」「機械学習使うのは技術的負債ですよ。」

うまく機械学習を回している例。ライゾマティクス社

cloud.google.com

02 AI Platform

Gaussian Processでハイパラチューンできるよ。sage makerにもありますね。

03 MLOps withAI Platform Pipelines

エンドユーザーが治して再学習できる。active learning。加工図面の自動予算見積もり。

04 AI Platform Pipelines Hands-on workshop

kubeflowのお試し。beta版なので途中で動かないものもちらほらある模様。

youtu.be

youtu.be

05 Beyond Pipelines

データの分布が時間と共に変わったかグラフなどで見れる機能( TensorFlow Model Analysis (TFMA) )できるよ。SHAP使って重要な特徴量の変化も見れるようになるよ。。

www.youtube.com

感想

MLOpsの概要について知ることができた。

ハンズオンのデモで割とトラブっていらっしゃった。やはりデモにトラブルはつきもの。それも含めてリアルで良いですね。

kubeflowやはり便利そうだ。docker-composeやaws fargateで済ませて、kubenetes避けてきたが勉強しようかしら。

統計検定2級を取得した

最近アプリケーションエンジニアだが、データを使った根拠のある改善をしたくなり統計を復習する。

昨日、CBT(コンピュータ)での統計検定2級を受けて無事取得した。

対策は過去問をひたすらとき、(1問1問解いてはすぐ答え合わせが良かった)間違った問題についてはぐぐったり、何回も繰り返すのみ。(正月休みがこれで潰れた...)

https://www.amazon.co.jp/dp/4788925524

開始30分前には会場入りしようとしたが、10分前まで空かないとういことでカフェ探すのもだるいので外で待機して下記読んで復習する。

qiita.com

qiita.com

会場はなんと自分一人で貸し切り状態!(密じゃなくて良かった。。私のためだけに会場開いてくださりありがたい。。)

CBTの良さだけあって、解答後即座に結果が出る。。(受かったから良いが落ちてたらしょげそう。。)

受験のコツは、やはり時間が厳しいので(後半の問題の方が解くのに時間がかかる印象)、とにかくささっと解いて行って時間かかりそうな問題や難しい問題は「あとで見直す」にチェックをつけてあとで解くのが良さそう。 (結局時間足りずにあとで見直す時間ほとんど取れなかったが。。)

学んだ知識を実務で生かしたいと思う今日この頃である。