異常検知ふと思いたったので書く。2016年は自然言語研究者からWeb系エンジニアになったということで、今振り返ってもキャッチアップで精一杯だったなーと思うが、2017年は去年よりは慣れたこともあり、もう少し自分にとって新しいことに取り組めたかなーと思う。いっても、XXXやり始めたという内容のほとんどが仕事で必要だったという理由なので、Mackerelチームで働くための基礎体力が本当になかったんだなと改めて痛感している(なぜはてなに入社できたのか謎)。飽きる暇もなく勉強の毎日です。来年はもう少し狭く深く掘り進めていきたいかな。Go言語やり始めたPythonやり始めた異常検知やり始めた深層学習やり始めたAWSやり始めたDocker&Ansible始めたIDEに魂を売ったGo言語やり始めた仕事でGo言語をやる必要があって勉強し始めたのが今年の初めだった。Goを最初にやったけど、実際に手を動かしてレビューで見てもらったほうが早いなと思って、MackerelのグラフアノテーションをmkrでできるようにPRを出したのが初めだったと思う。mackerelio/mkr書き始めた最初はsortやるにもあれこれやんないといけないし、かっこよく書けないなーと思っていた。慣れてくるととにかく素朴に書くのがいい文化であることが分かってきて、慣れるとそれはそれでよいもんだということが分かってきた。最近では一番好きになった言語かもしれない。mattn/memoのソースコードを読んで小さいPRを出したり、中規模なものではSlackで能動学習をできるようなアプリケーションを書いたり、係り受け解析器、エントリ推薦を書いたりした。このくらいの規模をいくつか書くと大分慣れることができた。routineはまだ使いこなせているとは言えない。blogGoはcliアプリをさっと書けて、シングルバイナリで簡単に使ってもらえるのが最高だということが分かって以降、Mackerelのプラグインを作りまくったりしていた。Goの練習に丁度いいと思うので、どんどん書いて欲しい。releaseしてもらってありがとうございました)。ayumu83s/mackerel-plugin-nasnePythonやり始めたこちらも今さら感がある。去年は仕事の機械学習のコードはPerlで書いていたけれど、今年はPythonで書く仕事がきた。Python自体は遠い昔書いていた時代があったので、大きな戸惑いは特になかった。scikit-learnやjupyterがあって、便利な世の中になっていた(激しく今さら感)。enterprizeがipynb対応していて、プロトタイプや調査結果の共有に便利。はてなのインターンの機械学習講義も今年からついにPythonにしました、講師を担当していた。一方で機械学習以外ではGoがよかったこともあって、趣味ではあまりPythonのコードを書く機会がなかった。色んな環境でさっと使ってもらえることを考えるとpyenvでpython3.6をインストールしてもらって、pipでライブラリをインストールしてもらって...というを考えると面倒で、この辺はGoがいいなと思う。異常検知やり始めた書籍での勉強は昨年末に始めたけど、今年は手を動かして社内の多次元の時系列データでの異常検知のプロトタイプやproductionのコードを書いたりしていた。異常検知、教師なしがdefaultなので難しいだろうなと思っていたけど、予想通り簡単ではなかった。現場的には誤検知をどうやって抑えればいいか、どういうデータにはどういう手法ならばいいかのノウハウを少しずつ貯めていってという感じだった。中間アウトプットとしてMackerelのチェック監視で異常検知を行なうものを出したりしていた(これはさすがにGoじゃなくてPython)。Mackerelのホストメトリックの異常検知を行なうチェック監視プラグイン論文もちまちまと読んでいた。異常検知回りは問題設定でまだまだやられていないことも多いので、論文読んでて楽しいですね。blog一般の機械学習や深層学習はそこかしこで勉強会やコミュニティが存在するけど、異常検知peopleはどこに行くと会えるんでしょうか。深層学習やり始めた仕事で現状必要になっているわけではないが、これからどう向きあっていくかを含めて色々試している。深層学習の本は山ほど出ているので、それで勉強しつつkerasで手を動かして感覚を掴んだりしていた。LSTMやCNNを使って社内の既存タスクを解き直してみたが、多少精度は上がるものの劇的というほどではなかった。これまで社内で取り扱っていなかった生成系のタスクや画像系の問題について面白い(かつお金にもなるような)問題を探っていく試行錯誤がもう少し必要そう。画像系は教師データと大量の計算機リソースが必要だと思っていたが、転移学習をベースにすれば全く手が出ないなんてことはなかった。いえ、深層学習に関係なく、社内のコーパスを含めたリソースは今後も定期的に整備していきたい。AWSやり始めたこれも仕事で必要だった。MackerelのAWS/AzureのIntegrationをやっているにも関わらずcloudほとんど自分では使ったことがなく、仕事でもLambdaやDynamodb、EC2を使っていなかった。piを買ったので、今はやめた)。Lambdaで動かすようにした。blog仕事でやるような規模のものは趣味の範囲では無理なので、この辺で得た知見をベースに仕事でも生かしていきたいなという感じ。Docker&Ansible始めたこれも仕事で。runしかやっていなかったけど、Dockerfile書いたり、composeが何者か分かってきた。Hubに置いたりしていた。HubAnsibleは自分のクローラーのコードや環境設定をEC2でバチっとやりたかったので、少し勉強した。sshしてあれこれやらなくていいのは便利ですね。EC2だと環境作っては壊してというのがお手軽にできる。Request送ったりしていた。mackerelio/ansible-mackerel-agentIDEに魂を売ったこれは仕事じゃなくて趣味。去年までは頑張ってScalaをEmacs(ensime)で書いていたんだけど、いよいよ辛くなってきた。IDEAを使い始めた。変数の型が分かったり、関数の定義元にさくさく飛べるので、大分効率が上がった。メモリがっつり持っていかれるのが痛いけど、これは諦めた。IDEAが便利だったので、Python(PyCharm)やGo(Goland)を書くのもIDEを使うようになってしまった。Emacsで書くものがmarkdownだけになってしまったので、気分転換がてらvimに乗り換えをした。今のところそんなに困っていない。SKKはまだ捨てれていない。Batchをよく使っています。(1)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。