1. 线性回归
- 形式:
y = a0 + a1x1 + a2x2 +…
x可以具有更高的指数,其中,theta是参数,x是我们的训练数据和检测数据中的特征值。实际上,theta是未知量,我们的目标就是通过训练数据调整theta,来使得输出的结果更接近真实值。
x的形式可以是一次幂,也可以是更高的指数。只要theta之间互相独立,且没有乘积的形式,都可以认为是线性关系 - 目标:
方差最小(损失函数减小) - 实现:
求导,导数< 0 的方向,再乘以步长,更新参数theta,直至导数趋于0
2. Softmax与分类模型
softmax
-
定义:
假设有一个数组V,Vi表示V中的第i个元素,那么这个元素的softmax值为:
S i = e i ∑ j e j S_i=\frac{e^i}{\sum_j e^j} Si=∑jejei该元素的softmax值,就是该元素的指数与所有元素指数和的比值。
-
求导:
在多分类问题中,我们经常使用交叉熵作为损失函数:
L o s s = − ∑ i t i l n y i Loss = - \sum_i t_i lny_i Loss=−∑itilnyi
其中,ti表示真实值,yi表示求出的softmax值。当预测第i个时,可以认为ti=1。此时损失函数变成了:
L o s s i = − l n y i Loss_i = -lny_i Lossi=−lnyi
接下来对Loss求导。根据定义:
y i = e i ∑ j e j y_i = \frac{e^i}{\sum_j e^j} yi=∑jejei
将数值映射到了0-1之间,并且和为1,最终结果为:
∂ L o s s i ∂ i = y i − 1 \frac{\partial Loss_i}{\partial _i} = y_i - 1 ∂i∂Lossi=yi−1
我们要求 y i y_i yi,将结果减1就是反向更新的梯度 -
小结:
Softmax运算,将数值归一化得到0-1概率。使用交叉熵误差函数,softmax只聚焦于最大概率值。
多层感知机
多层感知机(MLP,Multilayer Perceptron)也叫人工神经网络(ANN,Artificial Neural Network),除了输入输出层,它中间可以有多个隐层,最简单的MLP只含一个隐层,即三层的结构,如下图:
3. 文本预处理
- 读入文本
- 分词
- 建立字典
- 将文本从词的序列转换为索引序列
4. 语言模型
- 定义:
标准定义:对于语言序列 ,语言模型就是计算该序列的概率 。
从机器学习的角度来看:语言模型是对语句的概率分布的建模。
通俗解释:判断一个语言序列是否是正常语句,即是否是人类语言 。 - N-gram:
为了解决自由参数数目过多的问题,引入了马尔科夫假设:随意一个词出现的概率只与它前面出现的有限的n个词有关。基于上述假设的统计语言模型被称为N-gram语言模型。
5. 循环神经网络基础
- 理解:
RNN层级结构较之于CNN来说比较简单, 它主要有输入层,Hidden Layer, 输出层组成.并且会发现在Hidden Layer 有一个箭头表示数据的循环更新, 这个就是实现时间记忆功能的方法。 - 结构: