深度学习入门的建议_来自《简单粗暴Tensorflow2》

 2023-09-09 阅读 30 评论 0

摘要:参考资料与推荐阅读一.如果你是一名在校大学生,具有较好的数学基础,可以从以下教材入手,作为学习机器学习的起点:二.如果你希望更具实践性的内容,推荐以下书籍:三.如果你对大学的知识已经生疏,或者还是高中生,推荐首

参考资料与推荐阅读

      • 一.如果你是一名在校大学生,具有较好的数学基础,可以从以下教材入手,作为学习机器学习的起点:
      • 二.如果你希望更具实践性的内容,推荐以下书籍:
      • 三.如果你对大学的知识已经生疏,或者还是高中生,推荐首先阅读以下教材:
      • 四.对于贝叶斯的视角,推荐以下入门书籍:
      • 五.如果你喜欢相对生动的视频讲解,可以参考以下公开课程:
      • 六.其他在线资料
      • 七.相对的,一本不够适合的教材则可能会毁掉初学者的热情。对于缺乏基础的初学者,不推荐以下书籍:
      • 八.建议
        • 1. 不要担心
        • 2. 记住它仍然是代码
        • 3.找一个伙伴
        • 4.避免认知超载
        • 5. 如何设定
        • 6. 具有竞争力
        • 7. 不走弯路
        • 8. 使用你的编程印章
        • 9. 最后,复习一下你的数学
        • 10.有用资源

一.如果你是一名在校大学生,具有较好的数学基础,可以从以下教材入手,作为学习机器学习的起点:

李航. 统计学习方法 . 清华大学出版社,2012. (有课件可在 清华大学出版社网站 下载,点击 “资源下载”-“网络资源” 即可。有书中算法的 GitHub 开源代码实现 )

书籍:https://book.douban.com/subject/10590856/
课件:http://www.tup.tsinghua.edu.cn/booksCenter/book_08132901.html
书中算法的 GitHub 代码实现 :https://github.com/fengdu78/lihang-code

周志华. 机器学习 . 清华大学出版社,2016.

https://book.douban.com/subject/26708119/

邱锡鹏. 神经网络与深度学习 . 机械工业出版社,2020.(有在线版本可阅读)

https://nndl.github.io/

二.如果你希望更具实践性的内容,推荐以下书籍:

Aurélien Géron. 机器学习实战:基于 Scikit-Learn 和 TensorFlow . 机械工业出版社,2018.

https://book.douban.com/subject/30317874/

郑泽宇,梁博文,and 顾思宇. TensorFlow:实战 Google 深度学习框架(第 2 版) . 电子工业出版社,2018.

https://book.douban.com/subject/30137062/

阿斯顿・张(Aston Zhang), 李沐(Mu Li), 扎卡里・C. 立顿 等. 动手学深度学习 . 人民邮电出版社,2019. (有在线版本可阅读)

https://zh.d2l.ai/index.html

三.如果你对大学的知识已经生疏,或者还是高中生,推荐首先阅读以下教材:

汤晓鸥,and 陈玉琨. 人工智能基础(高中版) . 华东师范大学出版社,2018.

https://book.douban.com/subject/30209224/

四.对于贝叶斯的视角,推荐以下入门书籍:

皮隆,辛愿,钟黎,and 欧阳婷. 贝叶斯方法:概率编程与贝叶斯推断 . 人民邮电出版社,2017.

https://book.douban.com/subject/26929874/

五.如果你喜欢相对生动的视频讲解,可以参考以下公开课程:

台湾大学李宏毅教授的《机器学习》课程 ( 讲义点此 ,中文,讲解生动且更新及时)

课程:https://www.bilibili.com/video/av10590361
这个bilibili课程,记得看下下面的评论,有配套赶货。课程(李宏毅YouTube主页):https://www.youtube.com/channel/UC2ggjtuuWvxrHHHiaDH1dlQ
讲义:http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17.html
2020年李宏毅课程官网学习路线安排:http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML20.html

谷歌的《机器学习速成课程》 (内容已全部汉化,注重实践)

https://developers.google.cn/machine-learning/crash-course/

Andrew Ng 的《机器学习》课程 (英文含字幕,经典课程,较偏理论,网络上可搜索到很多课程笔记)

https://www.bilibili.com/video/av29430384

六.其他在线资料

零基础入门深度学习(师兄推荐):https://www.zybuluo.com/hanbingtao/note/433855
配套的代码:https://github.com/Danielyan86/learn_dl/tree/master/python3

往后就是去阅读keras中文文档,就是老师说的tensorflow,直接用套件的那种,会调参就行。

keras中文文档: https://keras.io/zh/

七.相对的,一本不够适合的教材则可能会毁掉初学者的热情。对于缺乏基础的初学者,不推荐以下书籍:

Goodfellow, Ian, Yoshua Bengio, and Aaron Courville. 深度学习 . 人民邮电出版社,2017.

又名 “花书”(源于封面),英文版 在线开放阅读 ,中译见 exacity/deeplearningbook-chinese 。这是一本深度学习领域的全面专著,但更像是一本工具书。

英文版:http://www.deeplearningbook.org/
中译本:https://github.com/exacity/deeplearningbook-chinese

Bishop, Christopher M. Pattern Recognition and Machine Learning . Information Science and Statistics. New York: Springer, 2006.

https://www.microsoft.com/en-us/research/people/cmbishop/prml-book/

又名 “PRML”(书名首字母缩写),目前已开放 免费下载 。以贝叶斯的视角为主,同时其难度可能很不适于缺乏数学基础的入门者。

重要
不推荐以上书籍,并不是说这些作品不够优秀! 事实上,正是因为这些书籍太优秀,影响力太大,才以至于不得不拿出来特意提醒一下,这些书可能并不适合于绝大多数初学者。就像应该很少有学校用《计算机程序设计艺术》(TAOCP)作为计算机的入门教材一样。对于已经入门或者有志于深层次研究的学者,当可从这些书籍中受益匪浅。

八.建议

我就是那个过于注重基础,看的人以至于很长一段时间都没有什么明显进步的例子。直到最近尝试纯手写CNN才开始进步快,之前迷迷糊糊的都开始开窍了。所以刚开始还是建议实践,“quick and dirty”,想着先搞好数学基础的话太久而且太劝退了,而且现在的框架都抽象地很好,这些暂时可以先不管。就好像我之前以为我懂BP,可当我开始写的时候就发现我懂的是概念和思路,具体实现和推导我是一滩浆糊的,尤其到conv的bp,而刚开始其实做的前面那一步就可以了。我想这也是李宏毅用keras的原因之一。之后才分情况,想搞研究就往回补基础。想实际应用就多实践。一开始数学基础并不重要,但越到后面就越来越重要。这篇文章比我说得好太多,而且我说的这些也都是刚从这里看到的,可惜看得太晚。建议大家看看

https://evilmartians.com/chronicles/learning-how-to-learn-deep-learning

这场革命开始于你的有生之年,你想要参与其中。你觉得痒,却不知道怎么抓。您想了解更多关于AI/ML/DL的信息并对其进行实验。你不知道从哪里开始。

大家好,我叫阿列克谢,两年前我就是那个人。如今,我在我作为CTO领导的一家社交媒体管理初创公司Amplifr负责机器学习。我仍然与“传统”代码密切相关:毕竟,我们是一个Ruby on Rails应用程序。当我不在我们的主要代码库上工作时,我参与机器学习竞赛(最近在一个主要的NLP比赛中获奖),每天参加人工智能会议,阅读科学论文,实验和探索如何运用机器学习使Amplifr从竞争中脱颖而出。

首先,让我们把事情说清楚。人工智能、机器学习和深度学习(Artificial Intelligence, Machine Learning, and Deep Learning)这些术语的“正确”使用是一个无休止的争论的主题,很快就会让初学者感到相当高深和困惑。为了简单起见,让我们把ML看作是一组来自ai的工具,而DL则是其中的一个子集。我将在某种程度上交替使用这三个术语,但主要是在深度学习的背景下。

我仍然清楚地记得重新开始的感觉,所以我想给那些刚刚开始探索新领域的人一些建议。

1. 不要担心

假设你对数学不是很感兴趣。就我个人而言,八年前我从一所技术大学毕业,之后就没有读过数学教科书(至少在我开始DL之前)。你知道它是怎么回事:你阅读语言/框架(language/framework)文档的次数比其他任何事情都多。

在google上搜索了一些信息,并和你周围那些更喜欢数学的人聊了几句之后,你会发现在尝试用神经网络解决现实世界的问题之前,你需要积累大量的知识。至少,这是我两年前的印象:

  • 掌握好线性代数,教科书,矩阵运算,笔和纸,高方括号里的数字行。
  • 沉迷于概率论,更多的教科书。托马斯·贝叶斯又成了你的朋友了。P(A) P(B)等等。
  • 学习所有经典的ML概念,从线性回归开始。
  • 学习如何用Python、C、c++或Java实现所有这些算法。
  • 学习如何烹饪数据集,提取特征,微调参数和开发一种对适合手头任务的特定算法的直觉。
  • 熟悉DL框架/库(在我的时代,是Theano和Torch,现在可能是PyTorch、TensorFlow和Keras)。

根据一些专家的说法,只有在掌握了所有这些之后,你才可以去解决一些实际问题,比如区分猫和狗。

如果你有点像我,上面的清单足以让你的相形见愧,只会导致甜蜜的拖延。

不过别担心!虽然从技术上讲,列表中的所有内容都是正确的,但这些都不是入门级的要求。如果你知道如何编程,你已经知道如何训练一个模型。

2. 记住它仍然是代码

看看这段代码:

# a bunch of Python imports like:
from fastai.imports import *data = ImageClassifierData.from_paths("./dogscats", tfms=tfms_from_model(resnet34, 224))learn = ConvLearner.pretrained(resnet34, data, precompute=True)learn.fit(0.01, 3)# Wait 17 seconds or so...

从中我们能看出什么?

  • 这是Python。
  • 它使用fastai深度学习库。github链接:https://github.com/fastai/fastai
  • 它有三行(不包括导入)。
  • resnet34在这里似乎很重要。在谷歌上搜索一下就知道了。resnet34链接:https://www.kaggle.com/pytorch/resnet34/home

这是一个神奇的(而且免费的)Jeremy Howard的fast.ai课程的例子。Jeremy提倡的观点是:从预先录制的抽象开始,在一些实践之后再深入挖掘。

上面的代码调整了一个预先训练过的图像分类模型(在ImageNet上训练过,ImageNet是一个大约有1500万张图像的数据集),这样它就可以解决之前提到的狗和猫的问题。它在3个epoch(传递数据)内达到98%的精度。在配备GPU的计算机上进行训练需要17秒。这些结果打击了早期试图解决同样问题的尝试。

当然,在这三行代码的背后,隐藏着多年的研究、数十篇学术论文和数千个小时的试验和错误。但是现在你可以用这些线。一旦你了解了它的要点——为你自己的用例分类图片(并在生产中使用它)与区分猫和狗并没有什么区别。

3.找一个伙伴

我更愿意把自己看成是一个努力工作、学习能力强的人。作为一名刚毕业的程序员,我在微软的领地上开始使用c#和.NET。很快我就发现了Ruby的美丽和表现力,并投入到Rails中,最终变得足够优秀,能够作为一名初级开发人员通过臭名昭著的充满挑战的“邪恶的火星人”面试。我很快就在一家初创公司担任了首席技术官,这家公司最初只是一个内部项目。与此同时,我参与了一些Ruby gems的开发(gon在Rails社区中非常流行),在会议上发言,指导开发人员进行最佳实践——如果你是邪恶的火星人团队的一员,那么一切都是正常的。我也相信改变观点的好处。在全职使用Ruby的同时,我也涉足了c++、Haskell、JavaScript和有点晦涩的Eve。

在我的业余时间,我弹低音提琴和吉他,喜欢油画,从事冲浪。

然而,拖延症对我来说也并不陌生:在我效率较低的时候,我会沉迷于电视剧,在mmorpg游戏和奇幻小说上浪费数小时。毕竟,我是个书呆子。

当我准备开始学习机器学习,特别是深度学习时,我的朋友和我都在“风暴英雄”的狂欢中。

为了骗自己在通往新知识的漫长道路上迈出第一步,我必须和我的朋友达成协议,他也梦想着人工智能。我们决定一起停止拖延,参加同一门课程,监督彼此的成就。现在我们经常一起参加比赛。

如果你没有一个线下的朋友愿意和你一起学习,互联网就是你的朋友:网上有很多地方可以找到其他初学者一起学习。

4.避免认知超载

众所周知,学习太难的东西是令人沮丧的经历。作为人类,我们天生就会避免沮丧。与此同时,过于简单的学习也不会令人满意:你很快就会失去任何动力。诀窍是要精确地咀嚼你能咀嚼的东西。

我上的第一门在线课程是Udacity的深度学习纳米学位( Udacity’s Deep Learning Nanodegree):这是一门价格昂贵的课程(现在999美元,当时我上它的时候大约400美元),它承诺提供为期四个月的理论入门课程,以及在现实世界中应用所学知识所需的实践。作为奖励,修完课程就可以打折获得自动驾驶汽车纳米学位。

我的错误是我做得太深了,没有事先做好准备。当我感觉在课程中介绍的一些概念上有点落后时,我惊慌失措,开始阅读我能在网上找到的所有东西:文章、书籍和其他课程。

因此,我不能把注意力集中在一个本应该给我提供基础的材料上。事后看来,我强烈建议只学习一门课程,而不要同时学习。毕竟,人们并不擅长同时处理多项任务。

如果我现在开始,我会先看 Jeremy Howard’s fast.ai(我前面已经提到过),以及Andrew Ng最新的Coursera课程(课程附带证书费用,但你可以免费获得)。它包括五个课程:神经网络和深度学习的介绍;发现卷积神经网络 convolutional neural networks(这是处理图像数据必不可少的),序列模型sequence models(语音识别,音乐合成,任何时间序列数据)。

Andrew Ng’s latest Coursera offering
https://www.coursera.org/specializations/deep-learning神经网络和深度学习的介绍
https://www.coursera.org/learn/neural-networks-deep-learning卷积神经网络 convolutional neural networks
https://www.coursera.org/learn/convolutional-neural-networks序列模型sequence models
https://www.coursera.org/learn/nlp-sequence-models

第二门课程更侧重于理论,而第一门课程强调“快速而粗糙”的实现,我认为这是最好的入门方式。只需要记住调整你自己的节奏,避免同时处理多项任务,并且循序渐进。

5. 如何设定

不要尝试一次性学习,试着选择使用深度学习技术能够提供更让你个人满意的结果的领域。做一些你可以关联的事情(而不是处理随机的抽象数据点)会让你充满动力。你需要一个反馈循环,从你的实验中得到切实的结果。

以下是一些启动项目的想法:

  • 如果你对视觉艺术(电影、摄影、视频、美术)充满热情,那就投身于计算机视觉吧。神经网络用于对图像上的物体进行分类,突出感兴趣的区域(MRI扫描上的异常或路上的行人),检测肖像上的情绪或年龄,转移艺术风格,甚至生成原始艺术品。
  • 如果你更喜欢声音,你可以用神经网络来创作音乐,分类音乐类型,并像Spotify那样推荐新曲目。或者,你可以探索声音风格的转换,假装用另一个人的声音说话。
  • 如果你喜欢电子游戏,你绝对应该看看强化学习。你可以训练游戏AI在你最喜欢的游戏中比你自己更好。而且,你可以玩,没有人会因此责备你,因为,你知道,研究。
  • 如果你热衷于用户体验和客户support-look到自然语言处理和сhatbots,这样你可以自动化(一定程度上)与你的客户交流:推断意图从一个消息,分类的支持门票,提供直接的回答最常见的问题。

在尝试了计算机视觉之后,我和我的朋友把注意力转向了自动语音识别(ASR)和自然语言处理。计算机视觉(行业巨头(谷歌、苹果)支持无人驾驶汽车项目)是现在最资助的研究领域,同时也是深度学习技术最能巩固其地位的领域:在图像分类方面,神经网络预测准确率从2010年的不到75%提高到2018年的98%以上。

另一方面,与语言相关的挑战(尤其是那些与书面演讲有关的),直到最近才开始从神经网络中受益。现在最热门的领域是机器翻译Machine Translation(MT)。每个人可能都注意到了谷歌的翻译质量在过去的几年里有了很大的提高。自2015年以来,深度学习在其中发挥了重要作用。

为了了解DL能以多快的速度改变一个几十年来都没有重大进展的研究领域,这里有一个有趣的事实:
神经网络在三年前的2015年首次出现在机器翻译比赛中。2016年,此类竞赛中90%的参赛者都是基于神经网络的。

有大量的知识可以从学术论文中提取出来,并应用到现实世界的任务中,特别是如果你的创业公司与文本有关(而Amplifr就是这样)。

如果这让您有信心尝试将深度学习应用于NLP,请参阅斯坦福的CS224n课程:“深度学习的自然语言处理”。你不必是斯坦福大学的学生才能学习这门课程:所有的课程视频都可以在YouTube上找到。如果你在小组中取得了最好的进步,那么你可以在reddit上找到在线学习伙伴。

斯坦福的CS224n课程:“深度学习的自然语言处理”:Stanford’s CS224n course: “Natural Language Processing with Deep Learning”
https://web.stanford.edu/class/cs224n/youtube视频地址:https://www.youtube.com/watch?v=OQQ-W_63UgQ&feature=youtu.be

6. 具有竞争力

机器学习领域天生就充满了竞争。2010年,如今由数据科学家和机器学习者组成的全球最大社区Kaggle将黑客马拉松的精神带到了这个几乎是学术领域的领域。从那时起,以竞争的方式解决ML任务就成为了标准实践。从微软(Microsoft)到欧洲核子研究中心(CERN),企业和机构为解决挑战的人提供奖励,以换取使用获奖作品背后技术的免版税许可。

ML竞赛是评估你的技能的最好方式,获得在某个领域的“基线”感觉,从更先进的竞争者那里获得灵感,找到同事合作,让你的名字出现在那里。

对于一个业余的机器学习者来说,参加一场比赛是必经之路。对于我和我的朋友来说,这段经历发生在2017年,也就是我们开始自学的一年。我们选择“从太空了解亚马逊”这个Kaggle比赛,因为这是我们的玩多层次图像分类的机会(我们也关心环境)。两个多月来,我们每个周末都在解决这个问题:从卫星图像中探测森林砍伐,并区分其原因。

“从太空了解亚马逊”这个Kaggle比赛
https://www.kaggle.com/c/planet-understanding-the-amazon-from-space

在所有与DL相关的事情上取得快速进展的另一个迹象是:一年前,我们花费了大量的时间和精力,试图用更少的钱哄骗谷歌云平台(Google Cloud Platform)运行我们的实验。今天,谷歌提供了一个免费的gpu支持的Jupyter notebook环境( free GPU-backed Jupyter notebook environment),并且有大量的服务将乐意为您训练您的模型。

谷歌提供的免费的gpu支持的Jupyter notebook环境
https://colab.research.google.com/notebooks/welcome.ipynb大量的服务将乐意为您训练您的模型
https://www.floydhub.com/
https://www.paperspace.com/

我们没有拿奖,进入排行榜上的前15%(这没什么好吹嘘),犯了书中每一个初学者的错误,但是这个经验是无价的,我们获得信心继续努力和选择下一个竞争,这次在NLP领域。

下一个挑战是开发问答系统(由一个主要的俄罗斯银行托管),竞争者必须使用一个独特的数据集,这个数据集是著名的SQUAD(SQUAD斯坦福的阅读理解数据集——由志愿者基于维基百科的文章创建的15万个问题组成)。

挑战:
https://sdsj.sberbank.ai/static/2017/en/contest.htmlSQUAD
https://rajpurkar.github.io/SQuAD-explorer/

这项任务是训练一个系统——根据一篇文章回答问题。该模型在Docker容器(RAM限制为8GB)中提交,它应该能够在给出一个自然语言的问题时突出显示一段文本中的相关部分。通常发生在最具挑战性的比赛,我们必须提交已经不是一个训练模型,但是解决方案必须充分训练,给测试问题的答案(和测试数据集只是部分公众,以确保公平竞争)在机器2个小时的时间。

我们的解决方案在公共排行榜上排名第二,但我们太专注于解决一个任务,以至于忘记了正确阅读规则:他们说,合作是禁止的,只接受个人参赛。我们不得不全盘招供,并获得了“安慰”铜奖(类似于戛纳电影节的奖项,指的是一部影片在“非竞争”状态下放映)。

幸运的是,我们没有被取消参赛资格,但我们吸取了教训。现在,我敦促每个人都要克服最初的冲动,迎头解决这个问题,并花些时间仔细阅读规则。

由于我对深度学习的兴趣主要是面向生产的(想出可以应用于我的初创公司的实际需求的解决方案),我还注意到,看看排行榜可以让你很好地了解你离生产有多近。顶级解决方案通常是学术性的,还没有准备好进行商业部署,而银牌、铜牌和以下级别的解决方案通常是应用程序中最有前途的解决方案。

7. 不走弯路

深度学习的好处和坏处在于该领域的发展速度。甚至这篇文章(尽管它是介绍性的、个人的、非学术性的)在发表之前在某些方面可能已经过时了。

了解最新情况的最好方法是成为一个充满ML爱好者的大型在线论坛的一部分。如果你幸运地理解俄语,一定要加入开放数据科学社区:一个拥有超过12000名用户和超过140个公共频道的公共Slack服务器。

放数据科学社区 Open Data Science:https://ods.ai/

你可以通过Reddit的r/MachineLearning或者Meetup.com找到更小的、更多的本地群组。

Reddit’s r/MachineLearning:https://www.reddit.com/r/MachineLearning/
Meetup.com:https://www.meetup.com/

如果你碰巧知道任何符合ODS规模的国际Slack集团(不要与ODCS混淆,ODCS也是一种AI资源),请务必让我们知道!

international Slack group :
https://towardsdatascience.com/15-data-science-slack-communities-to-join-8fac301bd6ceODCS:https://opendatascience.com/

建立一个Twitter feed和电子邮件订阅也是保持联系的关键。你也可以把你的时间投入到世界各地的各种离线训练营中。

在我去毕尔巴鄂参加深度学习国际暑期学校之前,我一直以为西班牙的夏令营是为冲浪而设的。这是一个草率的决定,但我并不后悔:它完全符合我的水平(在这个领域工作了一年之后)。在缺乏实践的情况下,这所学校更像是一场会议,尽管是一场非常紧张的会议:朝九晚六,连续五天。整个课程被分成几个部分,每个部分并行进行,每名演讲者进行三个小时半的演讲。

International Summer School on Deep Learning深度学习国际暑期学校:http://grammars.grlmc.com/DeepLearn2017/

一旦你感到更加自信,尝试参加一个关于AI、ML和DL的主要会议:今年,我很幸运地访问了ICLR。其他著名的国际会议是CVPR(特别是计算机视觉)和NIPS。是的,在人工智能领域,你的生活几乎完全由首字母缩略词组成。

ICLR:https://iclr.cc/
CVPR:http://cvpr2018.thecvf.com/
NIPS:https://nips.cc/

8. 使用你的编程印章

让我们承认一个显而易见的事实:Python完全赢得了AI和数据科学社区的支持。今天可能没有理由从另一种语言开始,除非你真的很擅长它,或者计划处理一些底层的优化。

对我来说,作为一名Ruby开发人员,切换到Python是一种简单而愉快的体验。只需几周的练习(以及学习数组索引技巧和理解),就能让你感觉舒服一些。不过,我花了一些时间完成了免费的中级Python编程课程,这绝对没有什么坏处。

Python书:https://python-3-patterns-idioms-test.readthedocs.io/en/latest/index.html

对于一个正在实践的软件工程师来说,语言“障碍”不是问题。对于非编程背景的爱好者来说,进入DL是比较困难的。所以你已经领先一步了。

但是,不要期望一些一流的OOP(Object-oriented programming面向对象的程序设计)代码和直观的api。在我的团队中,大多数公开代码示例也不会通过严格的代码审查。毕竟,这与软件工程无关,而是与数学有关:矩阵乘法需要先乘矩阵,干净的DSL(Domain-specific language领域特定语言) (Ruby让你习惯于好的DSL)总是事后才想到。

即使在同一个库中,相同的功能也可能具有不同的api。(The same functionality can have different APIs even inside the same library.)
创建一个都为1的数组是用np.ones((2,3))(接受一个元组)来完成的,而创建一个相同形状的随机数数组是用两个单独的整型参数:np.random.randn(2,3)来完成的,这似乎有些令人困惑。

numpy官网手册:https://numpy.org/doc/stable/index.html

另外,不要对文档或样式抱太大希望。在将一些学术论文翻译成代码时,一旦遇到一些重要的细节,就必须阅读库的源代码,这并不容易。测试覆盖率也经常缺乏。

然而!这是一个充分利用最佳编程实践的机会:您可以自由地利用公开可用的Jupyter notebook创建良好的可重用库。

9. 最后,复习一下你的数学

当然,我把最好的留在最后。最终,您将不得不消除所有数学上的差距。特别是当你覆盖了你的基础,你愿意留在前沿和跟踪学术出版物。

幸运的是,机器学习有自己的“圣经”——一本长达800页的超厚教科书——《深度学习(自适应计算和机器学习)》,作者是伊恩·古德费罗(Ian Goodfellow)、约舒亚·本乔(Yoshua Bengio)和亚伦·考维尔(Aaron Courville),该书被称为“深度学习书”。幸运的是,这本书可以在网上免费下载。

下载地址:http://www.deeplearningbook.org/

第一部分(线性代数,概率和信息理论,数值计算,机器学习基础Linear Algebra, Probability and Information Theory, Numerical Computation, Machine Learning Basics)是简单的入门最小,令人惊讶的是,在继续当前的研究时,你就不会那么害怕了。是的,130页的书读起来不那么悠闲,但你不会后悔读了它。

Linear Algebra
http://www.deeplearningbook.org/contents/linear_algebra.htmlProbability and Information Theory
http://www.deeplearningbook.org/contents/prob.htmlNumerical Computation
http://www.deeplearningbook.org/contents/numerical.htmlMachine Learning Basics
http://www.deeplearningbook.org/contents/ml.html

像你我这样的“好奇的软件开发人员”将成为这场已经开始的革命背后的主要驱动力。也许,我们并不完全处于科学的前沿(否则你可能不会读到这篇文章),但有能力实现来自学术界的最佳想法,一次一个应用,是我们改变世界的方式。

10.有用资源

Deep Learning Book——所有你需要的东西,以加快一些正式的数学。尽管文本是相当快节奏的,但是你可以很容易地在网上找到关于所描述概念的更实际的解释。

http://www.deeplearningbook.org/

deeplearning。Andrew Ng提供的Coursera课程。可以免费服用。在我看来,唯一的先决条件就是会编程。

https://www.deeplearning.ai/

Practical Deep Learning For Coders :Jeremy Howard为程序员提供的实用深度学习。完全免费的。这是一门为期7周的课程,专为那些想要尝试深入学习却不知从何开始的程序员开设。

https://course.fast.ai/

对于热爱人工智能和深度学习的人来说,必读的博客(Must-read blogs for AI and Deep Learning enthusiasts)——开始建立你的阅读清单吧!

https://blog.paralleldots.com/data-science/must-read-blogs-ai-deep-learning-enthusiasts/

一些电子邮件订阅(Some email subscriptions)保持消息灵通。

https://becominghuman.ai/6-ai-subscriptions-to-keep-you-informed-4cfc6cb024a?gi=6294a22f55

Distill.pub:以最好的交互方式展示机器学习研究的平台。完美的“视觉”学习者。

https://distill.pub/

一个伟大的重述矩阵微积分为深入学习。托管在explained.ai——个值得注意的(但仍然相当小)收集的明确解释的ml相关的主题。

 recap of matrix calculus for deep learning——The Matrix Calculus You Need For Deep Learning
https://explained.ai/matrix-calculus/index.htmlexplained.ai——https://explained.ai/

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/36522.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息