神经网络学习笔记-01-基本概念

神经网络学习笔记-01-基本概念

基本概念

  • Artificial Neural Network - 基于神经元的计算方向。
    一个人工神经网络系统一般包含多个层,每层包含多个神经元(也称为节点)。
    • 第一层是输入层。
      基本上没有什么计算功能,主要是将输入数据映射到每个节点上。
    • 中间的层次为隐藏层。
      每层都会有一个输出,包含了本层每个节点的输出数据。
      每层的输出数据,也是下一层的输入数据。
      每层的每个节点会对输入数据分别计算,产生不同的计算结果。
    • 最后一层是输出层。
      输出层的每个节点对应一个分类,计算这个分类的概率。最终输出概率最高的分类。

即使百万级的神经单元,也只相当于一只蠕虫的计算能力。

  • Predication Function - 预测函数。
    机器学习的结果就是找到这个预测函数。
    在分类问题中,就是找到预测函数的权值(w,b)。

  • Activation Function - 激活函数
    神经网络中的一个重要概念。原意是模拟大脑神经元是否激活。
    在神经网络设计中,其作用是:转换神经元的权值输出值为神经元的输出值。
    通俗的理解:权值输出值\(f(x) = wx + b\)的结果是\(x\)\(f(x)\)上的值,这个不是我们要的分类结果。
    激活函数\(K\)的作用是将计算\(y = K(f(x))\),将权值输出值转换为分类值
    下面是常用的激活函数:
    • For the hidden layer
      • TanH
      • sigmoid
      • ReLUs
    • For the output layer
      • softmax
  • Forward Propagation - 正向传播
    在训练过程中,通过输入数据产生输出数据。

  • Back Propagation - 反向传播
    在训练过程中,根据计算结果和期望结果的偏差,重新调整各个神经元的权值。
    这个方面有很多算法可以选择。

  • Regularization - 正规化
    一种避免多度训练(overfitting)的方法。多度训练会导致训练结果对噪音数据过度敏感。
    理论上来说,对当前的预测函数,根据它的复杂度,计算一个惩罚值。通过惩罚值来调整预则函数的权值。

  • Gradient Descent - 梯度下降
    反向传播中,用于调整权值的一个概念,表示计算调整的方向和大小。

  • Loss Function - 损失函数
    在分类问题中,一种计算方法,计算因不准确预测而导致的代价。

训练过程

  • 初始化 -> (正向传播 -> 反向传播 -> 正规化 -> 梯度下降 -> 重复训练)

人话就是:
初始化: 随便产生个预测函数(w b)。
正向传播:先算一下。
反向传播: 有偏差(废话)。
正规化: 让偏差变得好看点。
梯度下降:把预测函数(w b)向偏差的方向挪一下。
重复训练:把上面的过程来上500遍。

  • 训练图
Neural NetWork - Training Process Neural Network - Training Process I Initialize {w1, b1, w2, b2} FP Forward Propagation I->FP x L Calculate Loss FP->L y' BP Back Propagation L->BP L(cross-entropy loss) GD Gradient Descent BP->GD {ΔL/Δw1, ΔL/Δb1, ΔL/Δw2, ΔL/Δb2} GD->FP iterate {w1, b1, w2, b2} UVW Result: {w1, b1, w2, b2} GD->UVW

神经网络示意图

Neural Network Neural Network cluster0 Data cluster1 Input Layer cluster2 Hidden Layer tanh(xw1 + b1) cluster3 Output Layer softmax(xw2 + b2) cluster4 Output Data IL_In Data->IL_In (x_1,...,x_i) map IL_n j IL_Out IL_n->IL_Out x1_j IL_m . IL_m->IL_Out ... IL_2 2 IL_2->IL_Out x1_2 IL_1 1 IL_1->IL_Out x1_1 IL_In->IL_n x1_j IL_In->IL_m ... IL_In->IL_2 x1_2 IL_In->IL_1 x1_1 HL_1_In IL_Out->HL_1_In (x1_1,...,x1_j) HL_1_n n HL_1_Out HL_1_n->HL_1_Out a1_n HL_1_m . HL_1_m->HL_1_Out ... HL_1_3 3 HL_1_3->HL_1_Out a1_3 HL_1_2 2 HL_1_2->HL_1_Out a1_2 HL_1_1 1 HL_1_1->HL_1_Out a1_1 HL_1_In->HL_1_n HL_1_In->HL_1_m HL_1_In->HL_1_3 HL_1_In->HL_1_2 HL_1_In->HL_1_1 OL_In HL_1_Out->OL_In (a1_1,...,a1_n) OL_n m OL_Out OL_n->OL_Out p(y_m) OL_m . OL_m->OL_Out ... OL_1 1 OL_1->OL_Out p(y_1) OL_In->OL_n OL_In->OL_m OL_In->OL_1 Result y OL_Out->Result argmax

参照

posted @ 2017-01-23 14:48 SNYang 阅读(...) 评论(...) 编辑 收藏