u++の備忘録

Pythonで活性化関数Swishを書く

※ 10月27日にVersion2が出ていたので、続編書きました。
upura.hatenablog.com

追記以上
ーーー

Google Brainが10月16日に公開した、深層のニューラルネットワークの画像分類・機械翻訳タスクでReLUを上回る性能を示したという活性化関数「Swish」をPythonで描画。論文のFigure 1に当たる図。

f:id:upura:20171023105753p:plain

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import numpy as np
import matplotlib.pyplot as plt

def sigmoid(x):
    return 1.0 / (1.0 + np.exp(-x))

def swish(x):
    return x * sigmoid(x)

n = 1000
x = np.linspace(-5, 3, n)
y = swish(x)

plt.title("Swish")
plt.plot(x, y, "r")
plt.show()