基于Java实现机器学习的感知机(可视化界面)

本文介绍了机器学习中的入门模型——感知机。感知机是一种二类线性分类模型,通过超平面将两类数据分开。文章详细讲解了感知机模型、学习策略(损失函数)以及学习算法(原始形式)。作者使用Java实现了感知机,并提供了可视化界面,用户可以输入点的坐标预测其分类。
摘要由CSDN通过智能技术生成

前言:本人也是刚刚入门机器学习,就像入门很多语言一样,第一个程序总是Hello World 。机器学习也不然,入门机器学习的第一个程序就是感知机啦。感知机是二类线性分类模型,输出的值为{+1, -1}两种类型,感知机是利用超平面将两类分离,多个不同的感知机就可以组成一张神经元网络,再往上就是人工智能系统然后就是终结者阿诺......越说越离题了。

好啦步入正题吧。下面我从三个方面简单阐述一下这个感知机到底是个什么妖怪:感知机模型,感知机学习策略,感知机学习算法。(部分代码以及资料引用了网上的)

一、感知机模型:

假设输入空间(特征空间)是X∈Rn,输出空间是Y={+1, -1},仅有两种结果,就好比一条线,位于线上方的点带入该线的方程得到的y值总是大于0,所以感知机是一种线性分类模型,属于判别模型。输入x∈X表示实例特征向量。对应于输出空间(特征空间)的点:输出y∈Y表示实例类别,由输入空间到输出空间的如下函数:

f(x)=sign(w*x+b)={-1,+1}。

线性方程w*x+b 其中w称为权值,b称为偏置。咱们的感知机呢正是通过很多训练集来训练自己,从而不断更新w和b,直到找到一个最优的分类位置。

对应于特征空间Rn 中的一个超平面S,其中w是超平面的法向量,b是超平面的截距。根据这个原理我们可以推导出计算距离的公式:

能够将数据集的正实例和负实例完全正确的划分到超平面的两侧,则称数据集T是线性可分数据集,否则称线性不可分数据集。

二、感知机学习策略:

就像咱们有自己的学习方法一样,感知机也有自己的学习方法。而感知机的学习方法我们常称为损失函数。同时我们要将这个损失函数极小化,这就要求它是连续可导的。损失函数有两种选择:一、误分类点的总数;二、误分类点到超平面S的距离;第一种不易于优化,因此我们通常选择第二种。什么叫误分类点呢?如图:

我画了这样子的一条线,意在将两种颜色的圆分类,但蓝色类里面多了一个红色的,这个红色的就称之为误分类点啦。

对于误分类点来说,它到超平面的距离计算就相当于蓝色圈到超平面的距离取反,因为它代入超平面方程得到的y值应该是负值。也就是这个:

那么总距离就是:

因此,感知机sign(wx+b)的损失函数可以简写为:

三、感知机学习算法:

感知机学习问题转化为求解损失函数最优化问题,最优化的方法是随机梯度下降法。感知机学习算法有两种形式:原始形式和对偶形式。在训练数据线性可分的条件下,感知机学习算法是收敛的。

原始形式

我的感知机采用的正是原始形式,原始形式是通过给定的训练数据集T={(x1,y1), {x2,

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值