没接触任何编程语言,该怎么学习人工智能技术呢?

其实人工智能技术最主要的并不是编程能力,它最主要的就是包括概率统计理论,矩阵理论,以及运筹学等相关的数学知识,人工智能的研究更偏向理论性逻辑思考和算法调优而不是运行代码。

第一步:熟悉和了解底层数学知识

掌握和了解人工智能技术底层的数学理论支撑,概率论,矩阵,凸优化算法的设计和原理,包括流优化手段SGD,牛顿法等优化方法。

第二步:特征工程

python相关的数据预处理库(毕竟python是现在世界第一语言了),原始数据特征构建,特征选择,构建新的特征值,缺失值的处理等

第三步:机器学习相关算法

决策树与随机森林算法,分类算法相关的原理,度量指标,算法变种,包括GBDT,ADABoost,集成学习模型的原理和算法。

分类算法,KNN算法,贝叶斯,SVN等算法相关的原理。

这些算法最好都对应相关的案例学习,不然光看算法很不容易理解,也可以扩展一下回归相关的算法,看你要研究和学习的方向不同而定

第四步:深度学习

学习一些最新的深度学习框架TensorFlow,Caffe,Theano,BP和PyTorch等。人工智能包括众多的分支领域,比如大家熟悉的机器学习、自然语言理解和模式识别等。详细的可以参考以下两个链接:

https://www.qcloud.com/community/article/451090001487836806?fromSource=gwzcw.59305.59305.59305

https://www.qcloud.com/community/article/834521001487836126?fromSource=gwzcw.59306.59306.59306

其实零编程基础最主要的就是不要怕,迈出第一步就好了,无论是自学(网上现在有很多教学视频)还是报班学习(系统学习),只要坚持下去,都会有不小的收获,学习一项技能最好的时候是它刚刚出现的时候,其次是现在。

更多优质回答,请持续关注镁客网头条号~

个人认为任何希望学编程的人都应该从纯C开始学习,它是最接近硬件的语言,也是让你了解到一切程序在计算机中如何运行的最佳语言。但是如果你觉得C太难,并且重点不在编程上,那么你可以直接从python开始。python的优势在于它有无数的轮子。你在用python的时候,任何你想写点代码实现点功能的时候,打消这个念头,去找找有没有轮子。所以python只需要了解基本的语言特性和语法就可以开干了。装上tensor flow,然后就可以开始你的机器学习之路了。

机器学习界的hello world叫mnist, 这是一个识别手写数字的项目。在tensor flow的官网上有完整的代码和解释。

接下来,可以试试跑跑不同的模型,不同的激活函数和回归算法。

了解一遍之后,可以开始你自己的项目,使用image net做物体分类是个不错的选择,同时我也建议做股票预测,激动人心而且不像物体识别在一开始就能获得较高的准确率。

模型搭好,训练代码写好之后,恭喜你成为了一名调参工程师。如果你想通过穷举调参,那你可能要调一辈子,除非你先花个几百万搭建你的机器学习集群。目前我试下来效率最高的调参方法是random search。在调参的过程中需要不断去学习斯坦福的机器学习课程,因为即便是random search你也需要知道你设定的范围。并且你得知道收敛不一致的原因等等。一个优秀的(GAO XIN DE)调参工程师需要深厚的深度学习知识背景。

接下来,你可以开始自己构建混合模型了。可能会有意想不到的收获。

人工智能不单单依靠于编程基础,现在有很多人工智能团队喜欢招收有数学背景的人员,如果你对迈入这个行业一无所知,不妨看一下这张Github上流传的机器学习路线图(还有深度学习系列),来看看你应该如何准备。

机器学习是计算机科学的一个子领域,使计算机能够在没有被明确编程的情况下自主学习,它探讨了从数据中学习和预测的算法研究和构建。机器学习的范围广泛,跨越数学、计算机科学和神经科学等多个领域。

  该路线图也有一个Jupyter notebook,记载着大部分Data Science步骤,可以在以下链接中找到:https://github.com/dformoso/sklearn-classification,感谢Github用户dformoso的分享!

  数据科学是一个需要设计、实施和维护的过程。部分路线图如下所示:

  数据部分

  首先,我们需要一些数据,找到数据、收集数据、清理数据等共5步。

  数学部分

  机器学习是在数学基础上建立起来的!我们需要了解一些函数知识!

  概念部分

  类别,方法,库和方法的部分列表。

  模型部分

  最受欢迎的模型抽样。

  

  整个机器学习和深度学习路线图非常庞大,因此此处无法提供完整视图,完整路线图可到http://wenku.it168.com/d_001728559.shtml和http://wenku.it168.com/d_001728560.shtml中下载或查看!

人工智能和机器学习可以说是最近几年最火爆的研究领域。人工智能和机器学习涉及许多数学学科,最主要的就是概率统计理论,矩阵理论,以及运筹学等,与程序员不同,人工智能的研究更偏向理论性和不是码代码,因此对编程能力的要求没那么高,建议首先从理论入手,然后尝试利用Python和R实现一些常见的算法,巩固自己理论知识的同时提高coding的能力,最后便是学习一些最新的深度学习框架TensorFlow,Caffe,Theano和PyTorch等

人工智能

人工智能是是计算机科学研究领域的一个重要分支。人工智能是众多学科的一个交叉学科,关于人工智能并没有一个统一的定义,我们可以理解为人工智能就是利用机器来模仿和执行人类大脑的智力行为,开发一个能够在人类现实环境下做出反应和行为、不断学习知识、能够从一个新生儿变得越来越聪明的系统或软件。人工智能包括众多的分支领域,比如大家熟悉的机器学习、自然语言理解和模式识别等。

机器学习

机器学习属于人工智能研究与应用的一个分支领域。机器学习的研究更加偏向理论性,其目的更偏向于是研究一种为了让计算机不断从数据中学习知识,而使机器学习得到的结果不断接近目标函数的理论

机器学习,引用卡内基梅隆大学机器学习研究领域的著名教授Tom Mitchell的经典定义:

如果一个程序在使用既有的经验E(Experience)来执行某类任务T(Task)的过程中被认为是“具备学习能力的”,那么它一定要展现出:利用现有的经验E,不断改善其完成既定任务T的性能(Performance)的特质。

概率统计理论——机器学习的一个主要方向

作者曾经写过系列《想要学人工智能,你必须得先懂点统计学》,共14篇文章,详细内容可以到作者主页查看,主要向大家介绍了在学习人工智能和机器学习之前有必要掌握的一些基础统计理论这些统计理论将有助于后续理解相关的机器学习算法和对数据挖掘结果的解释

矩阵理论——机器学习模型的中间运算

主要是机器学习过程的运算都是以矩阵的形式进行,因此需要掌握的矩阵理论的主要知识有,矩阵的基本运算,矩阵变换和线性空间以及矩阵求导等。

运筹学理论——机器学习模型的优化求解

因为机器学习中的很多问题都是凸优化问题,比如支持向量机SVM,因此,需要学习一些运筹学当中优化问题求解的算法,了解机器学习中的优化问题,求解凸优化问题的算法以及更有深度当然就是非凸优化问题

传统数据挖掘算法的学习

具有一定的数学基础之后,建议先学习传统的机器学习算法,比如SVM,ANN,聚类,关联规则挖掘,SOM、boosting,回归、决策树,贝叶斯模型等。并尝试在不调用接口的情况用Python实现相关算法,以提高自己对算法的理解能力和coding能力。

深度学习算法

掌握传统的机器学习算法后,学习最新的深度学习算法,比如CNN,RNN等,不断加深自己的理解。

Coding的能力

最新统计Python在数据科学中的应用已经超过R,并且现在许多最新的深度学习框架都提供了Python的接口,因此编程推荐学习Python

若要查看更加详细的内容,可以到作者主页查看作者之前写的文章,希望对大家的学习和理解有所帮助。

人工智能无疑是当今科技届的热点领域,各大公司也在大力的投入。深度学习作为其热门技术,期间也产生了各种各样的深度学习智能框架。比如TensorFlow,Caffe,CNTK,Theano等等,其中TensorFlow毋庸置疑的成为了最热的热点。那么对于非专业研究者的开发人员甚至非开发人员,我们如何入门呢?接下来小编为大家整理了一些深度学习TensorFlow的入门资源。(主要是一些长期教程)

官网 https://www.tensorflow.org/

官网无论什么都是入门必看的重点。官网介绍了,如何安装使用TensorFlow,已经TensorFlow的API文档。里面还包含TensorFlow主要功能的详细指南。这里就不过多的介绍了

Keras http://keras-cn.readthedocs.io/en/latest/

Keras是一个高层神经网络API,Keras由纯Python编写而成并基Tensorflow、Theano以及CNTK后端。Keras 为支持快速实验而生,能够把你的idea迅速转换为结果,如果你有如下需求,请选择Keras:

  • 简易和快速的原型设计(keras具有高度模块化,极简,和可扩充特性)

  • 支持CNN和RNN,或二者的结合

  • 无缝CPU和GPU切换

为什么我会推荐Keras呢,因为从TensorFlow1.0开始,官方已经正式在TF中加入了Keras,同时,他的便捷性和简单性也值得使用。

谷歌机器学习速成课程 https://developers.google.com/machine-learning/crash-course/

这是谷歌推出的机器学习热爱者的自学指南,包含一系列视频讲座课程、实际案例分析和实践练习。可以在看视频后,进行一些检验,也包含一些代码的训练。是一套不存的视频课程,而且全面支持中文(PS:机器学习生成的中文口音,怪怪的)

Udacity优达学城 https://cn.udacity.com/course/deep-learning--ud730

谷歌在Udacity上的深度学习课程,在这里你将透彻理解深度学习,教授你如何训练和优化基本神经网络、卷积神经网络和长期神经网络。解决学习一系列曾经以为非常具有挑战性的新问题,并在你用深度学习方法轻松解决这些问题的过程中更好地了解人工智能的复杂属性。总之是一套很不错教学视频,包含课后习题。这个教学项目目前是免费的。

莫烦Python https://morvanzhou.github.io/

我在最早接触Python和深度学习就是在这里,一个喜欢学到什么就分享什么的人,分享过很多python, 机器学习的知识。非常不错的教学视频,重点是都是中文的。

廖雪峰 https://www.liaoxuefeng.com/

小白的Python新手教程,具有如下特点:中文,免费,零起点,完整示例,基于最新的Python 3版本。一个非常棒的Python学习网站,TensorFlow最适合的语言自然是Python了,值得学习。

Stanford的CS 20SI课程,专门针对TensorFlow的课程 https://web.stanford.edu/class/cs20si/

斯坦福大学的TensorFlow学习课程,英文的所有一定难度。课程将涵盖Tensorflow的基本原理和用法。旨在帮助学生理解TensorFlow的图形计算模型,探索其提供的功能,并学习如何构建和构建最适合深度学习项目的模型。通过课程,学生将使用TensorFlow构建不同复杂度的模型,从简单的线性/逻辑回归到卷积神经网络和递归神经网络,以解决词嵌入,翻译,光学字符识别,强化学习等任务。学生还将学习最佳实践来构建模型并管理研究实验。

重点!网红Siraj Raval https://www.youtube.com/channel/UCWN3xxRkmTPmbKwht9FuE5A

这是我最喜欢的一个频道,Siraj Raval已经成为了一位网红,天成的程序员表演家,技术达人。他分享了大量的机器学习视频,风趣而幽默。而且每个视频下都配了他的Github仓库,里面有他写好的代码。他的视频风格让人印象非常深刻。是一个很不错的学习频道。

上述只是我列的一些帮助我们入门的教程,是非常入门的。更适合像我们这些没有太深数学基础的程序员和非程序员。以后还会给大家发一些深度一些的资源,欢迎大家持续关注。

相关代码参考