LoginSignup
3
0

More than 5 years have passed since last update.

【Python】シグモイド関数を調べてみる / 微分

Last updated at Posted at 2018-01-02

やりたいこと

  • シグモイド関数の傾きを調べて、どんな動きをしているのかを知る
  • 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()を呼び出す。

グラフはこんな感じ
スクリーンショット 2018-01-03 1.31.45.png

ここから読み取れるのは、

・x=0の時に傾きが最大値をとる
・xが無限大に近づくと、傾きは0に収束する。逆も然り。

よって、機械学習におけるシグモイド関数は、学習を重ねることで傾き(判断を下すスピード)が0に収束する→より早く正確な判断ができるようになる。という事だと思う。

3
0
4

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
3
0