【tensorflow】ReLUの使い方が分かる【Kaggle Course – Intro to Deep Learning 2】Deep Neural Networks

Kaggle

アメリカのデータ分析コンペKaggleでは、世界中の優秀なデータサイエンティストによって作成された様々なeラーニング教材が無料で公開されています。

中でも、この記事では以下の講座について解説します。

Intro to Deep Learning
2.Deep Neural Networks

全編英語ですし、ところどころ説明を省略しているところもあるので、私なりにかみ砕いて解説していきます。

 
この記事で取り扱うライブラリ、モジュール、クラスは以下の通りです。

Library
tf.keras
Class
tf.keras.Sequential

Deep Neural Networks(ディープニューラルネットワーク)

Introduction(イントロダクション)

この講座では、複雑な関係性を持つディープニューラルネットワークを構築する方法を紹介します。

前回の講座で学習した1つ1つは単純な計算しかできない単一ユニットですが、これを組み合わせることで、複雑なネットワークを構築することができます。

Layers(レイヤー)

以下の図は、3つの入力が、2つのニューロンに接続されている様子を表してします。

図のInputsは入力層、Denseは全結合層、Outputsは出力層といいます。

View post on imgur.com

ニューラルネットワークの各層は単純な変換を行っているだけですが、層を重ねることで複雑な変換をすることができるようになり、正解に少しずつ近づいていきます

The Activation Function(活性化関数ReLU)

とはいえ、全結合層が2つあるだけでは、線形的な推論しかできません。

そこで活性化関数の出番です。活性化関数があれば、以下のように非線形な推論が可能になります

View post on imgur.com

活性化関数とは、各層の出力(活性化)に適用する関数のことです。例えば、一般的な活性化関数として、正規化線形関数(The Rectifier Function)があります。

View post on imgur.com

正規化線形関数のグラフは、上記のように負の部分がゼロになった直線max(0,x)です。

正規化線形関数を線形ユニットに接続すると、正規化線形ユニット(ReLU)になります。ReLUを線形ユニットに適用すると、の出力はmax(0, w * x + b)となり、次のような図になります。

View post on imgur.com

Stacking Dense Layers(レイヤーの積み重ね)

さて、ReLUによって非線形な推論ができるようになったので、次はレイヤーを積み重ねて、更に複雑なデータ変換を行ってみましょう。

View post on imgur.com

上記のニューラルネットワークは、入力層Inputs、2つの隠れ層Hidden、そして最後の線形層Linearから成っています。(その出力を直接見ることがないため、隠れ層と呼ばれます)

このネットワークは、出力層が線形ユニットとなっているため、回帰問題に使われます。一方、分類問題では、出力層に活性化関数が必要になります

Building Sequential Models(シーケンシャルモデルの構築)

ReLUを使って実際にコードを書いてみます。

入力数は2つ、最初の隠れユニットは4つ、次の隠れユニットは3つ、最後の出力数は1つ、と順番(Sequential)に全結合層(Dense)を積み重ねていきます。

活性化関数ReLUactivationパラメータで定義しておきます。

from tensorflow import keras
from tensorflow.keras import layers

model = keras.Sequential([
    # the hidden ReLU layers
    layers.Dense(units=4, activation='relu', input_shape=[2]),
    layers.Dense(units=3, activation='relu'),
    # the linear output layer 
    layers.Dense(units=1),
])

Your Turn(練習問題)

ここまで学習してきた内容を練習問題で実践してみましょう。

今回はKaggle Courseで正規化線形ユニット(ReLU)について学びました。次回は確率的勾配降下法について学んでいきます。

以上、最後までお読みいただきありがとうございました。

コメント

タイトルとURLをコピーしました