Deep learning深度学习

深度学习的步骤与机器学习一致:
在这里插入图片描述
深度学习第一步里定义的函数,就是神经网络。
定义
把多个逻辑回归前后连接在一起,然后把连接好的里面的一个逻辑回归成为神经元 ,整体称为神经网络。
在这里插入图片描述
我们可以用不同的方法连接这些neuron,就可以得到不同的structure,neural network里的每一个Logistic Regression都有自己的weight和bias,这些weight和bias集合起来,就是这个network的参数,我们用θ来描述。
如何连接,可以自己设计,常见的连接方式:
Fully Connect Feedforward Network(全连接前馈网络)
如果一个neural network的参数weight和bias已知的话,它就是一个function,它的input是一个vector,output是另一个vector,这个vector里面放的是样本点的feature,vector的dimension(尺寸)就是feature的个数:
在这里插入图片描述
如果今天不知道参数,只是定出了这个network的structure,决定好这些neuron该怎么连接在一起,这样的一个network structure其实是定义了一个function set(model),我们给这个network设不同的参数,它就变成了不同的function,把这些可能的function集合起来,我们就得到了一个function set。

下图中,每一排表示一个layer,每个layer里面的每一个球都代表一个neuron
1、layer和layer之间neuron是两两互相连接的,layer 1的neuron output会连接给layer 2的每一个neuron作为input。
2、对整个神经网络来说,它需要一个input,这个input就是一个feature的vector,而对layer 1的每一个neuron来说,它的input就是input layer的每一个特征(dimension)
3、最后的layer L,它的output就是整个network的output
4、layer的名字:
input的地方,叫做input layer,输入层(严格来说input layer其实不是一个layer,它跟其他layer不一样,不是由neuron所组成的)
output的地方,叫做output layer,输出层
其余的地方,叫做hidden layer,隐藏层
每一个neuron里面的sigmoid function,在Deep Learning中被称为activation function(激励函数),事实上它不见得一定是sigmoid function,还可以是其他function(sigmoid function是从Logistic Regression迁移过来的,现在已经较少在Deep learning里使用了)
层数较多的神经网络称为DNN深层神经网络(deep Neural Network)。
在这里插入图片描述
由于上述网络layer和layer之间,所有的neuron都是两两连接,所以它叫Fully connected的network。
有多个隐层的网络,可以称为deep,称为深度学习:
在这里插入图片描述
不仅需要多个层数,也需要有特殊的结构,才能得到较好的网络。

矩阵运算
用矩阵运算来表示,网络的运作过程,如下图所示,假设第一层隐层(hidden layers)的两个神经元,它的权重(weight)分别是, w 1 = 1 , w 2 = − 2 , w 1 ′ = − 1 , w 2 ′ = 1 w_{1}=1,w_{2}=-2,w_{1}^{'}=-1,w_{2}^{'}=1 w1=1,w2=2,w1=1,w2=1把他们排成一个矩阵是: [ 1 − 2 − 1 1 ] \begin{bmatrix} 1 & -2\\ -1 & 1 \end{bmatrix} [1121]而输入是一个21的矩阵设为: [ 1 − 1 ] \begin{bmatrix} 1\\ -1 \end{bmatrix} [11],将w和x相乘,再加上bias的向量 [ 1 0 ] \begin{bmatrix} 1\\ 0 \end{bmatrix} [10],可以得到该层的向量z,在经过激励函数(activation function)就可以得到这层的输出(output)(激励函数类型很多,此处以sigmoid函数为例)
在这里插入图片描述在这里插入图片描述
把所有的变量都以matrix的形式表示出来,注意 W i W^{i} Wi的matrix,每一行对应的是一个neuron的weight,行数就是neuron的个数,而input x,bias b和output y都是一个列向量,行数就是feature的个数(也是neuron的个数,neuron的本质就是把feature transform到另一个space)
在这里插入图片描述
输出层(output layer)
我们可以把隐层(hidden layers)看作是特征提取器(feature extractor),输出层相当于一个多元分类器,它拿经过特征提取器转换后的一组比较好的特征进行分类的,由于输出层看作为多元分类器,所以再最后一层需要加上softmax。
在这里插入图片描述
手写字识别举例
手写字的input是一张image,对机器来说一张image实际上就是一个vector,假设这是一张16
16的image,那它有256个pixel,对machine来说,它是一个256维的vector,image中的每一个都对应到vector中的一个dimension,简单来说,我们把黑色的pixel的值设为1,白色的pixel的值设为0
1、Neural Network
在这里插入图片描述

input 256维,output 10维,以及自己design的network structure,function set(model)
2、模型的好坏判别
在这里插入图片描述
图象的256个像素点(pixel)通过这个神经网络之后,会得到一个输出,称为y,从这张图像的标签中转化而来的target称为 y ^ \hat{y} y^,跟之前的多分类一样,计算他们之间的交叉熵:
在这里插入图片描述
3、找出最好的模型
调整参数使得,交叉熵最小,如果有多个数据集合,需要把所有数据集合的交叉熵相加,得到一个总的损失 L = ∑ n = 1 N l n L= \sum_{n=1}^{N}l^{n} L=n=1Nln,找到一组该网络的参数(parameters): θ ∗ \theta ^{*} θ,使得总的损失值最小,这组参数对应的函数就是训练好的模型。
在这里插入图片描述
找出使得总损失最小的方法,可以使用梯度下降的方式。
θ里面有大量的weight,bias参数,可以随机选取一个初始值,然后计算每一个参数对总损失的偏微分,把这些偏微分全部集合起来,叫做梯度,然后采用这些偏微分对参数进行更新:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值