機械学習のExampleから覚えるPython(ランダム)

今までPythonを感覚的に使っていたので、改めて文法を知ろうかなと。
その際にいま流行りの機械学習(深層学習)のExampleを例にすると
わかりやすいのかなと思ったので書いてみる。

※基本的には Python3.x系のつもりで記載してます

今回は、重み(Weight)に使われているランダムについてです。
TensorFlowでは、Initilizerで指定しているものです。

Biasは初期値:0 のことが多いですが、Weightはランダムで初期化されることが多いです。

コードは Numpyで記載しますが、Python内にもramdomパッケージはあります。

正規分布

Normal(Gaussian)と呼ばれるやつです。

import numpy as np
import matplotlib.pyplot as plt

mu, sigma = 0, 1.0 # mean and standard deviation
r = np.random.normal(mu, sigma, 2000)

count, bins, ignored = plt.hist(r, 30, density=True)
plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) * np.exp( - (bins - mu)**2 / (2 * sigma**2) ), linewidth=2, color='r')
plt.show()

生成されたデータはこんな感じになります。 f:id:kocha2012:20190213073244p:plain

一様分布

今回は uniformで記載します。

import numpy as np
import matplotlib.pyplot as plt

count, bins, ignored = plt.hist(s, 15, density=True)
plt.plot(bins, (np.ones_like(bins)*0.5), linewidth=2, color='r')
plt.show()

生成されたデータはこんな感じになります。 f:id:kocha2012:20190213073304p:plain

参考