タグ

ブックマーク / www.yasuhisay.info (21)

  • はてなで働き始めてからほぼ5年になるので振り返ってみる - yasuhisa's blog

    そろそろ前職を退職してから、はてなで働き始めて5年(!)が経とうとしている。5年も働いていると、昔何をやっていたか、その当時どういう気持ちで働いていたかを忘れてしまう。備忘録っぽく書き残しておこう。ポエムです、長いです、大体自分向けに書いてる。 NTT CS研 => 株式会社はてな チーム開発への適応 インフラ苦手意識の克服 教師なし機械学習番環境での運用 データ基盤とCustomer Reliability Engineerへの挑戦 今後はデータエンジニアリング NTT CS研 => 株式会社はてな 基礎研究職からWebアプリケーションエンジニアへの転職だった。ログを残しておくと、こういう時に振り返れて便利。 NTT CS研を退職して、株式会社はてなに入社しました - yasuhisa's blog 割と珍しい(?)転職ではあったかもしれないが、機械学習や自然言語処理はアルゴリズム単

    はてなで働き始めてからほぼ5年になるので振り返ってみる - yasuhisa's blog
    y_uuki
    y_uuki 2021/01/15
  • Machine Learning Casual Talks #10でMackerelのロール内異常検知について発表しました - yasuhisa's blog

    メルカリさんのオフィスで開かれたMachine Learning Casual Talks (MLCT) #10に「教師なし学習によるMackerelの異常検知機能について 〜設計/運用/評価の観点から〜」というタイトルで登壇してきました。 MLCTは機械学習をサービスで運用していく知見を共有する勉強会です。YouTube等で動画配信を積極的にしてくださっていて、はてなの京都オフィスでも鑑賞会と称してランチタイムに同僚と発表を見させてもらっていました。普段から勉強させてもあっていた勉強会に、登壇という形でちょっとはお返しできているとうれしいです。登壇させて頂き、ありがとうございました! 私の発表資料はこちらです。スライド46枚ありますが、発表は15分だったので番はこれの短縮バージョンで発表させてもらいました。 教師なし学習によるMackerelの異常検知機能について 〜設計/運用/評価の

    Machine Learning Casual Talks #10でMackerelのロール内異常検知について発表しました - yasuhisa's blog
    y_uuki
    y_uuki 2019/05/30
  • AWS Batchとそのモニタリング方法について - yasuhisa's blog

    最近、仕事趣味AWS Batchをよく使っています。仕事趣味のそれぞれの用途は以下の通りです。 仕事: 機械学習を用いた異常検知システムのパラメータ学習 PyCon mini Osakaで異常検知システム構築の裏側について発表しました - yasuhisa's blog 学習データ取得と混合ガウス分布のパラメータ推定が元気に動いています 趣味: ML Newsという機械学習関連のエントリをまとめてくれる君 元になるエントリをTwitterから取得する部分 機械学習に関連するエントリか判定する分類器の学習 取得してきたエントリの判定 AWS Batchの使い方やモニタリング方法が大分こなれてきたので、エントリにまとめておきます。 AWS Batch is ... AWS Batch is not ... モニタリング方法 Job Queue Statusのモニタリング 成功/失敗したタ

    AWS Batchとそのモニタリング方法について - yasuhisa's blog
    y_uuki
    y_uuki 2018/06/22
    めっちゃいい
  • PyCon mini Osakaで異常検知システム構築の裏側について発表しました - yasuhisa's blog

    現在仕事で作っている異常検知システムについてPyCon mini Osakaで登壇してきました。異常検知というマイナーなトピックですが、多くの人に聞いてもらえてよかったです。 #pyconjp #pyconosaka 「Pythonを用いた異常検知システム構築の裏側」 吉田康久さんです! たしかはてなの人だったはず。 pic.twitter.com/hRacSgV59D— PyCon mini Osaka (@OsakaPyConMini) 2018年5月19日 はい、はてなMackerelチームの中の人です。 機械学習の人からすると「なんだただの混合ガウス分布か」と思われるかもしれませんが、異常検知のシステムを実際に作ろうとすると考えることが色々あります。今回の発表では ユーザーのどのような要望から異常検知機能を作るに至ったか 異常検知とはそもそも何か、どういった問題設定か 異常検知手

    PyCon mini Osakaで異常検知システム構築の裏側について発表しました - yasuhisa's blog
  • S3のログをAmazon Athenaを経由してRedashで分析/可視化 - yasuhisa's blog

    DWHやログ基盤を色々試してみたいけど、Amazon Redshiftよりお手軽に始められるツールとしてAmazon Athenaを教えてもらいました。S3にtsv/csv/json...を置いておくと、SQLで分析できるってやつです。BigQueryと同じくクエリ単位で課金だけど、ログはS3に上がっていることが多いので、お手軽に試せそうということで試しました。N番煎じ感しかないやつです。やったこと。 S3に分析したい対象のデータを置く 大きいデータなら日毎などに分けておくとあとのパーティションで役に立つ Athenaでtsv/csvのカラムの型を定義しておく インデックスの指定などは特にない パーティション分けてなければ基的にフルスキャン 数万件くらいの簡単なSQLで手元だと一瞬で返ってくるようなクエリでも3秒くらい時間かかるときもある S3のバケットなめるからそういうものっぽい 参考

    S3のログをAmazon Athenaを経由してRedashで分析/可視化 - yasuhisa's blog
    y_uuki
    y_uuki 2018/03/29
    便利
  • KaggleのCTR予測コンペで上位10%に入るまでの試行錯誤 - yasuhisa's blog

    週末KagglerとしてavazuのCTR予測コンペに参加しました。Kaggleは機械学習版のISUCONだと思ってもらえばよいです。コンペ自体は終わっているので、late submiteであまり意味はないかもしれません、練習です。leaderboard上で上位10%以内に行けたので、そこまでの試行錯誤をメモしておきます。謎ノウハウ(?)を持っているガチ勢じゃないと上位に行けないものかと思っていましたが、基に忠実にやればこれくらいの順位(上位7.6%)に行けましたし、他の人の工夫を垣間見えるという意味でも現場の機械学習やり始めたエンジニアにお薦めできそうでした。 参加の動機 目標感: 頑張りすぎずに上位10%以内に入る 試行錯誤 AthenaとRedashによる探索的データ解析 ベンチマークをまず超える 線形分類器でシンプルな特徴量 時系列要素を忘れていて過学習発生 特徴量エンジニアリン

    KaggleのCTR予測コンペで上位10%に入るまでの試行錯誤 - yasuhisa's blog
  • 異常検知ナイトでLT登壇しました - yasuhisa's blog

    機械学習の中でもマイナーなテーマであろう異常検知がテーマの勉強会、異常検知ナイトというイベントでLTの登壇をしてきました。マイナーテーマなのに300人以上が集まる東京怖い。 3ページしかないですが、発表資料も置いておきます(LTのレギュレーションで3ページ5分)。 異常検知ナイト LT登壇資料 はてな id:syou6162 from syou6162 LTのテーマは、現在自分がどんなデータで異常検知をやっているか、どういう困り事があるかを発表してプロの方からアドバイスをもらおうというものです。Mackerelで今まさに異常検知機能の開発をしていて、時系列周りのモデルのハイパーパラメータを開発データでチューニンングしたいけれども、そもそも異常データを含む開発データって手に入らないことが多くてどう対応していくのがよいのか?という質問をさせてもらいました。プロからのアドバイスは動画で見れるので

    異常検知ナイトでLT登壇しました - yasuhisa's blog
    y_uuki
    y_uuki 2018/02/16
  • マージン最大化近傍法の読書メモ - yasuhisa's blog

    社内で異常検知の輪講を進めています。今回は近傍法による異常検知。一年くらいに一人で読んだときのメモはこちら。慣れない人は途中で出てくる劣モジュラの概念や勾配の導出が大変かなと思ったので、メモ書きしておきます。 劣勾配/劣勾配法 目的関数が連続で微分可能な関数の場合、SGDなどによって最適化が可能な場合がある。しかし、微分可能でない点を含む場合(機械学習の文脈ではヒンジ損失やL1正則化項など、様々なところで目にする)、単純な勾配法は使えない。しかし、勾配の概念を拡張した劣勾配法で最適化を行なえる場合がある。 連続で凸な関数fがあったときに、任意のに対して を満たすようなをにおけるfの劣勾配という。勾配は一つの値であるが、劣勾配は条件を満たすものが複数存在することがあるので、値ではなく集合として与えられる。1次元で書くと分かりやすいが、右辺が傾きgで、点(a, f(a))を通る直線であり、左

    マージン最大化近傍法の読書メモ - yasuhisa's blog
  • AWS Lambda上で鯖(Mackerel)の曖昧性問題を機械学習で解決しよう - yasuhisa's blog

    この記事は、はてなエンジニア Advent Calendar 2017の1日目の記事です。 サービスに関連する言及のみを観測したい こんにちは。Mackerelチームでアプリケーションエンジニアをやっているid:syou6162です。サービスを運営していると、サービスに関するtweetをslackに流して定期的に観測しているといった方は多いと思います。観測するモチベーションは様々ですが サービスの不具合に一早く気が付ける もちろんテストや動作確認はやっているのが前提だと思いますが、それでも気づけないものも出てきます 新しい機能を出した際にユーザーの反応が直に見れるため、開発者としてはモチベーションが上がる 問い合わせまではないが、どういう機能要望などがあるか知ることができる などが挙げられると思います。 問題点 Mackerelチームでもサービスに関するtweetを定期的に観測しています。

    AWS Lambda上で鯖(Mackerel)の曖昧性問題を機械学習で解決しよう - yasuhisa's blog
    y_uuki
    y_uuki 2017/12/01
    得意分野と新たに学ばれているAWSを組み合わせて、あっという間につくりあげていてすごい
  • 2017年の振り返り技術編 - yasuhisa's blog

    ふと思いたったので書く。2016年は自然言語研究者からWeb系エンジニアになったということで、今振り返ってもキャッチアップで精一杯だったなーと思うが、2017年は去年よりは慣れたこともあり、もう少し自分にとって新しいことに取り組めたかなーと思う。といっても、XXXやり始めたという内容のほとんどが仕事で必要だったという理由なので、Mackerelチームで働くための基礎体力が当になかったんだなと改めて痛感している(なぜはてなに入社できたのか謎)。飽きる暇もなく勉強の毎日です。来年はもう少し狭く深く掘り進めていきたいかな。 Go言語やり始めた Pythonやり始めた 異常検知やり始めた 深層学習やり始めた AWSやり始めた Docker&Ansible始めた IDEに魂を売った Go言語やり始めた 仕事Go言語をやる必要があって勉強し始めたのが今年の初めだった。A Tour of Goを最初

    2017年の振り返り技術編 - yasuhisa's blog
    y_uuki
    y_uuki 2017/11/22
    いきおいある
  • Anomaly Detection in Streams with Extreme Value Theoryを読んだ - yasuhisa's blog

    Anomaly Detection in Streams with Extreme Value Theory Amossys-team/SPOT: SPOT algorithm implementation (with variants) KDD2017の異常検知の論文です。異常検知を行なうとき、何らかの閾値を設定しますがこの閾値の決定は難しいことが多いです(そして精度にはよく効いてくる...)。正規分布のように理論的によく知られていて、解析的にも扱いやすいような分布では、累積分布関数を逆に辿ると「99.9%に対応する閾値はこれ!」と設定することができます。しかし、確率分布を陽に仮定するとそれ以外の分布ではきちんと動かなかったり、データ毎にモデル化をする必要があります。陽に確率分布を仮定しない方法もありますが、そちらはデータが少ないor厳しめのパーセンタイルを指定したいときに難しさがありま

    Anomaly Detection in Streams with Extreme Value Theoryを読んだ - yasuhisa's blog
  • ホストメトリックの異常検知を行なうmackerel-agentのチェックプラグインを作りました - yasuhisa's blog

    最近、異常検知の実験/実装を行なっていますが、その過程の中間成果物をmackerel-agentのチェックプラグインとして切り出しました(非公式のプラグインです。サポート宛てにお問い合わせしてもらっても回答できません。id:syou6162まで個人的に連絡してもらえたら対応できるかもしれません)。docker pull yasuhisa/check-host-metric-anomalyで簡単に使えるので、是非遊んでみてください。 syou6162/check-host-metric-anomaly: Mackerelホストメトリックの異常検知を行なうチェック監視プラグイン yasuhisa/check-host-metric-anomaly - Docker Hub このチェックプラグインの使いどころは ホスト監視をしたいが、どれくらいの閾値が適当なのか分からない/閾値の調整が面倒なの

    ホストメトリックの異常検知を行なうmackerel-agentのチェックプラグインを作りました - yasuhisa's blog
    y_uuki
    y_uuki 2017/11/06
    めっちゃいい
  • tig/hubでレビューしやすい環境を作る - yasuhisa's blog

    コードレビューをするとき、コメントや判断をするには様々な情報が必要です。例えば 変更箇所とそれに対応するcommit message 該当行のblame、その変更が行なわれたpull request 今見ている変数の型、関数の定義元 などです。レビューのコメントを書く場所はGithub/GHEである場合が多いと思いますが、上述した内容と行ったりきたりするのは大変です。これらの起点をtigに置くとスムーズに行ったので、その方法をメモしておきます。 tigはもはや説明するまでもないですが、gitの見やすいcliインターフェイスです。commit logを見たり、diffを分かりやすく表示できます。 jonas/tig: Text-mode interface for git レビュー対象になっているPull Requestで行なわれた変更のみをtigで見たいときは、以下のように範囲を絞ります(

    tig/hubでレビューしやすい環境を作る - yasuhisa's blog
    y_uuki
    y_uuki 2017/10/31
  • Go言語にさらに入門するために係り受け解析器を書いた話 - yasuhisa's blog

    今年からGo言語に入門していますが、もう少し複雑なものをものを書いてみたいと思ったので、係り受け解析器を書きました。その過程で工夫したこと、苦労したことをまとめます。作ったものはこちら。 一人で作っているプロジェクトですが、100行以下の細かめの修正毎にPull Requestを作っているので、どのような過程でやっているかが比較的分かりやすいと思います。 easy-first algorithmについて 係り受け解析アルゴリズムの1つです 最も自信のある(つまり簡単な)ところから係り受け関係を付けていくgreedyな方法です コーパスには正解の係り受けは付与されていますが、簡単さの順序は当然分からないので、構造化パーセプトロンでそれを含めて学習します 構造化パーセプロトンについては入門エントリを書いているので、興味がある方はどうぞ なぜ係り受け解析器を書いてGo言語の入門をするのか 学んだ

    Go言語にさらに入門するために係り受け解析器を書いた話 - yasuhisa's blog
  • 実タスクで機械学習を導入するまでの壁とその壁の突破方法 - yasuhisa's blog

    社内で機械学習の案件があった際に、機械学習の経験者しか担当できないと後々の引き継ぎで問題が起こりがちです。これを防ぐために、機械学習に興味があり、これまで機械学習を経験したことがないエンジニアにも担当できる体制を整えられることが望ましいです。しかし、機械学習のことに詳しく知らないディレクターやエンジニアにとっては、どのような機械学習の理解段階ならばタスクを任せられるかの判断をするのはなかなか困難です。そこで、このエントリでは機械学習を実タスクでやるまでに乗り越えるべき壁だと私が思っているものについて説明します。 第一の壁: 綺麗なデータで機械学習の問題を解ける 講義で扱われるような綺麗なデータを扱える 行列形式になっていて、欠損値や異常値もない 上記のデータを回帰や分類問題として解くことができる 実際に解く際にはライブラリを使って解いてよい 手法を評価する上で何を行なえばよいか(Preci

    実タスクで機械学習を導入するまでの壁とその壁の突破方法 - yasuhisa's blog
  • Go言語に入門する - yasuhisa's blog

    先週末、仕事で東京に行く機会があって、往復の新幹線の中でまとまった時間が取れるなと思ってGo言語に入門していました。Go言語に入門する理由は 仕事で普通に使う(mackerel-agentなど) 職場で評判がいい 一年に一個は新しい言語を勉強しようっていうアレ などなどです。やtour of goを読むだけだとあまり頭に入ってこないので、複雑過ぎず簡単過ぎない例をやろうということで平均化パーセプトロンで二値分類を書きました(ファイルの読み込み、文字列操作、スライス、Mapの基的な操作、structの使い方などがちょっと身に付く)。Perlに再入門、Scalaを勉強するときもこのネタだったので、定番になってきつつある。コードはこの辺に置いてます。 https://github.com/syou6162/go-perceptron/blob/master/main.go ちょっと困った箇所

    Go言語に入門する - yasuhisa's blog
    y_uuki
    y_uuki 2017/01/28
    よい
  • 異常検知本の読書メモ Part 1 - yasuhisa's blog

    異常検知を最近読み進めていたので、自分が知らなくて新しく勉強になったところのみメモ。 ホテリングの法による異常検知 異常度はマハラノビス距離で与えることができる サンプル数Nが次元数Mより圧倒的に多い場合はは自由度M、スケール因子1のカイ二乗分布に従う これによりカイ二乗分布で欲しい閾値(逆関数か対応表から)を決めておく 「カイ二乗分布の分散はであるため、精度よく異常検知をするためにはなるべく変数選択をするか部分集合毎にを計算するのがよい」と書いてあってナルホド感があった 単純ベイズ法による異常検知 naive bayesのところまぁ知ってるので飛ばす ベイズ決定則とネイマンピアソン決定則の関係のところは勉強になった ベイズ決定則は異常判定を強く抑制する傾向にあるので、既存の二値分類の実装をあまり深く考えずに異常検知に使うと異常標精度が非常に低くなってしまうため注意が必要 近傍法による

    異常検知本の読書メモ Part 1 - yasuhisa's blog
  • Google機械翻訳の仕組み&できるようになったこと/まだ難しいことについて、社内の機械学習勉強会で説明します - yasuhisa's blog

    社内の機械学習勉強会で最近話題になった機械学習関連のエントリを取り上げているのですが、ここ一ヶ月ではGoogle Neural Machine Translation(GNMT)がとても話題になっていました。GNMTで使われているEncoder-Decoderやattentionのような仕組みを直近で使う予定は特にはないですが、機械学習を使うエンジニアとして知っておいて損はないし、技術的に何が変わったことにより何ができるようになって、何はまだできないのかを知ろう、というのが目的です。技術的な項目は興味ない人も多そうなので、最後に持っていきました。 Google Neural Machine Translation(GNMT)の最近の進化について できるようになったこと 定量的な評価 まだまだ難しいこと 技術的な詳細 Encoder-decoder Attention based encod

    Google機械翻訳の仕組み&できるようになったこと/まだ難しいことについて、社内の機械学習勉強会で説明します - yasuhisa's blog
    y_uuki
    y_uuki 2016/11/24
    "応用側がencoder decoderのようなend2endで現実的に解かれるようになると自然言語処理でこれまで作られてきたエコシステムがうまく回らなくなる部分も出てくるのかなと思うところもありました。"
  • 機械学習をプロダクトに入れる際に考える採用基準について - yasuhisa's blog

    サービスに機械学習技術(例えばSVM)を入れる際に、「この機械学習技術番サービスに投入しても大丈夫なものか?」を考える基準がまとまっていると人に説明するときに便利だなとふと思ったのでまとめてみました。散々言われ尽くされている話だとは思います。 前提 考慮に入る採用基準 予測精度 (コードの)メンテナンスの容易性 計算オーダー 学習時 予測時 挙動のコントロールのしやすさ/予測説明性の容易さ チューニングの必要性 その他 まとめ 前提 機械学習がプロダクトの主要な武器になる(例えば最近話題になっているGoogle翻訳におけるNMT)ものではなく、サービスにデータがまずあり、機械学習でデータを活用することにより、そのサービスを支えていくようなものを前提に考えています(例えばCGMサービスのスパム判定)。また、投稿内容は私個人の意見であり、所属組織を代表するものではありませんとお断りしておき

    機械学習をプロダクトに入れる際に考える採用基準について - yasuhisa's blog
    y_uuki
    y_uuki 2016/11/21
    参考になる
  • はてな社内の勉強会で構造学習について発表しました - yasuhisa's blog

    先週末、はてな社内の勉強会で構造学習、特に実装が簡単な構造化パーセプトロンについて発表しました。発表資料と説明用にサンプルで書いたPerlの品詞タグ付けのコードへのリンクを張っておきます。 今日からできる構造学習(主に構造化パーセプトロンについて) from syou6162 structured_perceptron/structured_perceptron.pl at master · syou6162/structured_perceptron 「えっ、Perlかよ」という人がいるといけないので、Clojureで構造化パーセプトロンを使った係り受け解析のサンプルコードへのリンクも張っておきます(2種類あります)。PerlもClojureもあれば8割くらいの人はカバーできそうなので、安心ですね。 syou6162/simple_shift_reduce_parsing syou616

    はてな社内の勉強会で構造学習について発表しました - yasuhisa's blog
    y_uuki
    y_uuki 2016/06/27
    おもしろかった。単にこういうものがありますじゃなくて、考え方とか日記的要素があるのがいいですね