当前位置: 首页 > news >正文

十步直通深度学习

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

随着深度学习的不断火热,任何一个开发者都想上深度学习这趟快车。但是?到底怎么样才能快速上手了?以下是我自己的方式学习。我绝不会声称这是最好的方式,但是直到现在看来这条道路是我认为最佳的方式。

在这篇文章中,我将向你介绍10个步骤去转型深度学习,希望可以帮助到你。

aa85acef56dabd8d999b01e318bb9106a51e0012

OK,出发!

1-相信你可以做到:

很多人担心机器学习(ML)和深度学习(DL)对他们来说太复杂了,这些技术是不是太高深了?我可以确切到底告诉你我做到了,你也可以。一定要相信自己,自信才能让你有信心的一直走下去。

你的第一个目标应该是了解深度学习是什么,它可以或不可以做什么以及如何在我们自己的应用程序中使用它。大量的数据集?算法?模型?你应该首先确定这些乐高积木是什么,听起来好像是堆积木,对没有听错,它和其他开发的流程是一样的。你可以把它们结合起来,开始构建一个很酷的深度学习模型。

提示#1:DL不是黑魔法,它是代码,和其他技术没什么差别。

2-忽略数学:

前向传播、后向传播、损失函数、梯度下降这是神马??第一次接触深度学习就被行话的压倒在地。是的,不得不承认的是数学是ML的基础。但,这不应该是你的出发点。在编写一行代码之前,谁会花费几个小时或者更长的的时间去研究这行代码中的数学知识?这通常是你如何在DL库中启动训练过程:

 

model.train(data, labels, loss_function, optimizer)

 

你可以花几个星期来了解基础数学,仅仅是了解,作为一个开发者,千万不要深究这里面是什么。使用黑匣子的方法是以最小的焦虑开始。随着时间的推移,你可以更好地了解每个模块的工作原理,并且可以进一步深入,但不是现在。

提示#2:把你不明白的东西当作黑盒子,专注于界面。

3-Python

DL是代码,那么,你应该掌握什么语言?如果你必须选择一个,那就是Python,因为它不仅是数据科学,也是ML和DL的主要语言,它是一个非常有用的语言,正如Python AWS SDK aka boto3所示。如果你还没有使用它,或者你正在学习它,那么确保你对列表,元组,字典等有一个很好的理解,这些数据结构在DL代码中无处不在。对于核心语言,我强烈建议你也学习这些Python工具的基础知识:

1.Mathplotlib(https://matplotlib.org/):绘图库。

2.Numpy(http://www.numpy.org/):科学计算,对于数组和特别有用矩阵操纵。

3.Pandas(https://pandas.pydata.org/):数据分析库。

4.OpenCV(https://opencv.org/):图像处理库。

5.Jupyter(http://jupyter.org/):构建Python笔记本的Web应用程序。

提示#3:学习Python ,享受终生的红利。

4-奔跑之前:

在你跑步学习之前,我建议你了解AI,ML和DL的关系(防止学术错误)。DL是ML的一个子集,所以在跳入DL之前,你应该知道一些关于ML的知识。你应该花时间学习“传统”ML的数据集、主要问题(回归,分类,聚类等),每个问题的流行算法等等,神经网络只是其中的一种技术。对ML的更广泛的理解将帮助你看到何时使用DL,学习Python是一件好事,因为现在你可以通过scikit-learn(http://scikit-learn.org/stable/)来学习ML。这个库很容易使用,并且支持大量的ML算法。如果你想要挑战一下自己,你也可以看看PySpark(Spark的Python API)和Spark MLlib(Spark的机器学习库)。如果你需要处理大型数据集,Spark的强大的数据管理功能是一个不错的选择。在你的学习阶段,它们是过度的,但是当你开始构建生产应用程序时,记得使用它们。

提示#4:首先,深度学习是机器学习,按照正确的顺序学习它们。

5-选择一个库:

在选择库是记住一点,你选择哪一个DL库并不重要。只要它有一个Python API并且足够友好来隐藏低级库,这样就行了。这里有一些选择:

1.Keras(https://keras.io/)。

2.Apache MXNet和它的Gluon API(https://mxnet.incubator.apache.org/)。

3.Caffe2(https://caffe2.ai/)。

4.PyTorch(http://pytorch.org/)(偏向于实验,但很有希望)。

注意:Theano(http://deeplearning.net/software/theano/)是非常低级的,Tensorflow也是低级别的,很难学习,并且会产生挫折感,我不会推荐这些给初学者。查看文档,运行一些教程,做出自己的想法。其中总会有一个库会让你感觉更舒适。

提示#5:选择库时一定要忽略炒作,这将有助于你学的更舒服。

63c75bbbf3582b353a2f2f11dfeb1a5118868f45

6-代码,代码!

7-坚持,坚持!

 

8-不要担心,数学很好玩!

2c09c96b9c81abfb1fbc4ad259c6e97a411980e8

9-专注学习!

10-继续学习!

另附云栖社区进阶宝典:

请收下这份关于人工智能的根目录——博客整理系列(一)

关于数据科学的那些事——博客整理系列(二)

机器学习必备手册——博客整理系列(三)

扩展眼界的都在这——博客整理系列(四)

深度学习必备手册(上)——博客整理系列(五)

深度学习必备手册——博客整理系列(六)

本文由北邮@爱可可-爱生活老师推荐,阿里云云栖社区组织翻译。

文章原标题《10+steps+on+the+road+to+Deep+Learning》,

作者:Julien Simon

译者:虎说八道,审阅:

 

文章为简译,更为详细的内容,请查看原文

阅读原文http://click.aliyun.com/m/40411/

转载于:https://my.oschina.net/u/3637633/blog/1609114

相关文章:

  • Spider_Man_3 の selenium
  • 前台页面
  • 从零开始写项目第十一篇【个人备忘录】
  • lmdb
  • Mysql主从复制以及常见错误问题分析
  • java基础-集合
  • log4js日志配置问题
  • npx命令介绍
  • 一个Linux青蛙的痛苦挣扎……
  • StackExchange.Redis使用配置
  • CentOS经常使用文件操作命令[百度博客搬家]
  • telegraf+influxdb+grafana开源监控架构
  • Linux日常运维--5
  • 倒序切片
  • Codeforces D - The Child and Zoo
  • 【5+】跨webview多页面 触发事件(二)
  • 【刷算法】从上往下打印二叉树
  • Android Studio:GIT提交项目到远程仓库
  • canvas 五子棋游戏
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Python_网络编程
  • vue--为什么data属性必须是一个函数
  • 编写符合Python风格的对象
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 入口文件开始,分析Vue源码实现
  • 线性表及其算法(java实现)
  • 用element的upload组件实现多图片上传和压缩
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • (2.2w字)前端单元测试之Jest详解篇
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (附源码)计算机毕业设计ssm电影分享网站
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (六)vue-router+UI组件库
  • (区间dp) (经典例题) 石子合并
  • (三)终结任务
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (转)h264中avc和flv数据的解析
  • (转载)PyTorch代码规范最佳实践和样式指南
  • .mysql secret在哪_MySQL如何使用索引
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .net6使用Sejil可视化日志
  • .NET成年了,然后呢?
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .NET企业级应用架构设计系列之应用服务器
  • ??如何把JavaScript脚本中的参数传到java代码段中