新手如何开始学深度学习?别着急,看看别人走过的路先

2024-06-21 09:48

本文主要是介绍新手如何开始学深度学习?别着急,看看别人走过的路先,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”


作者:Arkar Min Aung

编译:ronghuaiyang

前戏

新手如何开始学深度学习,这个问题很难回答,每个人似乎都有自己的一套方法,在开始之前,先看看别人是怎么做的,也许会对自己有所启发。

刚开始学深度学习的时候,一定要像婴儿学步一样,慢慢的小步走。

很多人问我如何开始机器学习和深度学习。在这里,我整理了一个我使用过的资源列表,以及我第一次学习深度学习时所走过的路。

免费课程

从Andrew Ng在Coursera上的机器学习课程开始(https://www.coursera.org/learn/machine-learning)。这门课程会教会你机器学习的一些诀窍,并且会提高你的线性代数技巧。你一定要好好作业,在完成课程后,你会掌握机器学习的概念,例如:线性回归、逻辑回归、支持向量机、神经网络和k均值聚类。你也有机会建立一个推荐系统来玩玩。这会开阔你的眼界,让你更有信心进入机器学习和深度学习的领域。但是要知道,还有许多其他重要的概念,这门课程无法涵盖。所以,在这门课结束后,要准备好拓宽你的知识面。如果你在完成吴博士的课程后非常兴奋,你应该去看看他的其他课程,它是Coursera上深度学习专业课程的一部分。

Fast.ai提供免费的在线深度学习课程,课程分为两个部分:

  • 深度学习第一部分:Practical Deep Learning for Coders

  • 深度学习第二部分:Cutting Edge Deep Learning for Coders

在这些课程之后,您可能已经准备好学习Hinton的机器学习神经网络了。Hinton的课程相对于前面提到的课程来说比较难,因为课程很枯燥,而且包含了更多的数学概念。如果你觉得你还不能解决这个问题,不要慌!停一段时间,先做数学部分(在下一节中描述),然后再回来。这次你一定能解决这个问题!记住,决心,决心,决心,更多的决心。

数学

深度学习当然需要你对线性代数、微分学和向量有很好的掌握。如果你想快速复习一些基本的线性代数并开始写代码,强烈推荐Andrej Karpathy的黑客神经网络指南。我发现hadrienj 's notes在《深度学习》一书中对实际了解底层数学概念,以及如何使用Python (Numpy)非常有用。如果你喜欢从视频中学习,3blue1brown有一个关于线性代数微积分, 神经网络以及其他数学相关概念的非常好的视频。在非卷积问题上自己实现一个基于cpu的反向传播算法也是真正理解反向传播工作原理的好方法。

来点真格的

如果你想提高你的机器学习知识,并准备认真对待(我的意思是研究生水平的认真对待),去研究一下 Learning From Data ,这是一本加州理工教授写的书。准备好做所有的数学运算。这可能有点挑战性,但是你要是读完了而且做完了作业的话,绝对是值得的。我认为,教科书很难捕捉到目前深度学习的状态,因为这一领域的发展速度非常快。但最受欢迎的教科书应该是 Goodfellow, Bengio, 和Courville的《深度学习书》(http://www.deeplearningbook.org/)。它可以在网上免费下载,所以你也可以一章一章地下载,一章一章地阅读课本。

论文,论文,论文,我再也追不上它们

是的,深度学习的知识主要来自论文,而这些论文的发表速度在当今是非常快的。Reddit是一个很好的起点。订阅/r/machinelearning/r/deeplearning。不过我觉得机器学习的reddit版块更有用。ArxivSanity是一个查看与你正在寻找的论文相关的论文的好地方。在深度学习中,阅读论文时要做的一件重要的事情就是做好文献综述。做一个好的文献回顾可以让你更好地了解事物是如何发展的。解决文献综述问题的一种方法是安装谷歌Scholar Chrome扩展并搜索你想查找的论文。你可以跟随“相关文章”和“被引用”来跟随之前的工作以及基于那篇论文的新工作。阅读论文的一个好习惯是在论文中画出概念的思维导图。

640?wx_fmt=png

当我阅读一篇关于“few-shot learning”的论文时,我画出了这张思维图。

思维导图的优点是它是一种很好的方法来跟踪文章中提出的概念之间的关系。我发现思维导图对于跟踪相关文献以及它们与我正在阅读的论文之间的关系非常有用。思维导图能让我对一篇论文有一个清晰的认识,也能让我在读完之后对论文有一个很好的总结。

我发现Twitter(国内就是微博,公众号了吧)对于跟踪机器学习和深度学习研究非常有用。你可以从跟踪ML/DL领域中的知名人员开始,然后从那里开始扩展。因为我经常转发关于对抗机器学习和自动驾驶汽车的研究,你也可以关注我的twitter(关注我的公众号吧?),把它当作你的feed。你能做的就是查看我转发过的人,查看他们的推特,关注他们圈子里的其他研究人员。一旦你提供了足够的数据,Twitter也会推荐优秀的人去关注,也就是关注足够多的ML/DL研究者。

Kaggle

Kaggle实在是太有用了。我强烈建议你尝试Kaggle竞赛,即使你进入前100名的机会很小。Kaggle竞赛的价值在于社区。阅读kernel并从中汲取好的实践经验。阅读评论并参与讨论。在那里你会学到很多东西。你会了解人们如何进行探索性数据分析,以及如何处理丢失数据、不平衡数据等各种情况。Kaggle竞赛中有很多知识。

灵感

机器学习的可视化介绍是一种很好的方法,可以直观地掌握统计学习技术是如何用于识别数据中的模式的。

谷歌的Seedbank是一个获得灵感的伟大资源!看一看这些例子,跟着文献走。

Distill.pub是一个交互式学习DL概念的好地方。我希望Distil出现更多的文章。

冰山一角

除非你把自己所学的付诸实践,否则什么都不重要。ML和DL听起来很神奇,当你自己实现整个pipeline,你会发现也就那样。整个pipeline包括数据来源、数据收集、数据质量评估、数据清理、数据注释、数据预处理、构建工作流、构建模型、调优模型、评估模型、部署模型和重复模型。这些步骤只是整个ML/DL pipeline中的一些步骤。那些已经完成了全面DL工作的人知道尽可能保持整个开发操作的流畅是多么重要。整个数据来源、收集、注释、清理和评估步骤至少占整个项目的60%,而且它们可能是项目中最昂贵的部分之一(除了耗电的GPU !)

总之,ML/DL领域是一个不断发展的领域,你必须张大你的耳朵、睁大你的眼睛,开放你的思想。不要仅仅因为一篇论文/博客/教程/个人/YouTube视频说某一项新技术在某一特定数据集上表现很好就跳到它上面。我看到许多闪亮的新技术来了又去的很快。永远要意识到区分信号和噪音是很重要的。


640?wx_fmt=png

往期精彩回顾


1、深度学习物体检测论文阅读路线图以及官方实现

2、一步一步动画图解LSTM和GRU,没有数学,包你看的明白!

3、论文看吐了没有?做研究的同学瞧一瞧看一看啦,教你读论文:为什么读以及如何读

4、动画图解RNN; LSTM 和 GRU,没有比这个更直观的了!

5、人人都能看得懂的深度学习介绍!全篇没有一个数学符号!


本文可以任意转载,转载时请注明作者及原文地址

640?wx_fmt=jpeg

请长按或扫描二维码关注本公众号

来,给我好看吧640?wx_fmt=gif

这篇关于新手如何开始学深度学习?别着急,看看别人走过的路先的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1080888

相关文章

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Redis中高并发读写性能的深度解析与优化

《Redis中高并发读写性能的深度解析与优化》Redis作为一款高性能的内存数据库,广泛应用于缓存、消息队列、实时统计等场景,本文将深入探讨Redis的读写并发能力,感兴趣的小伙伴可以了解下... 目录引言一、Redis 并发能力概述1.1 Redis 的读写性能1.2 影响 Redis 并发能力的因素二、

最新Spring Security实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)

《最新SpringSecurity实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)》本章节介绍了如何通过SpringSecurity实现从配置自定义登录页面、表单登录处理逻辑的配置,并简单模拟... 目录前言改造准备开始登录页改造自定义用户名密码登陆成功失败跳转问题自定义登出前后端分离适配方案结语前言

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Redis 内存淘汰策略深度解析(最新推荐)

《Redis内存淘汰策略深度解析(最新推荐)》本文详细探讨了Redis的内存淘汰策略、实现原理、适用场景及最佳实践,介绍了八种内存淘汰策略,包括noeviction、LRU、LFU、TTL、Rand... 目录一、 内存淘汰策略概述二、内存淘汰策略详解2.1 ​noeviction(不淘汰)​2.2 ​LR

Python与DeepSeek的深度融合实战

《Python与DeepSeek的深度融合实战》Python作为最受欢迎的编程语言之一,以其简洁易读的语法、丰富的库和广泛的应用场景,成为了无数开发者的首选,而DeepSeek,作为人工智能领域的新星... 目录一、python与DeepSeek的结合优势二、模型训练1. 数据准备2. 模型架构与参数设置3

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动