深度学习之线性单元(梯度下降算法)(二)

关于线性

线性的概念:
"线性"="齐次性"+"可加性",
"齐次性"是指类似于: f(ax)=af(x),
"可加性"是指类似于: f(x+y)=f(x)+f(y),

而对于单层感知器来说,是无法处理非线性的问题。非线性及不符合上述的条件的集合。
例如异或问题:


image.png

无法找到一个合适的直线,将两边分离开来。
所以这时候就需要用到了delta法则。

delta法则

delta 法则的关键思想是使用梯度下降(gradient descent)来搜索可能权向量的假设空间, 以找到最佳拟合训练样例的权向量。

由于在真实情况下,并不能保证训练集是线性可分的。因而,当训练集线性不可分时该如何训练感知器呢?这时我们使用delta法则,通过这种方式可以找出收敛到目标的最佳近似值。

其原理是:


image.png

因为其激活函数是线性的,所以一般被称为线性单元。

激活函数:


image.png

用向量表示就是:


image.png

当然在这一种情况下,还需要考虑其每次计算后的结果的误差,根据误差来调整权值。
而这就需要用到代价函数:


image.png

其中y为期望输出,y`为实际输出。

在求得误差结果最小的情况下,就是我们所求的最优解。注:这里的1/2只是为了后面的计算方便,没有实际意义。

为了求得代价函数最小,因为:


image.png

对路所有的样本的误差和来说:


image.png

所以公式可以改写为:


image.png

因为对于样本来说(其实是监督学习的方式),x和y都是已知的,所以上述的公式中其实就是w和E(w)的关系。对整个代价函数来说,其实只有一个变量w。

这样如果想要获取E(w)的最小值,及误差最小,只需要获取的上述变量的最小值即可。因此我们可以使用导数的方式来求取最小值。当然计算机是不会解方程的,所以只能是一步一步的尝试出最小值。

因此引进梯度下降算法:


image.png

通过不断的改变w的值,来找到使得E(w)最小的位置:


image.png

对w求导结果:


image.png

这样就获取的权值调整公式。

我们可以来看一下推断出来的公式和上一章的单层感知器的差异:


image.png

其实只有激活函数不一样!!!
下面举个简单的例子说明一下:

问题

输入一组工作年限 [[5], [3], [8], [1.4], [10.1]];
期望输出其代表的年薪:[5500, 2300, 7600, 1800, 11400]
通过随意输入一个工作年限来预算其的年薪。

代码:

# coding=utf-8
# numpy 支持高级大量的维度数组与矩阵运算
import numpy  as np
# Matplotlib 是一个 Python 的 2D绘图库
import matplotlib.pyplot as plt


#定义坐标,设定5组输入数据,每组为(x0,x1,)
X=np.array([[1,5],
            [1,3],
            [1,8],
            [1,1.4],
            [1,10.1]]);

#设定输入向量的期待输出值
Y=np.array([5500,2300,7600,1800,11400]);

#设定权值向量(w0,w1)
W = np.array([0,0]); 

#设定学习率
lr = 0.01;
#计算迭代次数
n=0;
#神经网络输出
O=0;

def  updateW():
    global  X,Y,W,lr,n;
    n+=1;
    O=np.dot(X,W.T);
    #计算权值
    W_Tmp = lr*((Y-O.T).dot(X))/int(X.shape[0]);
    #更新权值向量
    W = W+W_Tmp;

def draw():
    global W;

    x1=[5,3,8,1.4,10.1];
    y1=[5500,2300,7600,1800,11400];

    #绘制分割线需要的等差数列
    x=np.linspace(0,12);
    #创建子图
    plt.figure();
    #根据坐标绘图 激活函数:y=x1W1+w0
    plt.plot(x,x*W[1]+W[0],'r');
    plt.plot(x1,y1,'*');
    plt.show();

if __name__ == '__main__':
    #设置迭代次数
    for index in range (100):
        updateW();
        #获取组合器输出结果
        O=np.dot(X,W.T);
        #打印 实际值
        print O;

    draw();

执行结果:


image.png

参考:
线性学习器
https://blog.csdn.net/wasd6081058/article/details/7886697
零基础入门深度学习(2) - 线性单元和梯度下降(写的非常通俗易懂!!!感谢作者)
https://www.zybuluo.com/hanbingtao/note/448086
网易视频课程——深度学习入门系列
http://study.163.com/course/courseMain.htm?courseId=1004111045

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,837评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,551评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,417评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,448评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,524评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,554评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,569评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,316评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,766评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,077评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,240评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,912评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,560评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,176评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,425评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,114评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,114评论 2 352

推荐阅读更多精彩内容