深度学习基础
- 什么是神经网络学习
- 神经网络学习的发展
- 神经网络学习原理
- 神经网络代码示例
什么是神经网络学习
在机器学习领域中,有一个分支叫做神经网络(neural network)学习
神经网络学习试图通过简单单元组成的网络来模拟生物的神经系统, 从而达到学习的目的

什么是神经网络学习
神经元
轴突
神经元
神经递质
“神经元”
输入
激活函数
输出

vs.
神经网络学习的发展(从网络的层数来看)


神经元(neuron),一个
感知机(perceptron),两层
多层感知机(multi-layer perecptron)——深度学习的基础模型
神经网络学习原理,神经元

输入
激活函数(activation function)
输出
阈值(bias/threshold)
权重(weight)
神经网络学习原理,激活函数

激活函数(activation function)
f通常选取单调连续函数,单调连续是为了方便数学上的处理

神经网络学习原理,从输入到输出
每一层神经元从上一层接受输入,经过激活函数的处理,
输出给下一层,如此往复,直到最后一层神经元输出结果。
神经网络学习原理,如何学习
通过不断地调整参数(神经元之间的权重,以及神经元本身的阈值),以最小化代价函数(cost function),来达到学习的目的
最小化代价函数的方法是梯度下降法(gradient descent),其具体代码实现则是误差逆传播(error back propagation)
神经网络学习原理,学到了什么
在神经网络学习中,人们最终获得结果通常只有一堆参数:权重和阈值
那么人们能够从这些参数中总结归纳出什么有用的东西么?
似乎没有,人们很难从参数中提取有用的信息,唯一知道的,就是这个模型能够解决问题
不像决策树、规则学习这样的机器学习算法,神经网络学习不具有良好的可解释性,神经网络学习是一种黑盒(black box)模型

神经网络代码示例,前馈神经网络
每一层神经元与下一层神经元全部互连,且神经元之间不存在同层连接,也不存在跨层连接的神经网络,称作前馈神经网络
前馈神经网络(feedforward neural network)
以下是一个数字识别的神经网络结构
神经网络代码示例,网络结构

神经网络代码示例,代码结构
class Network:
def __init__(self, size):
def feedforward(self, x):
def evaluate(self, test_data):
def stochastic_gradient_descent(self, training_data, num_epochs,
mini_batch_size, eta, test_data = None):
def update_mini_batch(self, mini_batch, eta):
def back_propagation(self, x, y):神经网络代码示例,为什么要“逆”传播

深度学习基础
By Chunxiao Ye
深度学习基础
- 80