如何学习python知乎

Python018

如何学习python知乎,第1张

对于Python的学习人员需要掌握以下技术。

1.网络编程。

网络编程在生活和开发中无处不在,哪里有通讯就有网络,它可以称为是一切开发的"基石"。对于所有编程开发人员必须要知其然并知其所以然,所以网络部分将从协议、封包、解包等底层进行深入剖析。

2. 爬虫开发。

将网络一切数据作为资源,通过自动化程序进行有针对性的数据采集以及处理。爬虫开发项目包含跨越防爬虫策略、高性能异步IO、分布式爬虫等,并针对Scrapy框架源码进行深入剖析,从而理解其原理并实现自定义爬虫框架。

3.Web开发。

Web开发包含前端以及后端两大部分,前端部分,带你从"黑白"到"彩色"世界,手把手开发动态网页后端部分,带你从10行代码开始到n万行来实现并使用自己的微型Web框架,框架讲解中涵盖了数据、组件、安全等多领域的知识,从底层了解其工作原理并可驾驭任何业内主流的Web框架。

4. IT自动化开发。

IT运维自动化是一组将静态的设备结构转化为根据IT服务需求动态弹性响应的策略,目的就是实现减少人工干预、降低人员成本以及出错概率,真刀真枪的带你开发企业中最常用的项目,从设计层面、框架选择、灵活性、扩展性、故障处理、以及如何优化等多个层面接触真实的且来源于各大互联网公司真实案例,如:堡垒机、CMDB、全网监控、主机管理等。

5. 金融分析。

金融分析包含金融知识和Python相关模块的学习,手把手带你从金融小白到开发量化交易策略的大拿。学习内容囊括Numpy\Pandas\Scipy数据分析模块等,以及常见金融分析策略如"双均线"、"周规则交易"、"羊驼策略"、"Dual Thrust 交易策略"等,让梦想照进现实,进入金融行业不再是个梦。

6. 人工智能+机器学习。

人工智能时代来临,率先引入深度机器学习课程。其中包含机器学习的基础概念以及常用知识,如:分类、聚类、回归、神经网络以及常用类库,并根据身边事件作为案例,一步一步经过预处理、建模、训练以及评估和参调等。人工智能是未来科技发展的新趋势,Python作为最主要的编程语言,势必有很好的发展前景,现在学习Python也是一个很好的机会。

自学深度学习是一个漫长而艰巨的过程。您需要有很强的线性代数和微积分背景,良好的Python编程技能,并扎实掌握数据科学、机器学习和数据工程。即便如此,在你开始将深度学习应用于现实世界的问题,并有可能找到一份深度学习工程师的工作之前,你可能需要一年多的学习和实践。然而,知道从哪里开始,对软化学习曲线有很大帮助。如果我必须重新学习Python的深度学习,我会从Andrew Trask写的Grokking deep learning开始。大多数关于深度学习的书籍都要求具备机器学习概念和算法的基本知识。除了基本的数学和编程技能之外,Trask的书不需要任何先决条件就能教你深度学习的基础知识。这本书不会让你成为一个深度学习的向导(它也没有做这样的声明),但它会让你走上一条道路,让你更容易从更高级的书和课程中学习。用Python构建人工神经元

大多数深度学习书籍都是基于一些流行的Python库,如TensorFlow、PyTorch或Keras。相比之下,《运用深度学习》(Grokking Deep Learning)通过从零开始、一行一行地构建内容来教你进行深度学习。

《运用深度学习》

你首先要开发一个人工神经元,这是深度学习的最基本元素。查斯克将带领您了解线性变换的基本知识,这是由人工神经元完成的主要计算。然后用普通的Python代码实现人工神经元,无需使用任何特殊的库。

这不是进行深度学习的最有效方式,因为Python有许多库,它们利用计算机的图形卡和CPU的并行处理能力来加速计算。但是用普通的Python编写一切对于学习深度学习的来龙去是非常好的。

在Grokking深度学习中,你的第一个人工神经元只接受一个输入,将其乘以一个随机权重,然后做出预测。然后测量预测误差,并应用梯度下降法在正确的方向上调整神经元的权重。有了单个神经元、单个输入和单个输出,理解和实现这个概念变得非常容易。您将逐渐增加模型的复杂性,使用多个输入维度、预测多个输出、应用批处理学习、调整学习速率等等。

您将通过逐步添加和修改前面章节中编写的Python代码来实现每个新概念,逐步创建用于进行预测、计算错误、应用纠正等的函数列表。当您从标量计算转移到向量计算时,您将从普通的Python操作转移到Numpy,这是一个特别擅长并行计算的库,在机器学习和深度学习社区中非常流行。

Python的深度神经网络

有了这些人造神经元的基本构造块,你就可以开始创建深层神经网络,这基本上就是你将几层人造神经元叠放在一起时得到的结果。

当您创建深度神经网络时,您将了解激活函数,并应用它们打破堆叠层的线性并创建分类输出。同样,您将在Numpy函数的帮助下自己实现所有功能。您还将学习计算梯度和传播错误通过层传播校正跨不同的神经元。

随着您越来越熟悉深度学习的基础知识,您将学习并实现更高级的概念。这本书的特点是一些流行的正规化技术,如早期停止和退出。您还将获得自己版本的卷积神经网络(CNN)和循环神经网络(RNN)。

在本书结束时,您将把所有内容打包到一个完整的Python深度学习库中,创建自己的层次结构类、激活函数和神经网络体系结构(在这一部分,您将需要面向对象的编程技能)。如果您已经使用过Keras和PyTorch等其他Python库,那么您会发现最终的体系结构非常熟悉。如果您没有,您将在将来更容易地适应这些库。

在整本书中,查斯克提醒你熟能生巧他鼓励你用心编写自己的神经网络,而不是复制粘贴任何东西。

代码库有点麻烦

并不是所有关于Grokking深度学习的东西都是完美的。在之前的一篇文章中,我说过定义一本好书的主要内容之一就是代码库。在这方面,查斯克本可以做得更好。

在GitHub的Grokking深度学习库中,每一章都有丰富的jupiter Notebook文件。jupiter Notebook是一个学习Python机器学习和深度学习的优秀工具。然而,jupiter的优势在于将代码分解为几个可以独立执行和测试的小单元。Grokking深度学习的一些笔记本是由非常大的单元格组成的,其中包含大量未注释的代码。

这在后面的章节中会变得尤其困难,因为代码会变得更长更复杂,在笔记本中寻找自己的方法会变得非常乏味。作为一个原则问题,教育材料的代码应该被分解成小单元格,并在关键区域包含注释。

此外,Trask在Python 2.7中编写了这些代码。虽然他已经确保了代码在Python 3中也能顺畅地工作,但它包含了已经被Python开发人员弃用的旧编码技术(例如使用“for i in range(len(array))”范式在数组上迭代)。

更广阔的人工智能图景

Trask已经完成了一项伟大的工作,它汇集了一本书,既可以为初学者,也可以为有经验的Python深度学习开发人员填补他们的知识空白。

但正如泰温·兰尼斯特(Tywin Lannister)所说(每个工程师都会同意),“每个任务都有一个工具,每个工具都有一个任务。”深度学习并不是一根可以解决所有人工智能问题的魔杖。事实上,对于许多问题,更简单的机器学习算法,如线性回归和决策树,将表现得和深度学习一样好,而对于其他问题,基于规则的技术,如正则表达式和几个if-else子句,将优于两者。

关键是,你需要一整套工具和技术来解决AI问题。希望Grokking深度学习能够帮助你开始获取这些工具。

你要去哪里?我当然建议选择一本关于Python深度学习的深度书籍,比如PyTorch的深度学习或Python的深度学习。你还应该加深你对其他机器学习算法和技术的了解。我最喜欢的两本书是《动手机器学习》和《Python机器学习》。

你也可以通过浏览机器学习和深度学习论坛,如r/MachineLearning和r/deeplearning subreddits,人工智能和深度学习Facebook组,或通过在Twitter上关注人工智能研究人员来获取大量知识。

AI的世界是巨大的,并且在快速扩张,还有很多东西需要学习。如果这是你关于深度学习的第一本书,那么这是一个神奇旅程的开始。