読者です 読者をやめる 読者になる 読者になる

人間だったら考えて

考えて考えて人間だったら考えて

Python

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

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

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

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

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

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

【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…

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)…

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

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

python3のパス名操作いろいろ

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

線形回帰の実装

この記事は何? 線形回帰の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をあまり使ったことが無かったので触れてみた時のメモです…

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

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