Deep Learning

-Keras- GPUの設定

ディープラーニングの計算量は比較的大量になることが多いので,GPUを使用しないと非常に時間がかかることになるので,Keras を使用するにはGPU(NVDIA のグラフィクスカード GTX シリーズ)を利用することが効果的です. 以前の投稿で作成した mykras 環境…

-Keras- Keras のテスト

Keras が動作するかをテストしてみます.テストはJupyter Notebookを使って行います. テストには,keras 作者の Fchollet さんが用意してくれている exapmle で MNIST データセット*を学習するもの mnist_cnn.py **を一部変更して試します. 実行結果は以下…

-Keras- Windows10にTensorFlow と Keras をインストール

セットアップ作業の中心となるのが Anaconda Prompt です. Windows のメニューの Anaconda3 (64-bit) のところに Anaconda Prompt がありますので起動します. 今回は mykeras という名前の環境を作ってそこにセットアップしてみることにします.Anaconda P…

-Deep Learning- Softmax-with-Lossレイヤ

入力された値を正規化して出力するSoftmax関数の損失関数として交差エントロピー誤差(cross entropy error)を用いた場合のSoftmax-with-Lossレイヤの実装例を以下に示します. class SoftmaxWithLoss: def __init__(self): self.loss = None # Loss self.y…

-Deep Learning- バッチ版Affainレイヤの実装

N個のデータをまとめて順伝播する場合(バッチ-データのまとまり-版のAffineレイヤ)の具体例を以下に示します. >>> import numpy as np >>> X_dot_W = np.array([[0, 0, 0], [10, 10, 10]]) >>> B = np.array([1, 2, 3]) >>> >>> X_dot_W array([[ 0, 0, 0…

-Deep Learning- ReLUレイヤ,Sigmoidレイヤの実装

活性化関数の実装例を以下に示します. ReLUレイヤ class Relu: def __init__(self): self.mask = None def forward(self, x): self.mask = (x <= 0) out = x.copy() out[self.mask] = 0 return out def backward(self, dout): dout[self.mask] = 0 dx = dou…

-Deep Learning- レイヤの実装

ニューラルネットワークを構成するレイヤを一つのクラスで実装する例を以下に示します.レイヤは,ニューラルネットワークにおける機能の単位です. 実装,および設定については,ゼロから作るDeep Learningの5.4 単純なレイヤの実装を参考にしています. ま…

-Deep Learning- ミニバッチ学習の実装

ニューラルネットワークの学習の実装は,ミニバッチ学習で行います.ミニバッチ学習とは,トレーニングデータから無作為に一部のデータを取り出して(ミニバッチ),そのミニバッチを対象に,勾配法によりパラメータを更新します. 以下に,プログラミング例…

-Deep Learning- 学習アルゴリズムの実装

2層ニューラルネットワークの実装例を以下に示します. ニューラルネットワークのクラスをTwoLayerNetという名前のクラスで,以下のように実装します. # Import Module import numpy as np # Definition of Function def sigmoid(x): return 1 / (1 + np.ex…

-Deep Learning- ニューラルネットワークにおける勾配

ニューラルネットワークの学習においては,勾配を求める必要があります.この勾配とは,重みパラメータに関する損失関数の勾配のことです.例として,2 x 3の重みWを持つニューラルネットワークと損失関数をLで表す場合を考えます. 以下に,簡単なニューラ…

-Deep Learning- 勾配法

機械学習の問題の多くは,学習の際に最適なパラメータを探索します.ニューラルネットワークも同様に最適なパラメータ(重みとバイアス)を学習時に見つける必要があります.ここで言う最適なパラメータとは,損失関数が最小値を取る時のパラメータの値です…

-Deep Learning- 推論を行うニューラルネットワーク

前回の投稿で読み込んだMINSTデータセットに対して推論処理を行うニューラルネットワークを実装する例を以下に示します. ネットワークは,入力層を784個,出力層を10個のニューロンで構成します.入力層の784個は,画像サイズの28 x 28 = 784からきています…

-Deep Learnin- 手書き数字認識

ニューラルネットワークの推論処理の実装例を,手書き数字画像の認識を例として以下に示します. 使用するデータセットはMINSTです. ここでは,MINIST データセットのダウンロードから画像データのNumpy配列への変換までをサポートしてくれる,書籍ゼロから…

-Deep Learning- バッチ処理

前回 までにMINSTデータセットを用いたニューラルネットワークの実装例を示しました. 今回は,まずはPythonインタプリタを使用して,ニューラルネットワークの各層の重み形状を出力してみます. >>> x, _ = get_data() >>> network = init_network() >>> W1…

-Deep Learning- 出力層の活性化関数

ニューラルネットワークは,分類問題,回帰問題の両方に用いることが可能です.ただし,分類問題なのか,回帰問題なのかで,出力層の活性化関数を変更する必要があります. 一般的に,回帰問題では恒等関数を,分類問題ではソフトマックス関数を用います(入…

-Deep Learning- 活性化関数

ステップ関数の実装例を以下に示します. まずは,ステップ関数の実装のためにまずは,Pythonインタプリタを用いての例を示します.以下の例では,x というNumPy配列を用意し,そのNumPy配列に対して不等号による演算を行なっています. >>> import numpy as…

-Deep Learning- パーセプトロンの実装

まずは,以下にANDゲートの実装例を以下に示します. # Definition of Class # AND Gate def AND(x1, x2): w1, w2, theta = 0.5, 0.5, 0.7 tmp = x1 * w1 + x2 * w2 if tmp <= theta: return 0 elif tmp > theta: return 1 # Execution part print(AND(0, 0)…

-Python- 2乗和誤差(mean squared error)と交差エントロピー誤差(cross entropy error)

損失関数*として用いられる関数にはいくつかありますが,最も有名なものは2乗和誤差(mean squared error)です.2乗和誤差は以下の数式で表されます. 深層学習では,ykはニューラルネットワークの出力,tkは教師データを表し,kは次元数を表します.上記の…