MLP-多层感知机的原理及Matlab实现

前言

这个程序前前后后写了一两周了,一直拖拖拉拉,今天趁着阳光太大,怕晒黑,躲在寝室一下午终于调试出来了。在此记录一下多层感知机模型的原理以及我自己的感悟。如果有任何疑问欢迎大家跟我讨论:[email protected]

感知机matlab实现

关于这个看过很多资料,很多资料好像还将感知机和人体大脑感知系统联系起来什么的,深深的一个白眼。。。根本没必要说的多么高大上,学过模电的同学就很好理解,其实每个感知器都相当于一个二极管,将很多很多二极管组合在一起就可以完成一个逻辑电路,实现我们需要的功能。不同的只是这个“二极管“的参数是机器自己更新学习到的而已。

感觉网上关于感知机的基础知识很多,这里直接甩上我的代码供大家参考。

  • 代码说明

这个代码的[作用]是用感知机对字母“O“和“D“做分类(可以做任意数字的区分,可以修改代码使用),数据在letter_recognition百度云盘供大家测试使用。

我的代码使用[随机梯度下降],耗时比较长,准确率只能达到92%左右,使用batch_gradient descend应该会进一步改善,之后有时间将会进一步修改完善代码。

学习速率:0.01
loss下线:0.38
这些参数均可以修改。

  • 代码片
%% % 处理数据每行读取数据,如果是o或者d,存入数组
% src=fopen('/Users/sdd/Desktop/letter-recognition.data');
uiimport('/Users/sdd/Desktop/letter-recognition.data');
all_data_src=[];

all_label=[];
for i=1:20000
    if letterrecognition{i,1}=='O' 
        all_data_src=[all_data_src;[letterrecognition(i,2:end)]];
        all_label=[all_label;1];
    end

     if letterrecognition{i,1}==&#
  • 14
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值