下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
7-1神经元学习例子实验环境实验支持在多种平台上运行,包括但不限于个人电脑(PC)、服务器以及云环境。用户需要确保已经安装了Python环境,并安装了NumPy和matplotlib等必要的库。实验代码可以编写在Python脚本文件中,或者在支持Python的集成开发环境(IDE,如PyCharm、VSCode等)中编写和运行。源码importnumpyasnp
#初始化权重和偏置
weights_input_to_hidden_a=np.array([[0.3]])
bias_hidden_a=np.array([0.1])
weights_hidden_a_to_hidden_bc=arr=np.array([[0.4,0.6]])
bias_hidden_bc=np.array([0.1,0.1])
weights_hidden_bc_to_output=np.array([[0.2],[0.7]])
bias_output=np.array([0.1])
#设置训练参数
learning_rate=np.array([[0.1]])#学习率
e_min=0.0001#误差阈值
max_iterations=2000#训练轮次
#训练数据
x=np.array([[1]])
y=np.array([[5]])
#激活函数及其导数
defrelu(x):
returnnp.maximum(0,x)
defrelu_derivative(x):
return(x>0).astype(int)
#前向传播
defforward_pass(x):
hidden_a_input=np.dot(x,weights_input_to_hidden_a)+bias_hidden_a
hidden_a_output=relu(hidden_a_input)
hidden_bc_input=np.dot(hidden_a_output,weights_hidden_a_to_hidden_bc)+bias_hidden_bc
hidden_bc_output=relu(hidden_bc_input)
output_input=np.dot(hidden_bc_output,weights_hidden_bc_to_output)+bias_output
output=relu(output_input)
returnoutput,hidden_bc_output,hidden_a_output
#损失函数
defcompute_loss(y_pred,y_true):
return0.5*np.sum((y_pred-y_true)**2)
defbackward_pass(y_pred,y_true,hidden_bc_output,hidden_a_output):
#输出层的梯度
output_error=y_pred-y_true
d_output=output_error*relu_derivative(y_pred)
#隐藏层到输出层的权重梯度
grad_hidden_bc_to_output=np.dot(hidden_bc_output.T,d_output)
grad_bias_output=np.sum(d_output,axis=0,keepdims=True)
#隐藏层的梯度
error_hidden_bc=np.dot(d_output,weights_hidden_bc_to_output.T)
d_hidden_bc=error_hidden_bc*relu_derivative(hidden_bc_output)
grad_hidden_a_to_hidden_bc=np.dot(hidden_a_output.T,d_hidden_bc)
grad_bias_hidden_bc=np.sum(d_hidden_bc,axis=0,keepdims=True)
#输入层到隐藏层的权重梯度
grad_input_to_hidden_a_1=np.dot(x.T,d_hidden_bc[:,0]*weights_hidden_a_to_hidden_bc[0,0]*relu_derivative(
hidden_a_output))
grad_input_to_hidden_a_2=np.dot(x.T,d_hidden_bc[:,1]*weights_hidden_a_to_hidden_bc[0,1]*relu_derivative(
hidden_a_output))
grad_input_to_hidden_a=grad_input_to_hidden_a_1+grad_input_to_hidden_a_2
grad_bias_hidden_a_1=np.sum(
d_hidden_bc[:,0]*weights_hidden_a_to_hidden_bc[0,0]*relu_derivative(hidden_a_output),axis=0,
keepdims=True)
grad_bias_hidden_a_2=np.sum(
d_hidden_bc[:,1]*weights_hidden_a_to_hidden_bc[0,1]*relu_derivative(hidden_a_output),axis=0,
keepdims=True)
grad_bias_hidden_a=grad_bias_hidden_a_1+grad_bias_hidden_a_2
returngrad_hidden_bc_to_output,grad_hidden_a_to_hidden_bc,grad_input_to_hidden_a,grad_bias_output,grad_bias_hidden_bc,grad_bias_hidden_a
#训练过程
losses=[]#损失
errors=[]#误差
foriterationinrange(max_iterations):
#前向传播
y_pred,hidden_bc_output,hidden_a_output=forward_pass(x)
#计算损失
loss=compute_loss(y_pred,y)
losses.append(loss)
#计算误差
error=abs(y_pred-y).reshape(1,)
errors.append(error)
iferror<e_min:#如果损失小于误差阈值,停止训练
break
#反向传播
grad_hidden_bc_to_output,grad_hidden_a_to_hidden_bc,grad_input_to_hidden_a,grad_bias_output,grad_bias_hidden_bc,grad_bias_hidden_a=backward_pass(
y_pred,y,hidden_bc_output,hidden_a_output)
#更新权重和偏置
weights_hidden_bc_to_output-=learning_rate*grad_hidden_bc_to_output
weights_hidden_a_to_hidden_bc-=learning_rate*grad_hidden_a_to_hidden_bc
weights_input_to_hidden_a-=learning_rate*grad_input_to_hidden_a
bias_output-=(learning_rate*grad_bias_output).reshape(1,)
bias_hidden_bc-=(learning_rate*grad_bias_hidden_bc).reshape(2,)
bias_hidden_a-=(learning_rate*grad_bias_hidden_a).reshape(1,)
importmatplotlib.pyplotasplt
plt.figure(figsize=(12,6))
plt.subplot(1,2,1)
plt.plot(losses)
plt.xlabel('
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 某家具厂木材加工质量细则
- 某餐饮企业食品安全办法
- 2026秋人教PEP小学三年级英语入门语法:名词单复数专项练习题(含知识点精讲+答案解析)
- 气管插管的临床护理规范与并发症管理
- 血液透析患者中心静脉导管(CVC)规范化护理与并发症管理临床实践
- 某铝厂质量控制细则
- 某汽配厂冲压安全细则
- 输尿管支架健康指导
- 设计总监进阶之路
- 某铝厂员工考核准则
- 2026年齐齐哈尔拜泉县公开招聘幼儿教师34人笔试备考试题及答案详解
- 2026年浙江省宁波市初一新生入学分班数学考试真题及答案
- 江苏省无锡市2025-2026学年高二下学期期末考试生物试题(文字版含答案)
- 2026中煤集团山西有限公司面向社会公开招聘292人笔试历年常考点试题专练附带答案详解
- 2026海南陵水黎族自治县县属国有企业第一批招聘60人考试模拟试题及答案详解
- 2026年7月浙江高中学业水平考试化学试卷试题(含答案解析)
- 医院担架外包合同
- 2026年高一历史学业水平考试知识点归纳总结(复习必背)
- 质量安全总监配备培训考核制度
- GB/T 28804-2012无铜镀银玻璃镜
- 变电站无功补偿装置课件
评论
0/150
提交评论