高手问答第 297 期 —— 普通程序员怎样快速入门机器学习?

OSC哒哒 发布于 2023/02/14 12:03
阅读 9K+
收藏 8

【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”

自动驾驶汽车、自然语言识别、内容推荐引擎的实现都离不开机器学习算法。在大模型、大计算、大数据的背景下,机器学习/深度学习系统将逐渐成为人工智能时代的操作系统”。作为普通程序员,我们该如何快速掌握机器学习的主要概念、思路、算法、模型呢?

OSCHINA 本期高手问答 (2 月 15日 - 2 月 21 日) 我们请来了畅销书《遗传算法与机器学习编程》的译者梁启凡老师和大家一起探讨有关“普通程序员怎样快速入门机器学习”的话题

可讨论的问题包括但不限于:

  • 程序员入门机器学习,应该从编码实例入手,还是从理论学习入手
  • 机器学习主要涉及哪些方面的数学知识,普通程序员能掌握吗?
  • 算法模型里的数学问题,需不需要理解背后的原理
  • 数学公式要会自己推导吗?
  • 有哪些适合一般程序员的入门的图书和资源?

有其他相关问题,也欢迎大家积极提问!

嘉宾介绍

梁启凡,《遗传算法与机器学习编程》译者,摩托罗拉解决方案(Motorola Solutions)首席科学家。从事深度学习相关工作7年,涉及算法开发与部署、高性能计算基础设施搭建等方向。

为鼓励踊跃提问,我们会在问答结束后从提问者中抽取5名幸运会员赠予机器学习相关书籍

天猫有售:https://detail.tmall.com/item.htm?id=697149470819

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家向梁启凡老师积极提问,直接回帖提问即可。

加载中
0
yaosaya
yaosaya

高手问答第 297 期 —— 普通程序员怎样快速入门机器学习?

@iman123 @赤脚小子 @屮殖 @osc_07670224 @pyboy58 

恭喜以上5位网友分别获得机器学习相关书籍一本(不一定是图片所示那本)。

请于3月6日12:00前登陆账号, 私信@yaosaya

告知快递信息(格式:姓名+电话+地址),逾期视为自动放弃哦~

0
赤脚小子
赤脚小子

@BH4CYI 你好,我觉得通过一个实际的例子更方便你跟我这种外行解释。如果我的最终目的是做出一个能通过分析一段长度10秒的mp3格式的音频,识别一个人说话时候的情绪。那我手头有大量影视剧的资料。

请问接下来的流程中,机器学习可以做什么帮助我达成我的目的?

我不是专业的随便举例子我要做什么

1拆分所有音频资料为10s一个的文件

2为每个文件打标签,比如愤怒,深情,用于机器学习?

3机器学习然后生成一个程序?

4输入没有打标签的音频给这次程序,会输出情绪标签及匹配度,比如愤怒(85%),深情(40%)

 

BH4CYI
BH4CYI
回复 @赤脚小子 : 这里说的函数,就是编程语言中函数。比如 f(x)=x+4,用python写出来是def f(x): return x+4,输入是8,输出就是f(8)=12。当然也可以是if-else判断集合,或者是更复杂的结构。函数内部可以人写,也可以人为地创建一个可调结构。
赤脚小子
赤脚小子
回复 @BH4CYI : 我注意到你说生成的是一个函数,他运行的时候是否会依赖数据库?这个函数内部是一个什么状态我想象不出来,肯定不是人写的代码对吧,难道机器学习最后会生成代码?还是各种if-else的判断集合的配置文件还是我无法理解的什么东西? 我完全想不出它是什么样子的。
BH4CYI
BH4CYI
你好!其实你描述的这4点合在一起就称得上是一个完整的机器学习任务。一个函数,有输入也有输出,也就是一个输入空间到输出空间上的映射。这个函数可以完全人工手写,也可以让它变得“可学习”。对于这种“可学习”的函数,通过在给定数据上训练——在你的例子中10秒音频是输入,情绪标签是输出——函数逐步优化为“正确的”映射。训练完之后,将这个函数用在训练数据之外的数据上,就实现了机器学习模型的部署。
0
iman123
iman123

@BH4CYI 你好,目前机器学习、神经网络、深度学习、强化学习等都很热门,这些算法之间由什么关联,最近的chatgpt用到了那些算法或模型;另外我之前也自己写过简单的遗传算法,个人感觉有点像随机+模拟生物进化的算法,类似的还有模拟退火算法、蚁群算法、人工蜂群算法这些,是不是多多少少都带有一点点随机因素在里面,对于相同的输入,外部条件,每次的结果是不是都不一样呢?

BH4CYI
BH4CYI
第三个问题,你说的没错。一般来说,带有随机因素的算法绝大多数情况下相同的输入会有不同的结果。不过我们常用的随机数生成器生成的都是伪随机数,可以通过控制随机数种子确保每次生成的随机数一样。
BH4CYI
BH4CYI
关于chatgpt,恐怕很难三言两语讲清楚。建议你先阅读这篇论文 https://arxiv.org/abs/1706.03762,搞清楚transformer是什么,然后阅读GPT相关的论文,然后参考这篇关于RLHF的文章 https://huggingface.co/blog/rlhf
BH4CYI
BH4CYI
你好,第一个问题,机器学习是一个大的学科,你可以认为深度学习和强化学习是机器学习的两个子方向。而神经网络是深度学习背后的数学模型,深度学习中的“深度”就是指神经网络的深度。但是神经网络并不和深度学习强相关。所谓深度学习,简单来说是将神经网络和反向传播结合,以达到自动更新神经网络参数的目的。
0
巡拜千年
巡拜千年

@BH4CYI 一个业务向编程的程序员,会springboot这种,想学习机器学习,体验他的效果。请问该如何入门呢?

BH4CYI
BH4CYI
最简单的方式是上一门网课,现在网上资源很多。跟着课程把习题都做了,基础概念都了解了,然后可以找几个简单的项目练练手。或者选一本比较好的入门书籍。
0
屮殖
屮殖

@BH4CYI 在老早以前就从科技新闻上看到了遗传算法,当时惊为天人。但是后来进入深度学习领域,了解到遗传算法的问题是效率太低,不知道这些年有什么改进之处。

同时,我也想大佬能对遗传算法和神经网络算法进行一定的比较。

BH4CYI
BH4CYI
回复 @屮殖 : 这本书里有遗传算法的内容,但是没有神经网络的内容。
屮殖
屮殖
回复 @BH4CYI : 原来如此!这道的确是的。请问你这本书里面就是说的这些内容的吗?
BH4CYI
BH4CYI
遗传算法是一种优化方法,而神经网络可以看成一个有输入和输出的函数,这两者区别很大。遗传算法可以用来给神经网络调参。
0
liuchengliang
liuchengliang

@BH4CYI 作为普通读者应该怎样去学习掌握呢?谢谢

BH4CYI
BH4CYI
作为有一定经验的程序员,按照课程或者书里面的例子动手做一做,逐步掌握核心概念,实践出真知。
0
LeoXu
LeoXu

@BH4CYI 您好,能不能介绍一下,在这个领域达成从入门到形成生产力(也就是能参与到实际项目中工作),比较现实的路径是怎样的?谢谢

BH4CYI
BH4CYI
@LeoXu 你好,入门是一个从0到1的过程,形成生产力是一个从1到100的过程。入门无非就是阅读、上课和做练习。而形成生产力比较复杂,这里介绍一种方式:明确实际项目的需求,将当前方案作为基线。然后根据需求引入机器学习方法。由于目前主流机器学习方法多数基于统计理论,你会发现算法在演进中性能会有提高。当新方法性能超过当前方法后,就可以部署了。
0
2wse43e
2wse43e

@BH4CYI老师,人工智能对于管理层人员的帮助有多少md

BH4CYI
BH4CYI
@2wse43e 你好,这里的管理层是指特定行业的管理层,还是指所有的?
0
o
osc_07670224

@BH4CYI 您好,通常程序猿按照文档和范例写脚本是没问题的,如果只能把流程串下来,会基本的调参,能达到几成的效果?机器学习的老鸟比新手强在哪些方面,在机器学习领域,除了理论知识,还需要在哪些方面精进呢?期待回答,DE BI3QXJ,VY73!

BH4CYI
BH4CYI
你好!会调基本参数可以说是入门了。在这方面研究得越深、用得越多,处理问题时越能抓住关键点。所谓看山是山,看山不是山,看山还是山这种感觉。除了机器学习理论,最好能学习相关的数学。线性代数、数学分析、概率论,常看常新。群论、流形也可以稍微了解了解。另外,如果真的打算在这方面走远一些,编译原理、分布式计算等计算机工程技术也要熟练掌握。73!
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部