Deep Learning Notes - 1.2深度学习基础
2018-02-18 22:49
555 查看
Deep Learning Notes - 1.2深度学习基础
二进制分类 Binary Classification
例如:判断图片中是否含有猫图片为rbg模式,大小为width×heightwidth×height,使用矩阵(列向量)存储如下:
x=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢Mat_R1,1Mat_R1,2...Mat_G1,1Mat_G1,2...Mat_B1,1Mat_B1,2...⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥nx×1x=[Mat_R1,1Mat_R1,2...Mat_G1,1Mat_G1,2...Mat_B1,1Mat_B1,2...]nx×1
其中nx=3×width×heightnx=3×width×height,并将xx作为输入。
输出:
y={0 图片中有猫1 图片中无猫y={0 图片中有猫1 图片中无猫
任意一个实例可以表示为(x,y)(x,y),x∈Rnxx∈Rnx,y∈{0,1}y∈{0,1},矩阵化之后为:
Logistic 回归
给定xx的前提下,令y^=P(y=1|x),y^∈(0,1)y^=P(y=1|x),y^∈(0,1)输出:y^=σ(wTx+b)y^=σ(wTx+b),x∈Rnxx∈Rnx,w∈Rnxw∈Rnx,b∈Rb∈R
其中σ(z)=11+e−zσ(z)=11+e−z,图像如下:
Loss 函数:
L(y^,y)=−[ylogy^+(1−y)log(1−y^)]L(y^,y)=−[ylogy^+(1−y)log(1−y^)]
Cost 函数:
J(w,b)=1m∑i=1mL(y^(i),y(i))=−1m∑i=1m[y(i)logy^(i)+(1−y(i))log(1−y^(i))]J(w,b)=1m∑i=1mL(y^(i),y(i))=−1m∑i=1m[y(i)logy^(i)+(1−y(i))log(1−y^(i))]
其中的loglog均以ee为底。
梯度下降 Gradient Descent
计算(w,b)(w,b)来使得J(w,b)J(w,b)数值最小,以下是一次梯度下降公式:w=w−α∂J(w,b)∂ww=w−α∂J(w,b)∂w
b=b−α∂J(w,b)∂bb=b−α∂J(w,b)∂b
其中,αα为学习率。
此后,不再详细区分dd和∂∂符号。
计算图
例如:J(a,b,c)=3(a+bc)J(a,b,c)=3(a+bc)
正向计算数值和反向计算导数的过程如下:
Logistic回归的梯度下降
z=wTx+bz=wTx+by^=a=σ(z)y^=a=σ(z)
L(a,y)=−[yloga+(1−y)log(1−a)]L(a,y)=−[yloga+(1−y)log(1−a)]
用于mm个样例,并高度向量化:
Python伪代码为:
# 高度向量化的目的是 # 减少for循环 # 以加快代码的运行速度 import numpy as np for i in range(1000): # 梯度下降1000次 # 计算 a (y hat) Z = np.dot(W.T, X) + b A = sigmod(Z) dz = A - Y dw = 1/m * np.dot(X, dz.T) db = 1/m * np.sum(dz) w -= alpha * dw b -= alpha * db
Python Broadcasting
⎡⎣⎢123⎤⎦⎥+10=⎡⎣⎢123⎤⎦⎥+⎡⎣⎢101010⎤⎦⎥[123]+10=[123]+[101010][142536]+[102030]=[142536]+[101020203030][123456]+[102030]=[123456]+[102030102030]
[142536]+[1020]=[142536]+⎡⎣⎢101010202020⎤⎦⎥[123456]+[1020]=[123456]+[102010201020]
Some Coding Techniques
记得创建行向量np.random.randn( (5,1) )、
列向量
np.random.randn( (1,5) ),
而不要使用
np.random.randn( 5 )
多使用
reshape()函数没有坏处
尽可能多的使用
assert( a.shape()==(5,1) )来保证程序的健壮性
相关文章推荐
- [note] deep learning tensorflow lecture 1 notes 深度学习笔记 (1)
- [DeeplearningAI笔记]神经网络与深度学习2.1-2.4神经网络基础
- [DeeplearningAI笔记]神经网络与深度学习2.11_2.16神经网络基础(向量化)
- Spark MLlib Deep Learning Neural Net(深度学习-神经网络)1.2
- 深度学习DeepLearning.ai系列课程学习总结:2. 神经网络基础
- Spark MLlib Deep Learning Neural Net(深度学习-神经网络)1.2
- deeplearning course-02-01 深度学习实践基础 Practical aspects of deep learning
- [note] deep learning tensorflow lecture 2 notes 深度学习笔记 (2) 解决过拟合
- 深度学习教程 TensorFlow and Deep Learning Tutorials
- 深度学习DeepLearning.ai系列课程学习总结:6. 具有一个隐藏层的平面数据分类代码实战
- 深度强化学习(Deep Reinforcement Learning)的资源
- Spark MLlib Deep Learning Deep Belief Network (深度学习-深度信念网络)2.1
- 深度学习讲座笔记:Deep Learning for Computer Vision - Andrej Karpathy at Bay Area Deep Learning School
- 深度学习论文笔记-Deep Learning Face Representation from Predicting 10,000 Classes
- 深度学习DeepLearning.ai系列课程学习总结:10. 初始化、正则化、梯度检查实战
- 深度学习的一些总结(Introduce to Deep learning)
- 深度学习性能提升的诀窍 How To Improve Deep Learning Performance
- [深度学习论文笔记][Scene Classification] Learning Deep Features for Scene Recognition using Places Database
- Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.3
- Spark MLlib Deep Learning Neural Net(深度学习-神经网络)