机器学习的技术栈及应用实例脑洞
之前写了一篇入门级的学习列表: 简单粗暴地入门机器学习
好多小伙伴觉得不太过瘾,今天补充一些脑洞!
本文结构:
- 机器学习技术栈
- 职位
- 项目实例
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 吓到。
我也在一点点学习,共勉,特别喜欢的一句话:
一个人的知识就像一个圆,圆周外面是未知世界;圆的半径越大,圆周就越长,因而就更感到无知里的圆的半径越大。
- java使用spark/spark-sql处理schema数据
- redis的发布订阅模式pubsub
- linux命令和awk
- django集成celery之callback方式link_error和on_failure
- 使用beanstalkd实现定制化持续集成过程中pipeline
- 用SQLite查看编辑android导出的微信聊天记录
- 使用HDFS客户端java api读取hadoop集群上的信息
- 使用Fabric一键批量部署上线/线上环境监控
- springboot使用zookeeper(curator)实现注册发现与负载均衡
- django使用xlwt导出excel文件
- redis的sentinel主从切换(failover)与Jedis线程池自动重连
- Hadoop通过HCatalog编写Mapreduce任务访问hive库中schema数据
- 伪排练:NLP灾难性遗忘的解决方案
- java优雅的使用elasticsearch api
- 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 数组属性和方法
- 关于ConcurrentHashMap的key和value不能为null的深层次原因
- How does InnoDB behave without a Primary Key(11.InnoDB在没用主键情况下的行为)
- 输入示例,自动生成代码:TensorFlow官方工具TF-Coder已开源
- 聊聊java8中的@sun.misc.Contended与伪共享
- InnoDB Tidbit:The doublewrite buffer wastes 32 pages (512 KiB) (12.双写缓冲区会导致512KB的浪费)
- 10 | Tornado源码分析:Gen 对象(上)
- springboot使用spring-cloud-starter-alibaba-sentinel导致响应变成xml格式
- 内网安全攻防之内网渗透测试基础
- CMake脚本中如何修改XCode工程属性?
- 数值微分|有限差分法的误差分析
- Odyssey
- 【MySQL】之join算法详解
- 性能最佳实践:查询模式和分析
- Node 如何在 Controller 层进行数据校验
- FlutterDojo设计之道——状态管理之路(二)