机器学习基础小总结
分类:
文章
•
2024-07-31 12:31:40
神经网络
- 首先我这里所叙述的神经网络是按照(
输入层-->隐藏层-->输出层
)这样的结构的。
- 输入层我这里规定为第0层,隐藏层(
可能包含多层,一般也包含多层,下面会画图标明
),输出层。
- 画图表示一下
- 下面通过逻辑回归来解释一下所需要用到的变量(这里需要解释一下的是逻辑回归可以说是单层神经网络,就是说直接从输入到输出,没有隐藏层,所以可以直接用a (
即是该层的输出
)来表示y hat(即是预测值
))
- 推导一下损失函数的由来
- 除了损失函数之外,还需要了解一下成本函数,其实际上就是损失函数,不过他不是对单个样本,而是对所有样本的损失函数求平均。
- 在开始梯度下降推导之前有必要说下神经网络的学习过程,后面会详细解释,这里只是先说简单的例子。
根据上面写的逻辑回归的公式我们了解到,根据我们的输入,然后初始化参数,经过参数w,b与x的互动得到中间值z,再经过**函数,我们可以得到一个预测值y hat,这称为forward propagation(前向传播)。
那反向传播呢,众所周知,我们学习的目的是让损失函数的值尽可能取极小值,这样我们的预测值就和真实值最接近,而且我们是通过调参来实现最优化的,所以我们找到损失函数L关于参数w或者b的函数,然后对其求导,求出其变化率,然后再乘以步长(这里我们称为学习率,因为他影响参数变化的快慢),这样就可以逐渐逼近极小值,直到变化率为0,我们知道此时是极值点。
- 几种常见的**函数及其适用范围
- 那我们为什么使用**函数呢?可以不嘛?
答案肯定是要使用
事实证明:如果没使用**函数,那么我们训练的模型的输出不过是输入特征的线性组合,如果是这样写有点唐突,下面举个例子
- 神经网络梯度下降的一个过程
如下图
在图中输入变量进入第一层,得到一个输出结果(第一层的a),然后进入第二层,直到第L层输出,最后一层的a,即是y hat,此为forward propagation
然后下去,推出第L层参数w和b的导数,继续往前走,直到推出第一层的参数w和b的导数,更新参数值,此为back propagation
- 那么每一层的值是如何求解的呢?
如下图

11.我们使用这些公式的时候,一般需要向量化,那么向量化的维度怎么计算呢?怎么直到自己写的维度是否正确呢?