0%

CS229 学习笔记 01

前言

最近临近开学,继续开始焦虑…… 看了点 paper ,但是感觉没有看到自己特别感兴趣特别想做的东西(太菜了),回头学了点 web,但是意识到我以后恐怕不会去当前后端工程师,所以三剑客似乎也不急着精通……看来看去似乎只有机器学习现在几乎成了计算机的事实必修课,而我还没有入门,所以又想学了(前不久刚刚因为想法太多被训……)

上个学期因为信息内容安全有很多机器学习交叉的内容其实也还算有一丝丝基础,把 吴恩达 在网易云课堂上的机器学习课程看完了。课程链接见下。内容与 Coursera 上的一样,但是网易有人工审校的中英双字幕。151个课时,虽然有很多访问不了的课件。看完之后感觉吴恩达讲课真的好强,基本上大部分的内容都在当堂理解了。不过课后看到有说法 Coursera 上的机器学习属于科普性质,最好还是应该过一遍 CS229,于是就又来看了。

参考链接

参考书目

《精通数据科学:从线性回归到深度学习》 唐亘

正文

数学基础

机器学习会需要 微积分、线性代数以及概率论的知识。

CS229 的第一次作业考察了相关知识。http://cs229.stanford.edu/summer2020/ps0_template.pdf。相关解答博客:https://blog.csdn.net/weixin_43144524/article/details/86748028。

矩阵的基本概念以及基本运算此处不再赘述。下面给出一些矩阵运算的代码实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#!/usr/bin/env python
# coding: utf-8

# In[1]:


import numpy as np
from numpy.linalg import inv


# In[3]:


A = np.matrix([[1,2],[3,4],[5,6]])


# In[4]:


B = np.array(range(1,7)).reshape(3,2)


# In[7]:


# array 默认乘法为 Hadamard 乘法
B * B


# In[8]:


np.zeros((3,2))


# In[9]:


np.identity(3)


# In[10]:


np.diag([1,2,3])


# In[12]:


m = np.array(range(9)).reshape(3,3)


# In[14]:


m[[0,2]] # 表示提取第1行和第三行


# In[15]:


m[[True, False, True]] # 表示提取第1行和第三行


# In[17]:


m[:,[1,2]] # 表示提取第2行和第3行


# In[18]:


m[:,[False, True, True]] # 表示提取第2行和第3行