使用Python实现单隐藏层神经网络的训练(一)

简介: 使用Python实现单隐藏层神经网络的训练(一)

1 实验内容


不使用Keras,Tensorfolow 或Pytorch 等框架,仅使用Numpy,Scipy 和Matplotlib 等Python 常用科学计算库,完成单隐藏层的全连接神经网络(和之后要讲的卷积神经网络形成对比),实现Scikit-learn 里的half moons 数据集的分类。


2 实验要求


使用Scikit-learn 加载half moon 数据,实现数据的可视化

构建单隐藏层的全连接神经网络,参考课件的内容,推导正、反向传播并给出代码实现

考虑不同的激活函数、不同的隐藏层宽度对网络训练和性能的影响

需要具备的功能或者模块:数据读取、加载,正反向传播,使用梯度下降训练模型(可采用mini-batch 的随机梯度下降方法),模型训练、测试性能指标的显示和评估

PPT 汇报(每组3min),提交2-4 页实验报告,需简要叙述方法原理、实验步骤、方法参数讨论、实验结果;需明确说明组员分工、给出组内排名(可标注同等贡献#)。


3 实验原理


多层感知机:

多层感知机(MLP,Multilayer Perceptron)也叫人工神经网络(ANN,Artificial Neural Network),除了输入输出层,它中间可以有多个隐层,最简单的MLP只含一个隐层,即三层的结构,如下图:



前向传播与后向传播

神经网络实际上就是一个输入为输出为的映射函数:,只要我们通过训练得到较优的参数,那么对于任何输入我们都能得到一个与之对应的输出,至于是不是正确的,误差有多大,那就是效果的问题了。


**前向传播( Forward propagation)与反向传播( Back propagation)**是神经网络中的两个基础概念,其实模拟的就是人脑中神经元的正向传导和反向反馈信号回路。


这是一场以误差 Error为主导的反向传播 Back Propagation运动,目的是得到最优的全局参数矩阵:


前向传播输入信号直至输出产生误差,反向传播误差更新重矩阵


这句话很好地形容了信息的流动方向,权重得以在信息双向流动中得到优化,可以理解为一个带反馈校正循环的电子信号处理系统。


我们可以使用梯度下降法去优化误差。如果没有隐藏层,那么输岀层接受输入层传递的数据并产生结果,通过计算产生的误差,可以直接将误差反馈给输出层,知道参数向更优的方向调整。也就是说,此时,可以直接通过误差进行参数优化。


但是如果加入隐藏层,误差可以被直接反馈给输出层,即直接通过误差进行参数优化;然而隐藏层则不能得到误差反馈,即不能够被直接优化。反向传播算法使得误差可以被传递到隐藏层,进而产生间接误差,则隐藏层左侧的权重矩阵可以通过间接误差得到权重更新,进行迭代优化。

目录
相关文章
|
5月前
|
机器学习/深度学习 人工智能 算法
AI 基础知识从 0.6 到 0.7—— 彻底拆解深度神经网络训练的五大核心步骤
本文以一个经典的PyTorch手写数字识别代码示例为引子,深入剖析了简洁代码背后隐藏的深度神经网络(DNN)训练全过程。
957 56
|
3月前
|
运维 监控 数据可视化
Python 网络请求架构——统一 SOCKS5 接入与配置管理
通过统一接入端点与标准化认证,集中管理配置、连接策略及监控,实现跨技术栈的一致性网络出口,提升系统稳定性、可维护性与可观测性。
|
6月前
|
机器学习/深度学习 算法 量子技术
GQNN框架:让Python开发者轻松构建量子神经网络
为降低量子神经网络的研发门槛并提升其实用性,本文介绍一个名为GQNN(Generalized Quantum Neural Network)的Python开发框架。
136 4
GQNN框架:让Python开发者轻松构建量子神经网络
|
5月前
|
机器学习/深度学习 算法 安全
【PSO-LSTM】基于PSO优化LSTM网络的电力负荷预测(Python代码实现)
【PSO-LSTM】基于PSO优化LSTM网络的电力负荷预测(Python代码实现)
273 0
|
3月前
|
机器学习/深度学习 数据可视化 网络架构
PINN训练新思路:把初始条件和边界约束嵌入网络架构,解决多目标优化难题
PINNs训练难因多目标优化易失衡。通过设计硬约束网络架构,将初始与边界条件内嵌于模型输出,可自动满足约束,仅需优化方程残差,简化训练过程,提升稳定性与精度,适用于气候、生物医学等高要求仿真场景。
386 4
PINN训练新思路:把初始条件和边界约束嵌入网络架构,解决多目标优化难题
|
3月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。
|
4月前
|
JavaScript Java 大数据
基于python的网络课程在线学习交流系统
本研究聚焦网络课程在线学习交流系统,从社会、技术、教育三方面探讨其发展背景与意义。系统借助Java、Spring Boot、MySQL、Vue等技术实现,融合云计算、大数据与人工智能,推动教育公平与教学模式创新,具有重要理论价值与实践意义。
|
5月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
311 18
|
4月前
|
机器学习/深度学习 算法 PyTorch
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
117 1
|
4月前
|
机器学习/深度学习 算法 PyTorch
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
198 0

热门文章

最新文章

推荐镜像

更多