# Brainlike-learning-system-for-MNist
认知神经科学作业,模拟人脑神经元进行学习
## 任务说明
1. 认真学习并调研生物神经元信息传递机制;
2. 思考并设计学习方法实现正向信号传播的神经网络模型,通过学习(训练带标签数据)获得记忆(网络神经元间的权重),并使用预测新的数据来验证学习和记忆的效果。
## 我们的实验
经我们调研与讨论,我们选择了3种模型作为正向传播模型的选择,分别是基于:
- [自组织特征映射网](https://github.com/Robin-WZQ/Brainlike-learning-system-for-MNist/tree/main/ANN%2BSOM)
- [进化计算](https://github.com/Robin-WZQ/Brainlike-learning-system-for-MNist/tree/main/进化计算)
- [动态路由算法](https://github.com/Robin-WZQ/Brainlike-learning-system-for-MNist/tree/main/CapsuleNet%2BSom)
## 方案一:
### 1.1 前提假设
![](https://www.writebug.com/myres/static/uploads/2022/5/3/a2a9271e6e2385667e5070a20b272905.writebug)
由于人类在进行物体识别时,首先经过两侧枕叶进行简单的特征提取,包括对各个方向的线段进行检测和神经兴奋。那么我们能否假设,人类具备的这种特征提取的功能是已经被编辑在基因之中的,也就是说,当一个从来没见过光明的失明患者,突然复明了,结果并不是需要从头开始训练特征感知器,而是只需要学习物体的种类。因此,输入的图片就经过特征提取(基因编辑好的)、知觉分类(此时并不知道它的名称)以及语义分类后确定分类结果。
### 1.2 生物学基础
神经生物学研究表明,不同的感觉输入(运动,视觉,听觉等)以有序的方式映射到大脑皮层的相应区域。
这种映射我们称之为拓扑映射,它具有两个重要特性:
1. 在表示或处理的每个阶段,每一条传入的信息都保存在适当的上下文(相邻节点)中。
2. 处理密切相关的信息的神经元之间保持密切,以便它们可以通过短突触连接进行交互。
我们的目标是建立人工的拓扑映射,以神经生物学激励的方式通过自组织进行学习。我们将遵循拓扑映射形成的原则:“拓扑映射中输出层神经元的空间位置对应于输入空间的特定域或特征”。
### 1.3 模型结构
![](https://www.writebug.com/myres/static/uploads/2022/5/3/de3b6e979fd18aa0bc9849e7378d6b9d.writebug)
模型结构如图所示。根据以上假设,先利用BP算法对ANN网络的提取特征部分进行训练,将每一个图像归约到一个N维的特征空间中进行表示(**视觉加工**阶段,即提取特征),之后利用SOM网络对特征进行学习并分为10类(**知觉分类**阶段,即感知到它与其他类别不同)。同时,由于网络属于“无监督”算法,最终网络预测的结果无法和label匹配,所以需要转换函数的设置(**语义分类**阶段,即最终确定它是什么)。为了后续模型的迁移,我们将模型权重保存为npy文件,随时可进行调用。并设置多个epoch进行迭代,以此期望得到更好的结果。
### 1.4 实验
- 实验设置
**数据集** 本次所有实验均在MNIST数据集上执行,该数据集包含60000张训练样本和10000张测试样本,涉及数字0~9共10类。
- 实验方法
**ANN** 对于ANN网络,我们首先对权重进行正太分初始化,其均值为0,方差为0.01。我们共训练了10轮,batchsize为64. 其学习率大小设置为0.0005*batchsize。我们利用SGD作为优化器,考虑到数据比较简单,并未设置动量和权重衰减。
**SOM** 对于SOM网络,权重为随机初始化[1-,1]之间的数。我们对网络训练10轮,由于该模型无法进行批量更新,所以batchsize设置为5000。
- 实验结果
![](https://www.writebug.com/myres/static/uploads/2022/5/3/af488014370ccb31d939165abdc6e705.writebug)
![](https://www.writebug.com/myres/static/uploads/2022/5/3/96748c0cde2612d6ec04c107a440e4c2.writebug)
从最终结果看,通过特征提取器+SOM网络最终得到了较好的学习效果。
- 消融实验
![](https://www.writebug.com/myres/static/uploads/2022/5/3/dd5fe6d8afb091d7a99acfc878ef6f38.writebug)
这里的特征继承的思想和预训练模型本质上一样,只不过思考角度不同,所以称之为“pretraining”。这里,我们对比了未进行特征提取的SOM网络(输入维度为28*28),与我们的模型的结果区别,每个模型都相继执行了10次,取均值作为评测结果。我们观察到:仅仅使用SOM网络只能得到51%左右的测试正确率,证明特征器能够给网络带来40%左右的提升。这也符合本模型设计的初衷,即以特征提取器当作视觉加工,而后以SOM为特征分类模型。
------
## 方案二:
进化计算训练神经网络,比较古老的优化手段,具体就看代码就行。
### 2.1 算法流程
![](https://www.writebug.com/myres/static/uploads/2022/5/3/4feb354950da3e1cde81659fd4b13402.writebug)
### 2.2 实验
- 实验结果
![](https://www.writebug.com/myres/static/uploads/2022/5/3/bef1a8b0ab86b9a73e9bc80726908e9c.writebug)
我们可以看到,准确率从0.12到0.25,有了近一倍的提升,虽然没有像普通BP算法那样,可以达到90%+的准确率,但一来我们使用的种群规模过小,加上限制了变异的幅度与规模,导致进化算法的探索范围不够大,其次进化算法的性能效果应该近似指数函数,再慢慢收敛,由于初始平均准确率只有0.07左右,(基本都是错误的权重网络),导致模型的优化提升较慢。
------
## 方案三:
### 3.1 生物学基础
给几张自由女神像的图片,尽管所有的图像显示的角度都不一样,人依然可以轻易识别出来这是自由女神像。即使从没有见过和这些一模一样的图片,但你仍然能立刻知道这是自由女神像。眼睛接收视觉信息,让大脑对周围世界的有分层的理解,并将其与已经学习的模式和关系相匹配。这就是人的视觉识别:**大脑中物体的表示与视角变换无关**。
### 3.2 理论基础
- CNN
CNN中高级特征将低级特征组合为加权和:前一层的激活乘以下一层神经元的权重并相加,然后传递给激活非线性,构成更高级别特征的更简单特征之间没有姿势(平移和旋转)关系。CNN 解决方法是使用max pooling或连续卷积来减少流经网络的数据的空间大小,从而增加更高层神经元的“感受野”。但最大池化仍然会丢失有价值的信息:简单和复杂对象之间的**重要空间层次结构**。
为了学会区分数字,人脑只需要看到几十个例子,最多几百个。而CNN 需要数以万计的样本才能获得非常好的性能,显然不如大脑。
如何在神经网络中对层次关系进行建模?3D对象之间的关系可以用姿势来表示,其本质是[平移](https://en.wikipedia.org/wiki/Translation_(geometry))加[旋转](https://en.wikipedia.org/wiki/Rotation_(mathematics))。当这些关系被构建到数据的内部表示中时,模型很容易理解它看到的东西只是它以前看到的东西的另一个视图。这就引出胶囊神经元(capsule)。
- 胶囊神经元
训练人工神经元(neuron)可以用3个步骤概括:输入标量的标量加权;加权输入标量之和;标量到标量非线性。而胶囊除了输入仿射变换外还有:输入向量的矩阵乘法;输入向量的标量加权;输入向量加权求和;向量到向量的非线性。
![](https://www.writebug.com/myres/static/uploads/2022/5/3/d5fa58f49e5bf80f57660d16de691583.writebug)
胶囊接收的输入向量(图中的u1、u2 )来自下层中的其他2个胶囊。这些向量的长度编码了较低级别的胶囊检测到它们对�
没有合适的资源?快使用搜索试试~ 我知道了~
基于python实现模拟人脑神经元进行学习.zip
共31个文件
png:12个
py:7个
json:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 112 浏览量
2023-01-17
22:30:43
上传
评论
收藏 1.3MB ZIP 举报
温馨提示
1.认真学习并调研生物神经元信息传递机制; 2.思考并设计学习方法实现正向信号传播的神经网络模型,通过学习(训练带标签数据)获得记忆(网络神经元间的权重),并使用预测新的数据来验证学习和记忆的效果。认真学习并调研生物神经元信息传递机制; 思考并设计学习方法实现正向信号传播的神经网络模型,通过学习(训练带标签数据)获得记忆(网络神经元间的权重),并使用预测新的数据来验证学习和记忆的效果。
资源推荐
资源详情
资源评论
收起资源包目录
基于python实现模拟人脑神经元进行学习.zip (31个子文件)
brainlikelearning-mnist
assets
image-20220111153418153.png 21KB
image-20220111152304220.png 93KB
image-20220111152420851.png 19KB
image-20220111153040432.png 47KB
image-20220111152728348.png 8KB
image-20220111153434909.png 49KB
image-20220111153817353.png 32KB
image-20220111153634742.png 8KB
image-20220111153114018.png 20KB
image-20220111153843004.png 10KB
image-20220111152640586.png 40KB
image-20220111153014764.png 41KB
LICENSE 1KB
进化计算
进化计算实验.ipynb 216KB
ANN+SOM
w.npy 391KB
log99
events.out.tfevents.1640592576.LAPTOP-9E9KBPR0 45KB
ANN.py 4KB
trained_model
feature_28.pth 273KB
feature_29.pth 273KB
Hamming.py 3KB
transform.json 24B
SOM.py 10KB
CapsuleNet+Som
w.npy 13KB
readme 1B
data_loader.py 2KB
test_capsnet.py 5KB
transform.json 80B
capsnet.py 6KB
SOM.py 12KB
.gitignore 2KB
README.md 12KB
共 31 条
- 1
资源评论
甜辣uu
- 粉丝: 8585
- 资源: 1103
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- hasp驱动 win10可用,不死机不蓝屏
- 00000000044242851月光摇篮曲.m4a
- 基于JavaScript讲解的数据结构和算法
- python计算机视觉python-computer-vision.rar
- VB+ACCESS计算机等级考试管理系统(源代码+系统+答辩PPT).zip
- python密码python-ciphers.rar
- 2c60fbb3dt9ad50ed8864298eea1484b.MP4
- 基于yolov8+dlib实现视觉识别的安全驾驶监测系统部署到jetson NX平台源码+模型.zip
- Qt框架+OpenCV+动态爱心+编程教学+520
- 基于opencv+yolov8实现目标追踪及驻留时长统计源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功