Py学习  »  机器学习算法

MIT 深度学习导论

TensorFlow • 5 年前 • 454 次点击  


MIT 深度学习导论 课程和实验面向所有人免费开源(http://introtodeeplearning.com/)


MIT 6.S191:深度学习导论是 MIT 正式开设的一门基础入门课程,并已在其 课程网站 上开源。本课程包括一系列有关神经网络基础知识的基础课程及其在序列建模、计算机视觉、生成式模型和强化学习领域的应用。

注:课程网站 链接

http://introtodeeplearning.com/


MIT 的官方校训是 “Mens et Manus”(知行合一),而我们也坚定地秉持这一理念。作为 MIT 深度学习导论的组织者和讲师,我们希望能开发一门课程,重点关注理解和实现深度学习算法所需的概念基础和实践技能。此时此刻,我们非常高兴地与您分享我们为您制定的课程内容:一系列技术课程(9 个课程)和 3 个TensorFlow 软件实验,专为拥有丰富技术背景的人士设计,并面向所有人 免费开放


MIT 深度学习导论 包括与先进算法相关的技术课程,以及 TensorFlow 中的应用软件实验


知:技术课程。我们首先介绍神经网络的基础知识(感知器、全连接网络和反向传播算法);然后介绍递归与卷积神经网络、生成式模型及深度强化学习;接着探索现代深度学习研究不断拓展的前沿;最后,我们会邀请业界领先的研究人员开展客座讲座。所有课程面向所有人免费开放,请观看下方课程视频。


第 1 课:


第 2 课:


第 3 课:


其他课程,请参考下方:

  • 第 4~6 节课程视频

    请到二文“MIT 深度学习导论(课程视频 • 续一)”观看

  • 第 7~9 节课程视频

    请到三文“MIT 深度学习导论(课程视频 • 续二)”观看


行:TensorFlow 软件实验。我们设计了三个开源的交互式 TensorFlow 软件实验,涵盖内容包括 TensorFlow 基础知识、用于音乐创作的递归神经网络模型、计算机视觉、面部识别除偏系统以及深度强化学习。我们在 Google 出色的 Colaboratory 环境(只需提供 Google 帐号即可开始实验!)中运行实验,其中包含待您完成的 “TODO” 代码块。我们将指导您使用 TensorFlow 的 Keras API 及其全新命令执行风格来定义和训练深度学习模型。


本文重点介绍这三个软件实验及其附带的课程。


借助深入的 TensorFlow 软件实验,获得实践经验



实验 1:TensorFlow 介绍和音乐创作

对我们而言,首要任务是设计出让尽可能多的人能接受的课程和实验。因此,第 1 课重点介绍神经网络的基础知识,而实验 1 中的第一个模块对 TensorFlow 进行简单介绍,其目的也是为即将发布的 TensorFlow 2.0 做准备。


在 TensorFlow 练习的介绍中,我们特别强调几个关键概念:如何使用数学运算符执行计算;如何定义神经网络模型;如何使用自动微分训练具有反向传播的网络。


介绍完 TensorFlow 模块后,直接进入 实验 1 的第二个模块,即构建和应用递归神经网络 (RNN) 来创作音乐。该部分旨在配合第 2 课深度序列建模。您将构建相应的 AI 算法,从而创作出从未听过的全新爱尔兰民谣。您可能会问,为什么要创作爱尔兰民谣?因为我们认为下面这些舞动的幸运草(由 Google 提供)非常可爱,而它们正在演奏爱尔兰民谣。

注:实验 1 链接:

https://github.com/aamini/introtodeeplearning_labs/tree/master/lab1



您将通过填写代码块来定义 RNN 模型,使用(ABC 乐谱)爱尔兰民谣数据集训练模型,使用习得的模型创作新歌,然后播放并聆听歌曲,检验模型的成果。请欣赏我们创作的 示例歌曲(https://soundcloud.com/alexanderamini/mit-6s191-rnn-irish-folk-song)



实验 2:计算机视觉:面部识别除偏系统

实验 2 中附有关于深度计算机视觉和深度生成式模型的课程。第 1 部分通过提供卷积神经网络 (CNN) 示例,让您继续练习实现基本神经网络架构,从而对知名 MNIST 数据集中的手写数字进行分类。

注:实验 2 链接

https://github.com/aamini/introtodeeplearning_labs/tree/master/lab2


此实验的第二部分将更进一步,探讨两个具有代表性的应用深度学习示例:人脸检测和算法偏见。尽管神经网络在识别图像中的人脸方面表现出色不足为奇,但最近很多人开始担心,这类 AI 技术可能会受到隐藏的算法偏见的影响。事实证明,深度学习自身 便能帮助对抗这种偏见。


在近期的工作中,我们训练了一种基于变分自动编码器 (VAE) 的模型,该模型学习特定任务(如人脸检测),及训练数据的基础结构。然后,算法使用这个习得的潜在结构来发现并最大程度减少隐藏的偏见。在应用于人脸检测任务时,相较于最先进的模型,我们的算法可降低分类偏见并维持较高的整体精确度。


这项软件实验正是受到这项工作的启发:实际上,您将构建此除偏模型,并评估其在消除人脸检测偏见任务中的作用。



除了思考算法偏见问题及如何对抗偏见之外,您还将获得使用 VAE 架构的实践经验,而深度学习实现教程中通常不会强调这种架构。例如,您将填写以下代码块,为除偏模型中使用的 VAE 定义损失函数:

def debiasing_loss_func(x, x_pred, y_label, y_logit, z_mu, z_logsigma, kl_weight=0.005):
 # compute loss components
 reconstruction_loss = tf.reduce_mean(tf.keras.losses.MSE(x,x_pred), axis=(1,2))
 classification_loss = tf.nn.sigmoid_cross_entropy_with_logits(labels=y_label, logits=y_logit)
 kl_loss = 0.5 * tf.reduce_sum(tf.exp(z_logsigma) + tf.square(z_mu) - 1.0 - z_logsigma, axis=1)
 
 # propogate debiasing gradients only on relevant datapoints
 gradient_mask = tf.cast(tf.equal(y_label, 1), tf.float32)
 
 # define the total debiasing loss as a combination of the three losses
 vae_loss = kl_weight * kl_loss + reconstruction_loss
 total_loss = tf.reduce_mean(classification_loss + gradient_mask * vae_loss)
 return total_loss


重要的是,这种方法能够应用于人脸检测之外的任何环境,即我们想要针对数据中可能存在的失衡进行除偏的任何环境。


如果您想了解详情,请查看 此论文:Amini、Soleimany 等人的 “Uncovering and Mitigating Algorithmic Bias through Learned Latent Structure”。 AAAI/ACM Conference on Artificial Intelligence, Ethics, and Society(2019 年)(http://www.aies-conference.com/wp-content/papers/main/AIES-19_paper_220.pdf)



实验 3:无模型强化学习

最后一个实验 中,学员将探索类别不同于前两个实验的学习问题。在第 5 课中,学员将了解深度强化学习的基本技术。

注:最后一个实验 链接

https://github.com/aamini/introtodeeplearning_labs/tree/master/lab3


与先前专注于监督式和非监督式学习的实验相比,强化学习旨在教授智能体在现实中行动,以最大程度地提高其自身的奖励。TensorFlow 的命令执行风格能够为强化学习提供简单的方法,学员可在实验 3 中从头编写这段完整的程序。


我们专注于在控制(如 Cart-Pole)和游戏(如 Pong)环境中学习两个任务。学员的任务是构建模块化的强化学习框架,从而仅使用一个 “强化学习大脑” 学习这两种差异巨大的环境。


通过处理这些基线环境,学员能迅速掌握实现以下目标的方法:快速创建新算法原型、具体了解如何实现强化学习训练过程,以及将这些想法用作最终项目中的模板。



总结

感谢 TensorFlow 团队和我们优秀的 TA 团队一直以来为这门 MIT 课程提供的支持。学员可以在 MIT 6.S191 软件实验中,借助 TensorFlow 实现课程中介绍的先进技术和算法,从而快速获得实践经验。


MIT 6.S191:Intro to Deep Learning (@mitdeeplearning) | Twitter(https://twitter.com/mitdeeplearning)



更多 AI 相关阅读:



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/31124
 
454 次点击