深度学习基础

  • 什么是神经网络学习
  • 神经网络学习的发展
  • 神经网络学习原理
  • 神经网络代码示例

什么是神经网络学习

在机器学习领域中,有一个分支叫做神经网络(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