やりたいこと
- シグモイド関数の傾きを調べて、どんな動きをしているのかを知る
- Pythonのlabelを使ってみる
シグモイド関数の傾きを調べて、どんな動きをしているのかを知る
以下のコードで傾きをグラフ化
math_training.py
# coding=utf-8
import matplotlib.pyplot as plt
import numpy as np
import math
def sigmoid(a):
s = 1 / (1 + e**-a)
return s
dx = 0.1
x = np.arange(-10, 10, dx)
e = math.e
y = sigmoid(x)
# 微小の量を移動した時の傾き
y_delta = (sigmoid(x+dx) - sigmoid(x)) / dx
plt.plot(x, y, label="sigmoid")
plt.plot(x, y_delta, label="sigmoid_delta")
# labelを有効にする
plt.legend()
plt.show()
- 日本語のコメントアウトをするためには、# coding=utf-8を挿入する。
- labelを有効にするためにはplt.legend()を呼び出す。
ここから読み取れるのは、
・x=0の時に傾きが最大値をとる
・xが無限大に近づくと、傾きは0に収束する。逆も然り。
よって、機械学習におけるシグモイド関数は、学習を重ねることで傾き(判断を下すスピード)が0に収束する→より早く正確な判断ができるようになる。という事だと思う。