Deep Leaning 学习笔记(6)—— DeepLearning中学习算法的一般架构

一般架构

构建学习算法的一般架构,包括:
初始化参数
计算成本函数及其梯度
使用优化算法(梯度下降)
按照正确的顺序将上面的三个函数集合到一个主模型函数中。

常用的包package

import numpy as np
import matplotlib.pyplot as plt
import h5py
import scipy
from PIL import Image
from scipy import ndimage
from lr_utils import load_dataset

%matplotlib inline

读取数据 Loading the data (cat/non-cat)

train_set_x_orig, train_set_y, test_set_x_orig, test_set_y, classes = load_dataset()

train_set_x_orig 的格式为(m,px,px,3)

数据预处理要点

你需要记住的是:
预处理新数据集的常见步骤如下:
找出问题的大小和形状(m_train, m_test, num_px,…)
重新定义数据集,使每个示例现在都是一个大小向量(num_px * num_px * 3,1),即总体样本X为(px * px * 3, m),保证每一列都是一个样本的向量
“标准化”的数据

训练要点

在这项工作中,你会采取以下步骤:
-初始化模型的参数
-通过最小化成本来学习模型的参数
-使用所学参数进行预测(在测试集中)
-分析结果并作出结论

构建算法的各个部分

建立神经网络的主要步骤是:
1.定义模型结构(例如输入特性的数量)
2.初始化模型的参数
循环:

  • 计算电流损耗(正向传播)
  • 计算电流梯度(反向传播)
  • 更新参数(梯度下降)
    您通常分别构建1-3个函数,并将它们集成到一个称为model()的函数中。

正向传播和反向传播

正向传播:Forward Propagation:

  • You get X
  • You compute A = σ ( w T X + b ) = ( a ( 1 ) , a ( 2 ) , . . . , a ( m − 1 ) , a ( m ) ) A = \sigma(w^T X + b) = (a^{(1)}, a^{(2)}, ..., a^{(m-1)}, a^{(m)}) A=σ(wTX+b)=(a(1),a(2),...,a(m1),a(m))
  • You calculate the cost function: J = − 1 m ∑ i = 1 m y ( i ) log ⁡ ( a ( i ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − a ( i ) ) J = -\frac{1}{m}\sum_{i=1}^{m}y^{(i)}\log(a^{(i)})+(1-y^{(i)})\log(1-a^{(i)}) J=m1i=1my(i)log(a(i))+(1y(i))log(1a(i))

Here are the two formulas you will be using:
计算梯度
(7) ∂ J ∂ w = 1 m X ( A − Y ) T \frac{\partial J}{\partial w} = \frac{1}{m}X(A-Y)^T\tag{7} wJ=m1X(AY)T(7)
(8) ∂ J ∂ b = 1 m ∑ i = 1 m ( a ( i ) − y ( i ) ) \frac{\partial J}{\partial b} = \frac{1}{m} \sum_{i=1}^m (a^{(i)}-y^{(i)})\tag{8} bJ=m1i=1m(a(i)y(i))(8)

最优化

优化
您已经初始化了参数。
你也可以计算一个成本函数和它的梯度。
现在,您想使用梯度下降来更新参数。

完成预测函数predictions

  1. 计算 Y ^ = A = σ ( w T X + b ) \hat{Y} = A = \sigma(w^T X + b) Y^=A=σ(wTX+b)

  2. 将计算的值,yhat > 0.5视为 1,将yhat < 0.5视为0,输出预测数组yhat。

小结

记住:你已经实现了几个函数:
初始化(w, b)
迭代优化损失,学习参数(w,b):
计算成本及其梯度
使用梯度下降更新参数
用所学的(w,b)预测一组给定例子的标签

你可能感兴趣的:(DeepLearning)