Python vs Ruby'제0부터 시작하는 Deep Learning'3장 단계 함수, 신호 함수, ReLU 함수의 도표

개요


책 <0부터 Deep Learning-Python에서 배운 딥러닝의 이론과 실현> 3장의 코드를 참고하여 Python과 Ruby로 보진함수, 신령함수, ReLU함수 도표를 그리는 프로그램을 작성한다.
계산 처리, 묘사 처리에서 외부 라이브러리를 이용한다.Python은 NumPy와 Matplotlib, Ruby는 Numo::NArray와 Numo:GNuplot을 사용합니다.
환경 구축이 필요한 경우 여기를 참조하십시오.
→ Python vs Ruby'제0부터 Deep Learning'제1장sin 함수와cos 함수의 도표http://qiita.com/niwasawa/items/6d9aba43f3cdba5ca725

단계 함수, 명령 함수 및 ReLU 함수 차트를 그리는 코드


Python

import numpy as np
import matplotlib
matplotlib.use("AGG") # 描画ライブラリにAGG(Anti-Grain Geometry)を使う
import matplotlib.pyplot as plt

# ステップ関数
def step(x):
  return np.array(x > 0, dtype=np.int)

# シグモイド関数
def sigmoid(x):
  return 1 / (1 + np.exp(-x))

# ReLU (Rectified Linear Unit) 関数
def relu(x):
  return np.maximum(0, x)

# データの作成
x = np.arange(-5.0, 5.0, 0.1)
y1 = step(x)
y2 = sigmoid(x)
y3 = relu(x)

# グラフの描画
plt.figure(figsize=(3, 4), dpi=160) # 画像サイズ
plt.plot(x, y1, label="Step")
plt.plot(x, y2, label="Sigmoid")
plt.plot(x, y3, label="ReLU")
plt.title("Step, Sigmoid, ReLU")
plt.xlim(-5.5, 5.5) # x軸の範囲
plt.ylim(-0.2, 5.2) # y軸の範囲
plt.legend()
plt.savefig("python_graph.png")

Ruby

require 'numo/narray'
require 'numo/gnuplot'

# ステップ関数
def step(x)
  x > 0 # Numo::Bit を返す
end

# シグモイド関数
def sigmoid(x)
  1 / (1 + Numo::NMath.exp(-x)) # Numo::DFloat を返す
end

# ReLU (Rectified Linear Unit) 関数
def relu(x)
  y = Numo::DFloat[x] # コピー
  y[y < 0] = 0 # 0より小さい値の場合は0を代入する
  y
end

# データの作成
x = Numo::DFloat.new(100).seq(-5.0, 0.1)
y1 = step(x)
y2 = sigmoid(x)
y3 = relu(x)

# グラフの描画
g = Numo::gnuplot do
  set term: {png: {size: [480, 640]}} # 画像サイズ
  set output: 'ruby_graph.png'
  set title: 'Step, Sigmoid, ReLU' # タイトル
  set key: 'box left top'
  set xrange: -5.5...5.5 # x軸の範囲
  set yrange: -0.2...5.2 # y軸の範囲
  set offset: [0, 0, 0, 0]
  plot x, y1, {w: 'lines', lw: 3, title: 'Step'},
       x, y2, {w: 'lines', lw: 3, title: 'Sigmoid'},
       x, y3, {w: 'lines', lw: 3, title: 'ReLU'}
end

출력된 이미지


Python



Ruby



참고 자료

  • Python vs Ruby'제로부터 제작 Deep Learning'총결산-Qiitahttp://qiita.com/niwasawa/items/b8191f13d6dafbc2fede
  • 좋은 웹페이지 즐겨찾기