【Chainer基礎4】Functionsってなに?分かりやすく5分で解説

【Chainer基礎4】Functionsってなに?分かりやすく5分で解説

恥ずかしくて見ていなかった自分のサイトを確認すると、記事が死ぬほど読みずらかったので、この更新が終わった瞬間からサイトのデザイン変更に取り掛かります。

アイーンです。

 

今日はChainerの基礎学習の後半戦

Functionsについて学習していきます。

 

それでは行ってみましょ。

 

Functionsとは?

Functionオブジェクトとは、そのものズバリ関数です。

少し前に学習したLinksが、学習したパラメータ(Wとかbとか)を持つ関数なら

Functionsはパラメータを持たない関数だといわれます。

 

また、通常のコードでは前に向かって計算していくための関数しかありませんが

「後ろに向かって」計算することが出来るものもあります。

 

ま、見た方が早いので書いてきましょう。

下準備

いつもの記述と違うのは5行目

import chainer.functions as F

が追加されたことです。

これでFunctionオブジェクトが使えます。

 

ついでに、今までのリスト準備を一行で済ませましょう。

x = Variable(np.array([ 1, 2, 3 ] , dtype = np.float32))

 

 

この一行でVariableオブジェクトの[1. 2. 3.]が出来ます。

 

今までの書き方では

input_array = np.array([ 1, 2, 3 ] , dtype = np.float32)

x = Variable( x )

と二行に分けていましたが、他のサイト様でお勉強させていただきました。

小さなことですが、今後はこれで効率的に行きましょ。

 

さぁ、管理人がガチ初心者であるということがお分かりいただけたところで

 

Functionsの紹介です。

 

Functionsオブジェクト:sum

y1 = F.sum( x )

Functionsに用意されているsum関数を使うと

[1. 2. 3.]

全部足して6です。

Functionsオブジェクト:average

y2 = F.average( x )

 

[1. 2. 3.]の平均値を計算してくれます。

もちろん2です。

 

Functionsオブジェクト:max

y3 = F.max( x )

[1. 2. 3.]の最大値です。

ゆるぎなく3です。

 

Functionsオブジェクト:sigmoid

y4 = F.sigmoid( x )

 

シグモイド関数がどんなものだったか一応ご説明

入力値を 0から 1までの範囲の数値にこまか~く変換してくれる関数でしたね。

[1.]は[0.7310586]に

[2.]は[0.8807971]に

[3.]は[0.95257413]に

変換されました。

一行ですよ。めっちゃ便利。

 

Functionsオブジェクト:relu

y5 = F.relu( x )

最後はReLU関数です。解説しておくと

0より下の入力値には0を

0より上の入力値は変換せずそのまま返す

そんな現在主流な関数です。

 

[1.]は[1.]に

[2.]は[2.]に

[3.]は[3.]に

変換されていないようで、されてます。

 

Functionsの考え方は、関数です。

普段よりちょっと便利な関数くらいの認識でかまいません。

 

これで貴方の肩書は「ファンクショニア」です。

新作RPGの大陸名みたいで素敵ですよ。

 

それではまた。