博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Andrew ng 深度学习课程笔记
阅读量:6228 次
发布时间:2019-06-21

本文共 5236 字,大约阅读时间需要 17 分钟。

课程一 神经网络和深度学习

1. 深度学习概论

1.2 什么是神经网络

从Housing Price Prediction 讲起 => regression 回归可以看成一个简单的单层,一个神经元的神经网络

1.3 用神经网络进行监督学习

1.4 为什么深度学习会兴起

  • Data
  • Computation
  • Algorithms: 比如sigmod -> relu 使得计算gradient descent更快

2. 神经网络基础

2.1 二分分类

some notations ...

2.2 logistic 回归

logistic 回归就是一个浅层(shallow, 实际上一个hidden layer也没有,只有一个output layer)神经网络

Give\ x,\ want\ \hat y = P(y=1|x);\  (0<=y<=1) parameters:w\in \mathbb{R},b\in \mathbb{R} Output:\hat y=\sigma(w^tx+b); find\ w,b \sigma(z)=\frac{1}{1+e^{-z}} 复制代码

2.3 logistic回归损失函数

使用这个损失函数便于计算gradient descent

Loss(Error)\ Function : L(\hat y,y) = - (y\log\hat y + (1-y)\log(1-\hat y))  Cost\ Function:  J(w,b) = 1/m *\sum_{i=1}^m  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))  复制代码

2.4 梯度下降法

w := w - \alpha \frac{dJ(w,b)}{dw};\  (\alpha:learning\ rate) b := b - \alpha \frac{dJ(w,b)}{db} 复制代码

2.7 计算图

反向传播:其实有点类似dp算法,后往前算gradient descent, 这样有些算的结果可以复用,计算效率大大提高

2.9 logistic回归中的梯度下降

\text {图里面的a是之前的} \hat y 复制代码

分数求导:结果的分子=原式的分子求导乘以原式的分母-原式的分母求导乘以原式的分子,结果的分母=原式的分母的平方。

2.10 logistic回归on m个examples

2.11 向量化

向量化计算更高效

import numpy as npimport timea = np.random.rand(1000000)b = np.random.rand(1000000)tic = time.time()c = np.dot(a, b)print("cost " + str((time.time() - tic)*1000) + "ms")复制代码

2.13 向量化的logistic回归

2.15 python中的广播

2.16 python/numpy中的向量说明

不要使用秩为1的向量,显式使用1*n或者n*1的向量, 使用reshape和assert来确保维度符合预期

import numpy as npa = np.random.randn(5) #do not use print("a:",a.shape,"\n", a)b = np.random.randn(5, 1)print("b:",b.shape,"\n", b)c = np.random.randn(1, 5)print("c:",c.shape,"\n", c)a = a.reshape(5, 1)assert(a.shape == (5, 1))复制代码

3. 浅层神经网络

3.1 神经网络概览

3.2 神经网络表示

3.5 向量化实现的解释

3.6 激活函数

3.7 为什么使用非线性的激活函数

如果是线性的 经过几层之后还是线性的,多层就没有意义了

3.8 激活函数的导数

3.9 激活函数的导数

3.11 随机初始化

多神经元为何W不能初始化为0矩阵

4. 深层神经网络

4.1 深层神经网络

4.3 核对矩阵的维数

4.7 参数VS超参数

课程二 改善深层神经网络:超参数调试、正则化以及优化

1. 深度学习的实用层面

1.1 训练、开发、测试集

1.2 偏差、方差

1.4 Regularization

lamda 很大会发生什么:

1.6 Drop Out Regularization

1.8 其他Regularization方法

early stopping

1.9 Normalizing inputs

1.10 vanishing/exploding gradients

1.11 权重初始化

1.13 Gradient Check

1.14 Gradient Check Implementation Notes

2. 优化算法

2.1 Mini-batch gradient descent

batch-size 要适配CPU/GPU memory

2.3 Exponentially weighted averages

移动平均可抚平短期波动,将长线趋势或周期显现出来。数学上,移动平均可视为一种卷积。

Bias correction

2.6 Gradient Descent with Momentum

2.7 RMSprop

2.8 Adam优化算法

Momentum + RMSprop

2.9 Learning rate decay

逐步减小Learning rate的方式

2.10 局部最优的问题

在高维空间,容易遇到saddle point但是local optima其实不容易遇到

plateaus是个问题,learning会很慢,但是类似adam的方法能减轻这个问题

3. 超参数调试、batch正则化和程序框架

3.1 搜索超参数

  1. Try random values: don't use a grid
  2. Coarse to fine

3.4 Batch Normalization

一个问题,在回归中可以normalization在神经网络中可否做类似的事情

通过lamda和beta可以控制mean和variance

3.6 Batch Normalization为什么有效

  1. By normlization values to similar range of values, it speed up learning
  2. Batch normlization reduces the problem of input values(对于每一层) changing
  3. Has a slight regulazation effect (like dropout, it adds some noice to each hidden layer's activations)

3.7 Batch Normalization at test time

使用训练中加权指数平均算出来的mean,variance来test

3.8 Softmax regression

多类,而不是二类。generazation of logistic regression.

3.10 深度学习框架

课程三 结构化机器学习项目

1. 机器学习(ML)策略(1)

1.1 为什么是ML策略

1.2 正交化

  1. Fit training set well in cost function
  • If it doesn’t fit well, the use of a bigger neural network or switching to a better optimization algorithm might help.
  1. Fit development set well on cost function
  • If it doesn’t fit well, regularization or using bigger training set might help.
  1. Fit test set well on cost function
  • If it doesn’t fit well, the use of a bigger development set might help
  1. Performs well in real world
  • If it doesn’t perform well, the development test set is not set correctly or the cost function is not evaluating the right thing

1.3 单一数字评估指标

1.4 满足和优化指标

1.5 训练/开发/测试集划分

1.6 开发集合测试集的大小

1.7 什么时候该改变开发/测试集和指标

1.8 为什么是人的表现

1.9 可避免偏差

1.10 理解人的表现

1.11 超过人的表现

1.12 改善你的模型的表现

2. 机器学习(ML)策略(2)

2.1 进行误差分析

2.2 清楚标注错误的数据

2.3 快速搭建你的第一个系统,并进行迭代

2.4 在不同的划分上进行训练并测试

2.5 不匹配数据划分的偏差和方差

2.6 定位数据不匹配

2.7 迁移学习

2.8 多任务学习

2.9 什么是端到端的深度学习

2.10 是否要使用端到端的深度学习

课程四 卷积神经网络

1. 卷积神经网络

1.1 计算机视觉

真实处理的图片很大->卷积神经网络

1.2 边缘检测示例

filter(kernel)的选择有很多种,或者把filter本身当作参数来学习.

1.4 Padding

1.5 卷积步长

1.6 Convolutions over volumes

1.7 单层卷积网络

1.8 简单卷积网络示例

1.9 池化层

1.10 卷积神经网络示例

1.11 为什么使用卷积?

2. 深度卷积网络:实例探究

2.1 为什么要进行实例探究

  • Classic networks:
    • LeNet-5
    • AlexNet
    • VGG
  • ResNet
  • Inception

2.2 经典网络

介绍了三种经典模型:LeNet-5,AlexNet,VGG-16

2.3 残差网络(ResNets, Residual Networks)

2.4 残差网络为什么有用?

2.5 网络中的网络以及 1×1 卷积

1×1 卷积可以压缩或者保持,增加输入层的信道(channel)数量.

2.6 谷歌 Inception 网络简介

2.7 Inception 网络

Inception module -> Inception network

2.8 使用开源的实现方案

2.9 迁移学习

使用他人的模型作为initalization(选择freeze some layers)训练

2.10 数据扩充

  • mirroring
  • random cropping
  • rotating,shearing,local warping...
  • color shifting

2.11 计算机视觉现状

3. 目标检测

3.1 目标定位

3.2 特征点检测

3.3 目标检测

先crop图片训练模型 + slide-window =>计算成本很高

3.4 卷积的滑动窗口实现

一次计算,其实没有slide,比传统的slide-window方式高效很多

3.5 Bounding Box预测

YOLO: grid + 3.1中的算法的卷积实现.

3.6 交并比

IOU - Intersection over Union = SizeOfIntersection/ SizeOfUnion

3.7 非极大值抑制

3.8 Anchor Boxes

3.9 YOLO 算法

3.10 RPN网络

4. 特殊应用:人脸识别和神经风格转换

4.1 什么是人脸识别?

4.2 One-Shot 学习

4.3 Siamese 网络

4.4 Triplet 损失

4.5 面部验证与二分类

4.6 什么是神经风格转换?

4.7 什么是深度卷积网络?

4.8 代价函数

4.9 内容代价函数

4.10 风格代价函数

核心是maximize 各个channel 的 correlation

4.11 一维到三维推广

转载于:https://juejin.im/post/5a6c52b1f265da3e4f0a66d2

你可能感兴趣的文章
( 转)UVM验证方法学之一验证平台
查看>>
编写每天定时切割Nginx日志的脚本
查看>>
我们一起来聊聊并发吧,one。
查看>>
每日英语:China Pipeline Explosions Kill 52
查看>>
paip.提升性能---jvm java 工具使用.
查看>>
java实现可有括号的android计算器
查看>>
8个免费且实用的C++ GUI库(转载)
查看>>
WGS84 2 GCJ-02
查看>>
RotateAnimation详解
查看>>
GNU make 指南
查看>>
每日英语:How to Save Detroit
查看>>
SQL中以count或sum为条件的查询方式
查看>>
[原]Windows Azure开发之Linux虚拟机
查看>>
[转]MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践
查看>>
SqlServer查询中使用事务
查看>>
ipv6相关
查看>>
粒子加到骨骼中
查看>>
VS2010几款超赞的扩展辅助工具总结
查看>>
Tomcat embed
查看>>
Asp.Net Web API 2第六课——Web API路由和动作选择
查看>>