a1 ~ an 為輸入向量的各個分量
w1 ~ wn 為神經元各個突觸的權重值( weight )
b 為偏置( bias )
f 為傳遞函數,通常為非線性函數
t 為神經元輸出
import numpy as np
# 定義一個簡單的神經元模型
def neuron(input_data, weights, activation_function):
weighted_sum = np.dot(input_data, weights)
output = activation_function(weighted_sum)
return output
# 定義不同的激勵函數
def sigmoid(x):
return 1 / (1 + np.exp(-x))
def relu(x):
return np.maximum(0, x)
def tanh(x):
return np.tanh(x)
# 輸入資料
input_data = np.array([2, 3, 4])
# 隨機初始化權重
weights = np.random.randn(3)
# 使用不同的激勵函數觀察輸出
output_sigmoid = neuron(input_data, weights, sigmoid)
output_relu = neuron(input_data, weights, relu)
output_tanh = neuron(input_data, weights, tanh)
print("Output with Sigmoid:", output_sigmoid)
print("Output with ReLU:", output_relu)
print("Output with tanh:", output_tanh)
https://methycobal.hk/%E5%88%86%E8%BE%A8%E7%A5%9E%E7%B6%93%E7%97%9B%E7%97%87/
https://zh.wikipedia.org/zh-tw/%E4%BA%BA%E5%B7%A5%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C