其他分享
首页 > 其他分享> > 【Deep Learning】神经网络与深度学习

【Deep Learning】神经网络与深度学习

作者:互联网

本文为吴恩达 Deep Learning 笔记


深度学习概述

什么是神经网络:

Neural Network 神经网络

Neuron 神经元

Rectified Linear Unit (ReLU) 线性整流函数

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

Supervised Learning / Unsupervised Learning 监督学习 / 无监督学习

Structured Data / Unstructured Data 结构化 / 非结构化数据

Convolution Neural Network (CNN) 卷积神经网络

Recurrent Neural Network (RNN) 循环神经网络

为什么深度学习会兴起:


神经网络基础


二分分类与逻辑回归

二分分类:

Binary Classification 二分分类

逻辑回归:

Logistic Regression 逻辑回归

Activation Function 激活函数

\(Sigmoid\) 求导:

\[\begin{aligned} \sigma'(x) &= -\frac{1}{(1 + e^{-x})^2} \times (1 + e^{-x})' = -\frac{1}{(1 + e^{-x})^2} \times (e^{-x}) \\ &= \frac{1}{1 + e^{-x}} \times \frac{e^{-x}}{1 + e^{-x}} = \frac{1}{1 + e^{-x}} \times \frac{1 + e^{-x} - 1}{1 + e^{-x}} = \sigma(x)(1 - \sigma(x)) \end{aligned} \]

逻辑回归代价函数:

Loss Function 损失函数

Cost Function 代价函数


梯度下降法与计算图

梯度下降法:

Gradient Descent 梯度下降法

计算图:

Computation Graph 计算图

计算图求导数:

jtXIa9.png

逻辑回归与梯度下降法:

jtX5VJ.png

\(m\) 个样本的梯度下降:


向量化

向量化引入:

Vectorization 向量化

向量化举例:

向量化逻辑回归:

向量化逻辑回归的梯度下降结果:

jtX7P1.png


浅层神经网络


神经网络

神经网络概述:

神经网络表示:

Shallow Neural Network 浅层神经网络

Input Layer 输入层

Hidden Layer 隐藏层

Output Layer 输出层

2 Layer NN 两层神经网络

jtXo5R.png

计算神经网络的输出:

\(m\) 个样本的神经网络:

向量化实现的解释


激活函数

激活函数:

\[\begin{aligned} sigmoid: a = \frac{1}{1 + e^{-z}} &,\quad ReLU: a = \max(0, z)& \\ tanh:a = \frac{e^z - e^{-z}}{e^z + e^{-z}} &,\quad Leaky ReLU: a = \max(0.01z, z) \end{aligned} \]

为什么需要使用非线形激活函数:

激活函数的导数:

\[\begin{aligned} sigmoid: a'=a(1-a) &,\quad ReLU: a'=\left\{\begin{matrix} 0 & z < 0 \\ 1 & z \geq 0 \end{matrix}\right.\\ tanh: a' = 1 - a^2 &,\quad LeakyReLU: a'=\left\{\begin{matrix} 0.01 & z < 0 \\ 1 & z \geq 0 \end{matrix}\right.\\ \end{aligned} \]


梯度下降

神经网络的梯度下降法:

dZ2 = A2 - Y
dW2 = 1 / m * np.dot(dZ2, A1.T)
db2 = 1 / m * np.sum(dZ2, axis = 1, keepdims = True)
dZ1 = np.dot(W2.T, dZ2) * g_(Z[1]);  # g_ 是激活函数的导数
dW1 = 1 / m * np.dot(dZ1, X.T)
db1 = 1 / m * np.sum(dZ1, axis = 1, keepdims = True)

直观理解反向传播:


初始化

随机初始化:


深层神经网络

深层神经网络:

深层神经网络中的向前传播:

核对矩阵的维数:

为什么使用深层表示:

搭建深层神经网络块:

jtXhb4.png

向前和向后传播:

dW = 1 / m * np.dot(dZ, A_prev.T)
db = 1 / m * np.sum(dZ, axis = 1, keepdims = True)
dA_prev = np.dot(W.T, dZ) 

参数和超参数:

Parameters 参数

Hyperparameters 超参数

这和大脑有什么关系


参考

标签:frac,sigma,Deep,神经网络,Learning,quad,partial,hat
来源: https://www.cnblogs.com/wxy4869/p/16446937.html