版本 201804
看到一张美图,可惜是低分辨率的,我们会立刻想到用 Google 去搜索原图;和外语使用者交流,我们会马上想到用翻译工具;再比如用手写下的文字,能被轻易转化为数字化的文本;拿起手机扫描二维码,其中的信息就会被解读 …… 对于其背后的技术,你可能曾经了解过,也可能对此一无所知。其实,这一切的一切,都有赖于机器学习。
什么是机器学习?
机器学习是当前非常热门的人工智能领域使用的主要技术。
机器学习能做什么?
机器学习已经被广泛的运用在解决各种现实生活中的问题,包括但不限于:
- 游戏博弈。例如战胜了李世石和柯洁的围棋对战人工智能 AlphaGo ,不是利用游戏内部接口而是实际识别屏幕内容和操作鼠标来打星际的 AI 等。
- 图像识别和处理。例如 PhotoShop 中对图片缺损的部分使用智能内容识别补全, Waifu2X 等能把低清晰度的图片重绘放大,Twitter 和 Facebook 自动在用户发表的图片中识别人脸并标记,文本扫描和识别的 OCR 软件等。
- 声音和视频处理。分析音频判断声源的个数和分布,将录制的影像变化为任意名人的声音或视频,针对监控录像自动警告暴力行为,应用于自动驾驶的街景物体识别算法等。
- 自然语言处理(NLP)。例如引入了能理解上下文含意使翻译文本通顺的 Google Translate 工具,能通过文本识别文本是否是同一作者、是否涉及剽窃以及作者的感情态度是积极还是负面等等的工具。
- 艺术创作。例如利用 DeepDream 生成梦境一般的图画,利用风格迁移算法改造绘画或者照片的风格,自动生成动漫角色或者卡通角色等。
- …… 以及更多过去需要人类经验,但是可以被机器学习自动化替代的领域。
机器学习技术与其他领域的关系是什么?
机器学习与数据科学领域结合的十分紧密。深度学习是近年来兴起的一种实用的机器学习方法,指的是通过训练多层的神经网络模型来解决问题,另外重要的还有 AlphaGo 使用的能让机器通过不断试错获得经验的强化学习、能把机器学习的模型同时应用在多个类似的问题的迁移学习等。
机器学习困难吗?我也能学习机器学习吗?
就像编程是一个方便自己和解决实际问题的工具一样,机器学习是一种新的编程方式:不需要再手动编写所有的 if-else 条件语句,而是让算法自动通过一组数据进行学习,发现其中的规律。
机器学习并不困难。只需要有普通的数学基础和会一点编程语言,只要感兴趣,就可以开始入门。
学习机器学习对我有什么功利性的作用?
除了出于兴趣学习和为自己解决实际问题以外,机器学习还可以作为硕士阶段的研究方向和未来的职业方向。
计算机科学和电子信息的相关专业的高校和试验机构,都有大量机器学习相关的科研课题。该类专业的很多人在开始读研后,才发现自己很难选择不去掌握一定的机器学习知识。
在互联网和计算机行业,数据科学和人工智能领域有巨大的人才缺口,起薪普遍高于界面设计、Web 开发、 Java 后台、 C++ 开发等。[参考:机器学习招聘 – 拉勾网]
通信工程、网络安全、数据科学和人工智能是北京邮电大学双一流建设的主要学科方向。我校的实验室超过半数都有团队在从事机器学习相关的研究。[参考:北邮双一流建设规划]
学习机器学习有什么必要的先决条件?
几乎所有的先决条件都不是绝对必要的。完全可以在入门机器学习的同时巩固这些技能。
机器学习领域最常用的编程语言是 Python 。这门优雅而直观的语言,使得任何有其他编程语言例如 C 语言基础的人都能轻易上手。了解机器学习的数学原理,需要用到高等数学/微积分 (偏导数,积分)、线性代数 (矩阵运算)、概率论与统计理论中的一些内容,但这并不意味着数学基础全部掌握之前就不能开始机器学习的入门。
对于北邮信通院、计院、网安院、软院等学院的学生来说,推荐的入门时间是大一下学期,修完「高等数学上」和「线性代数」「C 语言程序设计」并开始修「高等数学下」和「离散数学」,或者大二上学期开始修「概率论与统计理论」时。
学习机器学习究竟意味着我要做些什么?
只需要会做这些事情:
- 了解机器学习的基本概念和理论。
- 使用常用的机器学习程序库,例如 TensorFlow 和 PyTorch ,实现可用的机器学习模型和工具。
- 阅读机器学习领域的新闻和论文,了解行业的新技术和发展动态。
我该如何开始?
这些入门教程可以帮你对机器学习有大概的了解:
- 「深度学习如何入门?- 知乎回答」 https://www.zhihu.com/question/26006703/answer/156451408 , https://www.zhihu.com/question/26006703/answer/229415675 , https://zhuanlan.zhihu.com/p/21475898
- 「机器学习速成课程 | Google Developers」 https://developers.google.com/machine-learning/crash-course/
- 「MNIST机器学习入门 – TensorFlow 中文社区」 http://www.tensorfly.cn/tfdoc/tutorials/mnist_beginners.html
这是两个直观理解机器学习的酷炫的演示:
- A Neural Network Playground http://playground.tensorflow.org/
- 3D Visualization of a Convolutional Neural Network http://scs.ryerson.ca/~aharley/vis/conv/
接下来,你可以深入阅读这些书籍和文章:
- 《机器学习(周志华)》南京大学教授撰写的中文教材,公认最好的中文机器学习理论入门书。
- 《深度学习》公认权威的深度学习指南,电子版 https://github.com/exacity/deeplearningbook-chinese 。
你可以在这些地方了解机器学习新技术的动态:
- 「机器学习 – 知乎话题」 https://www.zhihu.com/topic/19559450/hot
- 「深度学习 – 知乎话题」 https://www.zhihu.com/topic/19813032/hot
- 「西土城的搬砖日常 – 机器学习 – 知乎专栏」 https://zhuanlan.zhihu.com/xitucheng10
- 「人工智能 – CSDN」 https://www.csdn.net/nav/ai
- 「专知 – 为人工智能从业者服务」 http://www.zhuanzhi.ai/
- 「我爱机器学习 – 机器学习干货」 https://www.52ml.net/
我该怎么更有效率的学习?
一个参考的路线:
- 找一些兴趣相投的小伙伴,从一个你们觉得有意思的机器学习的实际应用入手,例如如何编写一个能自动在游戏中取胜的AI,然后阅读相关的新闻报道来熟悉机器学习的基本概念。
- 开始了解机器学习的具体原理和各种机器学习程序库的使用,尝试写出自己的第一个模型。
- 提出一个使用机器学习解决实际问题的想法,围绕这个目标寻找相关的报道、教程和学术论文,并不断学习和实践来实现想法。
在北邮,我能否更好的学习机器学习?
- 学生组织和社团
- 我校有一个 AI 学会分会,面向学生开放。
- 活动
- 我校经常会举办人工智能相关的讲座。我校有许多在机器学习耕耘已久的专家教授,也经常有相关学术交流活动。[参考:钟义信教授]
- 我校不定期举办大数据和人工智能相关的校内竞赛。
- 另外可以关注北京本地的其他讲座、会议和竞赛。
- 实验室
- 对于在本部的学生,实验室往往会接受有兴趣的学生参与科研项目。有的实验室会从头开始进行机器学习入门和学术培养,有的实验室只接受有基础和潜力的学生。
- 你完全可以在自己开始入门机器学习后,主动询问老师或同学,了解有没有相关的机会。
其他参考阅读
- 「机器学习应该准备哪些数学预备知识? – 知乎」 https://www.zhihu.com/question/36324957
- 「机器学习学习索引 – Dimpurr’s Knowledge Base #1」 http://note.dimpurr.com/#%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%AD%A6%E4%B9%A0%E7%B4%A2%E5%BC%9http://note.dimpurr.com/#%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%AD%A6%E4%B9%A0%E7%B4%A2%E5%BC%95
- 「Awesome Deep Learning」 https://github.com/ChristosChristofidis/awesome-deep-learning
- 「机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 1) 」https://github.com/ty4z2008/Qix/blob/master/dl.md