从零到一 | 14本书人工智能入门必备书单(附PDF链接)

640?wx_fmt=png

来源:AI前线

本文共2000字,建议阅读7分钟

本文为想要入门机器学习以及夯实数学基础的学习者提供了学习书单。


640?wx_fmt=jpeg


一、机器学习篇


在机器学习上,首先要推荐的是两部国内作者的著作:


  • 李航博士所著的《统计学习方法》

  • 周志华教授的《机器学习》


《统计学习方法》采用“总 - 分 - 总”的结构,在梳理了统计学习的基本概念后,系统而全面地介绍了统计学习中的 10 种主要方法,最后对这些算法做了总结与比较。这本书以数学公式为主,介绍每种方法时都给出了详尽的数学推导,几乎不含任何废话,因而对读者的数学背景也提出了较高的要求。


640?wx_fmt=jpeg


相比之下,《机器学习》覆盖的范围更广,具有更强的导论性质,有助于了解机器学习的全景。书中涵盖了机器学习中几乎所有算法类别的基本思想、适用范围、优缺点与主要实现方式,并穿插了大量通俗易懂的实例。


640?wx_fmt=jpeg


如果说《统计学习方法》胜在深度,那么《机器学习》就胜在广度。在具备广度的前提下,可以根据《机器学习》中提供的丰富参考文献继续深挖。


读完以上两本书,就可以阅读一些经典著作了。经典著作首推Tom Mitchell所著的《Machine Learning》,中译本名为《机器学习》。本书成书于 1997 年,虽然难以覆盖机器学习中的最新进展,但对于基本理论和核心算法的论述依然鞭辟入里,毕竟经典理论经得起时间的考验。这本书的侧重点也在于广度,并不涉及大量复杂的数学推导,是比较理想的入门书籍。作者曾在自己的主页上说本书要出新版,并补充了一些章节的内容,也许近两年可以期待新版本的出现。


640?wx_fmt=png

Tom Mitchell 所著的《Machine Learning》


640?wx_fmt=jpeg

Tom Mitchell 所著的《Machine Learning》中文译本


另一本经典著作是Trevor Hastie等人所著的《Elements of Statistical Learning》,于 2016 年出版了第二版。这本书没有中译,只有影印本。高手的书都不会用大量复杂的数学公式来吓唬人(专于算法推导的书除外),这一本也不例外。它强调的是各种学习方法的内涵和外延,相比于具体的推演,通过方法的来龙去脉来理解其应用场景和发展方向恐怕更加重要。


640?wx_fmt=png


压轴登场的非Christopher Bishop所著的《Pattern Recognition and Machine Learning》莫属了。本书出版于 2007 年,没有中译本,也许原因在于将这样一本煌煌巨著翻译出来不知要花费多少挑灯夜战的夜晚。这本书的特点在于将机器学习看成一个整体,不管于基于频率的方法还是贝叶斯方法,不管是回归模型还是分类模型,都只是一个问题的不同侧面。作者能够开启上帝视角,将机器学习的林林总总都纳入一张巨网之中,遗憾的是,大多数读者跟不上他高屋建瓴的思路(也包括我自己)。


640?wx_fmt=png


最后推荐的是David J C MacKay所著《的Information Theory, Inference and Learning Algorithms》,成书于 2003 年,中译本名为《信息论,推理与学习算法》。本书作者是一位全才型的科学家,这本书也并非机器学习的专著,而是将多个相关学科熔于一炉,内容涉猎相当广泛。相比于前面板着脸的教科书,阅读本书的感觉就像在和作者聊天,他会在谈笑间抛出各种各样的问题让你思考。广泛的主题使本书的阅读体验并不轻松,但可以作为扩展视野的一个调节。


640?wx_fmt=jpeg


640?wx_fmt=png


二、数学篇


1. 线性代数


推荐两本国外的教材。其一是Gilbert Strang所著的《Introduction to Linear Algebra》,英文版在 2016 年出到第五版,暂无中译本。这本通过直观形象的概念性解释阐述抽象的基本概念,同时辅以大量线性代数在各领域内的实际应用,对学习者非常友好。作者在麻省理工学院的 OCW 上开设了相应的视频课程,还配有习题解答、模拟试题等一系列电子资源。


640?wx_fmt=jpeg


其二是David C Lay所著的《Linear Algebra and its Applications》,英文版在 2015 年同样出到第五版,中译本名为《线性代数及其应用》,对应原书第四版。这本书通过向量和线性方程组这些基本概念深入浅出地介绍线代中的基本概念,着重公式背后的代数意义和几何意义,同样配有大量应用实例,对理解基本概念帮助很大。


640?wx_fmt=jpeg


640?wx_fmt=jpeg


2. 概率论


基础读物可以选择Sheldon M Ross所著的《A First Course in Probability》,英文版在 2013 年出到第九版(18 年马上要出第十版),中译本名为《概率论基础教程》,对应原书第九版,也有英文影印本。这本书抛开测度,从中心极限定理的角度讨论概率问题,对概念的解释更加通俗,书中还包含海量紧密联系生活的应用实例与例题习题。


640?wx_fmt=jpeg


640?wx_fmt=jpeg


另一本艰深的读物是Edwin Thompson Jaynes所著的《Probability Theory: The Logic of Science》,本书暂无中译本,影印本名为《概率论沉思录》也已绝版。这本书是作者的遗著,花费半个世纪的时间完成,从名字就可以看出是一部神书。作者从逻辑的角度探讨了基于频率的概率,贝叶斯概率和统计推断,将概率论这门偏经验的学科纳入数理逻辑的框架之下。如果读这本书,千万要做好烧脑的准备。


640?wx_fmt=jpeg


3. 数理统计


基础读物可以选择陈希孺院士所著的《数理统计学教程》。关于统计学是不是科学的问题依然莫衷一是,但它在机器学习中的重要作用毋庸置疑。陈老的书重在论述统计的概念和思想,力图传授利用统计观点去观察和分析事物的能力,这是非常难能可贵的。


640?wx_fmt=jpeg


进阶阅读可以选择Roger Casella所著的《Statistical Inference》,由于作者已于 2012 年辞世,2001 年的第二版便成为绝唱。中译本名为《统计推断》,亦有影印本。本书包含部分概率论的内容,循循善诱地介绍了统计推断、参数估计、方差回归等统计学中的基本问题。


640?wx_fmt=png


4. 最优化理论


可以参考Stephen Boyd所著的《Convex Optimization》,中译本名为《凸优化》。这本书虽然块头吓人,但可读性并不差,主要针对实际应用而非理论证明,很多机器学习中广泛使用的方法都能在这里找到源头。


640?wx_fmt=jpeg


640?wx_fmt=jpeg


5. 信息论


推荐Thomas Cover和Jay A Thomas合著的《Elements of Information Theory》,2006 年出到第二版,中译本为《信息论基础》。这本书兼顾广度和深度,虽然不是大部头却干货满满,讲清了信息论中各个基本概念的物理内涵,但要顺畅阅读需要一定的数学基础。另外,本书偏重于信息论在通信中的应用。


640?wx_fmt=jpeg


640?wx_fmt=jpeg


本文PDF资源链接


1. 机器学习篇:


  • Machine Learning

    http://www.cs.ubbcluj.ro/~gabis/ml/ml-books/McGrawHill%20-%20Machine %20Learning%20-Tom%20Mitchell.pdf


  • Elements of Statistical Learning

    https://web.stanford.edu/~hastie/Papers/ESLII.pdf


  • Pattern Recognition and Machine Learning

    http://users.isr.ist.utl.pt/~wurmd/Livros/school/Bishop%20-%20Pattern%20Recognition %20And%20Machine%20Learning%20-%20Springer%20%202006.pdf


  • Information Theory, Inference and Learning Algorithms

    http://www.inference.org.uk/itprnn/book.pdf


2. 数学篇:


  • Introduction to Linear Algebra

    https://math.mit.edu/~gs/linearalgebra/linearalgebra5_Preface.pdf


  • Linear Algebra and its Applications

    http://www.zuj.edu.jo/download/linear-algebra-and-its-applications-david-c-lay-pdf/


  • A First Course in Probability(8th edition)

    http://julio.staff.ipb.ac.id/files/2015/02/Ross_8th_ed_English.pdf


  • Probability Theory: The Logic of Science

    http://www.med.mcgill.ca/epidemiology/hanley/bios601/GaussianModel/JaynesProbabilityTheory.pdf


  • Statistical Inference

    https://fsalamri.files.wordpress.com/2015/02/casella_berger_statistical_inference1.pdf


  • Convex Optimization

    https://web.stanford.edu/~boyd/cvxbook/bv_cvxbook.pdf


  • Elements of Information Theory

    http://www.cs-114.org/wp-content/uploads /2015/01/Elements_of_Information_Theory_Elements.pdf


640?wx_fmt=png

640?wx_fmt=jpeg

### 使用 Supervisor 和 Gunicorn 部署 Python Web 应用 #### 安装必要的软件包 为了确保环境准备就绪,需先安装 `gunicorn` 及其管理工具 `supervisor`。对于基于 Debian 的 Linux 发行版,可以利用 `apt-get` 来完成此操作: ```bash sudo apt-get update && sudo apt-get install gunicorn supervisor -y ``` 这步骤会自动处理依赖关系并安装最新版本的应用程序及其服务监控器[^4]。 #### 创建应用程序目录结构 建议为项目建立专门的工作空间,以便更好地管理和维护各个组件之间的关联性。假设工作区位于 `/var/www/myproject/` 下,则应包含如下子文件夹: - **static/** 存储静态资源(CSS, JavaScript 文件) - **media/** 用户上传的内容保存在此处 - **logs/** 日志记录位置 - **venv/** 虚拟环境中存放Python解释器及相关库 此外还需放置源码以及配置文件于根目录下。 #### 编写 WSGI 入口脚本 创建名为 `wsgi.py` 或者其他名称的入口模块来定义 Flask/Django 等框架实例作为可调用对象传递给 Gunicorn: ```python from myapp import create_app # 假设myapp是你的应用名 application = create_app() ``` 该文件应当置于项目的顶层目录内方便后续引用。 #### 设置 Gunicorn 启动参数 通过编写 `.ini` 格式的配置文档指定运行选项,比如监听端口号、进程数量等重要设置项。这里给出个简单的例子——`gunicorn.conf.ini` : ```ini [program:gunicorn] command=/path/to/gunicorn --workers 3 --bind unix:/tmp/app.sock config.wsgi:application directory=/var/www/myproject/ user=nobody group=nogroup autostart=true autorestart=true stderr_logfile=/var/log/gunicorn/error.log stdout_logfile=/var/log/gunicorn/access.log environment DJANGO_SETTINGS_MODULE="config.settings.production" ``` 注意上述命令中的路径需要根据实际情况调整;同时考虑到安全性因素推荐使用 Unix socket 方式连接 Nginx 服务器而不是公开 IP 地址绑定[^2]。 #### 将任务加入到 Supervisord 中 编辑全局配置文件 `/etc/supervisord.conf` ,添加指向自定义 INI 文件的新条目从而让 supervisord 认识到新注册的服务单元: ```ini [include] files = /etc/supervisor/conf.d/*.conf ``` 接着把之前编写的 Gunicorn 配置复制粘贴至 `/etc/supervisor/conf.d/gunicorn.conf` 并重启守护进程使之生效: ```bash sudo systemctl restart supervisor ``` 此时应该可以通过查看状态得知 Gunicorn 是否成功启动并且处于稳定运行之中了。 #### NGINX反向代理配置 最后步就是修改Nginx站点可用配置以实现HTTP请求转发功能。打开对应虚拟主机模板后追加类似下面所示片段: ```nginx server { listen 80; server_name example.com www.example.com; location / { proxy_pass http://unix:/tmp/app.sock; # 对应Gunicorn使用的socket地址 include proxy_params; } location /static/ { alias /var/www/myproject/static/; } } ``` 记得执行 `sudo nginx -t` 测试语法无误后再加载更新过的设定表单。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值