Datawhale 吃瓜教程 Task04打卡
神经元
计算机神经元网络是通过模拟生物神经元的特性来实现的:在生物体中神经元中的 轴突负责将电流输出传给其他神经元,而细胞突的另一种形态——树突,负责接收其他 的神经元传入的电流。多个神经元的输出电流可以经由树突这一细胞突结构将输出电流 输出给统一神经元。并且在生物体中,神经元的激活存在阈值:即如果电流没有高于该 神经元的阈值,那么神经元不会有电流输出,一旦超过阈值,输出就会被激活,神经元 会通过轴突将电流传导到与之相连的神经元。 人工神经元可以用以下公式表达:
n 可以当作神经元有着的树突总数,x 为神经元输入电流,w 代表各个输入电流的 权重,这也是用于模拟生物体内神经网络的特性。 g 表示接受计算值的非线性函数,也 即激活函数,用来模拟生物神经网络中阈值这一部分的功能。 B 是配合激活函数使用的值,对关注的数据与不关注的数据做一个区分。
感知机
从几何角度来说,对于一个线性可分的数据集\(T\),感知机的学习目标是求得能对数据集\(T\)中的正负样本完全正确划分的超平面,其中\(w^Tx-\theta\)即为超平面方程
n维空间的超平面\((w^Tx+b=0,其中w,x\in{R^n})\):
- 超平面方程不唯一
- 法向量\(w\)垂直于超平面
- 法向量\(w\)和位移项\(b\)确定一个唯一超平面
- 法向量\(w\)指向的那一半空间为正空间,另一半为负空间
深度神经网络(DNN)有时也叫做多层感知机(Multi-Layer perceptron,MLP)。根据内部神经网络层级的不同,DNN 内部的神经网络层可以分为三类,输入层,隐藏层和输出层。通常普遍的情况下一般会选择将第一层作为输入层,最后一层作为输出层,其余中间的层全都作为隐藏层。
梯度下降与自适应学习率
神经网络训练的过程类似下图
把球看作参数,抛物线看作 loss 的值,机器学习 的过程就是在调整这个球的位置。当球处于图中最低点左侧时,球每前进一步,我们的 损失函数的值就会减少一点,而当处于最低点附件时,有可能因为前进步子太大,而到 达了最低点的右方。这时候球每前进一步都会增大 loss 的值,使得学习效果越来越差。 因此合理的控制球的前进步长是取得良好模型训练效果的关键。 球体所在的地方的梯度(Gradient)决定了球的移动方向和每次的移动距离(移动速 度)。根据上图图可知,我们的模型有时找到的最优点可能只是局部最优解。所以一般的 深度学习过程会记录每次模型的准确度,同时采用自适应学习算法控制梯度。具体来说 自适应算法采用逐步优化的方式,在接近局部最小点或全局最小点时通过减小学习比例 使学习步长减小,以此缓慢前进,尽可能的达到最优解。