ML-感知机及其matlab实现

1. 感知机原理:

  1. 感知机是二分类的线性模型,其输入是实例的特征向量,输出的是事例的类别,分别是+1和-1,属于判别模型。
  2. 假设训练数据集是线性可分的,感知机学习的目标是求得一个能够将训练数据集正实例点和负实例点完全正确分开的分离超平面。如果是非线性可分的数据,则最后无法获得超平面。
  3. 感知机从输入空间到输出空间的模型如下:
    在这里插入图片描述在这里插入图片描述
  4. 损失函数的优化目标是期望使误分类的所有样本,到超平面的距离之和最小。所以损失函数定义如下:
    在这里插入图片描述
    不考虑1/(||w||),就得到感知机模型的损失函数:
    在这里插入图片描述
  5. 为什么忽略1/(||w||)呢?网上有人说1/(||w||)是个定值,但是个人觉得平面不唯一,这个值肯定也会变。通过参考他人观点结合思考,我觉得原因可以列为以下两点。
    1)1/(||w||)不影响yi(w⋅xi+b)正负的判断ÿ
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
多层感知机(Multilayer Perceptron,MLP)是一种经典的前馈神经网络模型,可用于分类和回归问题。在MATLAB中,可以使用神经网络工具箱中的函数和类来实现多层感知机。 对于分类问题,可以使用MATLAB的`patternnet`函数来创建一个多层感知机模型。然后,可以使用`train`函数来训练模型,并使用`sim`函数来进行预测。以下是一个简单的多层感知机MATLAB实现的示例代码: ```matlab % 创建多层感知机模型 net = patternnet(hiddenSizes); % 设置训练参数 net.trainParam.epochs = 100; % 训练迭代次数 net.trainParam.lr = 0.01; % 学习率 % 加载训练数据和标签 load('trainData.mat'); load('trainLabel.mat'); % 训练模型 net = train(net, trainData, trainLabel); % 加载测试数据 load('testData.mat'); % 进行预测 predictedLabel = sim(net, testData); % 输出预测结果 disp(predictedLabel); ``` 对于回归问题,可以使用MATLAB的`feedforwardnet`函数来创建一个多层感知机模型,并使用`trainlm`函数来训练模型。以下是一个简单的多层感知机MATLAB实现的示例代码: ```matlab % 创建多层感知机模型 net = feedforwardnet(hiddenSizes); % 设置训练参数 net.trainParam.epochs = 100; % 训练迭代次数 net.trainParam.lr = 0.01; % 学习率 % 加载训练数据和标签 load('trainData.mat'); load('trainLabel.mat'); % 训练模型 net = train(net, trainData, trainLabel); % 加载测试数据 load('testData.mat'); % 进行预测 predictedLabel = sim(net, testData); % 输出预测结果 disp(predictedLabel); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值