作者thefattiger (LawTea)
看板Soft_Job
标题Re: [请益]未来的学习方向
时间Sat Feb 23 15:22:21 2019
人工智慧的话,很多板友都说数学要很好不知道有没有吓到你
我算是个转换跑道现在从事AI相关工作的工程师
要搞清楚所谓AI的工作可以分成两种完全不同的方向
1.真的是在研究AI本身,开发最前沿模型和演算法
2.应用已有的AI演算法解决某个领域的问题
前者的话,不要说台湾了
全世界来看都是少数几个大头在主导
比如说几年前很红的alphaGo Zero
DeepMind会做围棋AI不是因为
"乾,柯洁好强喔我都下不赢他,那来做个机器人帮我对付他好了"
而是棋类游戏里围棋是最复杂,且还没有人能做出能击败人类顶尖高手的AI
如果是後者,其实你不需要多强的数学背景
只要给你一篇paepr,你能知道这个算法做了哪些假设
解决了甚麽,用起来有何限制,适不适用你现在的问题
其实这样就很够了
英文...也不用顶好,能看懂paper都没问题
以我为例的话,现在身边的同事包括我自己
没有一个是资工出身的,硕班题目也完全跟AI没关系
有念物理、数学、统计、电机的
看一些ML/DL的paper真的很少会有数学太难看不懂的情况
我以前硕班是研究chiral material中电磁场的传播,我觉得那数学难多了...
如果你很想试试看的话,这边贴几个比较热门的开放式课程给你
看看学习以下的课程对你来说会不会太吃力
https://www.youtube.com/watch?v=UzxYlbK2c7E&list=PLA89DCFA6ADACE599
这是比较老的课程,那个年代DL还没火红,可是讲得都是ML基础概念
至少把supervised看完再看DL吧
https://www.youtube.com/watch?v=vT1JzLTH4G4&list=PLC1qU-LWwrF64f4QKQT-Vg5Wr4qEE1Zxk
这堂虽然名字有for Visual Recognition
但其实DL入门该知道的基础大概都有包含到了
https://www.youtube.com/watch?v=2pWv7GOvuf0&list=PLzuuYNsE1EZAXYR4FJ75jcJseBmo4KQ9-
跟前两个不太一样,这是专门讲强化学习,讲者是大名鼎鼎DeepMind的头头David Silver
台湾也有很多不错的课程,如李宏毅或林轩田的,都讲得相当好也不会太难
不过我建议一开始先看英文的,这样对这领域的专有名词会比较有感
然後其实工作时很常不是在处理AI的问题
以下简单描述一个工作场景让你感受一下
------------------------------------------------
老板今天要你做一个chat bot,能回答客户对於产品各种各样的问题
要怎麽把客户传的讯息转换为问题,就牵涉到NLP(自然语言处理)了
简单评估後,你发现自己从头弄一套NLP不太实际
微软刚好提供了简单好用的LUIS,与老板讨论过後他也能接受
当啷! 这个专案不用再烦恼AI这块了
但是...AI只是这个专案中的小小一部份
接下来你要能从判断好的意图及实体中根据问题类型回答不同的答案
看了看老板给你的问题清单...
哇!问题有几十种,有些回答後又有後续的问题
会因客户的在前一个问题中的回答而有不同
而且老板还希望最好还能讲些垃圾话逗客户一笑
难道要写几十个巢状的if else?
你想到有一个叫做state pattern的东西可以把if else写成比较好维护的方式
不过你现在用的是Python,是动态语言
没有必要真的弄一个叫做State的抽象类别,然後底下再创ConcreteState
Python中的函式是一级物件,其实每个State用一个函式代表就够了
因为要能接到line bot的讯息必须要建个web server建立webhook
你整套系统必须是架在server上,没办法像一般的程式一个process跑到底
那Context中的状态怎麽保存呢?
最简单的方法就是让每个状态对应到一个编码
只要记住现在每个客户的状态编码,就很好处理了吧!
这时你又想到其实Context类别也很没必要,用dict保存state就好了
dict中的key又刚好可以对应到状态编码
以後接收到客户的问题只要呼叫state_dict[status_code](text)
就可以拿到正确的回答了,初步设计完成了呢!
可是...你现在开发中的web server是架在免费的托管平台
以後正式上线的流量,免费平台可无法应付
接下来还要进行程式的优化,跟管server的人讨论,等等等各种各样的事情
专案才算是能初上轨道
----------------------------------------
以上算是小弟个人工作到现在的体会
最後给你个建议是要真心问自己,真的喜欢写程式吗?
因为我打完这些才在底下看到你连回圈都卡住...
我觉得这已经不是天分问题了,要是连回圈都能卡住
也许你没有自己想像中的那麽喜欢写程式
然後C#跟Python,一个是编译式语言,一个是脚本语言
他们有本质上的差异,不是只是语法不同而已
建议不要同时学这两个,不然有些观念在起步时很容易混淆
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 58.114.212.150
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1550906544.A.40E.html
※ 编辑: thefattiger (58.114.212.150), 02/23/2019 15:23:11
1F:→ MOONY135: chatbot的IF ELSE有感 02/23 15:29
2F:→ robber1234: 感谢你分享.我相信你写完以後,那些非资讯领域的会离开 02/23 15:36
为啥!? 我本意是要楼主不要没自信呀
※ 编辑: thefattiger (58.114.212.150), 02/23/2019 15:37:30
3F:→ MOONY135: 其实我不太相信三个傻瓜那一套(?) 02/23 15:39
4F:→ robber1234: 这里本来就很多路人定期会来发梦想文,无视专业基础 02/23 15:40
还好啦...我是看到原po说很喜欢写程式才打这一篇鼓励他
我也是从只会Matlab+完全不懂AI,自学到现在找到了份还算不错的工作
会转行也是因为很喜欢写程式,所以学习过程到现在工作都算满快乐的
※ 编辑: thefattiger (58.114.212.150), 02/23/2019 15:43:58
5F:推 benedict76: 写程式真的要有热情,如果只是想说混口饭吃还是不要进 02/23 15:57
6F:→ benedict76: 来好了 02/23 15:57
7F:推 Gaitz: 推这篇 不过觉得原原po 看完会退坑 02/23 16:07
8F:推 Murasaki0110: 退一退也好,没看过跟风仔会成功的 02/23 16:12
9F:推 s890510: Chatbot好几层的switch case跟一堆的if-else... 02/23 16:17
10F:推 wavek: 推 但倒数第二段不认同 02/23 16:25
11F:推 yougigun: 推前半段我 不认同第二段 02/23 16:31
12F:推 tbpfs: 这篇写的太好了 1秒吓退原PO 02/23 16:52
13F:推 johnnyjana: 推 好文 02/23 16:59
14F:推 ilove0618: 看到chatbot那段感同身受啊.. 02/23 17:34
15F:推 arsl400: 推! 02/23 19:14
16F:推 tea596933: 推这篇 02/23 19:36
17F:推 w199381: 感谢大大 02/23 19:36
18F:推 ice80712: 本来就是 一直讲ai需要大量数学的根本不懂台湾产业 02/23 19:47
19F:推 Jokering5566: 我以为已经有开源AI lib对应基本的chatbot内容了欸? 02/23 20:44
20F:推 shter: 拆解已经很痛苦,但到要做正向语意跟反向语意判断时就... 02/23 22:33
21F:推 suspend: 推分享 02/23 23:39
22F:推 Lupin3: 谢谢大大(本来的原噗主)之前也有在看李老师的线上课程, 02/24 00:01
23F:→ Lupin3: 很常看到微积分或线性代数的说词看了真的很紧张(英数都死 02/24 00:01
24F:→ Lupin3: )也很抱歉让各位觉得不被尊重专业,就像版上的各位所说我 02/24 00:01
25F:→ Lupin3: 没有真的热情没有去实践(不好意思话多没重点的)总之我想 02/24 00:01
26F:→ Lupin3: 再试试拿出热情来做,非常谢谢大大愿意打这麽多字回覆我 02/24 00:01
27F:→ Lupin3: 还给我资源QQ(土下跪 02/24 00:01
28F:→ lukelove: 大量数学 要看怎麽样是大量数学吧 看过113cs硕 线代 微 02/24 00:32
29F:→ lukelove: 积分极烂, 尻他会尻, 叫他报paper会暴怒 02/24 00:33
30F:→ lukelove: AI engineer 本质还是 software engineer, 如果看得懂基 02/24 00:34
31F:→ lukelove: 础理论, 实做很差, 白板题一电就爆, 要有好职务也ㄅ容易 02/24 00:34
32F:→ x000032001: 但是113cs硕毕业条件没有修线代和微积分呢 02/24 00:55
33F:→ bakedgrass: 是不是真的有兴趣看这篇文章就知道了 #1SIgSkHW 02/24 02:43
34F:推 leviliang: 记得田神的机器学习基石需要用到线代的SVD 02/24 10:35
35F:→ leviliang: 楼主确定您的数学不用太强跟一般人一样吗XDDDDDD 02/24 10:36
36F:推 atpx: 推分享 02/24 11:06
37F:→ thefattiger: 线代只要理工毕业的都学过吧,数学真的不用多好 02/25 00:19
38F:→ thefattiger: 用到再去查好了,数学本来就是工具而已 02/25 00:19
39F:→ thefattiger: SVD在andrew ng的课也有用到,花个10分钟复习下就好 02/25 00:20
40F:→ thefattiger: 这种东西平常没用到的人哪有可能记得 02/25 00:20
41F:推 NCUking: 深度学习的数学基础 微积分、线代、机率 02/25 14:57
42F:→ NCUking: 在大多数理工科系都是必修吧 02/25 14:58
43F:→ NCUking: 只是要听懂深度学习课程 又不是要发表高深论文 02/25 15:00
44F:推 vincentman: 推楼上最後一句。另外数学到底要好到什麽程度,需要一 02/25 18:48
45F:→ vincentman: 些经验判断 02/25 18:48
46F:推 supernow: 用过luis+state pattern开发泪推 02/25 20:44
47F:→ DrTech: 一群数学很好的人,跟一堆数学基础差的人说,数学很简单, 03/05 23:35
48F:→ DrTech: 本身逻辑就有问题。 03/05 23:35
49F:→ DrTech: 一堆微分基本定理用来推导演算法,是不难。但是此版绝对一 03/05 23:39
50F:→ DrTech: 堆人看不懂,也无从突破。 03/05 23:39