【DL笔记1】Logistic回归:最基础的神经网络

个人认为理解并掌握这个logistic regression是学习神经网络和深度学习最重要的部分,也是最基础的部分,学完这个再去看浅层神经网络、深层神经网络,会发现后者就是logistic重复了若干次(当然一些细节会有不同,但是原理上一模一样)。
本文是【专题“DeepLearning学习笔记”】的第【1】篇

一、什么是logictic regression

下面的图是Andrew Ng提供的一个用logistic regression来识别主子的图片的算法结构示意图:


Logistic Regression

左边x0到x12287是输入(input),我们称之为特征(feather),常常用列向量x(i)来表示(这里的i代表第i个训练样本,下面在只讨论一个样本的时候,就暂时省略这个标记,免得看晕了-_-|||),在图片识别中,特征通常是图片的像素值,把所有的像素值排成一个序列就是输入特征,每一个特征都有自己的一个权重(weight),就是图中连线上的w0到w12287,通常我们也把左右的权重组合成一个列向量W

中间的圆圈,我们可以叫它一个神经元,它接收来自左边的输入并乘以相应的权重,再加上一个偏置项b(一个实数),所以最终接收的总输入为:

x0w0+x1w1+...+x12287w12287+b=WTx+b
(简书打公式真心累啊。。。)

但是这个并不是最后的输出,就跟神经元一样,会有一个激活函数(activation function)来对输入进行处理,来决定是否输出或者输出多少。Logistic Regression的激活函数是sigmoid函数,介于0和1之间,中间的斜率比较大,两边的斜率很小并在远处趋于零。长这样(记住函数表达式):

sigmoid function

我们用y'来表示该神经元的输出,σ()函数代表sigmoid,则可知:

y' = σ(WTx+b)
(简书的markdown居然不支持居中。。。)

这个y'可以看做是我们这个小模型根据输入做出的一个预测,在最开始的图对应的案例中,就是根据图片的像素在预测图片是不是猫。
与y'对应的,每一个样本x都有自己的一个真实标签y,y=1代表图片是猫,y=0代表不是猫。我们希望模型输出的y'可以尽可能的接近真实标签y,这样,这个模型就可以用来预测一个新图片是不是猫了。所以,我们的任务就是要找出一组W,b,使得我们的模型y' = σ(WTx+b)可以根据给定的x,正确地预测y。在此处,我们可以认为,只要算出的y'大于0.5,那么y'就更接近1,于是可以预测为“是猫”,反之则“不是猫”。

以上就是Logistic Regression的基本结构说明。

二、怎么学习W和b

前面其实提到过了,我们需要学习到的W和b可以让模型的预测值y'与真实标签y尽可能地接近,也就是y'和y的差距尽量地缩小。因此,我们可以定义一个损失函数(Loss function),来衡量y'和y的差距:
L(y',y) = -[y·log(y')+(1-y)·log(1-y')]
可以暂时忽略后面这个看似复杂其实不复杂的表达式,只记住损失函数是L(y',y)就行了。
如何说明这个式子适合当损失函数呢?且看:

  • 当y=1时,L(y',y)=-log(y'),要使L最小,则y'要最大,则y'=1;
  • 当y=0时,L(y',y)=-log(1-y'),要使L最小,则y'要最小,则y'=0.

如此,便知L(y',y)符合我们对损失函数的期望,因此适合作为损失函数。

我们知道,x代表一组输入,相当于是一个样本的特征。但是我们训练一个模型会有很多很多的训练样本,也就是有很多很多的x,就是会有x(1),x(2),...,x(m) 共m个样本,它们可以写成一个大X 行向量
X = (x(1),x(2),...,x(m) )
对应的样本的真实标签Y(也是行向量):
Y = (y(1),y(2),...,y(m) )
通过我们的模型计算出的y'们也可以组成一个行向量:
Y' = (y'(1),y'(2),...,y'(m) )

前面讲的损失函数L,对每个x都有,因此在学习模型的时候,我们需要看所有x的平均损失,因此定义一个代价函数(Cost function)
J(W,b) = 1/m·Σmi=1L(y'(i),y(i)) 代表所有训练样本的平均损失。

因此,我们的学习任务就可以用一句话来表述:

Find W,b that minimize J(W,b)

Minimize。。。说起来简单做起来难,好在我们有计算机,可以帮我们进行大量重复地运算,于是在神经网络中,我们一般使用梯度下降法(Gradient Decent)

梯度下降法

这个方法通俗一点就是,先随机在曲线上找一个点,然后求出该点的斜率,也称为梯度,然后顺着这个梯度的方向往下走一步,到达一个新的点之后,重复以上步骤,直到到达最低点(或达到我们满足的某个条件)。
如,对w进行梯度下降,则就是重复一下步骤(重复一次称为一个迭代):
w := w - α(dJ/dw)
其中:=代表“用后面的值更新”,α代表“学习率(learning rate)”,dJ/dw就是J对w求偏导。

回到我们的Logistic Regression问题,就是要初始化(initializing)一组W和b,并给定一个学习率,指定要迭代的次数(就是你想让点往下面走多少步),然后每次迭代中求出w和b的梯度,并更新w和b。最终的W和b就是我们学习到的W和b,把W和b放进我们的模型y' = σ(WTx+b)中,就是我们学习到的模型,就可以用来进行预测了!

总结一下:

  • Logistic Regression模型:y' = σ(WTx+b),记住使用的激活函数是sigmoid函数。
  • 损失函数:L(y',y) = -[y·log(y')+(1-y)·log(1-y')]衡量预测值y'与真实值y的差距,越小越好。
  • 代价函数:损失均值,J(W,b) = 1/m·Σmi=1L(y'(i),y(i)),是W和b的函数,学习的过程就是寻找W和b使得J(W,b)最小化的过程。求最小值的方法是用梯度下降法。
  • 训练模型的步骤
    1. 初始化W和b
    2. 指定learning rate和迭代次数
    3. 每次迭代,根据当前W和b计算对应的梯度(J对W,b的偏导数),然后更新W和b
    4. 迭代结束,学得W和b,带入模型进行预测,分别测试在训练集合测试集上的准确率,从而评价模型

就这么明明白白<(▰˘◡˘▰)

下一篇:【DL笔记2】神经网络编程原则&Logistic Regression的算法解析
有任何疑问,欢迎留言交流!也希望大家监督我写完“DeepLearning学习笔记”这个专题!

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

推荐阅读更多精彩内容