【飞桨】李宏毅机器学习特训营 PaddlePaddle学习回顾与心得

矫情一下😜

第一次接触到这个课程,在满满的仪式感中开始,记录每一个时间节点



然而现实是,直播课程经常听录播,作业总是赶到最后才提交,视频学习倒是每天下班都坚持,奈何在职学习,再加上最近看房子、搬家,时间很紧张地说。一点小遗憾,相信如果时间充裕一些,我会做得更好滴,未来也会继续参加飞桨组织的课程。

学习心得

本次课程以李宏毅老师的机器学习基础课程作为理论指导,结合paddlepaddle进行同步作业实践,对于机器学习理论理解有了进一步的加深。整个过程由浅入深,从我比较熟悉的机器学习算法,到CNN,RNN,再到比较陌生的GAN,迁移学习等,收获颇丰。
个人的一点建议是:如果适当增加一点课程进度的弹性,效果可能会更好。因为作为一名在职学习者,每天只有下班的时间用于听课,做作业基本就利用周末的时间,本次课程安排每天一节,紧接着就是提交作业deadline,建议能留出一到两天时间进行作业,也可以在下一个topic开始后两天内提交这样子,保证能够有充足的时间完成作业以及追求作业水平的提升。有几次作业本可以做的更好,由于时间关系没有进一步探索尝试。

课程开始前,补了线性代数的知识,链接:https://aistudio.baidu.com/aistudio/education/group/info/2063

课程回顾

learning map:


回归

从线性回归说起,通过梯度下降优化模型参数,不断逼近使得损失函数最小对应的w

主要分三步走:

  1. choose random w^0;

  2. w^1\leftarrow w^0-\eta \frac{\mathrm{d}L }{\mathrm{d} w}|^{_{w=w^0}}

  3. 重复2.
    w^2\leftarrow w^1-\eta \frac{\mathrm{d}L }{\mathrm{d} w}|^{_{w=w^1}}

    iterate many times, might meet local minimal

    we want global minimal, and Linear Regression without local minimal.

    作业PM2.5的预测中,更深刻地认识到当自变量多维的情况即多个参数,学习率不同更好。

推而广之,构建模型寻找参数的过程都可以借助梯度下降转化为以上三步进行解决,不难进行手写实现,即:

模型->loss function L(f) = L(w, b) ->find best function using Gradient Descent

线性回归作业95分链接:作业1-PM2.5预测 - 百度AI Studio - 人工智能学习与实训社区 (baidu.com)

梯度下降

围绕梯度下降的一些tricks

trick1: 调整学习率

Eg: 自适应梯度算法Adagrad
w^{^{t+1}}\leftarrow w^{^{t}}-\frac{\eta ^{t}}{\sigma ^{t}}g^{t}

(\eta ^{t}=\frac{\eta }{\sqrt{t+1}}, \sigma ^{t}=\sqrt{\frac{1}{t+1}\sum_{i=0}^{t}{(g^{i})}^{2}})
学习率的动态调整

trick2: Stochastic Gradient Descent

随机梯度下降,每次迭代都是随机选择一个样本计算梯度,直到收敛。

批量梯度下降需要对所有样本进行N次迭代,计算量大,时间效率低。

每一轮更新参数速度更快,但可能会收敛到局部最优。

Trick3:Feature Scaling

特征归一化

不同特征的量纲不同,导致在特征空间以二维为例,不是正圆而是椭圆。梯度下降寻找最优参数的过程与其实位置的选取很有关系,而通过特征归一化,使得特征空间为正圆形态,不管起始位置在哪个点,都会朝着圆心走。所以需要通过梯度下降进行求解的模型都需要对特征进行归一化处理,例如逻辑回归、SVM、神经网络等。而决策树通过信息增益指导树的生成,特征的量纲不同没有影响。

分类

概率生成:基于条件概率,最大似然

逻辑回归:是判别型模型,损失函数为交叉熵。

支持向量机:泛化错误率低,计算量少,仅和支持向量有关。

年收入判断作业95分链接:作业2-年收入判断 - 百度AI Studio - 人工智能学习与实训社区 (baidu.com)

集成学习

深度学习:

反向传播 梯度下降 链式法则

过拟合不是深度学习的主要问题,在训练集上的正确率可能都达不到要求。

梯度衰减解决办法:更换激活函数ReLU, Adagrad, RMSProp, Momentum, Adam.

早停:根据验证集来决定train早停在什么时候。

Dropout: 每次更新参数前,每个神经元有p%被dropout,相当于每个minibatch用新网络去training,当testing时,no dropout, weight需要乘以(1-p)%, 为了使得testing和training比较match, E(testing)=Training,相当于一种ensemble.

神经网络之Fat+Short VS Thin+Tall?

Deep是一种Modularization, Fat相当于+, Tall相当于*,效果更好。

paddlepaddle作业100分链接:作业-Paddle2.0基础练习 - 百度AI Studio - 人工智能学习与实训社区 (baidu.com)

CNN

CNN的设计,从图像应用出发:

  1. 一个神经元不需要看整张图,只需要寻找特定的pattern即可;

  2. 同样的pattern出现再图片中的不同区域,用于识别的神经元可以共用参数;

  3. subsampling不会改变pixels.

CNN

CNN与DNN对比:

用卷积层替换全连接,参数要比DNN少,比DNN结构简单。

针对图片像素区域,通过卷积核对局部pattern进行操作,共享参数,类比DNN形象看:

卷积核操作

随着卷积核从左到右移动,与第二个区域进行卷积操作,如下图所示,相同颜色线条代表相同的卷积核参数,
卷积核操作

max pooling减少模型参数数量,有利于减少模型过拟合问题,如何反向传播?

通过图片可以一目了然,对于avg-pooling,对应位置求平均:



对于max-pooling,对应位置除最大值所在像素以外,其他位置置为0:


*图片摘自cnn 反向传播推导CNN中的反向传播chsqi的博客-CSDN博客

反卷积

如上图所示,conv之后通过padding再进行conv操作,得到右侧反卷积。

cnn基本模型的构建:图片->convolution->max pooling->convolution->max pooling->flatten->fully connected

应用:

围棋、语音辨识

CNN作业90分链接:作业3-食物图片分类 - 百度AI Studio - 人工智能学习与实训社区 (baidu.com)

LSTM

lstm模型是由遗忘门、输入门、输出们、细胞记忆单元c, 隐状态h所组成的rnn网络。 经典结构图:

LSTM

然而,对于网络结构和paddle接口参数、输入输出的对应关系,以及lstm和普通全连接网络的联系。

– input_size: The number of expected features in the input x(embedding后的维度)
– hidden_size: The number of features in the hidden state h(每个时间步上纵深的神经网络隐藏层如下图ht)
– num_layers: 沿depth方向的网络层数,not时间步个数
– bias
– batch_first
– dropout
– bidirectional
# 输入
– input (seq_len, batch, input_size)
– h_0 (num_layers * num_directions, batch, hidden_size)
– c_0 (num_layers * num_directions, batch, hidden_size)
# 输出
– output (seq_len, batch, num_directions * hidden_size)
– h_n (num_layers * num_directions, batch, hidden_size)
– c_n (num_layers * num_directions, batch, hidden_size)

下面这两张图有助于正确理解,对我此次学习有很大的帮助: !

红线方向为经典lstm结构图的时间步方向,从绿到蓝则是传统神经网络的结构。

这张图可以看出输入输出的结构。

借鉴自知乎:https://zhuanlan.zhihu.com/p/79064602

应用:

sequence to sequence: QA, chatbot, translation

RNN作业95分链接:作业4-语句分类 - 百度AI Studio - 人工智能学习与实训社区 (baidu.com)

迁移学习

第一次接触迁移学习

领域对抗训练模型由三部分组成,特征提取层,task predict层,领域分类层。

将无标签的test data通过特征提取层提取和train data语义相似的部分使得在domain上的准确率减少,进而可以使用task predict层对无标签test data进行预测,然而无法对其衡量准确率,只能通过domain-adversarial model对train data分类的task准确率进行衡量。

展望

通过这次学习,也认识到电子笔记的重要性,在学习过程中习惯随手记手写笔记,到最后时间有限,很多事情堆在一起,整理的笔记就是从手写笔记中摘取。可能直接记录电子笔记更好,添加相关知识点补充,进而提升电子笔记质量。💪

以上就是这一个月以来在理论方面的大致学习,在此过程中,有压力有动力,也有高兴与紧张,很难忘的一段经历,希望未来仍然有机会参加飞桨组织的学习活动。支持飞桨,点赞👍

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,179评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,229评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,032评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,533评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,531评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,539评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,916评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,813评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,568评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,654评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,354评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,937评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,918评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,152评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,852评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,378评论 2 342

推荐阅读更多精彩内容