普通码农如何正确学习机器学习的知识?

前几天爆出当你还不懂人工智能的时候,骗子已经开始用人工智能技术骗人了。

这背后所利用的技术就是人工智能中很重要的神经网络与机器学习,神经网络模拟电信号在人脑神经元之间的传递过程,对输入数据进行处理。利用分层的神经元,从大量样本数据中总结出共同特征,由此生成高还原度的合成声音。

不过日常生活中早就有AI的身影,只是你不曾留意:抖音的推荐机制、天猫的猜你喜欢、美图软件的特效、微软小冰等聊天机器都用到了人工智能相关技术。

这些的背后都离不开机器学习做技术支撑,那么机器学习到底是什么呢?

Part.1

机器学习是什么?

关于机器学习的定义有很多,它属于人工智能的一种实现形式,用通俗点的语言来说,一系列改善机器模拟人类行为的方法都可以称之为机器学习

机器学习可以做很多事情,包括但不限于以下几个方面:

  • 计算机视觉:如人脸识别,高速路上的电子眼(违章识别),火车票,身份证识别等;
  • 自然语言处理:如大量文章自动分类(新闻分类),文章或评论情感分类等;
  • 语音识别、语音合成:如浏览器里语音搜索,语音输入法,智能音箱等;
  • 个性化内容推荐:如电商平台的猜你喜欢,今日头条文章推荐等。

机器学习中的很多内容和人本身的行为是很像的,尤其是深度学习那一部分,最初是从人类大脑的仿生学借鉴而来的。

比如金融领域的信用评估,

人类的思维模式: 假如一个人来向你借钱,你需要判断他的信用等级,来确定是否借钱给他,借多少钱给他,你最终从他的工作,收入,是否有车,是否有房,是否有社保,是否有公积金等维度来判断他属于哪一类人。 机器的计算方式: 同人的思考方式是很类似的,不同的是机器更高效了,机器可以一天24小时不间断的工作,一天可以处理上百万个借钱订单,这是人远远不及的。

Part.2

机器学习难吗?

任何学习都需要由浅入深,先入门把基础打扎实,再去攻克其它内容。想要成为一名优秀的机器学习算法工程师,需要掌握一张不算小的知识网络:

(文末可获取图片清晰版本)

把上图的知识进行拆分,主要可以分为以下四点:

01:基础开发能力

所谓算法工程师,首先需要是一名工程师,那么就要掌握所有开发工程师都需要掌握的一些能力。在大多数企业的大多数职位中,算法工程师需要负责从算法设计到算法实现再到算法上线这一个全流程的工作。

02:概率和统计基础

概率和统计可以说是机器学习领域的基石之一,从某个角度来看,机器学习可以看做是建立在概率思维之上的一种对不确定世界的系统性思考和认知方式。

在统计方面,一些常用的参数估计方法也需要掌握,典型的如最大似然估计、最大后验估计、EM 算法等。这些理论和最优化理论一样,都是可以应用于所有模型的理论,是基础中的基础。

03:开发语言和开发工具

近年来 Python 可以说是数据科学和算法领域最火的语言,主要原因是它使用门槛低,上手容易,同时具有着完备的工具生态圈,同时各种平台对其支持也比较好。

但是在模型训练方面,有一些更加专注的工具可以给出更好的训练精度和性能,典型的如 LibSVM、Liblinear、XGBoost等。大数据工具方面,目前离线计算的主流工具仍然是Hadoop和Spark,实时计算方面 Spark Streaming 和 Storm 也是比较主流的选择。

04:机器学习理论(最重要)

虽然现在开箱即用的开源工具包越来越多,但并不意味着算法工程师就可以忽略机器学习基础理论的学习和掌握。这样做主要有两方面的意义

掌握理论才能对各种工具、技巧灵活应用,而不是只会照搬套用。只有在这个基础上才能够真正具备搭建一套机器学习系统的能力,并对其进行持续优化。否则只能算是机器学习搬砖工人,算不得合格的工程师。出了问题也不会解决,更谈不上对系统做优化。

学习机器学习基础理论的目的不仅仅是学会如何构建机器学习系统,更重要的是,这些基础理论里面体现的是一套思想和思维模式,其内涵包括概率性思维、矩阵化思维、最优化思维等多个子领域,这一套思维模式对于在当今这个大数据时代做数据的处理、分析和建模是非常有帮助的。如果你脑子里没有这套思维,面对大数据环境还在用老一套非概率的、标量式的思维去思考问题,那么思考的效率和深度都会非常受限。

原文发布于微信公众号 - 机器学习算法与Python学习(guodongwei1991)

原文发表时间:2018-12-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券