V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
olindk
V2EX  ›  分享创造

用高中数学理解 AI “深度学习”的基本原理

  •  2
     
  •   olindk · 2018-12-20 20:22:36 +08:00 · 5541 次点击
    这是一个创建于 2198 天前的主题,其中的信息可能已经有所发展或是发生改变。

    感觉 V2EX 里关于机器学习的讨论好少,不知道有没有人感兴趣呢。写了篇硬核科普,感兴趣的朋友可以看看,一起交流啊!

    这是文章链接

    52 条回复    2018-12-26 09:35:03 +08:00
    f278478529
        1
    f278478529  
       2018-12-20 21:13:43 +08:00
    走起
    lojoeshawn
        2
    lojoeshawn  
       2018-12-20 21:26:01 +08:00 via Android
    好棒,很简单的理解了
    Egfly
        3
    Egfly  
       2018-12-20 21:42:24 +08:00 via iPhone
    先码
    yushiro
        4
    yushiro  
       2018-12-20 21:56:52 +08:00
    楼主如何理解神经网络的?
    adrianyoung
        5
    adrianyoung  
       2018-12-20 22:01:27 +08:00
    楼主如何理解 Bert 的?(逃
    iannil
        6
    iannil  
       2018-12-20 22:13:45 +08:00
    写的挺好的,关注了,期待其他相关科普
    qianfeilong
        7
    qianfeilong  
       2018-12-20 22:44:10 +08:00
    已关注
    olindk
        8
    olindk  
    OP
       2018-12-20 22:46:12 +08:00
    @yushiro 这个问题太大了吧😂……我的理解就是在同样的表达力下,因为拆成多层了,比起单层结构,算力的要求大大降低?
    olindk
        9
    olindk  
    OP
       2018-12-20 22:46:23 +08:00
    @adrianyoung 太难为我了 😂
    wzblog
        10
    wzblog  
       2018-12-21 09:32:40 +08:00
    太棒了, 通俗易懂.
    olindk
        11
    olindk  
    OP
       2018-12-21 10:05:57 +08:00
    @lojoeshawn @wzblog @iannil @qianfeilong 哈哈,谢谢!第一次发文,多多指教!
    bokchoys
        12
    bokchoys  
       2018-12-21 10:24:45 +08:00 via iPhone
    而且国内的相关论坛也都不活跃。我搞了个 tensordata.net 有兴趣一起来建设吗(我是大学生
    yushiro
        13
    yushiro  
       2018-12-21 10:26:46 +08:00 via iPhone
    @olindk 只要是,之前在看机器学习的内容的时候,对线性函数的理解非常熟悉,一看就明白,但是在神经网络这部分,就一直不理解其工作机制,到底要配置几层?为什么这样就可以得到结果?
    theone1030
        14
    theone1030  
       2018-12-21 10:35:09 +08:00 via Android
    不用矩阵概率论,怎么说机器学习
    xiaozizayang
        15
    xiaozizayang  
       2018-12-21 11:21:14 +08:00
    翻译过一篇国外的: https://zhuanlan.zhihu.com/p/52747043
    adrianyoung
        16
    adrianyoung  
       2018-12-21 11:23:34 +08:00
    @yushiro 个人比较肤浅的理解就是线性函数加激活然后累积(当然这是最简单的,选 loss 来拟合最后一层的输出概率和标签,然后用反向传播 loss 更新参数直至模型收敛
    SeaRecluse
        17
    SeaRecluse  
       2018-12-21 11:56:36 +08:00
    我以前见过一组漫画区分贝叶斯,随机森林,逻辑回归的,应该初中水平就能看懂了 XD
    marcushbs
        18
    marcushbs  
       2018-12-21 12:01:02 +08:00
    如果想更深入系统了解一下神经网络, 推荐一下这本: https://www.amazon.cn/gp/product/B07C7QFJFC
    讲解平和,不吹也不装,和楼主风格有点像
    lidonghao
        19
    lidonghao  
       2018-12-21 13:42:17 +08:00
    很棒!
    CommandZi
        20
    CommandZi  
       2018-12-21 14:37:00 +08:00
    那个奥巴马的 gif,只有右上角那个眉毛会挑一下
    qihuandaxia
        21
    qihuandaxia  
       2018-12-21 15:17:50 +08:00
    可以授权转发么?

    也可以看一下我们网站 提些意见: https://www.flyai.com
    olindk
        22
    olindk  
    OP
       2018-12-21 15:47:16 +08:00
    @yushiro 我的理解是,线性回归问题离一般的神经网络模型隔了 2 个步。你理解线性回归后,我们再加一层非线性函数例如 sigmoid,我们就得到一个二选一的分类识别器。但是如果这样的模型表达力太弱了,你可以想象一下,猫照片的 4 万个像素跟“猫”这个概念之间肯定不是什么线性关系,而是某种超级复杂的关系。假设这种关系可以用数学的多次方程表达(实际上也确实可以),那么用神经网络来做,从目前来看,是算力上最高效的选择。至于你说要选择多少层,首选是参考大牛们模型,如果没有现成的模型,就要靠自己慢慢调参了。
    olindk
        23
    olindk  
    OP
       2018-12-21 15:48:20 +08:00   ❤️ 1
    @bokchoys 是啊我也很纳闷,怎么找不到热闹的社群,自学真的很寂寞啊!尤其是我这种不是做技术的,一边上班一边自学。
    olindk
        24
    olindk  
    OP
       2018-12-21 15:52:54 +08:00
    @CommandZi 哈哈,应该都是假的。原视频链接:
    &t=2s
    muffin
        25
    muffin  
       2018-12-21 16:25:49 +08:00
    很好!期待新文章
    bokchoys
        26
    bokchoys  
       2018-12-21 16:43:47 +08:00 via iPhone
    @olindk #23 我也不懂怎么去宣传论坛。或许有更好的平台……
    yushiro
        27
    yushiro  
       2018-12-21 17:51:29 +08:00
    @adrianyoung 你说的这些, 在书上都看到过, 但还是不明白为啥这样可以获得想要的结果。
    比如我在看 Google Tensonflow 的书, 第一个例子就是手写体识别, 按照 Sample 跑一下, 的确可以出结果,但不明白为啥这么简单的代码可以出结果, 如果我要换一批验证码, 是否需要重新调整神经网络?
    就是在这样的地方卡住了,我觉得如果囫囵吞枣一样的去看, 并不能应用到实际场景中。
    olindk
        28
    olindk  
    OP
       2018-12-21 17:56:50 +08:00
    @yushiro 想要系统地学习的话,推荐看看吴恩达的课程,在论坛上确实很难三言两语说清楚。不过以你举的例子来说,我建议你先在不改变模型的情况下把输入输出换掉,看看效果,然后调整下参数再看看效果。深度学习就像炼金术,多实验会有比较大收获。
    watermelon92
        29
    watermelon92  
       2018-12-21 18:06:41 +08:00
    @olindk 好文章啊~是否可以推荐一些自学的路径?
    yushiro
        30
    yushiro  
       2018-12-21 18:10:05 +08:00
    @olindk 果然,ML 到最后还是调参员,大部分需求都是调整参数。
    adrianyoung
        31
    adrianyoung  
       2018-12-21 18:35:36 +08:00   ❤️ 1
    @yushiro 过程上是得到一组参数使得数据拟合成我们想要的数据分布,也就是说从原始数据中抽取特征来适应真实标签(抽取这个过程实际上就是各式各样的数学变换,经验上讲都会说网络结构深而窄效果会更好,不同的任务可能会有不同的网络结构),然后用一个合适 loss 来监督这个拟合过程( loss 用来衡量标签和模型拟合出来的数据分布之间的差异,降 loss 的方法有梯度下降,牛顿法等方法),那么第二个问题可以抽象理解一下就是手写体的数据分布和验证码数据分布之间的差异有多大,能不能用相同的参数对不同的数据拟合出相同的结果或者说是合适的结果,这可能更多涉及到数据域适应的问题,我没做过图像的东西,但我了解到的图像这一块很多时候是会用预训练的网络先学最基础通识的东西,然后应对不同数据任务是要单独做有监督 fine-tune 的,这算是迁移学习了,所以如果数据源分布差异很大,那么从理论上讲模型得到的参数在 fine-tune 过后是不大一样的。
    leoleoasd
        32
    leoleoasd  
       2018-12-21 18:37:03 +08:00
    最上面那一块 书的价格那个 用高中数学 统计概率 中的 线性回归方程来解释就可以
    ^ ^
    y = ax +b
    olindk
        33
    olindk  
    OP
       2018-12-21 20:44:08 +08:00
    @leoleoasd 我想尽可能减少数学概念,我连“斜率”和“截距”这俩词都没用……导数方程我也没写,用图来表示来。这篇文章的目的是建立一种数学直觉。即使我写成这样,依然有朋友表示看不懂…数学全忘光了…
    olindk
        34
    olindk  
    OP
       2018-12-21 20:50:01 +08:00   ❤️ 1
    @watermelon92 如果你英文阅读无障碍的话,我强烈推荐 keras 作者的书《 Deep Learning with Python 》。我觉得入门完美啊,抽象程度刚刚好,既不会陷入底层数学,又不会太“实战”(以至于只会调参不懂原理)。如果你想硬核一点,我建议先看吴恩达的 ML 课前三章,打好基础,然后就开始看他的 DL 课。基础知识应该差不多了,然后就赶紧去实践吧!
    dyxang
        35
    dyxang  
       2018-12-21 20:50:27 +08:00
    可惜这文章晚了些,刚在班上讲完人工智能演讲。
    人工智能在中国青少年群体里太需要科普了,中国在编程教育这块很差
    olindk
        36
    olindk  
    OP
       2018-12-21 20:53:23 +08:00
    @dyxang wow,你是 AI 学科的老师吗?
    leoleoasd
        37
    leoleoasd  
       2018-12-21 20:54:29 +08:00
    @olindk #33 我高中 但是写过 ML 有关论文 看起来完全没压力
    我同学清北水平 没接触过任何计算机 看这个也没任何压力 我又补充了几句他就能理解 RNN 了
    olindk
        38
    olindk  
    OP
       2018-12-21 20:58:31 +08:00
    @leoleoasd 哇塞,专业玩家啊!你是教什么学科啊?高中就给学生讲这个,真的很棒啊!非常开拓学生视野了,可惜我读书那会儿没有你这样的老师啊。
    leoleoasd
        39
    leoleoasd  
       2018-12-21 21:02:56 +08:00
    @leoleoasd #37 我高中学生 大哥了...
    t6attack
        40
    t6attack  
       2018-12-21 21:11:19 +08:00
    如果把机器学习分为 科研 和 应用,那么,在应用层面,从企业到民间,私下研究的人非常多。
    交流少是因为:认真研究的人,都在埋头研究,不是整天上网闲逛。
    资料少是因为:只要自认为研究的东西有价值,就不会公开。在应用层面,大家彼此是竞争关系。

    在科研层面,知识 /论文、基础框架是公开的。但想投身科研的话,先一头扎紧数学的海洋里修炼五年再说。
    深度学习之父:Geoffrey Hinton 25 岁读博,开始从事 AI 相关研究。然后就是 30 年沉闷的科学家生涯,经验和微小的成果默默积累。直到 59 岁,终于提出了震动世界的新模型。。紧接着,研究成果大爆发,桃李满天下,这些都是 60 岁以后的事。
    olindk
        41
    olindk  
    OP
       2018-12-21 21:11:47 +08:00
    @leoleoasd 哈哈哈!不好意思,我以为你说你是高中老师哈哈哈。
    sfqtsh
        42
    sfqtsh  
       2018-12-21 21:14:12 +08:00 via Android
    写的不错。
    zirconium
        43
    zirconium  
       2018-12-21 21:16:34 +08:00
    mark
    yushiro
        44
    yushiro  
       2018-12-21 22:26:43 +08:00
    feather12315
        45
    feather12315  
       2018-12-21 22:40:57 +08:00 via Android   ❤️ 1
    @yushiro #27,或许可以学一下数值分析,插值与最小二乘法那章。大概阐述了:一个函数可以用一组基来拟合。根本原理就是:泰勒公式。
    我是这样理解的
    SeaRecluse
        46
    SeaRecluse  
       2018-12-22 09:52:20 +08:00
    @yushiro 不是哦,我记得是用小明和他的同学们举例的似乎
    dyxang
        47
    dyxang  
       2018-12-22 17:44:21 +08:00
    @olindk no,我是同学😂,当时是做个关于人工智能大众化的演讲(非报告和科普性质),想让大家的认识不局限于 alphago 与新闻上的人工智能。也是较为易懂的。
    ---
    说点题外话,话说我们也是在一个“新一线城市”的一所重点高中上学,按理来说大家因该很会操作电子产品,但是……
    -同学不知道 U 盘插电脑哪个口。
    -不会用电脑
    -不会用 Chrome
    -不会 添加书签
    -不会弄 ppt (有位同学问我:“我要把 ppt 弄在电脑上是不是需要用 U 盘把 ppt 弄下来再弄到电脑上啊”)
    -有一位同学用 u 盘把 ppt 的快捷方式拷了过来
    dyxang
        48
    dyxang  
       2018-12-22 17:46:22 +08:00
    @leoleoasd 哇哦难得看到同龄人
    uuspider
        49
    uuspider  
       2018-12-23 15:21:05 +08:00
    实际上,我们遇到的 99%的工程问题都用不到深度学习,聚类、逻辑回归、支持向量机就够了,最多随机森林或梯度提升,剩下的那 1%,就算你有能力建好模型,恐怕也没有硬件去验证它。
    luxinxin
        50
    luxinxin  
       2018-12-23 22:08:01 +08:00 via iPhone
    @t6attack 不赞同资料少的说法,据我观察,网上看到的资料和真实工作中用到的没什么太大差别(差别主要来自于细节的处理)
    shm7
        51
    shm7  
       2018-12-25 21:47:35 +08:00 via iPhone
    @yushiro 神经网络不是科学,讲不出为啥的。hinton 都这么说。这都是实验出来的。平时拿做好的模型来迁移训练就成
    zxq2233
        52
    zxq2233  
       2018-12-26 09:35:03 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5422 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 08:26 · PVG 16:26 · LAX 00:26 · JFK 03:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.