产品经理也能动手实践的AI(七)- 正规化&深入卷积神经网络

正文共: 3002字 8图

预计阅读时间: 8分钟

好久没更新了,Lesson5是个坎,也不是里面内容有多难,可能是知识点比较杂乱,所以一直没有产出,今天把Lesson6看完了,视频1遍,练习一遍,文字一遍(Transcript),算是基本都理解了,所以上一课的内容之后更新吧。

1.概览

本节主要围绕两个例子:1.根据Rossmann商店运营数据预测未来销量 2.用宠物识别的例子讲解CNN原理

讲解了正则化 Regularization 的 dropout 和卷积神经网络 CNN

2.1核心概念

  1. 连续变量和非连续变量:很多看起来的连续变量作为类别效果更好,比如一周的第N天

  2. Dropout:一种Regularization方法,可以避免过度拟合,原理是类似于随机抽一部分老师来监考,防止内外勾结,通过P值来控制挑选的概率

  3. Batch Normalization:通过小批次的Normalization,加速训练,因为可以把问题简化到每个批次上

  4. Transform:对图片进行亮度、饱和度、灰度、扭曲、翻转等操作,从而提高训练效果,因为相当于多了N倍的训练图像

  5. 特征点热力图:让ML变得可以解释,通过热力图,显示机器是根据图像上的哪部分的特征点判断属于哪个类别,效果如下

2.2机器学习概念

  • Normalization:将数据转换到[0,1]区间,如下图公式,还有其他变种

  • Regularization:loss function的惩罚机制,防止overfit

  •   Weight Decay:L2 regularization 的升级版

  • Model 内部结构,一个基础的block,2d就是二阶向量

    • Conv2d

    • BatchNorm2d

    • ReLu

    • Conv2d

    • BatchNorm2d

  • Data argumentation:数据增强,通过transform把图片各种变形,以达到更好的训练效果

  • Channel:用了多少个Kernel,就会产生多少channel,近似于feature,如图生成了16个channel,

  • Stride:步伐,为了降低内存占用,如果步伐为2,则每次和Kernel的运算会跳过一个,所以生成的tensor高宽会/2,channel会*2

  • Average pooling:相当于求纵向的平均值,比如最后生成了11*11*512的tensor,那就求11*11平面上每个点的纵向512个值的均值,这样得到的11*11的值就可以用于热力图的显示

  • 2.3 FastAI命令

  • add_datepart:可以将日期转化成每周的第N天,每月每年的第N天,是否是月初或月末等

  • label class (label_cls=FloatList):设置label值为float,因为int会被当成分类任务,本节课是要预测销量

  • procs=[FillMissing, Categorify, Normalize]:数据训练前的一次性处理,process设置的简写

  • data.one_item(x):创建一个mini-batch的数据

  • data.cuda():放到GPU上

  • 2.4 Pandas命令

  • train_df.head().T:可以转置表格数据

  • small_train_df.PromoInterval.cat.categories:查看类别

  • small_train_df['PromoInterval'].cat.codes[:5]:查看类别对应的编号,-1就是不存在的意思

  • 2.5 PyTorch命令

  • hook:可以调取训练过程的任意环节

  • hook.store():存下来

  • t[None]:维度+1

  • 3.1实例详细分析

    根据Rossmann商店数据,还有竞争对手数据,预测销量

    1. 数据有点老,所以专门有个data_clean的文件先把数据处理一遍,主要是把需要的数据提炼出来合成一张表

    2. 先小范围测试下数据

      1. 主要是区分类别变量和连续变量,会把类别变量都映射成数字

      2. 空数据用类别方式标注

      3. 数据归一化Normalization

    3. 在准备完整数据

    4. 然后用tabular_learner跑数据

    data = (TabularList.from_df(df, path=path, cat_names=cat_vars, cont_names=cont_vars, procs=procs,)                .split_by_idx(valid_idx)                .label_from_df(cols=dep_var, label_cls=FloatList, log=True)                .add_test(TabularList.from_df(test_df, path=path, cat_names=cat_vars, cont_names=cont_vars))                .databunch())

    learn = tabular_learner(data, layers=[1000,500], ps=[0.001,0.01], emb_drop=0.04,                        y_range=y_range, metrics=exp_rmspe)

    3.2实例详细分析

    宠物图片增强,找到cnn是通过哪部分的特征,识别了这张图,热力图

    1. 创建databunch

    2. 变形transform

    3. cnn训练模型

    4. 卷积内核

    5. 热力图

    6. grad-cam

    src = ImageList.from_folder(path).split_by_rand_pct(0.2,seed=2)def get_data(size, bs, padding_mode='reflection'):    return (src.label_from_re(r'([^/]+)_\d+.jpg$')           .transform(tfms, size=size, padding_mode=padding_mode)           .databunch(bs=bs).normalize(imagenet_stats))

    learn = cnn_learner(data,models.resnet34,metrics=error_rate,bn_final=True)

    def show_heatmap(hm):
    _,ax = plt.subplots() xb_im.show(ax) ax.imshow(hm, alpha=0.8, extent=(0,352,352,0), interpolation='bilinear', cmap='magma');show_heatmap(avg_acts)

    4.最后

    本课还讲了platform.ai和AI的伦理,platform.ai是一个快速训练未打标签的数据的网站,AI伦理讲的是很多性别偏见,以及过度满足人性的推荐系统,酿成的悲剧,号召从业者用技术将生活变得更好,而不是制造更多冲突。 

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

    推荐阅读更多精彩内容