资讯详情

李宏毅机器学习笔记【未完】

2021/2022年李宏毅机器学习课程

【2021机器学习-李宏毅学习笔记】

一、机器学习

1.机器学习基本概念概念

找函数。

深度学习:使用类神经网络的函数。

可以有各种输入:向量、矩阵(如图像)、序列(如语音、文本);也可以有各种输出:值(regression),类别(classification),文本图像…

Regression(回归):输出是一个值(scalar)

Classification(分类):给定选项/类别(classes),输出正确的

Structured Learning:创造一些结构(image,document)

1.Function with unknown parameters.

model: y = b w x 1 y = b wx_1 y=b wx1 x:feature;w:weight;b:bias

2.Define loss from training data.

Loss是未知参数的函数,L(b, w),How good a set of value is.

例如,MAE,MSE;error surface(误差曲面)

3.Optimization 找一组w和b让loss最小 w ? , b ? = a r g m i n w , b L w^*,b^* = arg\underset{w,b}{\mathrm{\ min}}\ L w?,b?=argw,b min​ L

Gradient Descent:w-loss图像,随机选一个初始的点,计算斜线切率(L对w求微分),正的则增大w,负的则减小w;w0 -> w1 步伐大小,斜率大步伐划大,learning rate(超参数hyper parameters);不断更新w,停下来的情况可能是微分为0(local minima,真正loss最小 global minima)

两个变量w和b:w和b的方向结合起来,可以更新新的梯度方向

考虑周期性,更新model(函数)

以上,linear model(线性模型),线性模型的限制:model bias

piecewise linear curves(分段曲线) = constant + sum a set of 平稳的阈值(蓝色function,hard sigmoid)(Sigmoid Function,公式如下) y = c   1 1 + e − ( b + w x 1 ) = c   s i g m o i d ( b + w x 1 ) y = c\ \frac{1}{1+e^{-(b+wx_1)}} = c\ sigmoid(b + wx_1) y=c 1+e−(b+wx1​)1​=c sigmoid(b+wx1​)

改变w,b,c 的影响

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-upk7HGcK-1652774598419)(https://diamond-mule-bee.notion.site/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fd52a58b4-465f-485d-a0f2-eeb47134c890%2FUntitled.png?table=block&id=76f26ca5-49eb-416a-9bca-fd3c4327cad0&spaceId=effd33e2-527b-43dc-aef5-7b5ee7b83428&width=1030&userId=&cache=v2)]

y = b + ∑ i c i   s i g m o i d ( b i + ∑ j w i j x j ) y = b + \sum \limits_i c_i \ sigmoid(b_i+\sum \limits_j w_{ij}x_j) y=b+i∑​ci​ sigmoid(bi​+j∑​wij​xj​)

y = b + c T σ ( b + W x ) y=b+\pmb{c^T} σ(\pmb b+W\pmb x) y=b+cTcTcTσ(bbb+Wxxx)

所有的参数统称为 θ,所以Loss表示为 L(θ)

选定初始参数值向量θ0;求微分(梯度向量);。 θ ∗ = a r g   m θ i n   L \pmbθ^*=arg\ \underset{\pmb θ}min\ L θθθ∗=arg θθθm​in L L对θ微分,拼成向量就是gradient(g),(梯度) g = ∇ L ( θ 0 ) \pmb g=∇L(\pmbθ^0) g​g​​g=∇L(θθθ0)

θ 1 ← θ 0 − η   g \pmb\theta^1 \larr \pmb\theta^0 - \eta\ \pmb g θθθ1←θθθ0−η g​g​​g

……依此类推。

batch:一批,randomly,每次更新参数时使用1歌batch里的数据计算loss求梯度,bitch_size也是超参数

epoch:把所有的batch看一遍

update:每更新一次参数

  • (Activation Function激活函数)

把两个 ReLU 叠起来,就可以变成 Hard 的 Sigmoid。 y = b + ∑ 2 i c i   m a x ( 0 , b i + ∑ j w i j x j ) y = b + \sum \limits_{2i} c_i \ max(0,b_i+\sum \limits_j w_{ij}x_j) y=b+2i∑​ci​ max(0,bi​+j∑​wij​xj​) neuron →neural network

layer → deep learning

layer过多的话,会出现 overfitting问题(过拟合),layer层数(做几次sigmoid,ReLU)也是超参数

Back propagation(反向传播):计算梯度的一种有效方法

2.Colab使用教程

https://blog.csdn.net/qq_36890370/article/details/106160805

二、机器学习任务攻略

1.机器学习任务攻略

写出一个有未知参数的function,确定损失函数,optimization

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-loGgZh5J-1652774598420)(https://diamond-mule-bee.notion.site/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F6586a506-6ac8-43ad-a1d9-28e6de0b1fdb%2FUntitled.png?table=block&id=53a2d275-3157-4673-93d0-c137a8465213&spaceId=effd33e2-527b-43dc-aef5-7b5ee7b83428&width=2000&userId=&cache=v2)]

the model is too simple. 没有找到一个function可以让loss变小

解决:重新设计model

先跑一些浅层的网络(或者其他不是深度学习的模型)(比较好优化);如果更深的model比浅的比起来loss更大,说明optimization有问题

training data上loss小,testing data上loss大

解决:

增加training data,data augmentation(数据增强),

constrained model(给model制造限制,less parameters,sharing parameters,less features,early stopping,regularization,dropout)(给模型太多限制可能会model bias)

怎样选出有较低testing-loss的模型?

training set分成training set和validation set(训练集,验证集)

N-fold Cross validation(K折交叉验证法)

训练资料和测试资料分布不一样(作业11)

2.类神经网络训练不起来怎么办

a.局部最小值和鞍点

gradient为0:local minima(no way to go),saddle point(鞍点)(escape)

泰勒展开写出附近的loss函数L(θ’) L ( θ ) ≈ L ( θ ′ ) + ( θ − θ ′ ) T g + 1 2 ( θ − θ ′ ) T H ( θ − θ ′ ) L(\pmb\theta)\approx L(\pmb\theta')+(\pmb\theta-\pmb\theta')^T\pmb g+\frac1 2(\pmb\theta-\pmb\theta')^T H(\pmb\theta-\pmb\theta') L(θθθ)≈L(θθθ′)+(θθθ−θθθ′)Tg​g​​g+21​(θθθ−θθθ′) 标签: 120a单相固态继电器mgrqeb扩束复合连接器光缆组件

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台