首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

神经网络系列 单个感知器

嗨,小伙伴们,前段时间专注学习没办法做公众号。现在学得有了头绪,接下来一段时间我会从单个感知机起,到多层感知机(MLP),再到卷积神经网络向你们介绍分类器使用及其训练。并且有简单易懂的数学方法,只要你会多元函数求导,再会任意一门编程语言你就可以徒手写神经网络,写图片分类器啦。

现在我们从单个感知器开始学习机器学习。

假设我们现在有一系列的数据点(如图)

我们需要把上图中的蓝色点和红色点分为两类,当输入一个点我们能很快判定它属于哪一类。这时我们发现其实在两类点中间画一个分类平面就可以很好地将其分开。那我们就需要找到这一个平面,如果到此平面的距离为正,那么就为红色的样本点,如果为负就为蓝色样本点。那这里就有一个问题了点到平面的距离怎么求?

线性代数里有提到过,一个平面的表示方式Wx*x +Wy*y +Wz*z + b=0

W = [Wx,Wy,Wz]为平面的法向量(且||W||=0),如果要求一个点到平面的距离,那么就是g(X)= W*X +b,如果g(X)>0,X,就为正样本,反之则为负样本。然而在机器学习中我们又会将g(X)输入一个神经元,这个神经元为一个函数f(*),通过下图我们可以看出当输入大于,函数值向1收敛,反之也成立。当此神经元可能的函数很多种,例如sigmoid函数,tanh函数等

Sigmoid:

那么现在又有一个问题,W与b要如何求取呢?

此处我们就可以接触到梯度下降法了,这是监督学习中非常基础且重要的算法。我们现在为正样本贴上标签1,为负样本贴上标签-1,那我们的目标就成了将使得输入任何负样本输出都为-1,输入任何正样本输出都为1。然后我们再将目标转换为损失方程Loss=^2,Y是我们为数据点做上的标签,而Y是我们的模型输出的值,我们目标就是希望他们差距越来越小。

模型构建完毕接下来就是我们的梯度求解了,我们现

在的模型长成这样:

输入

我们现在需要对b与W求梯度,也就是损失函数Loss对W与b的求导

而对b的求导与对W的求导类似。

当我们求得梯度过后就用梯度对参数进行更新,W= W- Lr*d_W,b与W类似,其中Lr为学习率也就是每次更新的步长,对步长的选取需要我们格外留意,大多数时候根据经验而定,如果太小会导致学习慢,太高会导致学习过程震荡,难以到达最优点。

这就是我们今天的全部内容了,下一次我们将学习到多层感知器用于解决非线性分类问题。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181122G1XRMZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券