美文网首页
神经网络与机器学习,tensorflow,part1(感知机)

神经网络与机器学习,tensorflow,part1(感知机)

作者: miaozasnone | 来源:发表于2019-07-11 01:03 被阅读0次

1.超平面
几何体中,超平面是一维小于其环境空间的子空间。 如果空间是3维的,那么它的超平面是二维平面,而如果空间是二维的,则其超平面是一维线。 该概念可以用于定义子空间维度概念的任何一般空间。
2.感知机概念
感知机(preceptron)是线性分类的二分类模型,输入为实例的特征向量,输出为实例的类别,分别用 1 和 -1 表示。感知机将输入空间(特征空间)中的实例划分为正负两类分离的超平面,旨在求出将训练集进行线性划分的超平面,为此,导入基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得最优解。感知机是神经网络和支持向量机的基础。
3.原理
最简单的感知机用一个超平面将输入x_1,x_2,x_3,x_4...,x_m分为\varphi _1,\varphi _2两类,分类规则:如果感知器输出+1就将其分为\varphi _1类,-1则分为\varphi _2类。
该超平面的定义如下:

\quad \sum_{i=1}^{m}{w_i x_i+b}=0
4.感知机的收敛算法概述

  • 变量和参数:
    \quad x(n)=m+1维输入向量
    \quad\quad\quad =[+1,x_1(n),x_2(n),...x_m(n)]^T
    \quad w(n)=m+1维权值向量
    \quad\quad\quad =[+b,w_1(n),w_2(n),...w_m(n)]^T
    \quad y(n)=实际响应(量化的)
    \quad d(n)=期望响应
    \quad \eta=学习率参数,小于1的正常数
  • 具体步骤
    1.初始化,设w(0)=0。
    2.激活,输入向量x(n),也就是x_1,x_2...x_n和期望响应d(n)
    3.计算实际响应。
    \quad\quad\quad y(n)=sgn[w^t(n)x(n)]
    其中sgn(.)是符号函数f(x)=sgn(w*x+b)
    4.更新权值w和偏置b,首先我们先定义一个感知机对样本分类的失败程度也就是损失函数,这里采用所有误分类的点到超平面的距离来定义
    损失函数的推导过程:
    首先,二维空间中点(x_1,x_2)到直线w_1x1+w_2x_2+b=0的距离
    为:\quad\quad\quad \frac{|w_1x_1+w_2x_2+b|}{\sqrt{w_1^2+w_2^2}}
    然后推导到n维空间中一点(x_1,x_2...,x_m)到超平面\quad \sum_{i=1}^{m}{w_i x_i+b}=0的距离
    为:
    \quad\quad\quad \frac{| \sum_{i=1}^{m}{w_i x_i+b}|}{\sqrt{w_1^2+w_2^2...+w_n^2}}
    然后将上面这个式子简化一下
    得到:
    \quad\quad\quad dis(w,b)=\frac{|wx_i+b|}{||w||}
    其中||w||是w(w_1,w_2...)的L2范数,也就是\sqrt{w_1^2+w_2^2...+w_n^2}.由于它大大增加了整个算法的复杂度但是对结果影响很小,
    下面的式子将它舍去,对于误分类的点,y_i*dis(w,b)小于零,所以我们
    用:
    \quad\quad\quad L(w,b)=-\sum_{i=1}^{m}{{y_i(w_i+b)}}
    来表示误分类的点到超平面的距离,也就是损失函数,为了让样本点正确的分类,应该要让损失函数尽可能的小,这里用的是梯度下降算法,有时间的话我会把证明也记到博客里,所谓梯度下降算法就是高数里面的求偏导,
    得到:
    \quad\quad\quad w(n+1)_i\longleftarrow w(n)_i+\eta x_id(n)
    \quad\quad\quad b(n+1)\longleftarrow b+\eta x_id(n)
    5.继续,n=n+1,返回第2步

相关文章

网友评论

      本文标题:神经网络与机器学习,tensorflow,part1(感知机)

      本文链接:https://www.haomeiwen.com/subject/sttlkctx.html