客户端码农学习ML —— 整体了解

简介: AlphaGo人机大战吸引了众多人的关注,也引来的一波AI热,不光很多公司进行了大量投入,连政府也相当重视,作为客户端码农自然要与时俱进下,经过一段时间学习与试验,稍有了解,写篇文章总结下。 首先要搞清楚当下3个热门词语: 人工智能(AI)、机器学习(ML)和深度学习(DL)的区别和联系。

ML(Machine Learning 机器学习)

简介:

AlphaGo人机大战吸引了众多人的关注,也引来的一波AI热,不光很多公司进行了大量投入,连政府也相当重视,作为客户端码农自然要与时俱进下,经过一段时间学习与试验,稍有了解,写篇文章总结下。

首先要搞清楚当下3个热门词语: 人工智能(AI)、机器学习(ML)和深度学习(DL)的区别和联系。理解三者之间关系最简便方法就是将它们看作一组同心圆:最大的部分是人工智能,然后是后来兴旺的机器学习,最后是促使当下人工智能大爆发的深度学习。

3个概念关系
本文从以下几个方面概览下AI的各方面:

首先要了解可以做哪些应用、整个训练流程有个大概印象,知道学习分类、学习框架,练习模型训练中用到的开发语言、科学计算库、图形库等,此时只是把ML的细节原理当成了黑箱子,稍微深入点的了解绕不过机器学习的算法和数学。

应用:

图像识别 这是比较常见的一种应用,可以用来做OCR、人脸定位、人脸识别、物体追踪等,识别王者荣耀英雄(https://zhuanlan.zhihu.com/p/28731349

NLP (自然语言处理)

语音识别

游戏 比如AI自己玩魂斗罗、最近比较火的微信小游戏跳一跳(https://zhuanlan.zhihu.com/p/32636329)

风格转移 模仿大师的画作风格将其它的画进行转换

手势识别

超分辨率重建

去噪、去马赛克

训练流程

了解了AI能做到的事情,再来看看怎么训练AI使之学习到如何做到这些,模仿人类小孩的学习,想让他认识猫,先得指着一只猫告诉他这是猫,多看几只不同的猫,小孩就知道区分一堆动物中哪些是猫了,但他此时还是只知道识别猫,旁边一只不像猫的告诉他这是狗,看几只狗就又会识别狗了。常见的监督式AI学习过程与之类似,总结下来就是:

数据收集(如何低成本获取大量高质量数据、训练素材、数据集比训练模型更重要)
数据分析
数据清洗
数据采样
特征提取
最小累积误差计算(梯度下降法)
训练模型
验证模型
测试模型
使用及改进

学习分类:

监督学习

上面提的识别猫、狗的例子就是监督学习,收集打了正确标签的样本数据,通过学习框架编写代码读取数据集进行训练,一般来说数据越多模型可越准确。

无监督学习

计算机在没有结果标签的数据学习后,能获取有用数据的学习过程

半监督学习

介于上述两者之间

学习框架

Tensorflow

Caffe

Pytorch

Theano

开发语言及支持库

Python是AI开发的首选语言、没有之一,大量成熟的库。

大量支持库:

Numpy(基础N维数组库)
SciPy(科学计算库)
Pandas(数据分析处理库)
Matplotlib(数据可视化库)
Pil(图像处理库)
scikit-learn(机器学习库)

实现机器学习的技术

深度学习

强化学习

迁移学习

机器学习的算法

回归算法

支持向量机SVM

各种神经网络:如RNN、CNN等

决策树

聚类算法

贝叶斯网络

数学

对于大多数是工作多年的码农,尤其是客户端码农,数学早已还给了老师,但要想稍微深入了解机器学习,必须掌握一些数学知识,否则还只是API调用侠。

微积分、线性代数是必选项,尤其是线性代数无论是AI还是游戏开发都是必选项,其次最好能了解概率论相关。

下图做了一个详细的汇总:

AI (人工智能)汇总图

参考

http://qianhk.com/2018/02/客户端码农学习ML-整体了解/

https://www.zhijin.vc/article/news_detail/356

https://www.bysocket.com/?p=1823

https://www.zhihu.com/question/51039416

https://www.zhihu.com/question/36324957

本文首发于钱凯凯的博客

 

目录
相关文章
|
5月前
|
数据采集 存储 JavaScript
构建你的第一个Python爬虫:从理论到实践
【8月更文挑战第27天】本文旨在为初学者提供一个关于如何构建简单Python网络爬虫的指南。我们将从网络爬虫的基础概念讲起,然后通过一个实际的项目案例来展示如何抓取网页数据,并将其存储在本地文件中。文章将介绍必要的工具和库,并逐步引导读者完成一个简单的爬虫项目,以加深对网络数据抓取过程的理解。
|
5月前
|
机器学习/深度学习 人工智能 算法
【悬念揭秘】ML.NET:那片未被探索的机器学习宝藏,如何让普通开发者一夜变身AI高手?——从零开始,揭秘构建智能应用的神秘旅程!
【8月更文挑战第28天】ML.NET 是微软推出的一款开源机器学习框架,专为希望在本地应用中嵌入智能功能的 .NET 开发者设计。无需深厚的数据科学背景,即可实现预测分析、推荐系统和图像识别等功能。它支持多种数据源,提供丰富的预处理工具和多样化的机器学习算法,简化了数据处理和模型训练流程。
85 1
|
5月前
|
敏捷开发 设计模式 开发者
【揭秘终极利器】AgileEAS.NET:服务定位器模式的魔法,如何让企业级软件开发瞬间提速?揭秘背后的技术奥秘与实战指南!
【8月更文挑战第16天】AgileEAS.NET是基于DotNet的企业级敏捷开发平台,其服务定位器模式助力构建高度解耦系统。通过全局服务目录动态查找服务,避免硬编码依赖。在AgileEAS.NET中,服务定位器以静态类形式封装服务注册与检索功能。示例展示了如何注册与获取服务实例,如在`UserController`中通过服务定位器使用`IUserService`。此模式整合到框架生命周期管理,便于各处获取服务实例,提升开发效率。然而,应适度使用并考虑依赖注入容器以增强代码可维护性和可测试性。
82 4
|
8月前
|
人工智能 达摩院 算法
什么是优化技术?给算法小白同学的快速讲解和上手文
本文作者用一个曾经小白学习的视角,来讲解什么是优化问题,以及要如何用这个优化技术。
48126 59
|
机器学习/深度学习 人工智能 自然语言处理
如何用ChatGPT高效完成工作
都2023年了,是时候让ChatGPT来帮我们完成工作了!本文将教你如何用ChatGPT高效地完成工作,并提供相关入门技巧。希望阅读本文后,大家都能轻松搞定工作,开开心心摸鱼。
354 0
如何用ChatGPT高效完成工作
|
程序员 编译器 C++
C++(入门、核心、提高三篇)总结及补充
C++(入门、核心、提高三篇)总结及补充
119 0
C++(入门、核心、提高三篇)总结及补充
|
算法 JavaScript Java
开源码力榜背后的算法模型
开源码力榜背后的算法模型
191 0
开源码力榜背后的算法模型
|
机器学习/深度学习 监控 算法
ML:机器学习模型的稳定性分析简介、常见的解决方法之详细攻略
ML:机器学习模型的稳定性分析简介、常见的解决方法之详细攻略
|
存储 并行计算 算法
模型部署优化的学习路线是什么?
我现在只会 Python,每天工作就是写脚本处理数据、训练模型,但是没什么工程能力,我想往模型部署优化、算法落地这个方向发展,请问该怎么学习与规划?
356 0
模型部署优化的学习路线是什么?
|
SQL 存储 分布式计算
“开源”vs“商业”,差别到底有多大?这篇测试一目了然
来自用户的声音… 开源就能搞定,还要选商业方案吗? 我是小白用户,开源方案上手快吗? 性能有极致要求,开源能满足吗? 追求性价比,哪种方案更适合我? 我对MySQL很熟悉,数据分析场景适合吗? 上述问题如何解?看阿里云帮你对比分析!
15195 0
“开源”vs“商业”,差别到底有多大?这篇测试一目了然