25岁Java工程师如何转型学习人工智能?

简介:

“大牛我要问”栏目推出一段时间后,阿里妹收到不少童鞋的来信,其中以职业发展、技术成长的困惑居多。

今天阿里妹选择了一个颇具有代表性的问题:关于目前大热的AI入门学习,希望能帮助有同样问题的童鞋解惑指路。

来信问题:25岁Java工程师如何转型学习AI?

我是一名25岁的Java开发工程师。本科学习的专业是信息与计算科学(数学专业),因为对计算机方面感兴趣,之后培训学习了Java,所以现在从事Java开发。目前就是在电商公司开发一些系统。

我对人工智能非常感兴趣,对数学的兴趣也从未减弱。人工智能设计的学习材料很多,像我这样的状况,如果想要转型以后从事这方面的工作,具体应该学习些什么?

阿里技术童鞋“以均”回信:

首先,我想聊聊为何深度学习最近这么火。

外行所见的是2016年AlphaGo 4比1 战胜李世石,掀起了一波AI热潮,DeepMind背后所用的深度学习一时间火得不得了。其实在内行看来,AlphaGo对阵李世石的结果是毫无悬念的,真正的突破在几年前就发生了。

2012年,Gefferey Hinton的学生Alex使用一个特别构造的深度神经网络(后来就叫AlexNet),在图像识别的专业比赛ImageNet中,得到了远超之前最好成绩的结果,那个时候,整个人工智能领域就已经明白,深度学习的革命已经到来了。

果然,之后深度学习在包括语音识别,图像理解,机器翻译等传统的人工智能领域都超越了原先各自领域效果最好的方法。从2015年起,工业界内一些嗅觉灵敏的人士也意识到,一场革命或已到来。



关于基本概念的学习


机器学习与深度学习

深度学习是机器学习中的一种技术,机器学习包含深度学习。机器学习还包含其他非深度学习的技术,比如支持向量机,决策树,随机森林,以及关于“学习”的一些基本理论,比如,同样都能描述已知数据的两个不同模型,参数更少的那个对未知数据的预测能力更好(奥卡姆剃刀原理)。

深度学习是一类特定的机器学习技术,主要是深度神经网络学习,在之前经典的多层神经网络的基础上,将网络的层数加深,并辅以更复杂的结构,在有极大量的数据用于训练的情况下,在很多领域得到了比其他方法更好的结果。

机器学习与大数据

大数据:机器学习的基础,但在多数语境下,更侧重于统计学习方法。
机器学习,深度学习,数据挖掘,大数据的关系可以用下图表示

image



系统学习资料


深度学习火起来之后,网上关于深度学习的资料很多。但是其质量参差不齐。我从2013年开始就关注深度学习,见证了它从一个小圈子的领先技术到一个大众所追捧的热门技术的过程,也看了很多资料。我认为一个高质量的学习资料可以帮助你真正的理解深度学习的本质,并且更好地掌握这项技术,用于实践。

以下是我所推荐的学习资料:

首先是视频课程。

Yaser Abu-Mostafa

加州理工的Yaser Abu-Mostafa教授出品的机器学习网络课程,非常系统地讲解了机器学习背后的原理,以及主要的技术。讲解非常深入浅出,让你不光理解机器学习有哪些技术,还能理解它们背后的思想,为什么要提出这项技术,机器学习的一些通用性问题的解决方法(比如用正则化方法解决过拟合)。强烈推荐。

课程名称:Machine Learning Course - CS 156

视频地址:
https://www.youtube.com/watch?v=mbyG85GZ0PI&list=PLD63A284B7615313A

Geoffrey Hinton

深度学习最重要的研究者。也是他和另外几个人(Yann LeCun,Yoshua Bengio等)在神经网络被人工智能业界打入冷宫,进入低谷期的时候仍然不放弃研究,最终取得突破,才有了现在的深度学习热潮。

他在Coursera上有一门深度学习的课程,其权威性自不待言,但是课程制作的质量以及易于理解的程度,实际上比不上前面Yaser Mostafa的。当然,因为其实力,课程的干货还是非常多的。

课程名称:Neural Networks for Machine Learning
课程地址:https://www.coursera.org/learn/neural-networks

UdaCity

Google工程师出品的一个偏重实践的深度学习课程。讲解非常简明扼要,并且注重和实践相结合。推荐。

课程名称:深度学习
课程地址:https://cn.udacity.com/course/deep-learning--ud730

小象学院

国内小象学院出品的一个深度学习课程,理论与实践并重。由纽约城市大学的博士李伟主讲,优点是包含了很多业内最新的主流技术的讲解。值得一看。
课程名称:深度学习(第四期)
课程地址: http://www.chinahadoop.cn/classroom/45/courses

推荐阅读书目

《Deep Learning the Book》 —— 这本书是前面提到的大牛Yoshua Begio的博士生Goodfellow写的。Goodfellow是生成式对抗网络的提出者,生成式对抗网络被Yann LeCun认为是近年最激动人心的深度学习技术想法。这本书比较系统,专业,偏重理论,兼顾实践,是系统学习深度学习不可多得的好教材。
英文版:http://deeplearningthebook.com
目前Github上已经有人翻译出了中文版:
https://github.com/exacity/deeplearningbook-chinese



推荐学习路径


不同的人有不同的需求,有些人希望掌握好理论基础,然后进行实践,有些人希望能够快速上手,马上做点东西,有些人希望理论与实践兼顾。下面推荐几条学习路径,照顾到不同的需求。大家可以根据自己的特点进行选择。

Hard way
Yaser -> Geoffrey Hinton -> UdaCity -> Good Fellow
特点:理论扎实,步步为营。最完整的学习路径,也是最“难”的。
推荐指数: 4星

Good way
Yaser -> UdaCity -> 小象学院 -> Good Fellow
特点:理论扎实,紧跟潮流,兼顾实战,最后系统梳理。比较平衡的学习路径。
推荐指数: 5星

"Fast" way
UdaCity -> Good Fellow
特点:快速上手,然后完善理论。
推荐指数: 4星

"码农" way
UdaCity
特点:快速上手,注重实践。
推荐指数: 3星

原文链接

相关文章
|
16天前
|
安全 Java 编译器
对比Java学习Go——基础理论篇
本章介绍了Java开发者学习Go语言的必要性。Go语言以简单、高效、并发为核心设计哲学,摒弃了传统的类继承和异常机制,采用组合、接口和多返回值错误处理,提升了代码清晰度与开发效率。Go直接编译为静态二进制文件,启动迅速、部署简便,其基于Goroutine和Channel的并发模型相较Java的线程与锁机制更轻量安全。此外,Go Modules简化了依赖管理,与Java的Maven/Gradle形成鲜明对比,提升了构建与部署效率。
|
1月前
|
Java API Maven
2025 Java 零基础到实战最新技术实操全攻略与学习指南
本教程涵盖Java从零基础到实战的全流程,基于2025年最新技术栈,包括JDK 21、IntelliJ IDEA 2025.1、Spring Boot 3.x、Maven 4及Docker容器化部署,帮助开发者快速掌握现代Java开发技能。
335 1
|
1月前
|
数据采集 搜索推荐 Java
Java 大视界 -- Java 大数据在智能教育虚拟学习环境构建与用户体验优化中的应用(221)
本文探讨 Java 大数据在智能教育虚拟学习环境中的应用,涵盖多源数据采集、个性化推荐、实时互动优化等核心技术,结合实际案例分析其在提升学习体验与教学质量中的成效,并展望未来发展方向与技术挑战。
|
2月前
|
并行计算 Java API
Java 基础篇完整学习攻略
本教程涵盖Java基础到高级内容,包括模块化系统、Stream API、多线程编程、JVM机制、集合框架及新特性如Records和模式匹配等,适合零基础学员系统学习Java编程。
77 0
|
6天前
|
算法 Java
Java基础学习day03-作业
本内容包含多个Java编程案例,涵盖条件判断、循环、数组、随机数生成、素数判断等基础算法练习,适用于巩固Java语法与逻辑思维训练。
53 6
|
3天前
|
Java
Java基础学习day05-作业
本文为Java基础学习第五天作业,通过五个案例练习类与对象的定义、构造方法、set/get方法及成员方法的应用。涵盖女友、学生、教师、手机和电影等类的设计与测试,强化面向对象编程基础。
21 2
|
3天前
|
安全 Java 编译器
Java基础学习day06
本节学习Java继承与多态核心概念:继承通过extends实现,子类可复用父类非私有成员,支持单继承与多层继承,遵循就近原则并可用super调用父类成员;方法重写需满足权限与返回值约束,常用于重写toString等。多态基于继承,实现父类引用指向子类对象,提升扩展性但无法直接访问子类独有方法,可通过instanceof安全类型转换。
46 2
|
6天前
|
存储 Java 索引
Java基础学习day04
本节讲解Java数组基础,包括静态与动态初始化、元素访问及遍历方法,并介绍二维数组的定义与使用,帮助理解程序数据存储方式。
29 5
|
6天前
|
Java
Java基础学习day02-作业
本内容包含13个Java编程练习需求,涵盖变量定义、数据类型转换、运算符使用、键盘输入及条件判断等基础语法实践,适合初学者巩固Java核心基础知识。
24 5
|
4天前
|
存储 Java
Java基础学习day05
本节介绍Java面向对象编程基础,涵盖类与对象的概念、构造器、this关键字、封装、Javabean及static修饰符的使用。重点讲解如何通过类设计对象、实现数据封装与方法暴露,并理解静态成员的特点与应用场景。
27 2