斯坦福cs143(基于斯坦福CS231n课程的学习经验与实战技巧|分享总结)
原标题:基于斯坦福CS231n课程的学习经验与实战技巧|分享总结
雷锋网AI研习社按:斯坦福大学的CS231n主要介绍卷积神经网络相关的深度学习知识,课程从算法的公式到实践进行了全面的介绍。基于该课程的三场实战分享直播课近期在AI研习社上线。
在雷锋网的AI研习社直播课上,张智伟,李振,陈闽川三位老师分别为大家带来了使用TensorFlow实现DQN实战、深入讲解图像分类和网络优化以及AI视觉芯片共三场干货满满的直播。该课程结合CS231n课程同时将课程内容与应用领域连接起来,让大家可以真正的学会如何应用深度学习。
以下是嘉宾分享内容:
张智伟:手把手教你用TensorFlow实现DQN
本次分享的内容主要集中在CS231n第十四课——Deep Reinforcement Learning。首先回顾深度学习的几大分支。
什么是强化学习?强化学习是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益。强化学习有两个主体,agent和environment,每个时间节点,agent会输出一个action并传送个环境,环境会产生下一个状态以及产生一个奖励并输入agent,从而构成闭合的循环。
用数学来描述这个过程就是马尔可夫决策过程(MDP),马尔可夫决策过程(Markov Decision Process, MDP)也具有马尔可夫性,与上面不同的是MDP考虑了动作,即系统下个状态不仅和当前的状态有关,也和当前采取的动作有关。MDP实际上是一个五元组,由五个元素组成。
什么是Q-Learning?Q为动作效用函数(action-utility function),用于评价在特定状态下采取某个动作的优劣,可以将之理解为智能体(Agent)的大脑。Q-Learning的核心是贝尔曼方程,它给我们的启示是我们可以用下一时刻的最佳Q值函数表示当前的最佳Q值函数。这样就可以迭代的求贝尔曼方程。
在深度学习的背景下,我们可以用神经网络拟合出最佳Q函数。有了神经网络该如何优化它的函数呢?还是要用到贝尔曼方程。
接下来给大家解读一下DQN算法,主要分为六个部分,对我们比较有用的包含在第二部分和第四部分。
这篇论文我总结了有三个亮点。一是replay memory,二是训练网络与计算标签的网络分离,三是网络结构。
介绍完三个亮点,我们再来看一下算法流程。
讲了论文,我们开始自己使用TensorFlow来实现一个神经网络。主要用的库包括TensorFlow、numpy(数组)、pil(基础图像操作)、gym(openai开源的库)、random。
最后把代码链接发给大家,如有疑问可以看源码:https://github.com/BigJerry/TooNaive/blob/master/DQN/DQN.py
李振:图像分类与网络优化
首先还是普及一下深度学习的基本概念,然后再给大家介绍一下我今天分享的思路,并介绍一些我个人的关于应用的意见。
接下来给大家分享一下我个人对图像分类的一些理解与思路。
首先是任务分析,任务分析主要包括任务的基本情况和数据的基本情况。
确定好任务之后是选择合适的网络,这里我建议大家可以选择已经被验证的比较好的网络,不要急着写自己的网络。网络选完接着就是平台选择,个人建议还是选一些比较容易入手,用的人比较多,资源又丰富的平台。
选定平台后就可以进行预训练,准备数据库。然后就是比较关键的内容即网络的训练、测试与优化,这些内容我跟大家分享一下我个人的技巧。
上面介绍的网络优化中我还想分享一些其他的技巧。我们应优先解决影响最大的问题,即从错误样本里抽取一定数量的样本并进行分类,先解决最容易纠正的。我们还可以用表格记录尝试的的情况。
这些就是我今天全部的分享。
陈闽川:我如何跨界进入AI行业开发视觉芯片
首先我介绍一下自己的学习经历,我硕士毕业之后主要从事芯片的电子设计自动化的工作,主要负责芯片的物理设计,包括芯片的布局布线,还有芯片的自动化流程的开发。这些经历对我进入AI行业有一定帮助。
之后我学习过一些斯坦福公开课比如CS231n,吴恩达的机器学习,以及Coursera的并行计算编程等。我自己也看了一些书,比如周志华的机器学习等。我这次主要想分享一些我转行的经历,以及我的一些观点和视角。
首先我想从毕加索的画说起。
毕加索作为二十世纪最杰出的画家之一,他曾经说过一句话“我画的不是事物的表象,而是不能用肉眼看出的本质”。介绍毕加索和CS231n有什么关系呢?我觉得毕加索的画风类似于深度学习的特征提取。
他从事物的线条逐渐抽象不断提取特征十分类似卷积神经网络中图像识别、图像理解的过程。
接下来我想介绍一下分割迁移,我觉得学习应该以兴趣为导向,我刚开始接触深度学习的时候对风格迁移非常感兴趣。图片的风格迁移的例子如下。
风格迁移的思路是用深度学习学到的特征中的统计信息(分布)描述图像风格。在卷积网络中使用不同的层来提取不同的特征。
自己动手试一下实现风格迁移可以更加感觉到学习的趣味。接下来,我介绍一下经典的神经网络的框架结构。主要包括LeNet、ResNet等。
下面我们主要介绍一下深度学习对芯片行业的影响,目前比较火热的商业场景包括消费电子、安防监控、自动驾驶汽车和云计算。现在比较大的的芯片公司如下。
最后我也希望国内在这波AI浪潮中可以出现世界级的芯片公司。在此引用一段谷歌研究员吴军的话:“一百多年来,总有一些公司很幸运的、有意识或无意识的站在技术革命的浪尖之上。对于一个弄潮的年轻人来说,最幸运的,莫过于赶上一波大潮。”
雷锋网认为目前AI发展正处于鼎盛时期,三位老师都从实践的角度向大家展示了CS231n涉及的内容。希望我们的课程可以给大家一些启发。