.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

モデル

学習

構造

第0層(入力層

そのままの値を出力(出力に重みを掛けられる。

第1層(中間層(隠れ層

第2層(出力層

誤差の計算と重みの更新

出力と教師信号の誤差の計算をし、
2→1→0層と層の重みを更新していく(誤差逆伝播法

ResNet?

活性化関数

ステップ関数シグモイド関数ReLU関数がある。

ステップ関数

実装

なんとなくAPI仕様を知らないと難しい感じ。

グラフ

-5.0 ~ 5.0までの0.1刻みのプロットをステップ関数にかけてグラフ化する。

"""This is a test program."""

import numpy as np
import matplotlib.pylab as plt

def step_function(x_1):
    """This is a test program."""
    # 上記のいずれかの実装を選択。

X = np.arange(-5.0, 5.0, 0.1)
Y = step_function(X)
plt.plot(X, Y)
plt.ylim(-0.1, 1.1)  # 図で描画するy軸の範囲を指定
plt.show()
step関数グラフ

シグモイド関数

              1
h(x) = ────────
        1 + exp(-x)

実装

ポイントは、Pythonのブロードキャストによって配列も計算できる点。

"""This is a test program."""

import numpy as np

def sigmoid(x_1):
     """This is a test program."""
    return 1 / (1 + np.exp(-x_1))   

グラフ

-5.0 ~ 5.0までの0.1刻みのプロットをシグモイド関数にかけてグラフ化する。

"""This is a test program."""

import numpy as np
import matplotlib.pylab as plt

def sigmoid(x_1):
    """This is a test program."""
    return 1 / (1 + np.exp(-x_1))

X = np.arange(-5.0, 5.0, 0.1)
Y = sigmoid(X)
plt.plot(X, Y)
plt.ylim(-0.1, 1.1)
plt.show()
sigmoid関数グラフ

tanh関数

で、勾配消失問題を引き起こし難い。

実装

...

グラフ

...

ReLU関数

ReLU(Rectified Linear Unit)関数

           ┌
           │0 ( a <= 0 )
y = h(a) = <
           │a ( a > 0 )
           └

主流

実装

"""This is a test program."""

import numpy as np

def relu(x_1):
    """This is a test program."""
    return np.maximum(0, x)  

グラフ

-5.0 ~ 5.0までの0.1刻みのプロットをReLU関数にかけてグラフ化する。

"""This is a test program."""

import numpy as np
import matplotlib.pylab as plt

def relu(x_1):
    """This is a test program."""
    return np.maximum(0, x_1)

X = np.arange(-5.0, 5.0, 0.1)
Y = relu(X)
plt.plot(X, Y)
plt.ylim(-0.1, 5.1)
plt.show()
ReLU関数グラフ

推論と学習

ニューラルネットワーク(推論)

ニューラルネットワーク(学習)

深層学習の誤差逆伝播法

深層学習のテクニック

ニューラルネットワークの問題点

過学習を起こし易い

概要

解決

学習率の調整が難しい

概要

学習率とは、

解決

勾配消失問題が起こる

誤差逆伝播法の計算において入力層に近い手前の層まで学習が行き渡らなくなる現象

理由

解決

ニューラルネットワークの色々

ディープニューラルネットワーク(DNN)

(Deep Neural Network: DNN)

再帰型ニューラルネットワーク(RNN)

(Recurrent Neural Network: RNN)

特徴

RNNでできること

系列データ(順序関係に重要な意味のあるデータ) の解析

時系列データの変動

教師データの作成

誤差計算の方法

BPTT法(Backpropagation Through Time: 通時的誤差逆伝播法)と呼ばれる。

長短期記憶ニューラルネットワーク(LSTM)

(Long short-term memory: LSTM)

特徴

LSTMでできること

RNNでできること

畳み込みニューラルネットワーク(CNN)

(Convolutional Neural Network: CNN)

特徴

CNNでできること

パート

CNNは大きく分けて2つのパートに分けることができる。

畳み込み層

※ 1つのカーネルにつき1つの特徴マップが生成される。

プーリング層

特徴マップから位置のズレに対して頑強な特徴抽出を行う。

3D DNN

アプローチ

点群データ

3D DNNでできること

敵対的生成ネットワーク(GAN)

(Generative Adversarial Network: GAN)

特徴

GANでできること

深層Qネットワーク(DQN)

(Deep Q-Network: DQN)

特徴

DQNでできること

深層強化学習の事例を参照。

自己符号化器(AE:オートエンコーダ)

特徴

AEできること

様々な用途で利用されている。

AEの歴史

※ AEは、勾配消失問題を事前学習とファイン・チューニング
  よって解決しニューラルネットワーク発展の礎となった。

参考

Wikipedia

Neural networks and deep learning


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS