开启辅助访问
 找回密码
 立即注册

普通程序员如何正确学习人工智能方向的知识?

欧阳寿 回答数20 浏览数288616
事业为上 | 未知
考虑到机器学习是目前人工智能的主要技术,所以问题就变成了如何正确入门机器学习
当然,人工智能还有众多技术方向,在机器之心刚刚发售的《人工智能技术趋势报告》里有23个技术方向的概述,感兴趣可以点这里。
好,开始正题。
先决条件

机器学习的基础是数学。数学并非是一个可选可不选的理论方法,而是不可或缺的支柱。如果你是一名计算机工程师,每天使用 UML、ORM、设计模式及其他软件工程工具/技术,那么请闭眼一秒钟,忘掉一切。这并不是说这些概念不重要,绝不是!但是机器学习需要一种不同的方法。如今 Python 如此流行的原因之一是其「原型设计速度」。在机器学习中,一种使用几行代码即可建模算法的语言绝对是必要的。
微积分、线性代数、概率论在机器学习几乎所有算法中不可或缺。如果你的数学背景很扎实,请跳过这一章节。如若不然,那么重新温习一下这些重要概念也不错。考虑到理论的数量,并不建议大家从大部头开始。尽管一开始可以用它查询具体概念,但是初学者先关注简单的话题比较好。
作为学习资料,大学本科教材是个很不错的选择。
以下是需要最先学习的核心概念。其余数学概念可以在深入学习过程中,具体查询学习,无需提前了解。
概率论
    离散型和连续型随机变量主要分布(伯努利分布、二项式分布、正态分布、 指数分布、 泊松分布、Beta 和 Gamma 分布)矩估计和最大似然估计贝叶斯统计相关性系数和协方差(Correlation and Covariance)
线性代数
    向量和矩阵矩阵的行列式特征向量和特征值矩阵分解(如 SVD)
微积分
    极限与导数微分和积分数值计算与最优化方法


网上也有很多免费资源,比如
    《概率论入门》,Grinstead、Snell 著(https://www.dartmouth.edu/~chance/teaching_aids/books_articles/probability_book/amsbook.mac.pdf)《线性代数入门》,Wise、Gallagher 著(http://www.stat.columbia.edu/~liam/teaching/4315-spr06/LinAlg.pdf)《微积分入门》,Heinbockel 著(http://www.math.odu.edu/~jhh/Volume-1.PDF)
机器之心也介绍过许多数学基础与概念:
    基础入门:深度学习矩阵运算的概念和代码实现想了解概率图模型?你要先理解图论的基本定义与形式深度神经网络中的数学,对你来说会不会太难?Reddit 热门话题:如何阅读并理解论文中的数学内容?


机器学习方法建议(面向初学者)

先要把吴恩达老师的课程贴在这里:https://www.coursera.org/learn/machine-learning#syllabus。相信很多人都是通过这项课程入门的,墙裂推荐。
以下为分类说明:


特征工程
开始机器学习的第一步是理解如何评估和改进数据集的质量。管理特征的类别和缺失、归一化和降维(PCA、ICA、NMF)是大幅提高算法性能的基本技术,而且还有助于研究如何将数据集分割成训练集和测试集、如何采取交叉验证来取代传统的测试方法。
机器之心也曾详解过特征工程如 PCA 降维算法的详细理论与推导,当然我们还介绍了其它有关特征的概念:
    从特征分解到协方差矩阵:详细剖析和实现PCA算法基于TensorFlow理解三大降维技术:PCA、t-SNE 和自编码器 似乎没区别,但你混淆过验证集和测试集吗?


Numpy:Python 数值计算之王!
使用 Python 时,Numpy 不仅仅是一个库。它是几乎所有机器学习实现的基础,因此了解它的工作原理、关注向量化和广播(broadcasting)是非常必要的。这些技术可以帮助加速大多数算法的学习过程,利用多线程和 SIMD、MIMD 架构的力量。
官方文档已经很完整了,不过,我还建议大家看一下以下资源:
    《Python 数据科学手册:数据使用的核心工具》,VanderPlas J. 著《Python 科学编程入门书》,LangTangen P. H. 著维度、广播操作与可视化:如何高效使用TensorFlow


数据可视化
Matplotlib 即使不是纯粹的机器学习话题,了解如何可视化数据集也很重要。Matplotlib 可能是最广泛使用的解决方案:Matplotlib 易用,允许绘制不同种类的图表。Bokeh 和 Seaborne 提供了有趣的替代方案。不必要彻底了解所有包,但是了解每一个包的优点和弱点还是很有用的,可以帮助你选择合适的包。
了解 Matplotlib 细节的资源:《掌握 Matplotlib》,McGreggor D. 著


线性回归
线性回归是最简单的模型之一,可以把它作为一个优化问题来研究,该问题可通过最小化均方误差而得到求解。该方法虽然有效,但是限制了可利用的可能性。我建议还可以把它当作贝叶斯问题,使用之前的可能性展示参数(比如,高斯分布),优化变成了最大似然估计(Maximum Likelihood Estimation,MLE)。即使这看起来更加复杂,但该方法提供了一个可供几十个其他复杂模型共享的新方法。
Coursera 上介绍贝叶斯统计的课程:
    《贝叶斯统计:从概念到数据分析》(https://www.coursera.org/learn/bayesian-statistics/)《贝叶斯统计:技术与模型》(https://www.coursera.org/learn/mcmc-bayesian-statistics)


以及这两本书:
    《思考贝叶斯》,Downey B. A. 著《黑客的贝叶斯方法》Davidson-Pilon C. 著


包括线性回归在内,机器之心曾介绍了一些解决回归问题的方法(后文提供了 CART 算法进行回归分析):
    初学TensorFlow机器学习:如何实现线性回归? 回归、分类与聚类:三大方向剖解机器学习算法的优缺点(附Python和R实现)


线性分类
通常情况下,Logistic 回归是最佳起始点,也是研究信息论进而了解信息熵、交叉熵和互信息的好机会。类别交叉熵(Categorical cross-entropy)是深度学习分类中最稳定、使用最广泛的代价函数,一个简单的 logistic 回归可以展示它是如何加速学习过程的(与均方差相比)。另一个重要的话题是正则化(Ridge、Lasso 和 ElasticNet)。很多情况下,人们认为它是一种提高模型准确率的深奥方式,但是它的真实意义是更准确,在具体实例的帮助下变得易于理解。我还建议刚开始的时候,把 logistic 回归当作一个简单的神经网络,可视化(以 2D 实例为例)权重向量在学习过程中的移动轨迹。
我还建议本节应包括超参数网格搜索。网格搜索不在没有完整了解的情况下尝试不同的值,而是评估不同的超参数集的性能。因此,工程师可以将注意力集中在可达到最高准确率的组合上。当然还有更加强大的贝叶斯优化方法,即利用先验知识逼近未知目标函数的后验分布从而调节超参数的方法。
    从头开始:用Python实现带随机梯度下降的Logistic回归 如何通过牛顿法解决Logistic回归问题拟合目标函数后验分布的调参利器:贝叶斯优化


支持向量机(SVM)
支持向量机提供了不同的分类方法(包括线性和非线性方法)。该算法非常简单,具备基础几何知识的人也可以学会。不过,了解核支持向量机的工作原理非常有用,因为它会在线性方法失败的时候展示出其真正实力。
一些有用的免费资源:
    《支持向量机简明教程》,Law 著核函数方法,维基百科词条详解支持向量机SVM:快速可靠的分类算法详解支持向量机(附学习资源)


决策树
决策树提供了另一种分类和回归的方法。通常,它们不是解决复杂问题的首选,但它们提供了完全不同的方法,即使是非技术人员也可以很容易理解,该方法还可以在会议或演示中可视化。
    教程 | 从头开始:用Python实现决策树算法从决策树到随机森林:树型算法的原理与实现


集成学习一览
在理解了决策树的动态特性以后,研究集成训练树的集(集成)来提高整体准确率的方法很有用。随机森林、梯度树提升和 AdaBoost 都是强大的算法,且复杂度较低。对比简单的树和提升方法与 bagging 方法采用的树的学习过程挺有趣的。Scikit-Learn 提供了最常见的实现方法,但是如果你想更好地驾驭这些方法,我还是建议你在 XGBoost 上多花些时间,XGBoost 是一个既适用于 CPU 又适用于 GPU 的分布式框架,即使在较大的数据集上也能加速学习过程。
    从Boosting到Stacking,概览集成学习的方法与性能


聚类
当开始聚类方法的学习时,我的建议是从高斯混合算法(基于期望最大化/EM)学起。虽然 K-均值聚类要更加简单易懂(也是必须要学习的),但是高斯混合算法为我们提供了纯粹的贝叶斯方法,在其他类似任务中也十分实用。其它必学的算法还有层次聚类(Hierarchical Clustering)、谱聚类(Spectral Clustering)和 DBSCAN。这对你了解基于实例的学习或研究 K-近邻算法(既适用于有监督又适用于无监督任务)也是有帮助的。谱聚类的一个有用的免费资源是:
    《谱聚类教程》,Von Luxburg U 著
聚类算法是无监督学习中的代表,机器之心也曾详细地介绍过各种聚类方法与实现:
    机器理解大数据的秘密:聚类算法深度详解综述分类、聚类和信息提取算法在文本挖掘领域内的应用 如何用Python和机器学习炒股赚钱?


神经网络入门
神经网络是深度学习的基础,你可以在单独的课程中学习神经网络。但是,我认为理解感知机、多层感知机以及反向传播算法的概念也很有帮助。Scikit-Learn 提供了一个实现神经网络的简单方法,但是,开始探索 Keras 也是一个好主意,Keras 是一个基于 Tensorflow、Theano 或 CNTK 的高级架构,允许使用最少的努力对神经网络进行建模和训练。开始神经网络学习的一些好资源:
    《人工神经网络基础》Hassoun M 著《Keras 深度学习》Gulli A.、 Pal S. 著
目前最好的深度学习书籍可能就是:
    《深度学习》,Goodfellow I.、 Bengio Y.、Courville A. 著
机器之心文章参考:
    最全的DNN概述论文:详解前馈、卷积和循环神经网络技术机器之心GitHub项目:从零开始用TensorFlow搭建卷积神经网络深度神经网络全面概述:从基本概念到实际模型和硬件基础训练的神经网络不工作?一文带你跨过这37个坑 TensorFlow从基础到实战:一步步教你创建交通标志分类神经网络神经网络快速入门:什么是多层感知器和反向传播?教程 | 如何用30行JavaScript代码编写神经网络异或运算器神经网络调试手册:从数据集与神经网络说起神经网络基础:七种网络单元,四种层连接方式如何从信号分析角度理解卷积神经网络的复杂机制?神经网络架构演进史:全面回顾从LeNet5到ENet十余种架构(附论文) 麻省理工解读神经网络历史,三篇论文剖析基础理论


最后,我们将介绍部分机器之心曾发过的综述性技术文章或论文,并希望这些文章能对大家全面理解各种方法有所帮助:
    自动驾驶计算机视觉研究综述:难题、数据集与前沿成果一文帮你发现各种出色的GAN变体深度强化学习综述:从AlphaGo背后的力量到学习资源分享从FPS到RTS,一文概述游戏人工智能中的深度学习算法视觉问答全景概述:从数据集到技术方法神经风格迁移研究概述:从当前研究到未来方向从语言学到深度学习NLP,一文概述自然语言处理 迁移学习全面概述:从基本概念到相关研究一文综述所有用于推荐系统的深度学习方法一文读懂遗传算法工作原理(附Python实现)从自编码器到生成对抗网络:一文纵览无监督学习研究现状
回复
使用道具 举报
megcjgm | 未知
相信看到这篇文章的朋友,几乎都想成为机器学习科学家。怎么做呢?读个博士需要 5 年,以及几十到上百万元的花费。读个线下培训班,不仅教学质量参差不齐,而且价格也动辄需要好几万。事实上,绝大多数的付费课程,基本上都有完全免费的课程放在另一个地方。我们只是把这些信息整理好,告诉你在哪儿可以找到他们,以及通过什么样的顺序进行学习。这样,哪怕你是还没毕业的大学生,或者是初入职场的工程师,都可以通过自学的方式掌握机器学习科学家的基础技能,并在论文、工作甚至日常生活中快速应用。在这里我们推荐一份用户友好型的机器学习教程,你可以通过几个月的学习成为机器学习科学家,完全免费。一份用户友好型的机器学习教程当你学习机器学习课程时,有没有被信息过载所淹没?大部分的学习者都遇到了这个问题,这不是他们的错,因为绝大多数的机器学习课程都过于关注个别算法了。 没错,虽然算法很重要,但他们还是把太多时间花在了算法上。 以至于......你几乎很难在短时间内走完一遍机器学习的流程,从而感受到通过它解决具体数据问题的巨大兴奋。这些机器学习课程关注于算法是因为它容易教。相比之下,如果机器学习老师要带你走一遍机器学习的流程,那么他需要搭建计算环境,完成数据采集、清洗、拆分,特征处理,模型调参和模型预测,甚至他还需要一个面向学习者的交互界面。老师哪有这么多的工具,与其手把手带着学生走一遭,还不如学习机器学习算法。 但这样的问题是,很难有人能坚持通过自学,成为一个卓越的机器学习科学家。哪怕他是数学博士,或者技术高超的程序员,都很容易陷在细节中而难以有具体项目实现的成就感。 这份教程将会带来完全不同的思路。它非常适合自学者,即便完全没有编程的基础,也能通过恰当的工具快速实现机器学习模型,解决工作、生活中遇到的具体问题。值得注意的是,我们享用了世界顶级的机器学习资源,而不需要花费 1 分钱。 自我学习的方式 我们推荐通过 Doing Shit(不是技术术语)完成你的学习。在这之前你也许已经学习过机器学习了,但从我和朋友们的经验来看,往往会被各种神秘的符号、公式、大量的教科书和论文整的晕头转向,然后再也不想碰这恼人的玩意了。我们的方法会更加友好,它的学习过程就像小朋友学习一样,你会了解一些基础的知识(但不一定要完全弄懂),然后通过好用的工具快速实现出来就好了。而当你被建模出来的结果吸引,那时候我们才谈算法背后的数学逻辑和计算逻辑。所以我们会在学习中做很多机器学习项目,这样的好处是当你面对一个工作机会时,你就是一个经验丰富的机器学习科学家了!当然自学本身是需要自律的,这本教程将一直陪伴着你,以下是 4 个步骤。1.前提条件 (不需要完全弄懂)统计学、编程和数学(也可以不需要编程) 2.海绵模式 把自己浸泡在机器学习的各种理论中 3.目标实践 通过机器学习包实践 9 个有意思的题目 4.机器学习项目 深度参与到感兴趣的项目和领域中步骤 1:前提条件
机器学习之所以看起来很吓人,是因为总伴随着那些晦涩难懂的术语。实际上,即便你是中文系毕业的,也可以学好机器学习。不过,我们需要你在一些领域有基础的理解。好消息是,一旦你满足了前提条件,其余的将会非常容易。事实上,几乎所有的机器学习都是把统计学和计算机科学的概念应用于数据领域。 任务:确保你了解基础的统计学、编程和数学 统计学:理解统计学、特别是贝叶斯概率对许多机器学习算法来说都是至关重要的。 免费的指南:How to Learn Statistics for Data Science, The Self-Starter Way https://elitedatascience.com/learn-statistics-for-data-science编程:懂得编程将会更灵活的应用机器学习。 免费的指南:How to Learn Python for Data Science, The Self-Starter Way https://elitedatascience.com/learn-python-for-data-science数学:对原始算法的研究需要线性代数、多变量计算的基础。 免费的指南:How to Learn Math for Data Science, The Self-Starter Way https://elitedatascience.com/learn-math-for-data-science你可以先看看这些教程,给你的机器学习道路打下知识基础。 步骤 2:海绵模式
海绵模式是尽可能吸收足够多的机器学习理论知识。 现在有些人可能会想:“如果我不打算进行原创性研究,为什么在可以使用现有机器学习包的时候,还需要学习理论?” 这是一个合理的问题! 然而,如果你想把机器学习更灵活的应用于日常工作,学习一些基础理论还是很有好处的,而且你并不需要完全弄懂。下面我们会剧透学习机器学习理论的 5 个理由。(1)规划和数据采集数据采集真是一个昂贵和耗时的过程!那么我需要采集哪些类型的数据?根据模型的不同,我需要多少数据?这个挑战是否可行? (2)数据假设和预处理 不同的算法对数据输入有不同的假设,那我应该如何预处理我的数据?我应该正则化吗?假如我的模型缺少一些数据,它还稳定吗?离群值怎么处理? (3)解释模型结果 简单的认为机器学习是一个“黑盒子”的概念是错误的。是的,并不是所有的结果都直接可以解释,但你需要诊断自己的模型然后改善它们。我要怎么评估模型是过拟合还是欠拟合?我要向业务利益相关者怎么解释这些结果?以及模型还有多少的改善空间? (4)改进和调整模型 你的第一次训练很少会达到最佳模式,你需要了解不同的调参和正则化方法的细微差别。如果我的模型是过拟合了,我该如何补救?我应该花更多时间在特征工程上,还是数据采集上?我可以组合我的模型吗? (5)驱动商业价值 机器学习从来不会在真空中完成。如果你不了解武器库中的工具,就无法最大化发挥它们的效能。在这么多结果指标中,哪些是优化的参考指标?哪个更为重要?或者还有其他的算法会表现更好吗? 好消息是,你不需要一开始就知道所有问题的答案。所以我们推荐你从学习足够的理论开始,然后快速进入到实践。这样的话,你比较能够坚持下来,并在一段时间后真正精通机器学习。以下是一些免费的机器学习资料。
2.1 机器学习视频课程
这是来自哈佛大学和耶鲁大学的世界级课程。任务:完成至少一门课程 哈佛大学数据科学课程 端到端的数据科学课程。相比吴恩达的课程,它对机器学习的重视程度较低,但是从数据收集到分析,你可以在这里学到整个数据科学的工作流程。 课程主页:http://cs109.github.io/2015/斯坦福大学机器学习课程 这是吴恩达的著名课程,这些视频说清楚了机器学习背后的核心理念。如果你的时间只能上一节课,我们建议这个。 课程主页:https://www.youtube.com/watch?v=qeHZOdmJvFU&list=PLZ9qNFMHZ-A4rycgrgOYma6zxF4BZGGPW&index=12.2 机器学习参考资料
接下来我们推荐行业中两本经典的教材。 任务:看这些 PDF 作为教科书 An Introduction to Statistical Learning Gentler 在书里介绍了统计学习的基本要素,适合所有机器学习的学习者。 PDF 地址:http://www-bcf.usc.edu/~gareth/ISL/ISLR%20Sixth%20Printing.pdfElements of Statistical Learning 严格的介绍了机器学习理论和数学,推荐给机器学习的研究员。 PDF 地址:http://statweb.stanford.edu/~tibs/ElemStatLearn/2.3 成功的关键
以下是每个步骤成功的关键。 A:注重大局,总是问为什么 每当你被介绍一个新概念时,问一句“为什么”。为什么在某些情况下要使用决策树而不是回归?为什么要规范参数?为什么要拆分数据集?当你了解为什么使用每个工具时,你将成为真正的机器学习从业者。 B:接受你不会记得所有学过的东西 不要疯狂的做笔记,也不要每个课程都复习 3 次。在自己的实际工作中,你会经常需要回过头查看。C:继续前进,不要气馁 尽量避免在一个话题上拖太久的时间。即便是对于机器学习教授来说,有些概念也很不好解释。但是当你在实践中开始应用时,你会很快就懂得概念的真实含义。 D:视频比教科书更有效 从我们的经验来看,教科书是很好的参考工具,但它很难坚持。我们强烈推荐视频讲座的形式。 步骤 3:有目的实践
在海绵模式之后,我们会通过刻意练习的方式磨练技能,把机器学习能力提高到一个新水平。目标包括三个方面:1.实践完整的机器学习流程:包括数据收集、清洗、预处理,建立模型,调整参数和模型评估。 2.在真实的数据集中练习,逐渐建立哪种模型适合哪种挑战的直觉。3.深入到一个具体主题中,例如在数据集中应用不同类型的聚类算法,看哪些效果最好。 在完成这些步骤后,当你开始解决大型项目时就不会不知所措了。3.1 机器学习的工具
为了快速实现机器学习模型,我们推荐使用现成的建模工具。这样的话,你会在短时间内练习整个机器学习的工作流程,而无需在任何一个步骤花费太多时间。这会给你非常有价值的“大局直觉”(Big Picture Intuition)。Python:Scikit-Learn Scikit-learn 和 Sklearn 是通用机器学习中 Python 的黄金标准库,它具有常规算法的实现。 R:Caret Caret 为 R 语言中的模型包提供一个统一的界面。它还包括了预处理、数据拆分、模型评估的功能,使其成为一个完整的端到端解决方案。 3.2 实践数据集
学习了工具后,你还需要一些数据集。数据科学和机器学习的艺术,很多都在于解决问题时的几十个微观决定。我们会在不同的数据集中看到建模的结果。任务:从以下选项中选择 5 到 10 个数据集。我们建议从 UCI 的机器学习库开始,例如你可以选择 3 个数据集,分别用于回归、分类和聚类。 在进行机器学习工程的时候,想想以下问题: 你需要为每个数据集执行哪些类型的预处理?你需要进行降维操作吗?你可以使用什么方法? 你可以如何拆分数据集? 你怎么知道模型是否出现“过拟合”? 你应该使用哪些类型的性能指标? 不同的参数调整会如何影响模型的结果? 你能够进行模型组合以得到更好的结果吗? 你的聚类结果和直观的相符么? UCI 机器学习报告 UCI 机器学习报告采集了超过 350 个不同的数据集,专门为机器学习提供训练数据。你可以按照任务搜索(回归、分类或聚类),也可以按照行业、数据集大小搜索。 地址:http://archive.ics.uci.edu/ml/Kaggle http://Kaggle.com 以举办数据科学比赛闻名,但是该网站还拥有超过 180 个社区数据集,它们包含了有趣的话题,从用户宠物小精灵到欧洲足球比赛的数据应有尽有。 https://www.kaggle.com/datasetshttp://Data.gov 如果你正在寻找社会科学或者与政府有关的数据集,请查看 http://Data.gov。这是美国政府开放数据集合,你可以搜索超过 190,000 个数据集。 https://www.data.gov/步骤 4:机器学习项目
好了,现在到了真正有趣的部分了。到目前为止,我们已经涵盖了前提条件、基本理论和有目的实践。现在我们准备好进入更大的项目。 这一步骤的目标是将机器学习技术整合到完整的、端到端的分析中。 4.1 完成一个机器学习项目
任务:完成泰坦尼克幸存者挑战。泰坦尼克号幸存者预测挑战是一个非常受欢迎的机器学习实践项目,事实上,这是 http://Kaggle.com 上最受欢迎的比赛。 我们喜欢以这个项目作为起点,因为它有很多伟大的教程。你可以从中了解到这些有经验的数据科学家们是怎么处理数据探索、特征工程和模型调参的。 Python 教程 我们真的非常喜欢这个教程,因为它教会你如何进行数据预处理和纠正数据。教程由 Pycon UK 提供。 教程地址:https://github.com/savarin/pyconuk-introtutorialR 教程在 R 中使用 Caret 包来处理几个不同的模型。本教程很好总结了端到端的预测建模过程。 教程地址:http://amunategui.github.io/binary-outcome-modeling/这是一个“不负责任”的快速教程:仅仅是个教程,跳过了理论讲解。不过这也很有用,而且它显示了如何进行随机森林操作。 教程地址:http://will-stanton.com/machine-learning-with-r-an-irresponsibly-fast-tutorial/4.2 从头写个算法
为了对机器学习有更深的理解,没有什么比从头写个算法有帮助了,因为魔鬼总是在细节里。我们建议从一些简单的开始,例如逻辑回归、决策树或者 KNN 算法。 这个项目也为你提供了一个将数据语言翻译成程序语言的实践。当你想把最新的学术界研究应用于工作时,这个技能将会十分方便。 而如果你卡住了,这里有一些提示: 维基百科有很多好资源,它有很多常见算法的伪代码。为了培养你的灵感,请尝试查看现有机器学习软件包的源代码。将你的算法分解,为采样、梯度下降等编写单独的功能 从简单开始,在尝试编写随机森林前,先执行一个决策树。4.3 选择一个有趣的项目或领域
如果你没有好奇心,你是很难学好的。但目前为止,也许你已经找到了想坚持下去的领域,那么开始建模吧!老实说这是机器学习最好的部分了。这是一个强大的工具,而一旦你开始理解,很多想法都会主动找上门。 好消息是,如果你一直在跟踪,也准备好从事这份工作,那么你的收获会远超你的想象! 我们也推荐了 6 个有趣的机器学习项目。 地址:https://elitedatascience.com/machine-learning-projects-for-beginners恭喜你到达了自学指南的终点
这里有一个好消息,如果你已经遵循并完成了所有任务,那么你在应用机器学习上将会比 90% 自称是数据科学家的人更好。 而更好的消息是,你还有很多东西要学习。例如深度学习、强化学习、迁移学习、对抗生成模型等等。 成为最好的机器学习科学家的关键是永远不要停止学习。在这个充满活力、激动人心的领域,开始你的旅程吧!该教程由 EliteDataScience 提供,我们翻译了这份教程,略有改动。这是原文链接:https://elitedatascience.com/learn-machine-learning
用Deepseek满血版问问看
回复
使用道具 举报
go149 | 未知
那得首先知道搞人工智能/机器学习的人都在干嘛吧。

首先,这个领域,学术圈和工业圈的差别很大,而写教材的还是学术背景的多。学术圈研究的问题,大部分是相对独立,数据干净定义明确的问题。典型例子如下围棋,没错它很难,但它是一个很干净的信息完全的问题。学术圈怎么玩我不了解我也不瞎掰了。

我假定题主这里的向人工智能靠拢不是投身学术,还是做工业应用。那么先明确一点,在这儿人工智能是要为产品服务的,你的模型做出花儿来,提高不了产品指标换不来钱就是个废物 —— 这种事还真不少。所以你首先得懂产品,能给业务建模,定义问题,找到关键的优化指标;找有效的 feature, 那更是需要持续的产品感觉。

然后就是各种 feature engineering 了。相信我,到项目里,你如果既不在看数据也不在洗数据,那你一定是在问候数据的家人。所以,你还是需要很好的工程能力:编程,看数据找问题,保护颈椎。

我好像到现在都没说怎么学ML知识吧,这部分其他答主已经答得很好了。这些基础知识有点像算法基础 —— 经常有人问现在算法都是封装好直接调用的为什么要学,同样的现在ML工具包模型框架差不多都是现成的为什么还要啃公式推导。但是算法尤其是算法分析的学习,让你在面对复杂工程问题时有良好的建模分析的能力,甚至是直觉。这些 ML 基础知识同理,你要在具体产品问题里找影响力大又容易做ML的优化指标,你去分析哪些feature质量高覆盖好可以用,训练数据要有多大,都是用 learning theory 的知识做指导,虽然你已经不需要真的套公式去算而是靠直觉。你选 model, 调网络结构,选 feature 做 cross 做 normalization, 无一不是基于对基本模型特性的理解。这就是有了那么多现成工具还是要从基础学习的理由。

再往后,到系统跑上一定年月,你就要开始解决数据规模问题,想各种压缩模型省内存的龌龊招数,还要头疼各种各样的数据质量问题 —— Google Ads team 有两篇很好的描述机器学习工程师真实日常生活的文章 Ad Click Prediction: a View from the Trenches, Hidden Technical Debt in Machine Learning Systems 看标题感受一下。

所以,普通程序员如何向人工智能靠拢呢:先学好基础知识,写好code搞好engineering, 还要懂产品 —— 这其实是通用的对工程师的要求。人工智能的知识和经验应该是你成为更好的程序员的历程中,放入行囊的其中一把趁手的锤子,「向人工智能靠拢」不应该是你的目标。
回复
使用道具 举报
cq_mrr | 未知
只要它有效,没有人再称它为AI。” - John McCarthy(AI创始人)
据预测,到2025年人工智能将全面渗透到我们的日常生活中,50%以上的人会失业,同时也为掌握人工智能技术的人创造新的就业机会。

如何成为一名AI工程师?或者说怎样正确学习AI方向的知识?
1.AI工程师到底可以做什么?

    人工智能或机器学习研究:研究和发现机器学习和机器人算法的改进。在某些情况下,找出将这些理论应用到新领域的方法。在许多情况下,这些职位的人必须拥有一个高级学位,比如STEM(Science、Technology、Engineering、Mathematics)领域的硕士或博士学位。人工智能软件开发、项目管理和研究:构建系统和基础设施,可以将机器学习应用到一个给定的输入数据集。这些工作大部分是由相关领域(比如计算机科学、软件工程)的本科学位的人从事的。数据挖掘和分析:对大型数据源深入调查,经常涉及系统的创建和培训以识别各种模型。除博士外,这些职位还可以交给拥有本科学位的经验丰富的专业人士。机器学习应用:机器学习或人工智能在某一特定领域中执行特定功能的应用。包括训练机器识别手势,检测财务欺诈,或分析广告和营销活动等内容。
2.成为人工智能工程师要掌握哪些技能?

一些大型互联网公司对AI工程师技能的要求是:
    Java: 60%AI: 57%Software Development: 48%C++: 38%Linux: 37%Python: 36%

3.如何系统学习AI技术?

数学

为了能够阅读书籍和论文并理解机器学习背后的理论,你需要掌握一些数学知识。特别是以下课程:微积分,线性代数,概率论和统计学,组合学。
软件工程

首先你需要了解一般的软件工程编程,因为ML和AI都涉及编写代码。
    学习Python和SQL
Python可能是初学者最好的编程语言。大多数AI库和示例代码都是用Python实现的,它与第一个成功的AI语言Lisp有许多相似之处。一旦熟悉了基础知识,你就可以学习Python中的并行编程,用它来并行创建训练数据或加快平常的data cooking。
Python3 简明教程_Python
Python科学计算(一)_Python
    善用NumPy和Scipy
一旦你对自己喜欢的编程语言有了全面的了解,并且掌握了足够的基础知识,你就应该开始学习机器学习了。在Python中学习scikitt -learn、NLTK、SciPy、PyBrain和Numpy库,它们在编写机器学习算法时很有用。
    以下是学习和练习ML的资源列表:
Python科学计算(二)_Python
K-近邻算法实现手写数字识别系统--《机器学习实战 》_Python
神经网络实现手写字符识别系统_Python

实践操作

机器人是最基础的AI实践。聊天机器人是最早被称为“机器人”的自动程序之一。像谷歌这样的搜索引擎所使用的网络爬虫就是一个复杂而先进的机器人。
所以我们以机器人编程为例:
    在你开始编程机器人之前,你可以学习下面的内容:
ROS机器人操作系统的安装、配置与初级教程_ROS
ROS机器人操作系统中级教程_ROS
如何构建你的第一个机器人?
你也可以从使用构建终端用户应用程序的API和工具开始。这可以帮助你实际构建一些东西,而不需要太多的理论。
    一些你可以使用的API:
Google Cloud Prediction API Documentation
DiffBot
MAchine Learning for LanguagE Toolkit
Scrapy
Wolfarm Alpha API
    下面是一些机器人项目的清单,供你在尝试最终挑战之前练习和尝试
基于图灵机器人实现QQ群聊机器人_Python
基于 Flask 及爬虫实现微信娱乐机器人_Python
书籍

书籍可以为你提供理论概述
    《人工智能:一种现代的方法(第3版)》

    《情感机器 (湛庐文化机器人与人工智能书系)》

    《终极算法:机器学习和人工智能如何重塑世界》

    《深度学习(deep learning)》

    《机器学习实战 (图灵程序设计丛书 )》

课程

除理论学习外,构建和使用一些实用的机器学习系统也很重要。 Coursera通常有高质量的课程和实践练习。
其他资源

AI手册,更多基于代码的AI介绍
用scikit-learn介绍机器学习
AI革命:超级智能之路
50个Github人工智能项目
25个人工智能课程
15个人工智能视频
回复
使用道具 举报
alexcyk | 未知
如果你是在校学生,自信代码能力强,有过比较好的acm这类成绩或其他类似其他经验,复习一下线性代数和概率,自学下cs231n的课程确认基本理解,然后来面试商汤实习生吧~ 实际经验只有在实战中积累,尤其是深度学习这种有人带会成长快很多。有兴趣私信联系
回复
使用道具 举报
LlwTwUwA | 未知
数据采集小爬虫员来怒答一发。
本人属于数据挖掘中专职采集的。偶尔公司需求偶尔自己想玩就抓了很多的数据存着。比如图片,比如推特,因为从事定位还有大量的和经纬沾边的数据。就经常顺道用数据在做一些好玩的处理。也在逐步学习这些算法用于解决眼前采集中的问题如验证码破解

1:最初破解验证码时,用knn(入门级)和图像处理来识别扭曲字体。如下:


2:之后用于分析这类滑动验证码的破解曲线(就是拿人的曲线反复训练出像人的移动曲线)如下:



3:现在因为有很多的经纬度需要对他们进行聚类划分,就学了kmeans用距离的密度的,在写这篇回答的时候正在对某地140w个坐标点进行2w次聚类。如下:




——————×××××× -我是总结的分界线--×××××××————————
现在自然是菜鸟中的菜鸟,但是在用这些自己采集到的小数据去尝试机器学习算法的时候实在相当开拓眼界。。我现在在这个领域没有什么资格去评价该如何靠拢,如何学习。学这个一方面是因为采集工作轻松,爬虫一写好就”监控着“小调整即可。

学着玩,学以用,学得好,自然会有用武之地。
回复
使用道具 举报
zwmslz | 未知
这年头,放高利贷改名叫p2p,统计改叫大数据分析,建厂房的改名叫孵化器,乞讨改叫众筹,算命改叫分析师。

就连以前学人工智能找不到工作的几个师兄们名片也改叫深度学习专家了。这不尽让我想起以前某学校招聘生化专业找不到足够生源,次年课表上加了门C语言改名信息化与生物技术,报名人数立刻翻番的事情。

以前学模式识别的几个校友,毕业后基本没几个人从事本专业,唯一几个留校的还有有几个也就是给交警刑警做点人脸识别的设备的,大部分都去干别的和专业无关的东西去了,如今一个二个都跃跃欲试,要回来机器学习创业了,我就想问他们早十多年哪里去了。

离那一天还早着呢,或许二十年或者更长都见不到真ai。爷爷奶奶不懂英语看见幼儿园的孙子会被两篇英文稿就以为自己天才外甥掌握英语了,逢人就吹嘘。媒体不懂瞎闹也就罢了,研究几十年的学者知道怎么回事情故意改个名字忽悠经费也能理解,你个搞计算机的怎么回事情都没搞清楚跟着别跟着云里雾里的干嘛我就不明白了,未来十年是不是真有那么大需求么?乌龟换身马甲十年内就能大爆炸了?

还是先把特斯拉自动驾驶车毁人亡的事情解决了再说吧,就跟vr先把移动眩晕和重力反馈给解决掉一样。

别天天想着放卫星。前几年一窝蜂搞游戏,手游搞垮了,去年又一窝蜂搞直播,直播即将洗牌,今年又一窝蜂人工智能。这叫投机。不管是游戏还是直播挣到钱的那拨人都是在没人看好的早好几年就开始耕耘了,不是看啥火就扑上去的投机者。再看所谓人工智能,虽然硬件有所提高(然而硬件也快瓶颈了)但现在的情况仅仅是量变没有质变,连数学模型都根二十年前的教科书十分类似,神经网络还是那个神经网络,概率论还是那个概率论,数据分类还是那些数据分类,只是分析方法有所进步罢了,质变的那一天还早着呢。以游戏和直播这些看得见摸得着的行业来说,泡沫期加入善且很难分杯羹,人工智能这五年内还是虚无缥缈的东西,你在最泡沫的时候什么都没搞清楚就缺乏判断的要挤进去蹭热点有啥用呢?

第一步先把自动驾驶技术搞定再说吧,然后需要大数学家出来设计新的模型,还是现在和二十年前差不多的一套模型框架内耍花抢换行头的话,别说大爆炸了,就连下一个大规模应用的窗口我看五年内也很难出现,十年内出现机会不大。

人工智能做工程的没戏,因为上游学院派二十年没有质变。做学术苦逼,你知道自己正处于满满长夜的最开始阶段。做投资需谨慎,缺乏新理论支撑的应用创新是很艰难的。

说不定隔几年风口一过,那几个原来学人工智能毕业后改行现在又回头本专业创业的师兄又回原来公司写sql做app去了,或者回传统行业跑销售去了吧,会忽悠了么,销售应该跑的更好了吧。

就跟去年叫的很火的vr一样,个个打了鸡血,今年还有几个人叫呢?
怎样看待2016年底,VR行业热度出现(疑似极速)衰退的现象? - 知乎用户的回答 - 知乎

义和团号称自己刀枪不入,成天给下面的拳民表演各种杂耍,这个吐个火球,那个吞把宝剑,拳民们不明真相以为加入义和团就个个神灵护体,喝碗中药就能刀枪不入一样。八国联军的真刀真枪一来,立马就成肉窟窿了。

看看现在全民人工智能的样子,今天生张图片,明天弄段音乐,后天下盘围棋什么的,我看着怎么这么眼熟呢?

--
回复
使用道具 举报
wudao123 | 未知
推荐阅读:腾讯云总监手把手教你,如何成为AI工程师? - 腾云阁

以下是原文部分摘要,希望对你的问题有帮助:)
【传统开发 转行AI工程师的障碍】

2.1 急于求成的心态
  LR, SVM, 决策树,DNN,CNN, AlexNet, GoogleNet, Caffee,TensorFlow, 智能驾驶,AlphaGo, 个性化推荐, 智能语音,GPU, FPGA....  晕了没? 没晕再来一波。。。。

  这里面的水很深,不要太急躁很快能搞懂,事实上由于数学理论不完备,有些东西还真解释不清楚,比如在图像识别上ResNet 比GoogleNet识别率更高,ResNet是怎么推导出来的?   梳理好这些概念,结合实际应用,化整为零逐步理解和吸收,有的放矢,不可操之过急。   
2.2 自底往上的学习方法,想要从基本概念学习
建议结合应用场景先动手实践,再逐步细化。推荐《机器学习》 周志华 清华大学出版社

【入门成为AI工程师的可行路径】

  虽然从垂直领域讲有语音识别,图像视觉,个性化推荐等业务领域的AI工程师,但从其所从事的研发内容来看,从事AI研发的工程师主要分为3类:
1)AI算法研究
  这类人大都有博士学历,在学校中积累了较好的理论和数学基础积累,对最新的学术成果能较快理解和吸收。这里的理论是指比如语音处理,计算机视觉等专业知识。AI算法研究的人主要研究内容有 样本特征,模型设计和优化,模型训练。样本特征是指如何从给定的数据中构建样本,定义样本的特征,这在个性化推荐领域中就非常重要。模型设计和优化是设计新的网络模型,或基于已有的模型机型迭代优化,比如CNN网络模型中AlexNet, GoogleNet v1/v2/v3, ResNet等新模型的不断出现,另外就是比如模型剪枝,在损失5%计算精度情况下,减少80%计算量,以实现移动终端的边缘计算等等。模型训练是指训练网络,如何防止过拟合以及快速收敛。
2)AI工程实现
  这类人主要提供将计算逻辑,硬件封装打包起来,方便模型的训练和预测。比如:精通Caffee/TensorFlow等训练框架源码,能熟练使用并做针对性优化;构建机器学习平台,降低使用门槛,通过页面操作提供样本和模型就能启动训练;通过FPGA实行硬件加速,实现更低延时和成本的模型预测;在新模型验证完成后,实现在线平滑的模型切换;   
3)AI应用
  侧重验证好的模型在业务上的应用,常见语音识别,图像视觉,个性化推荐。当然这也包括更多结合业务场景的应用,比如终端网络传输带宽的预测,图片转码中参数的预测等等。
回复
使用道具 举报
阿嫂dasdd | 未知
1.  如果你数学基础不行,英语不行, 不要因为人工智能热门就强行向人工智能靠拢,即使靠拢了也是在外围转圈,没什么实际用处。深度学习之类的还是让更专业的人去做。做一个更专业的程序员更好,术业有专攻。
2.  如果你数学基础好,英语强,又对人工智能有强烈的兴趣,要么读一个相关的硕士学位,要么按照前面高票答案一步一步自学,但关键是做好路径规划:实践,用它解决某个实际问题,或者有一定基础后加入某个相关的公司或团队,这样的“靠拢”比较靠谱。
回复
使用道具 举报
zhou86 | 未知
2016年中国计算机大会,张跋院士,谭铁牛院士,高文院士,周志华教授都表示机器学习现在还纸处在初级阶段,人工智能已经在60年的历史中几起几落了。所以不要觉得人工智能时代那么快就来临了。特别是深度学习,现在学术圈已经开始反思深度学习了。高文院士说,在美国凡是关于深度学习应用研究的基金申请全部都会被拒掉?
回复
使用道具 举报
快速回复
您需要登录后才可以回帖 登录 | 立即注册

当贝投影