神经网络
权重w
偏置b
激励函数 f = Σxw + b
上层网络→下层网络
m*n矩阵代表权重矩阵;偏置的数量和下层网络的神经元数量一致,为n;
u = np.dot(x,w) + b
一般来说,输出层的神经元数量n个,则用n阶形式的独热编码格式数据来表示
几种激励函数:
1、阶跃函数
阶梯型函数,类似分段函数但是分段水平
def step_function(x):
return np.where(x<=0,0,1)
2、sigmoid函数
在0-1间平滑变化
def sigmoid_function(x):
return 1/(1+np.exp(-x))
3、tanh函数(双曲正切函数)
def tanh_function(x):
return np.tanh(x)
4、ReLU函数(线性整流函数)
def relu_function(x):
return np.where(x<=0,0,x)
5、Leaky ReLU函数
对ReLU进行了改进,使其在负数区域增加了一个小的梯度,避免输出为0影响后续学习
def leaky_relu_function(x):
return np.where(x<=0,0.01*x,x)
6、恒等函数
将输入直接作为输出返回;处理预测连续数值中存在的回归问题用
y = x
7、SoftMax函数
形式类似概率公式,可以将输出结果当做概率来解释
def softmax_function(x):
return np.exp(x)/np.sum(np.exp(x))
单一神经元实现:
import numpy as np
import matplotlib.pyplot as plt
X = np.arange(-1.0,1.0,0.2)
Y = np.arange(-1.0,1.0,0.2)
Z = np.zeros((10,10))
w_x = 2.5
#权重的影响是:对应的输入对结果影响的大小,在这里表示为神经元的兴奋状态依赖于x轴变化的程度
w_y = 3.0
bias = 0.1
#偏置的影响是:神经元是否易于产生兴奋,网格颜色的变化加速度
for i in range(10):
for j in range(10):
u = X[i]*w_x + Y[j]*w_y + bias
y = 1/(1+np.exp(-u))
Z[i][j] = y
plt.imshow(Z,"gray",vmin=0.0,vmax=1.0)
plt.colorbar()
plt.show()
https://zhuanlan.zhihu.com/p/96040773
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?