机器学习入门篇——感知器
- 监督学习:使用有类标的训练数据构建模型,即在训练过程中,所有的数据都是知道它的类别的。通过构建的这个模型对未来的数据进行预测。在监督学习的下面,又可以分为分类(利用分类对类标进行预测),以及回归(使用回归预测连续输出值)。
- 无监督学习:在没有已知输出变量(分类问题中是数据的类标)和反馈函数指导的情况下提取有效信息来探索数据的整体结构。子领域:1.通过聚类发现数据的子群;2,数据压缩中的降维。
- 强化学习:构建一个系统,在与环境交互的过程中提高系统的性能。我们可以将强化学习视为与监督学习相关的一个领域。但是强化学习与监督学习不同的是,在强化学习中,并没有一个确定的类标或一个连续类型的值,而是一个通过反馈函数产生的一个反馈值。该反馈值是对当前的系统行为的一个评价。强化学习解决的主要是交互式问题。象棋对弈就是一个常用的强化学习的例子。
如图,机器学习的学习分为两个部分,第一部分是训练阶段,通过数据带入模型中,训练生成最终模型,第二部分是测试阶段,通过新的数据经验模型的泛化能力。
第三步,在训练阶段,通过激励函数获得到模型输出的类标y,在将类标与实际类标进行计算得到误差,进行权值更新。进行权值更新是以下的方法更新
![](/assets/blank.gif)
public class perception {public float[] weigth;//权值public float[][] x;//输入值public int[] y;//样本的真实类标public float rate;//学习数率,决定每一次循环训练中所产生的权值变化;public float[] output;//输出的类标public float b=0;//阈值,也称为偏差/*** 实例化感知器* @param x 输入的数据* @param d 学习速率*/public perception(float[][] x, float d,int[] y) {super();this.x = x;//输入数据this.rate = d;//学习数率this.y=y;//样本的真实类标weigth=new float[x[0].length];//初始化权值数组randomWeigth(x[0].length);//随机给权值赋值}/*** 给权值进行赋值,初始值为0* @param n 权值数组的大小*/public void randomWeigth(int n){// Random random = new Random();for(int i=0;i<n;i++){weigth[i]=0;}}/*** 训练感知器:计算出误差,然后进行权值更新*/public void train(){output=new float[x.length];//获取输出值for(int i=0;i<x.length;i++){output[i]=getoutput(x[i]);}//更新for(int i=0;i<output.length;i++){float update=rate*(y[i]-output[i]);//更新权重for(int j=0;j<weigth.length;j++){weigth[j]=weigth[j]+update*x[i][j];}//更新偏差b=b+update;}}//计算输出值public int getoutput(float[] x){int output;//输出值//计算净输入float z = 0;for(int i=0;i<x.length;i++){z+=x[i]*weigth[i];}//激励函数if(z>=b)output=1;elseoutput=-1;return output;} }
转载于:https://www.cnblogs.com/hesi/p/7149678.html
机器学习入门篇——感知器相关推荐
- 机器学习入门篇【一】:以拉家常的方式讲机器学习
前言 因为对机器学习比较感兴趣,最近也可能会用得上,所以想浅浅的谈一谈机器学习,大佬就不用在这浪费时间了,不涉及公式推导.甚至该篇都称不上是什么经验贴,只能说是最近搜寻有些资料有感而发. 那么想通过这 ...
- pandas用均值填充nan_如何填补Pandas中的缺失值(机器学习入门篇)
在使用python里的pandas库进行数据分析工作时,很多时候我们都会遇到这样一个问题:数据缺失.这也是大部分数据分析工作所会遇到的之一.而正确处理缺失值,也是我们在数据分析中数据预处理环节的关键的 ...
- 机器学习之多层感知器
多层感知器(multi-Layer Perceptron) Keras是一个用Python编写的用于神经网络开发的应用接口,调用接口可以实现神经网络.卷积神经网络.循环神经网络等常用深度学习算法的开发 ...
- 神经网络与机器学习 笔记—多层感知器(MLP)
多层感知器(MLP) Rosenblatt感知器和LMS算法,都是单层的并且是单个神经元构造的神经网络,他们的局限性是只能解决线性可分问题,例如Rosenblatt感知器一直没办法处理简单异或问题.然 ...
- 神经网络与机器学习 笔记—Rosenblatt感知器收敛算法C++实现
Rosenblatt感知器收敛算法C++实现 算法概述 自己用C++实现了下,测试的例子和模式用的都是双月分类模型,关于双月分类相关看之前的那个笔记: https://blog.csdn.net/u0 ...
- 机器学习笔记:感知器
1 分类问题 2 感知器概述 感知机的思想是错误驱动.其模型是 其中sign是符号函数: 由于y∈{-1,1},所以对于误分类的数据来说,满足以下关系 (因为理论上和yi,如果分类正确的话,应该是同正 ...
- 深度学习入门之感知器(原理+代码)
感知器的原理:感知器的原理相当简单,当线性可分的时候就是中学的时候学过的y=kx+b,只不过中学的时候k和b都是给出的,给我们x让我们去求y,看看y是在这条直线的上方还是下方.而现在没有给我们k和b, ...
- 从零开始数据科学与机器学习算法-简单感知器-05
如下图给定的一组数据可以通过一条线分割成两个不同的类别称之为Linearly_Separable 如下图有明显特征但是不能通过线性进行切分称为线性不可分 我们可以在拿到数据后进行基本的判断,然后确定是 ...
- 机器学习(十二)——感知器算法
感知器算法是一种可以直接得到线性判别函数的线性分类方法,它是基于样本线性可分的要求下使用的 线性可分与线性不可分 算法流程 感知器作为人工神经网络中最基本的单元,有多个输入和一个输出组成.虽然我们的目 ...
最新文章
- the server responded with a status of 404 (HTTP/1.1 404 Not Found)
- linux下typora安装
- centos 调整home分区xfs_centos 7.4 磁盘空间不足,扩容根分区 --lvm模式
- JVM - 一个案例反推不同JDK版本的intern机制以及intern C++源码解析
- LCP 01. Guess Numbers 猜数字
- Sentinel(三)之如何使用
- centos6重启网络命令_Docker常用命令详解
- 正则Regex中圆括号()方括号[]大括号{}的区别和用法
- ubuntu下,rubyonrails环境搭建
- 推送给自学程序员们的一本Python书
- 联想Ideapad310s笔记本换屏线
- lan和adsl是什么信号_光纤、以太网、ADSL上网有什么区别?
- 谈谈基因的黑科技 - 抛砖引玉篇
- python滑块验证(打码)+pillow裁剪图片
- 林格斯添加真人语音库
- Python实现Word表格转成Excel表格
- 当电脑出现的验证码老是提示输入错误怎么办?
- 视频剪辑工具,批量给视频添加上下图片
- Chapter3:根轨迹法(下)
- 来看一看滑动时间窗格