神经网络与深度学习笔记(一)逻辑回归与梯度下降

前言

完成coursera上吴恩达老师的深度学习专项课程第一课神经网络与深度学习已经有一段时间了。由于笔记中的各类公式就没有开始动笔总结并发布。

好在最近也在很痛苦地学习LaTex,就企图与LaTex一起更新算了。假期快结束,后面时间其实也是很紧张的。==不该浪的,不该浪的

值得一提的是,我非常不建议在非coursera平台学习吴恩达老师的课程。coursera的课程大多数都可以申请奖学金资助,只要你是学生基本都会通过审批。至于coursera的视频播放问题,在大多数情况下改电脑的host都可以解决,再加上腾讯布局的长鹅教育加速器在后期也会逐渐发力。实在没有理由再去b站那些平台听课。但,最重要的一点是,学习实际上是一个反馈的过程,这个反馈最好的方式就是费曼学习法。

神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图1

coursera的平台作业能够实时反馈你的学习情况,遇到不会的可以回去重新听一遍。然而b站实际上没有这种功能,尽管大多数up主会在他们的评论区贴出作业,但是没有coursera的实时反馈,那些作业实际上给自己的帮助也不是太高,更不提在coursera上类似jupyter notebook的线上系统做作业,进而不用在自己电脑上安装相关环境的优势。

另外就是,不要高估自己自主学习的能力,那些b站的作业链接大多人也不会点开,点开了也不一定做,做了也不一定会认真写,看几下就去面向百度做作业比比皆是。对于编程类的实践作业课程,b站真的不是最适合的。

结构化数据与非结构化数据的区别

结构化数据

结构化数据,如果你觉得不好记住,不妨就这样记着,能够用传统的数据库行列存储的数据都是结构化数据

非结构化数据

非结构化数据,包括文档、文本、图片、XML、HTML、报表、图像和音视频这些,是传统的数据库行列不能存储的数据

在第一周的测验中有着相关的题目

神经网络与深度学习第一周测验 Introduction to Deep Learning

题目大概意思是:

猫的识别图像是”结构化”数据的示例,是因为它在计算机中表示为结构化数组。真/假?

这当然是错的,猫的图像是个图片,不是结构化数据

图片的矩阵表示

神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图2

借着上面的猫的图像,我们来看看在计算机中,图片的二进制表示(本文大多数公式是使用LaTex敲的,感兴趣可以学习LaTex)

一张图片中有红绿蓝三个矩阵,来完整描述一个图片的像素值。如果这张图片是64×64的,那么它的像素值就是64×64×3。在x中我们可以表示成下面的样子用于图像数据的输入,x在这种情况下就是64×64×3维的。记得这是小x,与后面的大X要区分开。

神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图3

输入输出格式

于是对于输入x,输出y,我们有:

神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图4%5Cqquad%20x%5Cin%20R%5E%7Bn_x%7D%2C%5Cquad%20x%E6%98%AFn(x)%E7%BB%B4%E5%90%91%E9%87%8F%2C%5Cquad%20y%5Cin%5C%7B0%2C1%5C%7D%0A#card=math&code=%28x%2Cy%29%5Cqquad%20x%5Cin%20R%5E%7Bn_x%7D%2C%5Cquad%20x%E6%98%AFn%28x%29%E7%BB%B4%E5%90%91%E9%87%8F%2C%5Cquad%20y%5Cin%5C%7B0%2C1%5C%7D%0A&id=xTJGo)

对于m个训练样本

神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图5%7D%2Cy%5E%7B(1)%7D)%2C(x%5E%7B(2)%7D%2Cy%5E%7B(2)%7D)%2C%5Ccdots%20(x%5E%7B(m)%7D%2Cy%5E%7B(m)%7D)%20%5C%7D%0A#card=math&code=%5C%7B%28x%5E%7B%281%29%7D%2Cy%5E%7B%281%29%7D%29%2C%28x%5E%7B%282%29%7D%2Cy%5E%7B%282%29%7D%29%2C%5Ccdots%20%28x%5E%7B%28m%29%7D%2Cy%5E%7B%28m%29%7D%29%20%5C%7D%0A&id=pm4qn)

神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图6%7D%20%26%20x%5E%7B(2)%7D%20%26%20x%5E%7B(3)%7D%20%26%20%5Ccdots%20%26%20x%5E%7B(m)%7D%20%5C%5C%0A%5Cvdots%20%26%20%5Cvdots%20%26%20%5Cvdots%20%26%5Cquad%20%26%20%5Cvdots%20%5C%5C%0A%5Cvdots%20%26%20%5Cvdots%20%26%20%5Cvdots%20%26%5Cquad%20%26%20%5Cvdots%20%5C%5C%0A%5Cend%7Bbmatrix%7D%7D%7Bn(x)%5Ctimes%20m%E7%BB%B4%E7%9F%A9%E9%98%B5%20%7D%5Cright%5C%7D%7Bnx%7D%0A#card=math&code=%5Cmathbf%7BX%7D%3D%0A%5Cleft.%0A%5Cunderbrace%7B%5Cbegin%7Bbmatrix%7D%0A%5Cvdots%20%26%20%5Cvdots%20%26%20%5Cvdots%20%26%5Cquad%20%26%20%5Cvdots%20%5C%5C%0A%5Cvdots%20%26%20%5Cvdots%20%26%20%5Cvdots%20%26%5Cquad%20%26%20%5Cvdots%20%5C%5C%0Ax%5E%7B%281%29%7D%20%26%20x%5E%7B%282%29%7D%20%26%20x%5E%7B%283%29%7D%20%26%20%5Ccdots%20%26%20x%5E%7B%28m%29%7D%20%5C%5C%0A%5Cvdots%20%26%20%5Cvdots%20%26%20%5Cvdots%20%26%5Cquad%20%26%20%5Cvdots%20%5C%5C%0A%5Cvdots%20%26%20%5Cvdots%20%26%20%5Cvdots%20%26%5Cquad%20%26%20%5Cvdots%20%5C%5C%0A%5Cend%7Bbmatrix%7D%7D%7Bn%28x%29%5Ctimes%20m%E7%BB%B4%E7%9F%A9%E9%98%B5%20%7D%5Cright%5C%7D_%7Bn_x%7D%0A&id=zLEbL)

这样对x的输入进行表示较为简单

与此对应的y的输出应该为

神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图7%7D%20%26%20y%5E%7B(2)%7D%20%26%20y%5E%7B(3)%7D%20%26%20%5Ccdots%20%26%20y%5E%7B(m)%7D%20%5C%5C%0A%5Cend%7Bbmatrix%7D%7D%7B1%5Ctimes%20m%E5%A4%A7%E5%B0%8F%E7%9A%84%E7%9F%A9%E9%98%B5%7D%0A#card=math&code=%5Cmathbf%7BY%7D%3D%0A%5Cunderbrace%7B%5Cbegin%7Bbmatrix%7D%0Ay%5E%7B%281%29%7D%20%26%20y%5E%7B%282%29%7D%20%26%20y%5E%7B%283%29%7D%20%26%20%5Ccdots%20%26%20y%5E%7B%28m%29%7D%20%5C%5C%0A%5Cend%7Bbmatrix%7D%7D%7B1%5Ctimes%20m%E5%A4%A7%E5%B0%8F%E7%9A%84%E7%9F%A9%E9%98%B5%7D%0A&id=UYIML)

X与Y的形状为

  1. X.shape(nx,m)
  2. Y.shape(1,m)

Logistic Regression逻辑回归

现在我们使用$ \hat{y} $ 表示对真实值 神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图8 的估计

神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图9

接下来是定义逻辑回归的参数 神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图10神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图11

神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图12

我们定义输出为

神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图13%2C%5Cquad%20%5Csigma%E6%98%AFsigmoid%E5%87%BD%E6%95%B0%0A#card=math&code=%5Chat%7By%7D%20%3D%20%5Csigma%28w%5ETx%2Bb%29%2C%5Cquad%20%5Csigma%E6%98%AFsigmoid%E5%87%BD%E6%95%B0%0A&id=tnrAN)

神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图14 函数如下图所示

神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图15

为什么要使用 神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图16 函数?

这是因为从上文的 神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图17 输出我们可以知道,神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图18 要在 神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图19#card=math&code=%280%2C1%29&id=pUlFS) 的区间范围内

神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图20函数作为激活函数可以满足这个要求

神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图21函数的函数公式如下

神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图22%3D%5Cfrac%7B1%7D%7B1%2Be%5E%7B-z%7D%7D%0A#card=math&code=%5Csigma%28z%29%3D%5Cfrac%7B1%7D%7B1%2Be%5E%7B-z%7D%7D%0A&id=BvSNF)

学过导数极限我们可以知道

神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图23时,神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图24

神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图25时,神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图26

接下来我们要设计loss函数和cost函数,首先我们要明确loss函数和cost函数的区别

loss函数是单一值训练的偏差情况

神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图27%20%3D%20%5Cfrac%7B1%7D%7B2%7D(%5Chat%20y%20-%20y)%5E2%0A#card=math&code=loss%20%5Cquad%20function%3A%5Cquad%20%5Cell%28%5Chat%20y%2Cy%29%20%3D%20%5Cfrac%7B1%7D%7B2%7D%28%5Chat%20y%20-%20y%29%5E2%0A&id=TKSPH)

cost函数是所有的训练值偏差情况和的均值

神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图28%20%3D%20-%20%5Cfrac%7B1%7D%7Bm%7D%5Csum%7B1%7D%5Em%20%5Cleft%5B%20y%5E%7B(i)%7Dlog%20%5Chat%20y%5E%7B(i)%7D%2B(1-y%5E%7B(i)%7D)log(1-%5Chat%20y%5E%7B(i)%7D)%5Cright%5D%0A#card=math&code=%5Cjmath%28w%2Cb%29%20%3D%20-%20%5Cfrac%7B1%7D%7Bm%7D%5Csum%7B1%7D%5Em%20%5Cleft%5B%20y%5E%7B%28i%29%7Dlog%20%5Chat%20y%5E%7B%28i%29%7D%2B%281-y%5E%7B%28i%29%7D%29log%281-%5Chat%20y%5E%7B%28i%29%7D%29%5Cright%5D%0A&id=fyiNB)

cost函数能够很好反应参数成本,进而找到更好的 神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图29神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图30

Gradient Descent梯度下降

神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图31%20%7D%7Bdw%7D%5C%5C%0Ab%20%3D%20b%20-%20%5Calpha%20%5Cfrac%7Bd%5Cjmath%20(w%2Cb)%20%7D%7Bdb%7D%0A#card=math&code=w%20%3D%20w%20-%20%5Calpha%20%5Cfrac%7Bd%5Cjmath%20%28w%2Cb%29%20%7D%7Bdw%7D%5C%5C%0Ab%20%3D%20b%20-%20%5Calpha%20%5Cfrac%7Bd%5Cjmath%20%28w%2Cb%29%20%7D%7Bdb%7D%0A&id=Nm7tb)

我们使用梯度下降来对 神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图32神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图33 进行更新

找到使得神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图34#card=math&code=%5Cjmath%20%28w%2Cb%29&id=XJbAK)取得最小的神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图35神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图36

在逻辑回归中,我们一定能够找到这样的一组符合条件的 神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图37神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图38 使得神经网络与深度学习笔记(一)逻辑回归与梯度下降 - 图39#card=math&code=%5Cjmath%28w%2Cb%29&id=jjpxk) 取得最小值

后记

本篇主要是逻辑回归与梯度下降的笔记,主要介绍输入输出的格式,逻辑回归与梯度下降的做法等。

如果有更好的想法,欢迎在评论区留言!欢迎一键三连!