吴恩达深度学习第一课(神经网络与深度学习基础)--第二周神经网络基础

文章目录

  • 第二周神经网络基础
    • logistic回归
    • 损失函数loss function
    • 成本函数cost function
    • 梯度下降
    • 计算图
    • 向量化

第二周神经网络基础

过 程 : 输 入 x , 计 算 机 通 过 一 系 列 计 算 , 得 出 y ^ , 我 们 希 望 计 算 而 来 的 y ^ 与 期 望 中 的 y 无 限 接 近 。 过程:输入x,计算机通过一系列计算,得出\hat y,我们希望计算而来的\hat y与期望中的y无限接近。 xy^y^y
举 个 例 子 , 给 计 算 机 输 入 一 张 猫 猫 的 图 片 , 计 算 机 得 出 一 个 结 果 y ^ , 我 们 希 望 y ^ 无 限 接 近 期 望 中 的 结 果 ‘ 猫 猫 ’ 。 举个例子,给计算机输入一张猫猫的图片,计算机得出一个结果\hat y,我们希望\hat y无限接近期望中的结果‘猫猫’。 y^y^
所 以 我 们 用 损 失 函 数 将 y ^ 转 化 为 0 − 1 的 概 率 值 , 但 损 失 函 数 针 对 单 个 样 本 , 而 成 本 函 数 针 对 所 有 样 本 的 损 失 函 数 和 。 所以我们用损失函数将\hat y转化为0-1的概率值,但损失函数针对单个样本,而成本函数针对所有样本的损失函数和。 y^01

logistic回归

输 入 一 个 64 ∗ 64 的 图 片 , 计 算 机 将 此 图 片 存 储 为 大 小 为 64 ∗ 64 ∗ 3 = 12288 大 小 的 特 征 向 量 n x = [ . . . . ] 。 ( x , y ) , x ∈ R n x , y ∈ 0 , 1 , m t r a i n = ( x ( 1 ) , y ( 1 ) ) , ( x ( 2 ) , y ( 2 ) ) , … , ( x ( m ) , y ( m ) ) , m t e s t 。 输入一个64*64的图片,计算机将此图片存储为大小为64*64*3=12288大小的特征向量n_x=\begin{bmatrix} . \\ . \\.\\. \end{bmatrix} 。(x,y), x \in R^{n_x} , y\in{0,1} ,m_{train}={(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),{\dots},(x^{(m)},y^{(m)})},m_{test}。 646464643=12288nx=....x,yxRnxy0,1mtrain=(x(1),y(1)),(x(2),y(2)),,(x(m),y(m)),mtest
若 x = [ x ( 1 ) x ( 2 ) … x ( m ) ] , 则 x = R n x ∗ m , x . s h a p e = ( n x , m ) 。 若x=\begin{bmatrix} x^{(1)}&&x^{(2)} &&{\dots} && x^{(m)} \end{bmatrix} ,则x=R^{n_x*m},x.shape=(n_x,m)。 x=[x(1)x(2)x(m)]x=Rnxm,x.shape=(nx,m)
若 y = [ y ( 1 ) y ( 2 ) … y ( m ) ] , 则 y ∈ R 1 ∗ m , y . s h a p e = ( 1 , m ) 。 我 们 希 望 y ^ 无 线 接 近 y , 则 y ^ ∈ ( 0 , 1 ) , x ∈ R n x , w ∈ R n x , b ∈ R , y ^ = δ ( w T x + b ) , δ ( z ) = 1 1 + e − z 。 若y=\begin{bmatrix} y^{(1)}&&y^{(2)} &&{\dots} && y^{(m)} \end{bmatrix} ,则y\in R^{1*m},y.shape=(1,m)。我们希望\hat y无线接近y,则\hat y \in (0,1),x\in R^{n_x},w\in R^{n_x},b\in R,\hat y=\delta(w^Tx+b),\delta(z)=\frac{1}{1+e^{-z}}。 y=[y(1)y(2)y(m)],yR1m,y.shape=(1,m)y^线yy^(0,1)xRnx,wRnx,bR,y^=δ(wTx+b),δ(z)=1+ez1
若 z ↑ , 则 δ ≈ 1 1 + 0 ≈ 1 ; 若z\uparrow,则\delta \approx \frac{1}{1+0}\approx 1; zδ1+011;
若 z ↓ , 则 δ ≈ 1 x + ∞ ≈ 0 。 若z\downarrow,则\delta \approx \frac{1}{x+\infty}\approx0。 zδx+10

损失函数loss function

l o s s f u n c t i o n : L = ( y ^ , y ) = 1 2 ( y ^ − y ) 2 , 但 通 常 使 用 L = − ( y log ⁡ 2 y ^ + ( 1 − y ) l o g 2 ( 1 − y ^ ) ) 。 loss function:L = (\hat y,y)=\frac {1}{2}(\hat y - y)^2,但通常使用L = -(y\log_2 \hat y+(1-y)log_2(1-\hat y))。 lossfunction:L=(y^,y)=21(y^y)2使L=(ylog2y^+(1y)log2(1y^))
若 y = 1 , L ( y ^ , y ) = − y l o g 2 y ^ , 希 望 l o g 2 y ^ ↑ , 则 y ^ ↑ 。 若y=1,L(\hat y,y)=-ylog_2\hat y,希望log_2 \hat y \uparrow,则\hat y \uparrow。 y=1L(y^,y)=ylog2y^,log2y^,y^
若 y = 0 , L ( y ^ , y ) = l o g 2 ( 1 − y ^ ) , 希 望 l o g ( 1 − y ^ ) ↑ , 则 y ^ ↓ 若y=0,L(\hat y,y)=log_2 (1-\hat y),希望log(1-\hat y)\uparrow,则\hat y \downarrow y=0L(y^,y)=log2(1y^),log(1y^)y^

梳 理 : 为 何 使 用 损 失 函 数 ? 来 衡 量 单 个 样 本 预 测 输 出 值 y ^ 和 y 的 实 际 值 有 多 接 近 。 梳理: 为何使用损失函数? 来衡量单个样本预测输出值\hat y和y的实际值有多接近。 使y^y

成本函数cost function

c o s t f u n c t i o n : J ( w , b ) = 1 m ∑ i = 1 m L ( y ^ ( i ) , y i ) = − 1 m ∑ i = 1 m [ y ( i ) l o g 2 y ^ ( i ) + ( 1 − y ( i ) ) l o g 2 ( 1 − y ^ ( i ) ) ] . cost function:J(w,b)=\frac{1}{m}\sum_{i=1}^{m}L(\hat y^{(i)},y^{i})=-\frac{1}{m} \sum_{i=1}^m[y^{(i)}log_2\hat y^{(i)}+(1-y^{(i)})log_2(1-\hat y^{(i)})]. costfunction:J(w,b)=m1i=1mL(y^(i),yi)=m1i=1m[y(i)log2y^(i)+(1y(i))log2(1y^(i))].

梳 理 : 为 何 使 用 成 本 函 数 ? 来 衡 量 所 有 样 本 的 损 失 函 数 和 。 梳理: 为何使用成本函数? 来衡量所有样本的损失函数和。 使

梯度下降

J ( w , b ) w = w − α ∂ J ( w , b ) ∂ w ; b = b − α ∂ J ( w , b ) ∂ b J(w,b) w=w-\alpha \frac{\partial J(w,b)}{\partial w};b=b-\alpha \frac{\partial J(w,b)}{\partial b} J(w,b)w=wαwJ(w,b);b=bαbJ(w,b)
其 中 , α 是 l e a r n i n g r a t e 学 习 率 , 可 以 控 制 每 一 次 迭 代 或 梯 度 下 降 法 的 步 长 。 其中,\alpha是learning rate学习率,可以控制每一次迭代或梯度下降法的步长。 αlearningrate
其 中 , ∂ J ( w , b ) ∂ w 是 对 w 偏 导 。 其中, \frac{\partial J(w,b)}{\partial w}是对w偏导。 wJ(w,b)w
上述公式,可以看出这是三维空间的立体图形,通过不断修正w和b,使得w和b最终归到图形中最凹点或最凸点处。
梳 理 : 为 何 使 用 梯 度 下 降 ? 为 了 训 练 或 学 习 训 练 集 上 的 参 数 w , b 梳理: 为何使用梯度下降? 为了训练或学习训练集上的参数w,b 使w,b

计算图

举例,J(a,b,c)=3(a+bc),令u=bc,v=a+u,J=3v。采用链式法则,从j倒退a,b,c的导数,这个过程,就是计算图。

向量化

省略显示for循环,用python中的numpy中的向量来替换,在数据量很大的时候,运算速度可以显著提高。

你可能感兴趣的:(深度学习,深度学习,神经网络)