SIGIR2018参加記

2018/7/8-12にSIGIR 2018に行ってきたので、感想を書いていこうと思います。SIGIRは情報検索分野のトップカンファレンスであり、検索システムやレコメンドなどに関する研究を対象としています。 41回目となる今回は、ミシガン州のアナーバーにあるミシガン大…

勾配ブースティング木を用いたランク学習手法:GBrankを実装した

この記事は何? GBrankのアルゴリズム GBrankの実装 回帰木の実装 GBrankにおける勾配ブースティングの学習の実装 実装の確認・実験 回帰木の実装の確認 GBrankの実装の確認 その他 この記事は何? ランク学習は様々な手法が提案されていますが、勾配ブース…

「ベイズ推論による機械学習入門」を読んだので実験してみた(その2)

この記事は何? szdr.hatenablog.com に引き続き、「ベイズ推論による機械学習入門」で紹介されているアルゴリズムを実装・実験していきます。www.kspub.co.jp 今回は4章の「ポアソン混合モデルにおける推論」で紹介されている、ポアソン混合モデルのための…

「ベイズ推論による機械学習入門」を読んだので実験してみた (その1)

この記事は何? ベルヌーイ分布の学習 カテゴリ分布の学習 ポアソン分布の学習 1次元ガウス分布の学習と予測 その他 この記事は何? 「ベイズ推論による機械学習入門」を読んでベイズ推論を理解した気がするので、本の3章で紹介されているアルゴリズムを実験…

/etc/shadowの暗号化されたパスワードを確認

CentOS7では/etc/shadowで各ユーザーのパスワードを管理しているとのことなので、どのように管理しているのかを確認してみます。まず、CentOS7で新しくユーザー(test)を追加します。 useradd test次に、追加したユーザーにパスワードを付与します、ここでは"…

複数のインターフェースを実装したクラスに対するオーバーロード問題

2つのインターフェース(interfaceA, interfaceB)を実装したクラス TestAandB を考えます。 interface interfaceA {} interface interfaceB {} class TestAandB implements interfaceA, interfaceB {} interfaceA型のオブジェクトを引数に取る関数 test(inter…

Chainerでマルチタスクニューラルネットワークを実装した

注:この記事の実装は非効率的かもしれません. この記事は何? マルチタスク学習をニューラルネットワークに適用した研究がいくつか報告されています. 適用例として,Georgeら(2014)の研究では,タンパク質に対する化合物の活性予測にニューラルネットワー…

CNNモデル比較論文 "An Analysis of Deep Neural Network Models for Practical Applications"を読んだ

深層学習を用いた画像認識分野では様々なCNNのネットワーク構造が提案されており,ImageNetデータセット等を用いた予測精度比較が広く行われています. じゃあどのCNNモデルを使うべきなんだろう…と考えていましたが,最近こんなtweetが目に入りました.代表…

予測ランキング評価指標:NDCGの2つの定義と特徴の比較

この記事は何? 機械学習の応用例としてランキング予測があります. ランキング予測の例としてウェブページランキングがあります.GoogleやYahoo!のような検索エンジンでは,ユーザーが入力したクエリに対して適合度の高い順にウェブページをランキングし,…

正定値でないグラム行列を正定値に変換して学習すると精度は変化する?

この記事は何? カーネル法を用いた機械学習では,データセットに対するグラム行列を生成して学習を行いますが,非正定値カーネルを用いた場合やサンプル間の類似度をカーネルとして用いた場合は,得られるグラム行列が正定値にならない場合があります. 得…

Slackerを使ったslack bot開発 & AWS EC2上でcronを使って定期post

この記事は何? SlackerというSlack APIのPythonラッパーを使ってslack botを作ったときのメモです. Slackerを使った簡単なbot例 まず,Slackerをインストールします. pip install slackerSlackerについては,公式サイトを参照してください. github.com次…

卒論・修論tips

この記事は何? 卒論・修論を書き始めるときに知っておくと良い知識を研究室内でまとめていたのですが,恐らく研究室外の方々にも役に立つのではないかと思い公開してみます. 基本的にTeXを使った理系の卒論・修論を想定しています,分野毎に作法が異なる点…

スケーリングは訓練データだけでやる?テストデータも混ぜてスケーリングする?

この記事は何? 機械学習における前処理として,特徴量のスケーリングがあります. スケーリングの有無によって,予測器の性能が変化することがあります. スケーリングにも様々な手法があります.代表的なものとして,「最小値を0,最大値を1とする0-1スケ…

不均衡データに対する予測結果のAccuracyは簡単に上がってしまう

この記事は何? 機械学習における不均衡データの扱いは,学習時にも評価時にも注意する必要があります. 例えばSVMにおける学習では,クラス重みを事前に設定することで,不均衡データによるバイアスを軽減できます. 不均衡データに対する予測精度の評価に…

【Python】組み込み関数のsumとnumpyのsumはどっちが速い?

この記事は何? Pythonでリストやnumpy.array中の数値和を求めたい時は,組み込み関数のsumを使う方法とnumpy.sumを使う方法があります. この記事では,どちらの方法がより高速に和を求められるのかを確認します. 結論は? リスト中の数値和を求めるときは…

CNNとRankNetを用いた画像の順序予測(ラブライブ!のキャラクター順序予測を例に)

(Chainer Advent Calendar 2016 5日目です.この記事はTokyoTechLTで発表したものと同内容のものです.) この記事は何? 以前Chainer Advent Calendar 2015において,Chainerを用いたRankNet(ランク学習手法の1つ)の実装を紹介しました. 本記事では,RankNe…

z-scoreに変換しても相関係数は変わらない

この記事は何? 機械学習の前処理として特徴量のスケーリングを行うことがありますが,スケーリング手法の1つとしてz-score変換があります. z-scoreは平均が0,標準偏差が1となるようにスケーリングを行います,z-scoreを10倍して50を加えるとお馴染みの偏…

Pythonのset演算は演算子使うとスマート

この記事は何? Pythonでset演算をするには,union関数やintersection関数を用います. 最近,set演算は演算子を用いた方法もサポートされていることを知ったので(ドキュメントに書いてあるんですけどね),紹介したいと思います. どのように書けるのか? se…

numpyのmax関数とmaximum関数

numpyのmax関数を用いた,次のコードの実行結果を予想してみてください. import numpy as np xs = np.array([1, -2, 3]) np.max(xs, 0) この出力は3となります.[1, -2, 3]と0の4つの数字のうち,最も大きい値を出力します.一方で,[max(1, 0), max(-2, 0)…

PowerPointでもTeX数式を使いたい!

この記事は何? PowerPointアドインにIguanaTeXというものがあります. IguanaTeXは,TeX出力をPowerPointに図として簡単に挿入できるアドインです.PowerPointのデフォルト数式に辟易した方にオススメなので紹介したいと思います. 例 PowerPoint数式と,Ig…

確率的勾配降下法によるRankSVMの実装

この記事は何? ランク学習のモデルの一つとしてRankSVMがあります.RankSVMには様々な最適化手法が提案されていますが,通常のSVMと比較して計算量が大きいため,大きなデータセットに適用するのは難しいと言われています.一方,D. SculleyによるLarge Sca…

python3のパス名操作いろいろ

この記事は何? pythonでパス名を文字列操作するときはos.path以下の関数を用います. 提供されている関数がいくつかあり頭に入っていなかったので,実際に動かしてみたときのメモです. ソースコード import os test_path = "hoge/piyo/fuga.ext" print(tes…

発表用スライドの参考資料

この記事は何? 見やすい・分かりやすいスライドを作るために参考になった資料のまとめです. スライドデザイン 見やすいプレゼン資料の作り方-リニューアル増量版 見やすいプレゼン資料の作り方 - リニューアル増量版 from スマートキャンプ株式会社 www.sli…

線形回帰の実装

この記事は何? 線形回帰のpython(+ numpy)による実装例です. 数式 訓練データをとし,推定する重みベクトルをとすると,は以下の式で表されます. \begin{align} {\bf \hat{w}}=({\bf X}^T{\bf X})^{-1}{\bf X}^T{\bf y} \end{align} この式を実装するだけ…

Pythonのmultiprocessingを使ってマンデルブロ集合を並列に計算

この記事は何? Pythonでプロセス並列を行いたい時,標準ライブラリにmultiprocessingが,外部ライブラリにjoblibがあります. 普段はjoblibを使って並列処理を書いているのですが,multiprocessingをあまり使ったことが無かったので触れてみた時のメモです…

分子構造可視化ソフトウェアChimeraにオリジナルのpresetを登録する.

この記事は何? 分子構造可視化ソフトウェアの1つにChimeraというものがあります. 例えばタンパク質の立体構造を読み込むと下のような図を描画してくれます(PDBID: 1LCI). この図からいくつかコマンドを叩くと下のような綺麗な図も描くことが出来ます. 上…

一人ヌメロン

ヌメロンというゲームをご存知でしょうか. 簡単に言うと二人で遊ぶ数字当てゲームです. お互いに数字をコールしていき,数字と桁が一致している数・数字は合っているが桁は異なる数を教えます. 結構頭を使うゲームで,慣れていないとなかなか推理できませ…

Pythonでsetからランダムサンプリングすると遅い

この記事は何? Pythonでsetからランダムサンプリングするコードを書いたところ,非常に時間がかかっていたので簡単に計測した時のメモです. 実行環境はPython 3.5.1 (Anaconda 2.5.0)です. 実験条件 サンプリング元はlistおよびsetとし,サイズを10, 100,…

ROC-AUCを最適化したいならRankSVMを使えば良いのでは?

この記事は何? 機械学習分野における予測精度の評価指標としてROC-AUCがよく用いられています. ROC-AUCは分類問題で用いられる評価指標ですが,ROC-AUCを直接最適化できるとお得です. 機械学習の一つにランキングを学習するランク学習という枠組みがあり…

データ解析のためのモデリング入門第9章をPyStanで

この記事は何? 生態学データ解析 - 本/データ解析のための統計モデリング入門の第9章ではGLMを題材としたMCMCが紹介されています. この本ではMCMCのソフトウェアとしてWinBUGSが使われていますが,インストールバトルに負けたのでPyStanを使って第9章の例題…