深度学习入门简述-神经网络和逻辑回归关系

深度学习常用模型如下,在下面这个模型中:整个模型的输入是一个特征向量(样本),中间每一个神经元都是一个小的逻辑回归的模型,特征向量的每一维与Hidden layers、Hidden layers内部之间、Hidden layers与output layer之间都是两两相连的,并且从左向右输出,所以称为Fully Connect Feedforward Network。

深度学习入门简述-神经网络和逻辑回归关系

deep learning中的deep指的是多层的Hidden layers。

  • **Matrix Operation:**在多层模型中,对于输入的特征向量 ( x 1 , x 2 . . . x n ) T (x_1,x_2...x_n)^T (x1,x2...xn)T,每一层的神经元的 ( w T , b ) (w^T,b) wT,b组成的矩阵 ( w 1 , w 2 . . . w n ) (w_1,w_2...w_n) (w1,w2...wn)(这里的 w i w_i wi都是与特征向量维度一致的向量),所有神经元的bias组成一个向量 ( b 1 , b 2 . . . b n ) (b_1,b_2...b_n) (b1,b2...bn),这样计算时:
    σ ( [ w 1 , w 2 . . . w n ] [ x 1 , x 2 . . . x n ] T + [ b 1 , b 2 . . . b n ] ) \sigma([w_1,w_2...w_n][x_1,x_2...x_n]^T+[b_1,b_2...b_n]) σ([w1,w2...wn][x1,x2...xn]T+[b1,b2...bn])
    输出即为下一layer的输入;(事实上现在的神经网络已经可以使用其他函数,这里我们默认是sigmoid函数

  • **并行计算与神经网络:**经过上一点的叙述,可将整个神经网络的计算转化为:
    y = f ( x ) = σ ( w L . . . σ ( w 2 σ ( w 1 x + b 1 ) + b 2 ) . . . + b L ) y=f(x)=\sigma(w^L...\sigma(w^2\sigma(w^1x+b^1)+b^2)...+b^L) y=f(x)=σ(wL...σ(w2σ(w1x+b1)+b2)...+bL)
    所以针对于上面的式子可以使用GPU对计算加速,更快得到最终结果;

  • **Output layer:**输出层是一个多分类模型,可以在最后的输出层设计一个softmax函数,这样就可以将整个特征的每一维转化成对应的类别的概率;于是,会出现输入参数的维度和模型输出结果维度不同的情况。例如,在下面这个例子中,假设手写数字是一个16*16的Pixel,于是输入是一个256维的向量,但是输出是各中数字的结果只有十个可能,这时就涉及到了函数的设计和输出维度的问题;

深度学习入门简述-神经网络和逻辑回归关系

  • **关于设置层数和单层神经元的数目:**这里的设置没有具体要求,需要根据实际情况来进行建模和选择;

  • **模型判定:**定义损失函数为 L = ∑ n = 1 N c n L=\sum_{n=1}^{N}{c^n} L=n=1Ncn,这里的 c n c^n cn指的是所有训练样本计算出来的结果与原结果之间的交叉熵;所以,最终的目标是要从函数集中找到一个使得损失函数最小的函数或者找到一个神经网络参数 Θ ∗ \Theta^* Θ使得整体的损失函数值最小;神经网络的参数 Θ = ( w 1 , w 2 . . . w n , b 1 . . . b n ) T \Theta=(w_1,w_2...w_n,b_1...b_n)^T Θ=(w1,w2...wn,b1...bn)T,通过对每一参数求偏导,计算梯度下降值,经过多次调整得到最优解 Θ ∗ \Theta^* Θ;(事实上的计算微分计算梯度下降值可以借助于常用的工具:pytouch,tensflow等)

  • **深度越深,模型并一定更好:**根据理论,任何复杂的模型( R N → R M R^N→R^M RNRM)都可以被一层的神经网络实现(只要允许单Hidden layer有足够多的神经元);