引言:感知机(Perceptron)非常像我们的逻辑回归(Logistics Regression)只不过是没有sigmoid
激活函数。09年的GPU的发展是很关键的,使用GPU矩阵运算节省了很多的时间。
深度学习就是找一组w和b
深度学习和机器学习就是第一步有差别:深度学习是要建立一个网络(相当于是一个函数集)而机器学习是建立一个函数⇒都相当于是特征提取
(其实两个的思想都是相同的:通过将原始的输入数据进行转换,然后得到有用的数据要么进行分类要么进行回归预测)
深度学习的三个步骤:1.建立神经网络 2.模型评估(定义损失函数) 3.选择最优函数
1.建立神经网络
神经网络的的连接方式、激活函数是自己手动去设置的(就像机器学习的函数形式也是自己设计的,只是其中的参数是神经网络训练出来的),权重w和偏移b是深度学习学出来的。
-
🌰举例:我们就从最简单的全连接前馈神经网络来看建立的神经网络到底应该是什么样的
-
介绍全连接前馈神经网络
全连接: 因为layer1与layer2之间两两都有连接,所以叫做Fully Connect;
前馈:因为现在传递的方向是由后往前传,所以叫做Feedforward(从信号流向来理解就是输入信号进入网络后,信号流动是单向的,即信号从前一层流向后一层,一直到输出层,其中任意两层之间的连接并没有反馈(feedback),亦即信号没有从后一层又返回到前一层。)
-
每一条线都是
- x是输入
、
就是要进行训练得到的
是人为设定激活函数:例如sigmoid(
)、rule
-
矩阵运算
(用循环来计算每一侧的数值然后再循环计算下一层的数值计算效率肯定很低,所以我们使用矩阵来进行计算)
从结构上看每一层的计算都是一样的,也就是用计算机进行并行矩阵运算。 这样写成矩阵运算的好处是,你可以使用GPU加速。
-
整个神经网络的本质:通过隐藏层进行特征转换
隐藏层:特征提取
多分类器:可以是softmax函数
(softmax函数:比如说前一层得到每一个特征的数值大小
…①然后都指数化进行数值的放大
…②计算每一个特征的占比
⇒这就是
对应的结果的自信度)
-
举例:
手写数字进行识别
输入:一个16*16=256维的向量,每个pixel对应一个dimension,有颜色用(ink)用1表示,没有颜色(no ink)用0表示
输出:10个维度,每个维度代表一个数字的置信度。
在这个问题中,唯一需要的就是一个函数,输入是256维的向量,输出是10维的向量,我们所需要求的函数就是神经网络这个函数
💚 接下来关于神经网络函数有几个问题
-
网络要多少层,每层要多少个神经元
试错+经验(对于不同的模型效果也不同所以要不断尝试并且纠正错误)
-
神经网络的结构可以也让机器自己确定嘛
现在有很多设计方法可以让机器自动找到神经网络的结构的,比如进化人工神经网络(Evolutionary Artificial Neural Networks)但是这些方法并不是很普及 。
-
我们可以设计网络结构嘛
可以,比如 CNN卷积神经网络(Convolutional Neural Network )
-
-
2.模型评估(定义损失函数)
①交叉熵(再解释:分类问题用交叉熵定义损失函数)
②同时我们不单单要计算一笔数据的,而是要计算整体所有训练数据的损失
③然后把所有的训练数据的损失都加起来,得到一个总体损失L。接下来就是在function set里面找到一组函数能最小化这个总体损失L,或者是找一组神经网络的参数,来最小化总体损失L
3.选择最优函数
①梯度下降 是 找损失函数极小值的一种方法,
②反向传播 是 求解梯度的一种方法。
①梯度下降 | ②反向传播 首先看我们要求的东西:基本上就是每一个参数对最后的算是函数的影响(损失函数就是目标结果 所以每一个参数就只会影响求出结果y。 🌰举例: ![]() |