2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【超初心者】Kerasをとりあえず動かす

Last updated at Posted at 2018-02-23

CentOSで普段プログラミングしているが、今回はwindows

ただ、内容は一緒なのでOSには依存しないと思う。

まずはライブラリのインポート

import
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Activation
オブジェクトの作成
model = Sequential()

作成したオブジェクトに.addでネットワークを追加していく

add一回目
model.add(Dense(4, input_dim = 3))

この段階では以下のようなネットワークとなる。

1.png

そして、活性化関数を追加する。今回はsigmoid

\frac{1}{1+e^{-x}}

とすると

活性化関数
model.add(Activation('sigmoid'))

すると以下のようなネットワークになる

2.png

更に出力を3つにする

model.add(Dense(3))

そうすると、以下のようになる

3.png

最後にsoftmax関数で正規化する

\frac{e^{x_i}}{\sum x_i}
softmax
model.add(Activation('softmax'))

そうすると、以下のようになる

4.png

ここで、以下を実行するとネットワークのサマリーが出ます

サマリー
model.summary()

作成したネットワークをコンパイルします。

softmax
model.compile(optimizer = 'adam', loss = 'categorical_crossentropy')

これでネットワークの構築ができました。

そして、入力データと教師データをnumpyの配列で適当に作成する

データの生成
import numpy as np

# 入力データ
x = np.array([
              [0,1,1],
              [0,0,1]
             ])

# 教師データ
y = np.array([
              [1,0,0],
              [0,1,0]
             ])

学習させる

学習
model.fit(x,y,epochs=1500)

これは[0,1,1]を入力すると[1,0,0]を出力するように、
[0,0,1]を入力すると[0,1,0]を出力するように
ネットワークの重みを計算してくれます。

つまり絵で書くと

5.png

epochsは学習回数みたいなものです。多すぎても少なすぎても良くないです。

実際にテストしてみます

テスト
print(model.predict(np.array([[0,1,1]])))#試しに[0,1,1]を入力する
print(model.predict(np.array([[0,0,1]])))#試しに[0,0,1]を入力する
テスト結果
[[ 0.82834005  0.16713376  0.00452619]]
[[ 0.20225681  0.77913678  0.01860645]]

んーあんまりよくないですね、、、
つまり、事前に学習したネットワークに値を入れたら
[0,1,1]→[ 0.8, 0.2, 0.0]≒[1,0,0]#教師データと一致?
[0,0,1]→[ 0.2, 0.8, 0.0]≒[0,1,0]#教師データと一致?
となりました。

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?