人工智能
随着数据科学(Data Science)技术的兴起,人工智能(ArtificialIntelligence)、机器学习(Machine Learning) 成为近几年来计算机科学界十分热门的研究领域,如今在实体和在线的学习机器学习的资源有很多,本文整理了一些好用学习资源希望帮助初学者能更容易使用 Python 入门机器学习的领域中,从零开始学习机器学习。若是对于数据科学不熟悉的读者可以先参考适用于初学者的资料科学影片 ,让自己对于数据科学有初步的认识。
人工智能的发展
「人工智能」(Artificial Intelligence)这专有名称正式出现在公元 1956 年,在美国达特茅斯学院 (Dartmouth College)召开的第一次人工智能会议。根据维基百科的定义,人工智能系指由机器所展现的智能,一般而言人工智能又分为「强人工智能」(Strong AI)和「弱人工智能」(Weak AI)兩种不同的主张。所谓的强人工智能指的是有自我意识、有知觉可以自己推理和解决问题的机器智能,而「弱人工智能」只能仿真人类的思维与行为表现,但缺乏真正的推理与解决问题的能力,也不具有自主意识。人工智能在历史上经历了几次热潮和寒冬,从最早的逻辑推理到后来的专家系统,再到目前的机器学习/深度学习,机器学习可以视为人工智能的一个实现方式或是发展的一个历程。
事实上,人工智能或是机器学习都是一门跨领域的学门,牵涉了 计算机科学、数学、神经学、心理学、经济学、统计学等层面,也有许多相关的学门:
随着运算资源(云端运算、GPU 等)、海量资料(目前还有许多资料还没被创造,等待我们去发掘呢)以及机器学习/深度学习的发展,生活上许多产品已经可以看到人工智能的应用。但人工智能最美好的境界莫过于人机之间的互动以及相辅相成,以AlphaGO 为例,虽然人类在围棋领域输给人机器,但也从机器的思考方式去重新思考了围棋的真谛和有别于人类的思考方式。
「就因為某樣東西思考的方式跟你不一樣,就代表它沒在思考嗎?」 “Just because something thinks differently from you, does it mean it’s not thinking?” —《模仿遊戲》《Imitation Game》(2015)
什么是机器学习(Machine Learning)?
机器学习是一种数据科学的技术也是一种实现人工智能的一种方式,协助计算机从现有的数据学习,以便预测未来的行为、结果和趋势。根据学习的方式又可以分为需要解答的监督式学习(Supervised learning)、非监督式学习(Unsupervised learning)和增强学习(Reinforcement learning)等(还有一种混合式的半监督式学习)等子类别。机器学习技术可以应用的范围十分广泛,总的来说机器学习可以解决以下几种问题:
1. 分类问题:这是A 类或B 类吗?
2. 异常值判断:这很奇怪吗?
3. 预测性分析:有多少?
4. 分群问题:这是如何组织的?
5. 增强学习协助决策:我接下来该怎么办?
当我们搜集到相关、精确、连贯、足够资料就可以挑选合适的算法进行模型的的创建。
为什么选择Python?
在数据科学和机器学习领域最重要的两大程序语言就是Python 和R,Python 简洁易学、应用范围广(不限于数据分析)且学习曲线平缓,适合作为第一个入门的程序语言,透过pandas、SciPy/NumPy、sckikit-learn、matplotlib和statsmodels 可以进行数据分析的工作,适合工程任务和需要和网络应用程序整合的项目。至于R 由于是统计学家开发的程序语言,则是擅长于统计分析、图表绘制,常用于学术研究领域,建议也要有一定程度的掌握。一般情况下Python 和R 并非互斥,而是互补,许多数据工程师、科学家往往是在Python 和R 两个语言中转换,小量模型验证、统计分析和图表绘制使用R,当要撰写算法和数据库、网络服务互动等情况时在移转到Python。为了降低学习成本。
此外Python本身是一种通用语言,除了数据科学外也可以广泛使用在 网络开发、网站建置、游戏开发、网络爬虫等领域,当你需要整合系统产品服务时,可以担任一站式的开发语言,更重要的是 Python 也可以当成 胶水语言非常轻易和 C/C++ 等效能较佳的语言整合。简而言之,Python是一种简洁易学但功能强大,值得投资的程序语言,所以我们这边先使用Python 进行介绍。
若对于Python和R 比较,这边有两篇文章可以参考数据科学界华山论剑:R与Python巅峰对决、Which is better for data analysis:R or Python?。
如何开始入门机器学习?
事实上,数据科学是个跨领域学门,在学习如何使用Python 进行机器学习过程中通常必须掌握以下知识:
机器学习算法
Python 程序语言和资料分析函式库
线性代数 / 统计学等相关学门
专业领域的领域知识( Domain Knowledge )
全部0条评论
快来发表一下你的评论吧 !