# 深度学习笔记
机器学习的功能:找一个合适的函数.通过机器,找到一个函数,对于我们的输入,希望可以得到一个合适的输出,这样就完成了机器学习
例如,我们把,图片,声音信息,输入到一定的函数当中,最后就得到对应的输出
深度学习:用类神经网络作为这个函数
1. 基础分类
- 监督学习
需要大量的训练数据,通过大量数据的深度特征学习,最后进行分类等功能
-
半监督学习(self-supervised Learning)
-
pre-train 在训练之前要完成的事情.需要大量的数据,而不需要进行标注
其中有一个很巨大参数的模型叫做bert,有340个参数,但是现在比它更大的模型比比皆是
-
1.1不同类别的函数
regression:输出是一个数值(scalar)(类似于平均温度,)找这个函数的任务就是regression
classification:输出在设置好的选项里面,选择一个分类(比如图片分类,已经选好了的类别)
对于围棋落子问题,也是一类分类问题
structured learning:产生一个有结构的物件(比如产生一个图片,文档),学会创造,产生一个有结构的东西.
1.2 如何设计函数
-
设计一个带有未知参数的函数
y= b + wx_1
-
在训练的数据中定义一个损失值
L(b,w).损失函数是以参数未输入的一个函数.e = |y - y^| (MAE) mean absolute error
e = (y- y^ ) ^2 (MSE) mean square error
y and y^ 服从概率分布,使用Cross-entropy
-
optimization(最后解)\
找一个最好的w 和 b,此时L取的到最小值
w改变的大小,会随着学习率和斜率大小而改变
其中,第一个 谷底,叫做local minima,第二个(最深那个)称之为global minima
1.3 linear models
1.3.1 model
所有的线性关系,都可以通过常数加上大量(类似于sigmoid函数)进行叠加表示,也可以通过这种方法,把非线性曲线线性化
y = b + ∑ i = 0 c i ∗ s i g m o i d ( b i + w i ∗ x i ) y = b+\sum_{i=0}c_i*sigmoid(b_i + w_i * x_i) y=b+∑i=0ci∗sigmoid(bi+wi∗xi)
y = b + ∑ i = 0 c i ∗ s i g m o i d ( b i + ∑ j = 0 w i j ∗ x j ) y = b+\sum_{i=0}c_i*sigmoid(b_i + \sum_{j=0} w_i{_j} * x_j) y=b+∑i=0ci∗sigmoid(bi+∑j=0wij∗xj)
1.3.2 更新参数(optimization)
θ ∗ = a r g m i n θ L \theta^{*} = arg min_{\theta}L θ∗=argminθL
在实际处理数据的时候,我们会把大量的数据进行划分为很多很多的batch,然后我们使用batch来进行梯度下降,对参数进行更新
#### 1.3.3 Activation function
sigmoid - Relu
ReLU
y = b + ∑ i c i ∗ m a x ( 0 , b i + ∑ j w i j x j ) y = b + \sum_{i}c_i* max(0,b_i+\sum_{j}w_{ij}x_j) y=b+∑ici∗max(0,bi+∑jwijxj)
1.3.4 对每个ReLU进行改进
### 1.4 overfitting
在训练的资料上面变好,但是在没训练的资料上面变得更差