机器学习的技术栈及应用实例脑洞
之前写了一篇入门级的学习列表: 简单粗暴地入门机器学习
好多小伙伴觉得不太过瘾,今天补充一些脑洞!
本文结构:
- 机器学习技术栈
- 职位
- 项目实例
1. 机器学习技术栈
去知乎上可以搜到很多推荐的学习路线,问题就是太多了,我就先列出一些必需的知识和项目方向,学习还是要一步一步积累的。
需要的基础技能:
- Various level of math, including probability, statistics, algebra, calculus, logic and algorithms.
- Bayesian networking or graphical modeling, including neural nets.
- Physics, engineering and robotics.
- Computer science, programming languages and coding.
- Cognitive science theory.
关于数学基础:
- 线性代数,最小二乘,PCA,SVD
- 微积分基础,梯度下降法,牛顿法,神经网络后向传播
- 概率论基础,条件概率,贝叶斯定理,logistic
很多小伙伴觉得自己数学不好,是不是就会很难入门,上一篇文章中提到过,入门并不难,本科时的高数就可以用,如果有时间,可以复习一下 线性代数,微积分,概率论,这些是基础。就算学习深度学习时遇到了复杂的模型公式,有了这些基础,应该也是可以看懂的。
库:
- TensorFlow + Keras
- Python: Numpy, Pandas, Matplotlib, Scipy
机器学习算法基础:
分类 回归 聚类 关联 决策树 支持向量机(SVM) 神经网络 深度学习 增强学习 交叉检验 贝叶斯
模型训练基础:
- Back Propagation (BP)
- Stochastic Gradient Descent (SGD)
神经网络:
- Feedforward Neural Network
- Convolutional Neural Network (CNN)
- Recurrent Neural Network (RNN)
- Deep Feedforward Network (DFN)
自然语言处理:推荐课程 cs224d
- word embedding
- Softmax
有趣的项目:
人脸识别 手写识别 物体识别 语言识别
个性化推荐 预测价格 用户画像 行为分析
无人车 照片油画化 文章生成 音乐生成 诗歌生成 聊天机器人 游戏机器人
2. 职位
职位的话,推荐去拉勾网搜机器学习,深度学习,人工智能等关键词,看一下都有哪些职位,就差不多能知道需要哪些技能,挑一个和自己技术栈比较相近的开始学习。
不过如果还没有明确的方向的话,基础学起来,例如 斯坦福 Andrew Ng 的 机器学习课程,还是没有差的,因为底层知识都是必需的,而且基础就是举一反三,以不变应万变的神器。
这里先列出一些大的类型:
- AI / machine learning researcher.
Research improvements to machine learning algorithms. In some cases, research ways of applying it to new domains. Usually you've got a PhD in the area for these jobs.
- AI Software development, including program management and test.
Developing the systems and infrastructure that can apply machine learning to an input data set. This is just like any other software engineering position. You can get these jobs with a bachelor's in a related field (e.g. computer science), though it's good to have some understanding of machine learning and AI, and good math skills.
- Data mining and analysis.
This is deep investigation of large data sources, and often creating and training systems to recognize patterns in them. A PhD in a related field is not unusual, but again I've seen people with bachelor's degrees doing it.
- Machine learning applications.
This is applying a machine learning or AI framework to a specific problem in a different domain. For example, applying machine learning to gesture recognition, ad analysis, or fraud detection. If you are already working in the target area, you can do this with a little guidance from someone familiar with the framework you want to use.
如果还是不知道自己的目标的话,那就先进入一线城市、最热门、最具有竞争力的行业企业里去修炼,同时持续地观察自己。越大的城市可能性越多,视野越广阔,越容易发现自己喜欢的方向;越强的竞争也给你越多磨炼和积淀,在你找到目标的时候,有能力随时移动过去。最后,让优秀的人带你跑一段,慢慢你会看到机会。
忍不住来句最喜欢的鸡汤:
3. 项目实例
图片来自: 麦肯锡用数据说明,关于机器学习有120个商业机会
麦肯锡研究发布了机器学习将影响的12个领域,每个领域又分为10个方面。也就是说可以看到深度学习的120个商业机会。
现在身边比较火的提的最多的词就是计算机视觉,自然语言处理,人工智能,VRAR,自动驾驶等等,但其实机器学习可以解决的问题远不止这些。
系统地学完一门机器学习的课程后,就可以知道,它能做的可以总结为 优化,预测,相关性
问题,所以深度学习和机器学习可以用于解决很多行业的问题,制造业,金融业,零售业,能源,医疗,农业,媒体,电信等等,只要是涉及到优化,预测,个性化相关的,这俩技术都可以做。
下面 12 幅图就是各个领域的应用实例,有列出各自所属的问题类别,并按照影响度由高到低排列。
原文是一份136页的报告,感兴趣的可以点击此链接:http://www.mckinsey.com/business-functions/mckinsey-analytics/our-insights/the-age-of-analytics-competing-in-a-data-driven-world
零售业.jpg
金融业.jpg
媒体.jpg
汽车.jpg
电信.jpg
物流.jpg
制造业.jpg
农业.jpg
能源.jpg
卫生保健.jpg
中西制药.jpg
公共社会.jpg
好啦,暂时就列举这么多,还是那句话,对于初学者,这篇文章你就用来有个宏观把握就可以了,脚踏实地地先把第一篇文章中的材料学好,就没什么不可能的。不要被这篇文章中的 list 吓到。
我也在一点点学习,共勉,特别喜欢的一句话:
一个人的知识就像一个圆,圆周外面是未知世界;圆的半径越大,圆周就越长,因而就更感到无知里的圆的半径越大。
- mac下利用Breakpad的dump文件进行调试
- OpenCV3.2集成Android Studio2.2开发配置
- laravel中使用gulp打包发布前端部分
- Spring的编程式事务和声明式事务
- Java过滤器Filter的使用详解
- 基于积分图的二值图像膨胀算法实现
- Java监听器Listener的使用详解
- 图像各向异性滤波
- Python爬虫实战-抓取《盗墓笔记》所有章节及链接
- JSP 和 Servlet 的工作原理和生命周期
- Python OpenCV像素操作
- 别人在抢红包,而程序员在研究微信红包的算法实现
- C++模板类与Qt信号槽混用
- Python3.6+OpenCV3.3开发环境搭建
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- ClickHouse和他的朋友们(3)MySQL Protocol和Write调用栈
- ubuntu安装多个版本的CUDA并随时切换
- 如何在Ubuntu 18.04(实体机)上配置OpenWRT的开发环境
- Android 组合控件实现布局的复用的方法
- Android编程实现播放音频的方法示例
- 使用VSCode的Remote-SSH连接Linux进行远程开发
- Android ListView之EfficientAdapte的使用详解
- JavaScript:ECMAScript 2020中的新增功能
- Android编程实现播放视频的方法示例
- Android开发之RadioGroup的简单使用与监听示例
- Android 根据手势顶部View自动展示与隐藏效果
- Vue 3 如何安装
- Android实现状态栏(statusbar)渐变效果的示例
- Linux中stat函数和stat命令使用详解
- Android Beam 文件传输失败分析与解决方法