神经结构
M-P神经元模型(最基本的神经元模型)
一个神经元的功能就是求输入向量与权向量的内积,经一个非线性传递函数得到一个标量结果
单层神经网络(最基本的神经元网络形式)
线性回归就是单层神经网络
感知器(相当于两层神经网络)
感知器也被称为阈值逻辑单元(TLU),或者线性阈值单元(LTU),和上面的神经元有一点区别,输入和输出变为数字,在输入时,都会有一个相对的权值。TLU会先计算出输入的加权和然后将z代入阶跃函数中,计算出输出
单个TLU可用于简单的二进制分类。计算输入的线性组合,超过阈值输出正类,相反则输出负类。
感知器由单层TLU组成,每个TLU连接所有的输入。当一层的所有神经元都连接到上一层中的每一个神经元时,该层称为全连接层。
多层神经网络
由单层神经网络进行叠加后得到所形成的层。结构如下(下文会提及):
- 输入层
- 输出层
- 隐藏层
线性回归
房价模型
简化模型
- 简化模型
- 训练集:上层特征,输出目标
- 训练模型:将训练集提供给学习算法,然后监督学习算法产生一些函数
- 线性回归可以看做是单层神经网络(单层,是因为权重层是1)
衡量预估质量
- 使用平方损失来衡量预测值和真实值的差异
训练数据
- 线性回归是对n维输入的加权,外加偏差
参数学习
显示解
- 线性回归有显示解
基础算法优化
梯度下降
超参数:需要人为指定的值
选择学习率不可以太小也不可以太大
用b个样本的损失平均值来近似损失
批量大小不能太大,不能太小
总结
- 梯度下降通过不断沿着反梯度方向更新参数求解
- 小批量随机梯度下降时深度学习默认的求解算法
- 两个重要的超参数是批量大小和学习率
视频推荐 b站3BlueBrown的深度学习系列
视频内容总结(多层感知器MLP)
神经网络的结构
每个人工神经元接收多个输入,对这些输入进行加权求和,并通过激活函数产生0到1的输出。
- 输入层
神经元中的数字叫做激活值,0表示纯黑像素,1表示纯白像素
- 隐含层
- 输出层
输出层每个激活值从0到1,表示系统认为输入的图像对应哪个数字的可能性
神经网络运行时,上一层的激活值将决定下一层的激活值。
-
权重: 颜色越暗,就大致表示他的权重越接近0,将关注区域的权重赋为正数,将其他赋为0,如果想识别是否存在一条边只要给周围一圈像素赋予负的权重,这样得到的权重和就是最大
-
激活函数: 激活函数将激活值挤压进0到1的区间内
- 偏置: 除了输出层外,每一层都有一个偏置神经元,连接到下一个层,加入偏置值防止随意激发
-
代价函数: 训练单个样本的代价,也叫“损失”,表示输出值与预期输出值的差值的平方和。用平均代价来评估多个训练数据的综合表现。
要解决的问题就是如何让代价最小:
首先,从一元函数讨论,可以直接用微积分求出最小值:如果复杂函数的话,可以随机选择一点,如果斜率为正就向左走,斜率为负就向右,最后就可以找到局部最小值,这种方法无法保证是否获得全局最小值:
梯度指出了函数最陡的增长方向,而反梯度下降就可以找到函数下降最慢的方向
将所有权重偏置放入一个列向量中,将求出的代价函数的负梯度与其相乘,更新权重与偏置
代价函数的负梯度值相当于标记出改变哪个参数性价比更高
反向传播法
只对期待值看,让前一层所有正权重的神经元更亮,负权重的神经元更暗。而针对输出层所有值,让期待值激发变强,其余神经元激发变弱,将所有期待的改变加起来得到倒数第二层的权重和偏置。更全局看,将所有数字期待改变的值叠加起来得到微调。
随机梯度下降法:将所有样本打乱,作为mini-batch每取一批样本计算梯度