Neural Networks and Deep Learning 第二周 逻辑回归总结
一、以神经网络的方式看逻辑回归
- 构建学习算法的一般结构,包括:
- 初始化参数
- 计算损失函数及其梯度
- 使用一个最优化算法(例如梯度下降法)
- 正确整合上述函数至模型函数中
1 - 常用库
在开始训练之前需要将自己用到的库进行载入:
仅为介绍步骤,不全为后述实例所用到的库
- numpy:科学计算包.
- pandas:
- h5py: 用于与H5格式文件进行数据交互.
- matplotlib:常用的绘图包.
#python
import pandas
import numpy as np
import matplotlib.pyplot as plt
import h5py
2 - 算法的一般结构
现在让我们来设计一个简单的算法来区分一个图片是否有猫
我们将使用神经网络思维方式构建逻辑回归。下图解释了为什么逻辑回归实际上是一个非常简单的神经网络:
算法的数学表达形式举例 :
①输入的特征值X通过一个线性或者非线性函数
②假设**函数为 sigmoid:
③单个样本的损失
④所有样本的损失(损失函数):
找到合适的w和b,令J最小
关键步骤:
- 初始化模型参数
- 通过最小化损失函数来学习参数
- 通过学好的参数进行预测
- 分析结果并总结
3 - 建立我们自己的算法
建立神经网络的主要步骤:
- 定义模型的结构(例如输入的特征值数目)
- 初始化模型的参数
- 循环:
- 计算 current loss (forward propagation)
- 计算 current gradient (backward propagation)
- 更新参数 (gradient descent)
#定义**函数
def sigmoid(z):
#定义初始化参数函数
def initialize_with_zeros(dim):
#前向传播函数
def propagate(w, b, X, Y):
#最优化函数(如梯度下降)
def optimize(w, b, X, Y, num_iterations, learning_rate, print_cost = False):
#预测函数
def predict(w, b, X):
二、浅层神经网络
以单层隐藏层神经网络举例: