1.机器学习的基本概念:
三种主要的学习方式:
  1. 监督学习:使用有类标的训练数据构建模型,即在训练过程中,所有的数据都是知道它的类别的。通过构建的这个模型对未来的数据进行预测。在监督学习的下面,又可以分为分类(利用分类对类标进行预测),以及回归(使用回归预测连续输出值)。
  2. 无监督学习:在没有已知输出变量(分类问题中是数据的类标)和反馈函数指导的情况下提取有效信息来探索数据的整体结构。子领域:1.通过聚类发现数据的子群;2,数据压缩中的降维。
  3. 强化学习:构建一个系统,在与环境交互的过程中提高系统的性能。我们可以将强化学习视为与监督学习相关的一个领域。但是强化学习与监督学习不同的是,在强化学习中,并没有一个确定的类标或一个连续类型的值,而是一个通过反馈函数产生的一个反馈值。该反馈值是对当前的系统行为的一个评价。强化学习解决的主要是交互式问题。象棋对弈就是一个常用的强化学习的例子。

机器学习的工作流程(使用预测模型进行数据分析):

如图,机器学习的学习分为两个部分,第一部分是训练阶段,通过数据带入模型中,训练生成最终模型,第二部分是测试阶段,通过新的数据经验模型的泛化能力。

2.感知器
  2.1感知器原理
感知器由费兰克·罗森布拉特(Frank Rossenblatt)基于MPC神经元模型提出。感知器可以看作一个处理二分类问题的算法。
感知器的训练过程如下图:
 

第一步:得到净输入函数z;z为矩阵X与权值矩阵W的乘积,再加上一个权值偏差得到z:

第二步:通过激励函数得到输出的类标:

第三步,在训练阶段,通过激励函数获得到模型输出的类标y,在将类标与实际类标进行计算得到误差,进行权值更新。进行权值更新是以下的方法更新

  其中           η为学习速率,y(i)为第i个样本数据的真实类标,y(i)’为第i个样本预测得出的目标,xj(i)为第i个样本中第j个值。

2.2实现算法
定义一个perception 类,
实现算法:1.初始化权值,
      2.计算输出值,
      3.训练模型:计算误差,进行权值更新。


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

机器学习入门篇——感知器相关推荐

  1. 机器学习入门篇【一】:以拉家常的方式讲机器学习

    前言 因为对机器学习比较感兴趣,最近也可能会用得上,所以想浅浅的谈一谈机器学习,大佬就不用在这浪费时间了,不涉及公式推导.甚至该篇都称不上是什么经验贴,只能说是最近搜寻有些资料有感而发. 那么想通过这 ...

  2. pandas用均值填充nan_如何填补Pandas中的缺失值(机器学习入门篇)

    在使用python里的pandas库进行数据分析工作时,很多时候我们都会遇到这样一个问题:数据缺失.这也是大部分数据分析工作所会遇到的之一.而正确处理缺失值,也是我们在数据分析中数据预处理环节的关键的 ...

  3. 机器学习之多层感知器

    多层感知器(multi-Layer Perceptron) Keras是一个用Python编写的用于神经网络开发的应用接口,调用接口可以实现神经网络.卷积神经网络.循环神经网络等常用深度学习算法的开发 ...

  4. 神经网络与机器学习 笔记—多层感知器(MLP)

    多层感知器(MLP) Rosenblatt感知器和LMS算法,都是单层的并且是单个神经元构造的神经网络,他们的局限性是只能解决线性可分问题,例如Rosenblatt感知器一直没办法处理简单异或问题.然 ...

  5. 神经网络与机器学习 笔记—Rosenblatt感知器收敛算法C++实现

    Rosenblatt感知器收敛算法C++实现 算法概述 自己用C++实现了下,测试的例子和模式用的都是双月分类模型,关于双月分类相关看之前的那个笔记: https://blog.csdn.net/u0 ...

  6. 机器学习笔记:感知器

    1 分类问题 2 感知器概述 感知机的思想是错误驱动.其模型是 其中sign是符号函数: 由于y∈{-1,1},所以对于误分类的数据来说,满足以下关系 (因为理论上和yi,如果分类正确的话,应该是同正 ...

  7. 深度学习入门之感知器(原理+代码)

    感知器的原理:感知器的原理相当简单,当线性可分的时候就是中学的时候学过的y=kx+b,只不过中学的时候k和b都是给出的,给我们x让我们去求y,看看y是在这条直线的上方还是下方.而现在没有给我们k和b, ...

  8. 从零开始数据科学与机器学习算法-简单感知器-05

    如下图给定的一组数据可以通过一条线分割成两个不同的类别称之为Linearly_Separable 如下图有明显特征但是不能通过线性进行切分称为线性不可分 我们可以在拿到数据后进行基本的判断,然后确定是 ...

  9. 机器学习(十二)——感知器算法

    感知器算法是一种可以直接得到线性判别函数的线性分类方法,它是基于样本线性可分的要求下使用的 线性可分与线性不可分 算法流程 感知器作为人工神经网络中最基本的单元,有多个输入和一个输出组成.虽然我们的目 ...

最新文章

  1. 最新的 PageValidate 类
  2. 【干货】Linux 网卡绑定的相关知识和技巧
  3. 解决IntelliJ IDEA报错Error: java: 错误: 不支持发行版本 XX
  4. Spring AOP (事务管理)
  5. 六、推荐系统原理与应用
  6. android长按加入购物车,《Android APP可能有的东西》之UI篇:加入购物车动画
  7. 按逆向思维定义软件测试,软件测试基础相关概念
  8. 远程桌面连接一个域网的计算机,怎样远程控制局域网的另一台电脑(远程桌面)win10...
  9. 结构体:struct关键字
  10. java解压缩和shell_shell 文件的归档和压缩
  11. 使用MediaRecorder录制音频和视频(Camera1)
  12. 安装docker-ce
  13. 揭开 Flutter 跨平台开源框架的神秘面纱
  14. SD卡和文件系统那些事儿
  15. 树形动态规划之树的最大独立集
  16. baidu手机卫兵给开发者生态带来新想像空间
  17. Pytorch kaggle 房价预测实战
  18. 编程语言理解3-目前主流的编程语言有哪些,分别的应用场景是什么
  19. python的plt绘制子图_Matplotlib 多子图绘制
  20. 程序员必做50题的解答

热门文章

  1. 华为怎么分屏操作技巧_盲女|第五人格盲女怎么玩-盲女玩法操作技巧
  2. 51单片机c语言共阳断码表,单片机的共阴共阳8段码的原理及显示代码
  3. 共阴、共阳数码管C语言编码
  4. 2018 CCPC桂林H,J 2019ICPC 台北H J
  5. 苹果关闭自动更新_刚入手的苹果手机,记得关闭这3个设置,能让手机更省电...
  6. postgresql使用SSD页大小优化
  7. 11.10②3D建模
  8. NeurIPS 2020|图像处理(超分、去噪等)、底层视觉相关论文汇总
  9. opencv安装路径出错
  10. 为什么互联网大厂一边大规模裁员,又一边招聘?