【第一周笔记】神经网络和深度学习

第一节 概论

一、什么是神经网络

由人脑的工作模式启发衍生的强力学习算法

例 1 – 单神经网络

给出有关房地产市场房屋大小的数据,拟合一个函数来预测其他房地产数据的价格。这是一个线性回归问题,因为作为大小函数的价格是连续输出。由于价格不可以为负数,因此我们建立了一个修正线性单元(ReLU),该函数从零开始。

基于单变量的房价预测

输入是房子面积x,输出是房价y

“神经”构造了该ReLU函数。

The input is the size of the house (x) The output is the price (y) The “neuron” implements the function ReLU (blue line)

例 2 – 多神经网络

房价由多种情况影响,如大小、卧室数量、邮编、街区富裕情况......神经网络在预测的时候会产生隐藏单元,我们并不会指定每个隐藏单元代表什么意思,只需要给出相应的输入x和输出y就好了。

基于多变量的房价预测

二、监督学习

1.监督学习基本分为两大问题:
输入和输出都是有参照的,根据参照,给定一个新的输入,预测新的输出。如房价:给定某地房子大小和房价的数据,根据这些数据,给定一个房子尺寸大小,预测该尺寸对应的房价。

分类:

  • 线性回归类:预测连续输出值
  • 分类问题:预测离散输出值

2.常用的神经网络

image : CNN

sequence data (audio,language...) RNN or complex RNNS

Structured data : 每个特征有清晰的定义

Unstructured data : Audio Image text

第二节 神经网络基础

一、logistic 回归

1.二分分类问题

二分分类问题的目标是训练出一个分类器以图片的特征向量x作为输入,预测输出的结果标签y是1还是0。

其中X 是每个特征向量集合成的大矩阵,X\in \mathbb{R}^{n_{x\times m}}

Y = [ y^{(1)},y^{(2)},\dots,y^{(m)} ] 因此 Y\in \mathbb{R}^{1\times (m)}

2.Logistic Regression

给出 X ,想要预估的 \hat y = P(y=1|x)

参数 : w\in \mathbb{R}^{n_{x}},\ b\in \mathbb{R}

输出 : \hat y = \sigma(w^{\top}x+b)

其中sigmoid函数表示为:\sigma(z)=\frac{1}{1+e^{-z}}

sigmoid函数

在实际编程中会把w和b分开,b对应一个拦截器。

3.logistic regression cost function

所以在给定数据集\{ (x^{(1)},y^{(1)}),\dots,(x^{(m)},y^{(m)}) \},我们想要让对每个x^{(i)}的预测值{\hat y}^{(i)} \approx {y}^{(i)}

\mathcal{L}(\hat y,y)= - (y \log {\hat y} + (1-y) \log (1-\hat y))

if y=1: \mathcal{L}(\hat y,y) = - \log \hat y 想要损失函数小,我们需要\hat y

if y=0: \mathcal{L}(\hat y,y) = - \log (1- \hat y) 想要损失函数小,我们需要\hat y

loss function :基于单个训练样本

cost function:基于参数的总样本

cost function:

J(w,b) = \frac{1}{m}\sum_{i=1}^m \mathcal L(\hat y^{(i)},y^{(i)}) = - \frac{1}{m} \sum_{i=1}^{m} y^{(i)} \log {\hat y^{(i)}} + (1-y^{(i)}) \log (1-\hat y^{(i)})

最终目的是使代价函数J(w,b)尽可能小
4.梯度下降

J(w,b) = \frac{1}{m}\sum_{i=1}^m \mathcal L(\hat y^{(i)},y^{(i)}) = - \frac{1}{m} \sum_{i=1}^{m} y^{(i)} \log {\hat y^{(i)}} + (1-y^{(i)}) \log (1-\hat y^{(i)})

为了将J减小,我们必须找到合适的w和b。

梯度下降算法中,重复{

w := w - \alpha \frac{\partial J(w,b)}{\partial w}

b := b - \alpha \frac{\partial J(w,b)}{\partial b}

}

α被称作 学习率,决定了迭代步长

对m个样本梯度下降

算法:

J=0;\mathbf{d}w1=0;\mathbf{d}w2=0;\mathbf{d}b=0;

For i = 1 to m

z^{(i)} = w^{\top}x^{(i)}+b

a^{(i)} = \sigma(z^{(i)})

J+= -y^{(i)} \log {\hat y^{(i)}} + (1-y^{(i)}) \log (1-\hat y^{(i)})

\mathbf{d} z^{(i)} = a^{(i)}-y^{(i)}

\mathbf{d}w_{1} += x_{1}^{(i)}\mathbf{d}z^{(i)}

\mathbf{d}w_{2} += x_{2}^{(i)}\mathbf{d}z^{(i)}

\mathbf{d}b+=\mathbf{d} z^{(i)}

J /=m

\mathbf{d}w_{1}/=m

\mathbf{d}w_{2}/=m //如果多余2个特征值 w值延续到nx

\mathbf{d}b/=m

//在这时 \mathbf{d}w_{1} = \frac{\partial J}{w_{1}} 以此类推 其他的d值也都成为了J对该值的偏导数

w_{1} = w_{1} - \alpha \mathbf{d}w_{1}

w_{2} = w_{2} - \alpha \mathbf{d}w_{2}

b = b - \alpha \mathbf{d}b

该算法中会出现两次显性的for循环,这是非常低效的,为了解决这样的问题,使用向量化的方法。

二、向量化

GPU和CPU都有SIMD指令,即允许单指令多数据流,能够复制多个操作数,并把它们打包在大型寄存器的一组指令集。GPU更擅长SIMD指令操作。

在实际编程中尽可能地避免显性for循环。

在python编程中善用np.dot()函数

e.g.将v= \begin{bmatrix} v_{1} \\ \vdots\\ v_{n} \end{bmatrix}转变为u= \begin{bmatrix} e^{v_{1}} \\ \vdots\\ e^{v_{n}} \end{bmatrix}

u = np.zeros((n,1))
for i in range(n):
    u[i] = math.exp(v[i])
import numpy as np
u = np.exp(v)
np.log(v)
np.abs(v)
np.maximum(v,0)
v**2
1/v

对logistic regression算法进行向量化
​定义一个大矩阵X = [x^{(1)},x^{(2)},\dots,x^{(m)}]

算法:

J=0;\mathbf{d}w1=0;\mathbf{d}w2=0;\mathbf{d}b=0;
Z=w^{\top}X+b
​ = np.dot(w.T,X)+b
A = \sigma(Z)
\mathbf{d} z = A-Y
\mathbf{d}w = \frac {1}{m}X\mathbf{d}z^{\top}
\mathbf{d}b = \frac {1}{m} np.sum(\mathbf{d}z)
w = w- \alpha \mathbf{d}w //反向更新w
b = b - \alpha \mathbf{d}b //反向更新b

关于正向传播和反向传播的理解,参考https://www.cnblogs.com/charlotte77/p/5629865.html,该作者用数字化的演示详细地阐述了back propagation的重要意义。直观地将,逐步更新权值项w和截距项b的过程就是BP的主要过程。

第三节 浅层神经网络

一、神经网络

神经网络表示

双层神经网络,一般不把输入层算入标准层,输入层也被称作第零层。隐藏层和最后的输出层是带有参数的,隐藏层带有两个相关的参数W和b。在本图中,​是一个4×3的矩阵。4来源于四个隐藏层,3来自于三个输入层。​是一个4×1的矩阵。​是一个1×4的矩阵,因为隐藏层有四个隐藏单元,只有1个对应的输出,​是一个1×1的矩阵。

二、激活函数

tanh(z) = \frac{e^z-e^{-z}}{e^z+e^{-z}}
tanh函数的平均值接近0,因此有数据中心化的效果。在效果上比sigmoid函数要好。
另外,tanh(z)求导的结果是tanh'(z) = 1 - (tanh(z))^2

在做二元分类的时候可以使用sigmoid函数,因为需要输出结果在0到1之间。
ReLU函数

a=\max(0,z)

带泄露的ReLU:

a = \max(0.01z,z)

如果所有隐藏单元都使用线性激活函数的话,那么在逻辑上是没有意义的。

三、梯度下降

对于神经网络的梯度下降


神经网络的梯度下降

权重的随机初始化也非常重要,如果在一开始的时候全都赋值为0的话,很有可能会造成所有隐藏神经元都在进行同一个函数的计算,这样的话该神经网络会发生“对称”。

第四节 深层神经网络

一、前向传播

A^{[0]}=X

z^{[l]}=w^{[l]}A^{[l-1]}+b^{[l]}

A^{[l]}=g^{[l]}(Z^{[l]})

深层神经前向传播的过程大致如此,l从1一直迭代到最深层。在这一步可能需要一个显性的for循环。

总结起来w^{[l]}的维度必须是(n^{[l]},n^{[l-1]}),b^{[l]}的维度是(n^{[l]},1)

二、参数和超参数

参数:w^{[1]},b^{[1]}\dots

超参数:某种程度上决定了最终的W和b

  • 学习率 α
  • 梯度下降法的循环数量
  • 隐藏层数L
  • 隐藏单元数:n^{[1]}
  • 激活函数

······

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

推荐阅读更多精彩内容