nykergoto’s blog

機械学習とpythonをメインに

Adam の学習係数の分散を考えた RAdam の論文を読んだよ!

表題の通り噂の最適化手法 RAdam の論文 On the Variance of the Adaptive Learning Rate and Beyond を読んだので, そのまとめです!! 概要 一言でいうと「今までヒューリスティックに行っていた SGD 学習開始時の LR 調整を自動化できるような枠組みをつく…

機械学習のための環境構築とその管理

機械学習プロジェクトでは python を始めとした言語 + それに付随したライブラリを使います。 ふつう、というかやり初めの頃はローカルマシン上にひとつ python 環境を作りなどインストールして、やったとしてもプロジェクトごとに anaconda や pyenv, venv …

Kaggle Tokyo Meetup #6 の感想

はじめに この記事は nyker_goto 的な視点で kagge meetup の内容について思ったことなどをまとめた記事です。 内容の詳細に関してはえじさんが https://amalog.hateblo.jp/entry/kaggle-tokyo-meetup-6 にて素敵な記事(網羅性がすごすぎる)にとてもきれいに…

FFT を使った時系列データ解析

今回は音声データやセンサーといった波形データの解析によく使われるFFTを、時系列のデータにつかって傾向の分析をやってみます、という話です。 FFTとは FFT(高速フーリエ変換) はフーリエ変換 FT の高速版です。そのままですが。 めっちゃカジュアルに言え…

Adabound の final_lr と収束性について

みなさん optimizer は何を使っていますか? (僕は SGD + Momentum + Nesterov が好きです) adagrad/adadelta/adam などなど NN で用いられる optimizer は数多くありますが, 最近提案された optimizer に adabound というものがあります。 adabound はざっく…

画像の超解像度化: ESPCN の pytorch 実装 / 学習

画像の超解像度化シリーズ第二弾です。 第一弾 では NN を使ったモデルの中では、もっとも初期 2015年に提案された SRCNN を実装しました。今回はそれから一年後 2016年に提案された ESPCN を実装して学習させてみたよ、という話です。 ESPCN は Real-Time S…

画像の超解像度化をするモデル SRCNN を pytorch で実装してみた

画像の超解像度化というタスクがあります。 やることは低解像度(小さい画像)を高解像な画像に拡大するときにできるだけ綺麗に引き延ばす、というタスクです。 https://www.slideshare.net/HHiroto/deep-learning-106529202 ではDeep Learning の登場によって…

勾配ブースティングで大事なパラメータの気持ち

LightGBM や XGBoost などで使われている勾配ブースティングのパラメータについて、チューニングノウハウというよりもそのパラメータがどういう意味を持っているのか、に焦点をあててまとめて見ました。 各ライブラリのパラメータすべては以下から確認できま…

文章の埋め込みモデル: Sparse Composite Document Vectors を読んで実装してみた

自然言語処理である単語の意味情報を数値化したいという場合に単語を特定のベクトルに埋め込む(分散表現)手法として word 2 vec があります。 この word2vec と同じような発想で文章自体をベクトル化するという発想があり Doc2Vec やそのたもろもろも方法が…

Pandas で Index を dictionary で更新したい

pandas のデータフレームで以下のようなものが有るとします。 In [1]: import pandas as pd In [2]: import numpy as np In [3]: df_train = pd.DataFrame(data=np.random.uniform(size=(3, 2)), index=['one ...: ', 'two', 'three']) In [4]: df_train Out…

敵対的サンプリング検出のための基準としての相互情報量 - Understanding Measures of Uncertainty for Adversarial Example Detection

Understanding Measures of Uncertainty for Adversarial Example Detection https://arxiv.org/pdf/1803.08533.pdf 概要 (200文字程度) 敵対的サンプルを判別する基準として相互情報量 (Mutual Information) が優れていることを主張する論文. MI の推定に D…

seaborn の clustermap をちゃんと理解する

python の可視化ツールは matplotlib が有名ですがそのプラグイン的役割を果たすモジュールとして seaborn があります。seaborn でプロットすると勝手に回帰直線をプロットしてくれたりするのですが今回は seaborn.clustermap を取り上げます。 seaborn.clus…

重みのスケールに依存しないSGD: Path Normalized Optimization in Deep Neural Network

表題の論文を読んだのでまとめます! url: [1506.02617] Path-SGD: Path-Normalized Optimization in Deep Neural Networks Path-SGD を考えたモチベーション ニューラルネットワークがこの論文の主題です。 Rescaling 今、あるニューラルネットワークの $i,…

Boid Model による ALife の実装 with Javascript

計算機状で生命体を模したモデルを作り、その挙動を研究するという分野があり、一般に人工生命 (Alife) と呼ばれています。 その中でも「群れ」をモデル化したものに boid model と呼ばれるものがあります。 今回は Boid Model の簡単な説明とそれを Javasci…

Pytorch で DCGAN をつくったよ

DCGAN を二年ぶりに実装しました。 github.com いつも MNIST も面白くないので、 MNIST にアルファベットが加わった EMNIST をデータセットとして用いました。 www.nist.gov Emnist の画像例 こんな感じの画像が10万オーダーで格納されています。大きさは Mn…

Pytorch ことはじめ

0.40 の update もできて話題の pytorch を触り始めたのでその時のメモ。 出てくるコードはすべて以下のリポジトリの /notebooks/start で見ることができます。 github.com 参考資料 pytorch document http://pytorch.org/docs/stable/index.html pytorch tu…

ニューラルネットは何を見ているか ~ ブラックボックスモデルの解釈可能性

ディープラーニングによる予測は特に画像分野において顕著な性能を示していることはご案内のとおりです。これは ResNet や BatchNormalization といった技術の開発により多数のレイヤが重なった大きなモデルに対しても学習を行うことが可能になったことが理…

Pycharmの便利機能まとめ

ショートカット 一般 コマンド 内容 Shift + ⌘ + Delete 最後に更新した場所にジャンプ Shift + ⌘ + F7 現在開いているファイル内で、カーソルが当てられている変数が使用されている場所をハイライト。その状態で ⌘ + G を押すとつぎに使われている場所にジ…

Dockerによる深層学習及び機械学習環境構築

機械学習だろうがなんだろうが同じですが、環境構築するところだけで結構めんどくさいことが多いです。 今回はそのへんをまるっと管理できる仮想環境ツールのDockerを用いた環境構築の手順を記していきます。 目次 執筆環境 Dockerとは 機械学習を行う上でDo…

ニューラルネットにおける変数の初期化について

最近 keras をつかって色々とやることにはまってます。 tensorflow や chainer と比較して keras だとネットワーク記述から fit までが完結に記述できてとても気に入っています。 そのときにドキュメントや実装を読んだりもしますが、ネットで自分がやりたい…

本のクラスタリングをやってみよう - 吾輩は猫であるに近い本は何なのか

最近理論よりなことばかりやっていたので今回は実際のデータを使った解析をやってみます。 今回使うデータは、読書メーターからクロールさせてもらって作成した、ユーザーに紐付いた読書履歴のデータです。ユーザーごとに [だれの, どんな] 本を読んだかがわ…

ニューラルネットへのベイズ推定 - Bayesian Neural Network

ニューラルネットワークの過学習防止としてDropout という機構が用いられているのはご案内のとおりです。 この Dropout 、見方を変えるとディープラーニングにおける重みのベイズ推定に相当しているのではないか、という内容が Uncertainty in Deep Learning…

機械学習のコード整理

タイトルのままですが、今まで適当に書いてローカルに放置してたりブログには書いたけどそのまま放置してたりしていたコードを一つのリポジトリにまとめる作業をしました。 まとめながら、昔書いたコードをいろいろと手直ししていましたが、ひどく密につなが…

Gpy vs scikit-learn: pythonでガウス過程回帰

Gpy と Scikit-learn Python でガウス過程を行うモジュールには大きく分けて2つが存在します。 一つは Gpy (Gaussian Process の専門ライブラリ) で、もう一つは Scikit-learn 内部の Gaussian Process です。 GPy: GitHub - SheffieldML/GPy: Gaussian proc…

scikit-learn 準拠の予測モデルのつくりかた

機械学習で色々やっていると、いろいろなモデルを複合したアンサンブルモデルなど、自分で新しい予測モデルを作りたい場合があります。 その場合自分でいちから作り上げても良いのですが、そうやって作ったモデルは、たとえば scikit-learn のパラメータ最適…

matplotlibで高校生っぽいグラフを描く

高校の時によくみたグラフをmatplotlibで書いてみたくなったので、やってみました。練習として初めてデコレーターを使って、プロットしたオブジェクトをいじって軸をあれこれするようにしてみました。 機能としてあるのは知っていたのですが、使ってみるとデ…

DCGANをChainerで実装

DCGANとは DCGANはランダムなベクトルから画像を生成するGeneratorと、画像が与えられた時にその画像がGeneratorによって作られたものなのか、本当の画像なのかを判定する関数Discriminatorでなりたっています。 DCGANのアイディア この2つの関数を相互に競…

PRML 10章の変分ベイズ法の実装

線形回帰に対する変分法を用いた計算について実装してみました。 コードは以下から github.com 変分ベイズではまず、隠れ変数も含めた完全データに対して同時分布を定義します。その後隠れ変数の分布が複数の関数の積として近似して表すことができる、という…

format記法の使い道

pythonでは変数の情報を文字列にする方法がいくつかありますが、その中でも僕はformat記法をよく使っています。 特に最近「dictionaryを文字列にしたいなぁ」という場合に、とてもきれいに書くことができるということを発見(というかドキュメントを読んで判…

pythonの自作モジュールimportで困ったこと

自作モジュールをimportしたい時 同じ階層にある時はsample.pyであれば import sample でやればOKです. でもあまりファイル数が多くなってくると,一定のまとまりでフォルダに入れて管理したくなります.そういう時は適当なフォルダにスクリプトを入れて,…