Machine Morning

機械学習やWebについて学んだことを記録しています。

機械学習

自動微分とは

自動微分(Automatic Differentiation)とは関数を合成関数に分割し連鎖律(Chain rule)の方法で偏導関数値を求める方法である。複雑な数式も四則演算や指数関数、対数関数、三角関数などの基本的な関数の組み合わせでできているため、それらを分割すること…

なぜソフトマックス関数にeを使うのか

ソフトマックス関数はニューラルネットワークにおいてスコア(affine layerから出力された値)を確率に変換する役割を持っている。しかしなぜわざわざを底として累乗するのだろうか。 ソフトマックス関数とは ソフトマックス関数による出力値はニューラルネ…

Spark入門2

Sparkのインストール SparkはJavaのバーチャルマシン(JVM)上で動くので、JVMを入手する。JVMはJava SE Development Kit(JDK)をインストールすることで手に入る。2018年8月21日現在ではバージョン10が最新だ。以下のリンクから自分のマシンに合ったものを…

Spark入門

Sparkのコアのデータ構造は(RDD: Resilient Distributed Dataset)である。pandasのDataFrameのようにデータセットをRDDにロードして、メソッドでデータを扱う。 PythonでSparkを使うにはPySparkを使う。SparkはJavaでできているので Py4Jによって、Javaの…

SparkとHadoopの違い

この記事は以下の記事の翻訳、要約、及び筆者が調べたことのまとめです。 www.scnsoft.com 両方ともApacheによるOSSである。2017年時点では歴史の長いHadoopがより多く使われているが、Sparkも爆発的に人気を上げていてパフォーマンスもよい。 主な違い Spar…

Google ColaboratryでGoogle Driveからデータセットをインポートする

Google ColaboratoryにはPythonでGoogle Driveを扱うためのPyDriveが標準で入っていないので、初めに!pip install -U PyDriveする。 そしたら必要なライブラリを読み込む。 !pip install -U PyDrive from pydrive.auth import GoogleAuth from pydrive.drive…

Multinoulli distribution

Murphyを読んでいたらMultinoulli distributionという言葉が出てきた。ベルヌーイ分布の多次元版かなと思ったら大正解。カテゴリカル分布の別名ということである。Multinoulli distributionに相当する日本語がなかったので、カテゴリ分布と読み替えておけば…

sklearnのtransformとfit_transform

fitは与えられたデータセットの統計量を算出し、transformはデータセットの統計量を元にデータを変換(標準化、正規化)する。 fit_transformはfitとtransformを両方順に行う。 訓練用データには統計量を算出するfit_transform、テスト用データには訓練用デ…

層化抽出法(stratified sampling)とは

sklearnのtrain_test_split(sklearn.model_selection.train_test_split — scikit-learn 0.20.2 documentation )に引数stratifyを渡せるがstratifyって何?と思ったので調べてみた。 層化抽出法は簡潔に言うと”母集団の分布と同じになるようにサンプリング…