机器学习之感知器

原创 2017年05月04日 14:37:48

感知器

在讲神经网络前先说说感知器,感知器是一种二分类的线性分类模型,输出值取-1或1。感知器是最基础的神经网络,理解好感知器对后面的各种神经网络模型是很有帮助的。如下图,
这里写图片描述

它可以有多个输入(x1,x2,...xn),每个输入对应有一个权重(w1,w2...wn),除此之外还有一个偏置项w0

则输出为

o(x)=1,1,ifi=0nxiwi>0;otherwise;

其中将x0看成是1。而
i=0nxiwi=x0w0+x1w1+...+xnwn

则可以看成是x与w的点积。

感知器的作用

它的输入就是一个线性函数,所以可用于线性分类。同时感知器是单层神经网络,是神经网络的基础。

损失函数

损失函数可以用错误分类的点到超平面的总距离来表示,不直接使用统计错误分类的点总数作为损失函数是因为这样的损失函数不是w的连续可导函数。其中距离可用欧氏距离来表示,可用w的L2范数w来表示,于是根据距离公式有,

1w|wx0+b|

对于错误分类的点有,yi(wxi+b)>0,其中y为1或-1,所以错误分类点到超平面的距离为

1wyi(wx0+b)

得到总距离为
1wxiϵMyi|wx0+b|

忽略范数部分,于是得到损失函数
L(w,b)=xiϵMyi(wx0+b)

所以要做的是最小化损失函数L(w,b),使用梯度下降法,梯度分别由w和b的偏导决定,过程中随机用某个错误分类点来更新w和b,更新公式为w+ηyixib+ηyi

实现代码

import numpy as np

eta = 0.1
ite = 20

def train(x, y):
    w_ = np.zeros(1 + x.shape[1])
    for _ in range(ite):
        for xi, yi in zip(x, y):
            update = eta * (yi - predict(xi, w_))
            w_[1:] += update * xi
            w_[0] += update
    return w_

def predict(x, w):
    return np.where(np.dot(x, w[1:]) + w[0] >= 0, 1, -1)

x_train = np.array([[1, 2], [2, 1], [2, 3], [3, 5], [1, 3], [4, 2], [7, 3], [4, 5], [11, 3], [8, 7]])
y_train = np.array([1, 1, -1, -1, 1, -1, -1, 1, -1, 1])

w = train(x_train, y_train)
print("w = " , w)
x1 = [4, 3]
print(predict(x1, w))

========广告时间========

公众号的菜单已分为“分布式”、“机器学习”、“深度学习”、“NLP”、“Java深度”、“Java并发核心”、“JDK源码”、“Tomcat内核”等,可能有一款适合你的胃口。

鄙人的新书《Tomcat内核设计剖析》已经在京东销售了,有需要的朋友可以购买。感谢各位朋友。

为什么写《Tomcat内核设计剖析》

=========================
欢迎关注:

这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

机器学习系列:(八)感知器

感知器 前面,我们介绍了广义线性模型,用联接方程描述解释变量、超参数和响应变量的线性关系。这一章,我们将介绍另一种线性模型,称为感知器(perceptron)。感知器是一种研究单个训练...

机器学习系列:(八)感知器

分类: 机器学习(9)  版权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[+] 声明:版权所有,转载请联系作者并注...

机器学习系列之 感知器模型

前言感知器模型是线性分类模型的一个基本模型,是当今主流的神经元基本结构,掌握好感知器模型有利于我们的机器学习进一步学习,这里简单介绍下感知器模型并且用Python代码演示。 如有谬误,请联系指正。转...

机器学习之感知器学习算法

Machine Learning---感知器学习算法 引言 这里开始介绍神经网络方面的知识(Neural Networks)。首先我们会介绍几个监督式学习的算法,随后便是非监督式的学习。 ...

林轩田机器学习基石观后笔记——感知器学习(PLA)

最近想对机器学习有一个系统的学习,所以观看了台湾大学林轩田教授的机器学习基石课程,该课程讲解的比较容易理解,对于不想学习大量的数学公式的初学者比较合适。 该课程第二讲是简单的感知器学习算法(PLA,...

机器学习系列:(十)从感知器到人工神经网络

声明:版权所有,转载请联系作者并注明出处  http://blog.csdn.net/u013719780?viewmode=contents 博主简介:风雪夜归子(英文名: A...

机器学习系列:(十)从感知器到人工神经网络

从感知器到人工神经网络 在第8章,感知器里,我们介绍了感知器,一种线性模型用来做二元分类。感知器不是一个通用函数近似器;它的决策边界必须是一个超平面。上一章里面介绍的支持向量机,用核函...

机器学习基础(一)——人工神经网络与简单的感知器

机器学习基础(一)——人工神经网络与简单的感知器

神经网络与机器学习笔记——Rosenblatt感知器

Rosenblatt感知器 感知器是用于线性可分模式(模式分别位于超平面两边)分类的最简单的神经网络模型,基本上由一个具有可调突触权值和偏置的神经元组成。 Rosenblatt证明了当用来训练感知器的...
  • LXYTSOS
  • LXYTSOS
  • 2015年05月01日 10:22
  • 4656

【机器学习】多元高斯分布下的贝叶斯分类感知器

先来来看看随机连续分布下贝叶斯分类器模型。假设当前要使用贝叶斯分类器进行二分类的判别,数据集有随机分布,图像如下: 现在定义代价函数J,其中p1和p2表示已知的二分类出现的先验概率,c11,c1...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:机器学习之感知器
举报原因:
原因补充:

(最多只允许输入30个字)