深度学习简介

目录

1  神经网络  

2  定义函数的好坏

3  梯度下降


1  神经网络  

        你有好多排的神经元,每一排的神经元数目是不固定的,每层之间的神经元是两两相互连接的,把这样的网络称为神经网络。整个神经网络需要一组输入,例如对Layer 1的每个神经元来说,它的输入就是输入层的每一个维度;对于Layer L的神经元,它的后面没有接其他东西,它的输出就是整个神经网络的输出。

        上图中的Input称为输入层,output称为输出层,其余层称为隐藏层。而所谓的deep就是指有很多隐藏层。

        在2012年时,参加ImageNet比赛得到冠军的Alexnet有8层,错误率是16.4%;在2014的时候,VGG错误率是7.3%;22层的GoogleNet错误率降到了 6.7%;在2015年,引入了残差连接的Residual Net有152层,错误率为3.57%

        神经网络的运作常常用矩阵运算来表示。假设第一层隐藏层的两个神经元的参数w分别是1,-2;-1,1,可以把他们排成一个矩阵\begin{bmatrix}1 & -2\\ -1 & 1 \end{bmatrix},当我们要用输入层的1,-1进行运算时,可以把输入层的数值写成一个向量\begin{bmatrix}1 \\ -1 \end{bmatrix},最后 \begin{bmatrix}1 & -2\\ -1 & 1 \end{bmatrix}\begin{bmatrix}1 \\ -1 \end{bmatrix}+\begin{bmatrix}1 \\ 0 \end{bmatrix}=\begin{bmatrix}4 \\ -2 \end{bmatrix},如果是sigmoid激活函数,经过该函数后,值为\begin{bmatrix}0.98 \\ 0.12 \end{bmatrix}

        假设每一层的参数按照如下图定义,那么输出层的y要怎么计算?

        通过\sigma (W^{1}x+b^{1}) 计算出第一层隐藏层的输出值a^{1};通过\sigma (W^{2}a^{1}+b^{2})计算出第二层隐藏层的输出值a^{2};通过这样的方法一层一层的计算下去,计算\sigma (W^{L}a^{L-1}+b^{L})得到最终的输出y。也就是:y=f(x)=\sigma (W^{L}...\sigma (W^{2}\sigma (W^{1}x+b^{1})+b^{2})...+b^{L})

2  定义函数的好坏

        假设做手写数字辨识,现在有一张图片和对应的标签\hat{y}。让图片通过神经网络后,得到一个输出y。计算y和\hat{y}之间的Cross Entropy,然后用梯度下降算法不断地调整参数,使得Cross Entropy越来越小。

        在整个数据集中,我们有很多样本,通过神经网络可以得到一个预测值y输出,我们把所有的预测值和真实标签\hat{y}之间的Cross Entropy加起来,得到一个总loss值。

        然后,我们在函数集中找到一个使得总loss最小的函数。

3  梯度下降

        把所有的参数写成一个向量,用\theta表示,先给每个参数一个随机的初始值;计算每一个参数对于Loss的偏微分,把这些偏微分写在一个向量\bigtriangledown L中;每一个参数减去学习率乘以偏微分的值,就可以得到一组新的参数。反复执行这样的操作,就可以找到一组好的参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值