Fire Engine

消防士→ITエンジニア→研究者

論文解説 Group Equivariant Convolutional Networks

前回の記事では、Equivariant Neural Networksというデータの対称性に着目した深層学習の設計の新しいパラダイムについて概観した。 blog.tsurubee.tech 今回は、2016年に登場したEquivariant Neural Networksの先駆け的な存在であるGroup Equivariant Convo…

Equivariant Neural Networksの概論:群論を用いた深層学習の設計の進展

最近、Equivariant Neural Networksというデータの対称性に着目した深層学習の設計の新しいパラダイムの存在を知り、非常に興味を持っている。Equivariant Neural Networksは、深層学習の更なる汎化性能の向上や学習の効率化、適用分野の拡大などを実現する…

機械学習の予測を解釈するKernel SHAPの高速性と拡張性の向上を目指したライブラリを開発した

先日,協力ゲーム理論のシャープレイ値に基づき機械学習モデルの予測を解釈するKernel SHAPという手法の理論と既存のライブラリの実装についてのブログを書いた. blog.tsurubee.tech 既存のSHAPライブラリであるslundberg/shap(以下,単にSHAPライブラリと…

協力ゲーム理論のシャープレイ値に基づき機械学習モデルの予測を解釈するKernel SHAPの理論と実装のまとめ

機械学習の幅広い分野への応用が進むにつれ,機械学習がその予測の根拠などを理解できない「ブラックボックス」となることが問題視されており,機械学習の解釈性や説明性が注目されています.今回のテーマであるSHAP(SHapley Additive exPlanations)は,機…

機械学習モデルの局所的な解釈に着目したシステムにおける異常の原因診断手法の構想

著者 鶴田 博文, 坪内 佑樹 所属 さくらインターネット株式会社 さくらインターネット研究所 研究会 第8回WebSystemArchitecture研究会 1. はじめに インターネットを介して利用するシステムの大規模化に伴い,システムの構成要素数の増大や,構成要素間の関…

企業研究者の立場からKaggleに取り組む意義を考えた

先日,Kaggleで初めてコンペに挑戦し,その振り返りをブログに書きました. 現在,企業で研究者として働いている私は,Kaggleのコンペに取り組むことは非常に学びが多く,自身の研究活動にも良い貢献をするだろうと確信しました. 私自身Kaggleに取り組むま…

Kaggle初コンペの振り返り〜Riiidコンペで銀メダル獲得〜

Kaggleで開催されていたRiiid! Answer Correctness Predictionに参加しました.結果を簡単にまとめると以下の通りです. 順位:139位(3406チーム中) メダル:銀メダル(上位5%以内) 解法:LightGBMとSAKTのアンサンブル チーム:1人で参加 自身初となるデ…

グラフィカルモデルに基づく因果探索手法の調査

最近,因果推論や因果探索に興味を持ち,勉強している.というのも最近,ゆううきさん と一緒に分散システムの異常の原因を即時に診断するための研究を進めている.原因を診断するためのアプローチとして,サーバやコンテナ等から取得できる様々なメトリック…

経路積分量子モンテカルロ法を用いた量子アニーリングのシミュレータ

0または1の状態しかとれないビットを用いた古典的な計算機において量子力学の原理に基づいた量子アニーリングをシミュレートできるのだろうか. 量子アニーリングの理論について学んだ(前回の記事)のちに,このような疑問が生まれた.調べてみると,どうや…

量子アニーリングの原理について

量子アニーリングという言葉を初めて耳にした時から,ずっと気になっていた.なぜなら学生時代に材料工学を専攻していた私にとって,「量子」と「アニーリング」という言葉はどちらも聞き馴染みのある言葉だったからである. 最近になって,やっと勉強を始め…

GMOペパボ株式会社を退職しました

2019年7月24日が最終出社日でした。ペパボでは、ロリポップやへテムルといったレンタルサーバサービスのインフラエンジニアとして働いており、約1年半在籍していました。 今回は、ペパボでの一年半の振り返りと、転職に至った経緯などについて書いていきたい…

遺伝的アルゴリズムの並列化とgoroutineによる実装

先日、「遺伝的アルゴリズムをGoで実装してみた」という記事を書きました。 この内容で2019年7月13日(土)に開催されるGo Conference'19 in Fukuokaに登壇させていただくことになったので、開発中のeagoというパッケージをもっと作り込んで行きたいと思いま…

遺伝的アルゴリズムをGoで実装してみた

こんにちは!つるべーです! 最近は、進化計算と呼ばれるバイオミメティックな計算技法に興味を持っており、実装しながら勉強しています。 前回の記事では粒子群最適化(Particle Swarm Optimization: PSO)を実装しました。 今回は、遺伝的アルゴリズムとい…

粒子群最適化(Particle Swarm Optimization: PSO)をGoで実装してみた

粒子群最適化とは、群知能による最適化手法の一種です。この手のバイオミメティクス(生物模倣)によるアプローチは、私の学生時代の専門である材料工学でも非常に盛んに研究されていましたが、データサイエンスでも応用されているのを知って興味を持ったの…

遺伝的アルゴリズムを用いてコンテナの配置を最適化する論文:「Genetic Algorithm for Multi-Objective Optimization of Container Allocation in Cloud Architecture」

ふとタイトルが目に入ってきて気になって読んでみた。私自身そんなにコンテナ技術を触ってないけど、前から遺伝的アルゴリズムが気になっていた。 ちょいちょい知識が足りずに理解しきれないところ出てきたけど、とりあえず最後まで読んだのでざっくりまとめ…

Dynamic Time Warping(動的時間伸縮法)で時系列データをクラスタリングする

最近時系列データのクラスタリングに興味を持ち始めて、いくつか論文読んだり、アルゴリズムについて調べていたら、実装してみたくなったので勉強のために作ってみました。 実装の言語にはGolangを用いていて、クラスタリングのアルゴリズムは、Dynamic Time…

k-Shapeによる時系列クラスタリングの論文:「k-Shape: Efficient and Accurate Clustering of Time Series」を読んだ

最近、時系列データのクラスタリングに興味を持っているので、k-Shapeというクラスタリング手法に関する論文を読みました。 なぜ興味を持っているかというと、サーバの各種メトリクス(CPU使用率・メモリ使用率など)を使って、似たような特徴を持っているサ…

Krylov部分空間を導入して特異スペクトル変換による異常検知の処理を高速化した

1年くらい前に特異スペクトル変換法による異常検知ライブラリを作ったんですが、作ったっきり放置していたので、開発当初からやりたかった計算の高速化処理を書きました。 ずっと放置してた割にはちょいちょいGitHubのスターを押してもらえてて、データサイ…

ConsulのACL Bootstrapをリセットしてもう一度やり直す方法

こんにちは、つるべーです! 先日、Consul ACLの記事を書きましたが、今回もACLのちょっとした小ネタについて書きます。 内容としては、ACLをBootstrapしたあとにMater TokenのSecret IDをなくしてしまい、Consul関連の操作が何もできなって、発狂しそうにな…

Consulを使う人が知っておくべきACLを使ったセキュリティ対策

こんにちは、つるべーです!みなさん、Consul使ってますか? ConsulはHashiCorpが開発するツールで、サービスディスカバリやヘルスチェックなど様々な機能を有しています。Consulは、ノードやサービスの状態変化を起点として、特定の処理を発火させることが…

消防士からエンジニアに転職して2年が経ったので振り返る

消防士として働いていた私が、経験ゼロからプログラミングを始めて、ITエンジニアに転職してから2年が経ちました。 1年前にも同じような振り返りの記事を書きましたが、エンジニア2年目も振り返ってみたいと思います。 blog.tsurubee.tech エンジニア2年目を…

デブサミ2018福岡でSSHの話をしました

2018年9月6日開催のDevelopers Summit 2018 FUKUOKA(デブサミ2018福岡)に登壇しました。 発表内容としては、先日書いた下のブログの内容です。 blog.tsurubee.tech スライドはこちらです。 speakerdeck.com 今回の登壇はLTセッションで、発表時間が7分と短…

ユーザが接続先を意識しないSSHプロキシサーバを作った

今回は、ユーザが接続先を意識しないSSHプロキシサーバを作った話です。 SSHのユーザ名から動的に接続先ホストを決定し、SSH接続をプロキシします。 github.com 作った背景 比較的規模の大きなサーバ群を管理しており、そこに対して接続してくるユーザに特定…

「A Tour of Go」でGoに再入門した

もうかれこれ4ヶ月くらいGoを書いているんだけど、最初に文法を体系的に学ばずにいきなり書き始めたので、「A Tour of Go」で復習がてら文法を学びました。 実際にやってみると、理解が曖昧だったり、知らなかったことも出てきたので、そういったものだけピ…

Golangで軽量なSSHサーバを実装する

今回は、Golangのgolang.org/x/crypto/sshパッケージを使って、SSHサーバを構築してみました。 かなりミニマムな実装ですが、リモートからSSH接続して、対話的にコマンドが実行できるところまで実装しました。 コード github.com package main import ( "gol…

「Working with TCP Sockets」を読んだ

最近Golangを書いていると、自分でTCPをListenしたり、Acceptしたりする処理を書くことがよくあるのですが、何をやっているのか全くイメージが沸いてなかったので、「Working with TCP Sockets」を読んで勉強しました。 Working With TCP Socketswww.jstorim…

ユーザ名から特定したホストにコマンドを実行するSSHプロキシを書いてみる

今回は、勉強のために簡単なSSHプロキシサーバを実装してみました。 動作としては、ユーザがプロキシサーバに対してSSH接続した際に、ユーザ名からプロキシ先ホストを動的に決定し、SSH接続します。そして、接続したホストに対してhostnameコマンドを実行し…

PyCon Kyushu 2018 Fukuokaの実行委員をした

2018年6月30日に開催されたPyCon Kyushu 2018 Fukuokaの実行委員をしました。 pycon-kyushu.connpass.com やったこと 実行委員は主に以下の4つの役割に別れて運営を行いました。 事務局 企画 会場 広報 私はこの中でも会場の担当で、会場のレイアウトを考え…

Site Reliability Engineering – 10章 時系列データからの実践的なアラート

こんにちは、つるべーです。 先日、福岡のインフラ界隈のエンジニアの方々がやっているSRE本の輪読会に参加し、発表をさせていただいたので、その時の内容をまとめます。 私は、10章の「時系列データからの実践的なアラート」を担当させてもらいました。 は…

インフラエンジニアになって覚えたLinuxコマンド その2(ネットワーク系コマンド編)

こんにちは、つるべーです。 今回の記事は以前の続きで、インフラ業務の中で覚えたLinuxコマンドについてです。 blog.tsurubee.tech 今回はネットワーク系のコマンドに絞ってまとめていきます。 環境 macOS High Sierra(バージョン 10.13.3) VirtualBox 5.…