2021魔鬼训练作业及总结
概述
- 描述你在学习、使用数学表达式时的困难, 可举例说明。
- 部分符号不知道用latex如何表达(推荐一个网站可以识别手写体http://webdemo.myscript.com/views/math/index.html)
- 在表示乘法关系时,区别 × \times × 与 ∗ \ast ∗
- 部分表达方式跟中小学的数学课程有差异,比如( ) [] {}的使用(已解答)。
符号表
符号 | 文字 | 涵义 | 备注 |
---|---|---|---|
x | x | 标量 | 小写字母 |
x \mathbf{x} x | \mathbf{x} | 向量 | 小写字母 |
X \mathbf{X} X | \mathbf{X} | 矩阵、集合 | 大写字母 |
x T \mathbf{x}^{\mathrm{T}} xT | \mathbf{x}^{\mathrm{T}} | 向量转置 | T 表示 transpose |
参考自符号表
集合的表示与运算
问:1. 令 A = { 3 , 5 } \mathbf{A}=\{3,5\} A={3,5}, 写出 2 A 2^\mathbf{A} 2A.
答: 2 A = { ∅ , { 3 } , { 5 } , { 3 , 5 } } 2^\mathbf{A}=\{ \emptyset, \{3\}, \{5\}, \{3,5\} \} 2A={∅,{3},{5},{3,5}}
问:2. 展开 2 ∅ 2^\emptyset 2∅.
答: 2 ∅ = { ∅ } 2^\emptyset=\{\emptyset\} 2∅={∅}
问:3. 令 A = { 5 , 6 , 7 , 8 , 9 } \mathbf{A}=\{5,6,7,8,9\} A={5,6,7,8,9},写出 A \mathbf{A} A的其他两种表示法。
答:集合主要有两种表示方法,分别是枚举法、谓词法、和图示法,题目中使用的是枚举法。
- 谓词法:
A
=
{
x
∣
x
∈
N
,
5
≤
x
≤
9
}
\mathbf{A}=\{x | x \in \mathbf{N},5\le x\le9\}
A={x∣x∈N,5≤x≤9} 或者
A
=
{
x
∈
N
∣
5
≤
x
≤
9
}
\mathbf{A}=\{x \in \mathbf{N}|5\le x\le9\}
A={x∈N∣5≤x≤9}
- 图示法:略
总结: A 的 幂 集 2 A , 其 实 就 是 A 的 所 有 子 集 \mathbf{A} 的幂集2^\mathbf{A}, 其实就是\mathbf{A}的所有子集 A的幂集2A,其实就是A的所有子集。
向量与矩阵
问:自己出数据,做一个
3
×
2
与
2
×
4
的
矩
阵
乘
法
3 \times 2 与 2 \times 4的矩阵乘法
3×2与2×4的矩阵乘法。
答:
A
B
=
[
1
2
3
4
5
6
]
⋅
[
1
2
3
4
5
6
7
8
]
=
[
1
×
1
+
2
×
5
1
×
2
+
2
×
6
1
×
3
+
2
×
7
1
×
4
+
2
×
8
3
×
1
+
4
×
5
3
×
2
+
4
×
6
3
×
3
+
4
×
7
3
×
4
+
4
×
8
5
×
1
+
6
×
5
5
×
2
+
6
×
6
5
×
3
+
6
×
7
5
×
4
+
6
×
8
]
=
[
11
14
17
20
23
26
31
36
35
38
45
52
]
\begin{aligned} \mathbf{A}\mathbf{B} =& \begin{bmatrix} 1 &2 \\ 3 &4 \\ 5 &6 \end{bmatrix}\cdot \begin{bmatrix} 1 &2 &3 &4 \\ 5 &6 &7 &8 \end{bmatrix} \\ =& \begin{bmatrix} 1 \times{1} +2 \times{5}&1 \times{2}+2\times{6} &1 \times{3} +2 \times{7}&1 \times{4}+2\times{8} \\ 3 \times{1} +4 \times{5}&3 \times{2}+4\times{6} &3 \times{3} +4 \times{7}&3 \times{4}+4\times{8} \\ 5 \times{1} +6 \times{5}&5 \times{2}+6\times{6} &5 \times{3} +6 \times{7}&5 \times{4}+6\times{8} \end{bmatrix}\\ =& \begin{bmatrix} 11 &14 &17 &20\\ 23 &26 &31 &36\\ 35 &38 &45 &52 \end{bmatrix} \end{aligned}
AB===⎣⎡135246⎦⎤⋅[15263748]⎣⎡1×1+2×53×1+4×55×1+6×51×2+2×63×2+4×65×2+6×61×3+2×73×3+4×75×3+6×71×4+2×83×4+4×85×4+6×8⎦⎤⎣⎡112335142638173145203652⎦⎤
集合的二元关系
问:1. 令
A
=
{
1
,
2
,
5
,
8
,
9
}
\mathbf{A} = \{ 1 , 2 , 5 , 8 , 9 \}
A={1,2,5,8,9}, 写出
A
\mathbf{A}
A上的 “模 2 同余” 关系及相应的划分。
答: 1.
A
\mathbf{A}
A上的 “模 2 同余” 关系为
R
=
{
(
a
,
b
)
∈
A
×
A
∣
a
m
o
d
2
=
b
m
o
d
2
}
=
{
(
1
,
5
)
,
(
1
,
9
)
,
(
5
,
9
)
,
(
2
,
8
)
}
\mathbf{R}=\{ (a,b) \in\mathbf{A} \times \mathbf{A} | a \mod{2}=b \mod 2\}=\{(1,5),(1,9),(5,9),(2,8)\}
R={(a,b)∈A×A∣amod2=bmod2}={(1,5),(1,9),(5,9),(2,8)}
- 相应的划分为 P = { { 1 , 5 , 9 } , { 2 , 8 } } \mathcal{P}=\{\{1,5,9\},\{2,8\}\} P={{1,5,9},{2,8}}
问: 2.
A
=
{
1
,
2
,
5
,
8
,
9
}
\mathbf{A} = \{1, 2, 5, 8, 9\}
A={1,2,5,8,9}, 自己给定两个关系
R
1
和
R
2
\mathbf{R}_1 和 \mathbf{R}_2
R1和R2,并计算
R
1
∘
R
2
\mathbf{R}_1\circ \mathbf{R}_2
R1∘R2,
R
1
+
,
R
1
⋆
\mathbf{R}_1^+, \mathbf{R}_1^\star
R1+,R1⋆。
答:自定义系分别为
R
1
,
R
2
\mathbf{R_1},\mathbf{R_2}
R1,R2
R
1
=
{
(
a
,
b
)
∈
A
×
B
∣
a
−
b
=
−
1
}
=
{
(
1
,
2
)
,
(
8
,
9
)
}
\mathbf{R_1}=\{(a,b) \in \mathbf{A} \times \mathbf{B} | a-b=-1\}=\{(1,2),(8,9)\}
R1={(a,b)∈A×B∣a−b=−1}={(1,2),(8,9)}
R
2
=
{
(
a
,
b
)
∈
A
×
B
∣
a
m
o
d
b
=
0
∧
a
≠
b
}
=
{
(
2
,
1
)
,
(
5
,
1
)
,
(
8
,
1
)
,
(
9
,
1
)
,
(
8
,
2
)
}
\mathbf{R}_2=\{(a,b) \in \mathbf{A} \times \mathbf{B}| a \mod b=0 \wedge a\neq b\}=\{(2,1),(5,1),(8,1),(9,1),(8,2)\}
R2={(a,b)∈A×B∣amodb=0∧a=b}={(2,1),(5,1),(8,1),(9,1),(8,2)}
R
2
∘
R
1
=
{
(
1
,
1
)
,
(
2
,
1
)
,
(
2
,
2
)
}
\mathbf{R}_2\circ \mathbf{R}_1=\{(1,1),(2,1),(2,2)\}
R2∘R1={(1,1),(2,1),(2,2)}
∣
A
∣
=
5
|\mathbf{A}|=5
∣A∣=5
R
1
0
=
{
(
1
,
1
)
,
(
2
,
2
)
,
(
5
,
5
)
,
(
8
,
8
)
,
(
9
,
9
)
}
\mathbf{R}_1^0=\{(1,1),(2,2),(5,5),(8,8),(9,9)\}
R10={(1,1),(2,2),(5,5),(8,8),(9,9)}
R
1
1
=
{
(
1
,
2
)
,
(
8
,
9
)
}
\mathbf{R}_1^1=\{(1,2),(8,9)\}
R11={(1,2),(8,9)}
R
1
2
=
R
1
3
=
R
1
4
=
R
1
5
=
∅
\mathbf{R}_1^2=\mathbf{R}_1^3=\mathbf{R}_1^4=\mathbf{R}_1^5=\emptyset
R12=R13=R14=R15=∅
R
1
+
=
⋃
i
=
1
∣
A
∣
R
i
=
{
(
1
,
2
)
,
(
8
,
9
)
}
\mathbf{R}_1^+=\bigcup_{i=1}^{|\mathbf{A}|}R^i=\{(1,2),(8,9)\}
R1+=⋃i=1∣A∣Ri={(1,2),(8,9)}
R 1 ∗ = ⋃ i = 0 ∣ A ∣ R i = { ( 1 , 2 ) , ( 8 , 9 ) , ( 1 , 1 ) , ( 2 , 2 ) , ( 5 , 5 ) , ( 8 , 8 ) , ( 9 , 9 ) } \mathbf{R}_1^\ast=\bigcup_{i=0}^{|\mathbf{A}|}R^i=\{(1,2),(8,9),(1,1),(2,2),(5,5),(8,8),(9,9)\} R1∗=⋃i=0∣A∣Ri={(1,2),(8,9),(1,1),(2,2),(5,5),(8,8),(9,9)}
函数
问:1. 举例说明对函数的认识
答:函数即为用数学的方法描述了一种映射关系,包含三个要素,定义域、值域、和映射关系。就好比一个设备系统,送进原材料,加工成想要的产品,比如一个面包机,添入面粉和酵母,一段时间后就加工成白白胖胖的面包一样;也类似于软件代码中的一个方法(函数),输入参数,函数计算出返回值。例子中面包机只能接受面粉,而不能接受大米,就好比是函数的定义域,面包机只能加工成面包,而不能加工成蛋糕,就好比是函数的值域,这个加工过程就类似函数的映射关系。我理解,世间的万事万物之间的关系都可以用一个函数来表述,只不过函数的复杂程度不同罢了,有的关系已经被发现了,比如牛顿的第二运动定律等,就可以用一个函数表达式表述, 然而,还有很多未被发现和认识的关系。
机器学习就应该是用一种已知的函数关系推导出我们需要而又未知的函数关系。推到出的函数关系,就是用来分类事物和预测新的事件,而已知的函数关系就是我们正在研究算法,能掌握更多的这样的函数关系,也就能干更多种预测和分类的活,从已知函数模型到未知函数模型的推导,就交给了机器。(以上均为个人臆想,欢迎斧正)
向量/矩阵的范数
问:1. 自己给定一个矩阵并计算其各种范数
A
=
[
a
b
c
d
e
f
]
,
其
中
a
b
c
d
e
f
≠
0
\mathbf{A}=\begin{bmatrix} a &b &c \\ d &e &f \end{bmatrix},其中abcdef \neq 0
A=[adbecf],其中abcdef=0
∥
A
∥
0
=
6
\Vert\mathbf{A}\Vert_0=6
∥A∥0=6
∥
A
∥
1
=
a
+
b
+
c
+
d
+
e
+
f
\Vert\mathbf{A}\Vert_1=a+b+c+d+e+f
∥A∥1=a+b+c+d+e+f
∥
A
∥
2
=
a
2
+
b
2
+
c
2
+
d
2
+
e
2
+
f
2
\Vert\mathbf{A}\Vert_2=\sqrt{a^2+b^2+c^2+d^2+e^2+f^2}
∥A∥2=a2+b2+c2+d2+e2+f2
∥
A
∥
3
=
a
3
+
b
3
+
c
2
+
d
3
+
e
3
+
f
3
3
\Vert\mathbf{A}\Vert_3=\sqrt[3]{a^3+b^3+c^2+d^3+e^3+f^3}
∥A∥3=3a3+b3+c2+d3+e3+f3
∥
A
∥
n
=
a
n
+
b
n
+
c
n
+
d
n
+
e
n
+
f
n
n
\Vert\mathbf{A}\Vert_n=\sqrt[n]{a^n+b^n+c^n+d^n+e^n+f^n}
∥A∥n=nan+bn+cn+dn+en+fn
∥
A
∥
∞
=
max
{
∣
a
∣
,
∣
b
∣
,
∣
c
∣
,
∣
d
∣
,
∣
e
∣
,
∣
f
∣
}
\Vert\mathbf{A}\Vert_{\infty}=\max\{|a|,|b|,|c|,|d|,|e|,|f|\}
∥A∥∞=max{∣a∣,∣b∣,∣c∣,∣d∣,∣e∣,∣f∣}
min 与 argmin
问:解释 推荐系统: 问题、算法与研究思路 2.1 中的优化目标
min ∑ ( i , j ) ∈ Ω ( f ( x i , t j ) − r i j ) 2 \min \sum_{(i,j)\in \Omega}(f(\mathbf{x}_i,\mathbf{t}_j)-r_{ij})^2 min(i,j)∈Ω∑(f(xi,tj)−rij)2
答:应该是优化任务的目标函数,就是让预测值 f ( x i , t j ) f(\mathbf{x}_i,\mathbf{t}_j) f(xi,tj)与真实值 r i j r_{ij} rij差距(即绝对值)最小,也就可以用预测值代替真实值。而绝对函数在定义域上是不可导的,不方便通过梯度下降等方法寻找最小值,所以使用了2次方代替绝对值。
累加、累乘与积分
问:1. 将向量下标为偶数的分量 (
x
2
,
x
4
,
⋯
x_2, x_4,\cdots
x2,x4,⋯) 累加, 写出相应表达式.
答:
∑
i
=
2
,
4
⋯
x
i
\sum_{i=2,4\cdots} x_i
∑i=2,4⋯xi
问:2. 各出一道累加、累乘、积分表达式的习题, 并给出标准答案.
答:
X
=
{
1
,
2
,
3
,
4
}
\mathbf{X}=\{1,2,3,4\}
X={1,2,3,4}
∑ i = 1 , x i ∈ X 4 x i = 10 \sum_{i=1,x_i\in\mathbf{X}}^4x_i=10 ∑i=1,xi∈X4xi=10
∏ i = 1 , x i ∈ X 4 x i = 24 \prod_{i=1,x_i\in\mathbf{X}}^4x_i=24 ∏i=1,xi∈X4xi=24
∫ 1 3 x 2 d x = 8.6666 \int_1^{3}x^2\mathrm{d}x=8.6666 ∫13x2dx=8.6666
问:3. 你使用过三重累加吗? 描述一下其应用.
答:在做彩色图像相关处理时,常会遇到三维数据,图像的宽w高h和通道c。
问:4. 给一个常用的定积分, 将手算结果与程序结果对比.
答: ∫ 1 3 x 2 d x = 8.6666 \int_1^{3}x^2\mathrm{d}x=8.6666 ∫13x2dx=8.6666
delta = 1e-5
x = 1.0
integration = 0
while x <= 3.0:
integration += x *x * delta
x += delta
print(x)
>>8.666626666761239
线性回归
问:自己写一个小例子 (n =3,m=1) 来验证最小二乘法.
X = [ x 1 x 2 x 3 ] , W T = [ w 1 , w 2 , w 3 ] T \mathbf{X}=\begin{bmatrix}x_1 &x_2 &x_3\end{bmatrix}, \mathbf{W}^\mathrm{T}={\begin{bmatrix}\mathbf{w_1},\mathbf{w_2},\mathbf{w_3}\end{bmatrix}^\mathrm{T}} X=[x1x2x3],WT=[w1,w2,w3]T
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | y y y |
---|---|---|---|
1.2 | 3.2 | 3.1 | 3.6 |
3.4 | 1.2 | 2.3 | 2.1 |
5.3 | 3.4 | 5.1 | 3.6 |
预测模型为 f ( x , w ) = X W f(x,w)=\mathbf{X}\mathbf{W} f(x,w)=XW
优化目标函数为:
arg
min
w
(
f
(
x
i
)
−
y
i
)
2
=
(
1.2
w
1
+
3.2
w
2
+
3.1
w
3
−
3.6
)
2
+
(
3.4
w
1
+
1.2
w
2
+
2.3
w
3
−
2.1
)
2
+
(
5.3
w
1
+
3.4
w
2
+
5.1
w
3
−
3.6
)
2
\arg\min_w\left(f(x_i)-y_i\right)^2 =(1.2w_1+3.2w_2+3.1w_3-3.6)^2+\\(3.4w_1+1.2w_2+2.3w_3-2.1)^2+\\(5.3w_1+3.4w_2+5.1w_3-3.6)^2
argwmin(f(xi)−yi)2=(1.2w1+3.2w2+3.1w3−3.6)2+(3.4w1+1.2w2+2.3w3−2.1)2+(5.3w1+3.4w2+5.1w3−3.6)2
解出
W
\mathbf{W}
W
Logistic 回归
自己推导一遍, 并描述这个方法的特点 (不少于 5 条).
一个线性模型可以描述为:
f
(
x
)
=
w
x
,
f
(
x
)
∈
R
f(x)=\mathbf{w}\mathbf{x}, f(x) \in \mathbb{R}
f(x)=wx,f(x)∈R
sigmoid 函数:
s
i
g
m
o
i
d
(
x
)
=
1
1
+
e
−
x
sigmoid(x)=\frac{1}{1+e^{-x}}
sigmoid(x)=1+e−x1
为了让
f
(
x
)
f(x)
f(x)转化为概率模型,那么就需要将
f
(
x
)
f(x)
f(x)的取值映射到[0,1],那么sigmoid函数就可以实现该功能。
P
(
y
∣
x
;
w
)
=
1
1
+
e
−
w
x
P(y|\mathbf{x};\mathbf{w})=\frac{1}{1+e^{-\mathbf{wx}}}
P(y∣x;w)=1+e−wx1
对于二分类问题,
y
y
y的取值为
{
0
,
1
}
\{0,1\}
{0,1},则上式可统一表示为:
P
(
y
i
∣
x
i
;
w
)
=
P
(
y
i
=
1
∣
x
i
;
w
)
y
i
(
1
−
P
(
y
i
=
0
∣
x
;
w
)
1
−
y
i
P(y_i|x_i;\mathbf{w})=P(y_i=1|x_i;\mathbf{w})^{y_i}(1-P(y_i=0|\mathbf{x};\mathbf{w})^{1-y_{i}}
P(yi∣xi;w)=P(yi=1∣xi;w)yi(1−P(yi=0∣x;w)1−yi
优化目标为:
arg max
w
L
(
x
)
=
∏
i
=
1
i
=
n
P
(
y
i
∣
x
i
;
w
)
(1)
\argmax_w L(x)=\prod_{i=1}^{i=n}{P(y_i|x_i;\mathbf{w})} \tag{1}
wargmaxL(x)=i=1∏i=nP(yi∣xi;w)(1)
对上式取对数得:
log
L
(
x
)
=
∑
i
=
1
n
P
(
y
i
∣
x
i
;
w
)
=
∑
y
i
log
P
(
y
i
=
1
∣
x
i
;
w
)
+
(
1
−
y
i
)
log
(
1
−
P
(
y
i
=
0
∣
x
i
;
w
)
)
=
∑
y
i
log
P
(
y
i
=
1
∣
x
i
;
w
)
1
−
P
(
y
i
=
0
∣
x
i
;
w
)
+
1
−
P
(
y
i
=
0
∣
x
;
w
)
=
∑
i
=
1
n
y
i
x
i
w
−
log
(
1
+
e
x
i
w
)
\begin{aligned} \log{L(x)}=&\sum_{i=1}^n{P(y_i|x_i;\mathbf{w})}\\ =&\sum y_i\log{P(y_i=1|x_i;\mathbf{w})}+(1-y_i)\log(1-P(y_i=0|x_i;\mathbf{w}))\\ =&\sum{y_i\log{\frac{P(y_i=1|x_i;\mathbf{w})}{1-P(y_i=0|x_i;\mathbf{w})}}+1-P(y_i=0|\mathbf{x};\mathbf{w})}\\ =&\sum_{i = 1}^n y_i \mathbf{x}_i \mathbf{w} - \log (1 + e^{\mathbf{x}_i \mathbf{w}}) \end{aligned}
logL(x)====i=1∑nP(yi∣xi;w)∑yilogP(yi=1∣xi;w)+(1−yi)log(1−P(yi=0∣xi;w))∑yilog1−P(yi=0∣xi;w)P(yi=1∣xi;w)+1−P(yi=0∣x;w)i=1∑nyixiw−log(1+exiw)
对
w
\mathbf{w}
w求偏导:
∇
L
(
x
)
=
∂
log
L
(
x
)
∂
w
=
∑
i
=
1
n
y
i
x
i
−
e
x
i
w
1
+
e
x
i
w
x
i
=
∑
i
=
1
n
(
y
i
−
e
x
i
w
1
+
e
x
i
w
)
x
i
\begin{aligned} \nabla{L(x)} =& \frac{\partial{\log L(x)}}{\partial\mathbf{w}}\\ = &\sum_{i=1}^n{y_i\mathbf{x}_i}-\frac{e^{\mathbf{x}_{i}\mathbf{w}}}{1+e^{\mathbf{x}_{i}\mathbf{w}}}\mathbf{x}_i\\ =&\sum_{i=1}^n({y_i -\frac{e^{\mathbf{x}_{i}\mathbf{w}}}{1+e^{\mathbf{x}_{i}\mathbf{w}}}})\mathbf{x}_i \end{aligned}
∇L(x)===∂w∂logL(x)i=1∑nyixi−1+exiwexiwxii=1∑n(yi−1+exiwexiw)xi
使用梯度下降法求解:
w
t
+
1
=
w
t
−
α
∇
L
(
x
)
\mathbf{w}^{t+1}=\mathbf{w}^t-\alpha\nabla{L(x)}
wt+1=wt−α∇L(x)
该方法具备一下特点:
- 可以将值域为实属范围转化为[0,1],实现概率的映射;
- 针对连乘采用对数的处理办法,转化为连加操作;
- 采用梯度下降法求解最优解;
- 目标函数有点类似于交叉熵;
- 在化简的时候,充分利用对数的特点。
图与网络
问:1. 写出下图的邻接矩阵
答:
[
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
]
\begin{bmatrix} 0 &1 &1 &1 \\ 1 &0 &1 &0 \\ 1 &1 &0 &1 \\ 1 &0 &1 &0 \end{bmatrix}
⎣⎢⎢⎡0111101011011010⎦⎥⎥⎤
问:2. 定义无向网络。
答:Definition an undirected net is a tuple
G
=
(
V
,
w
)
G = (\mathbf{V},w)
G=(V,w), where
V
\mathbf{V}
V is the set of nodes, and
w
w
w is the weight of edge
(
v
i
,
v
j
)
(v_i,v_j)
(vi,vj),
∀
i
,
j
\forall{i,j}
∀i,j,
w
(
v
i
,
v
j
)
=
w
(
v
j
,
v
i
)
w( v_i , v_j )=w(v_j, v_i)
w(vi,vj)=w(vj,vi).
树
问:1. 自己画一棵树, 将其元组各部分写出来 (特别是函数
p
p
p)。
答:
T
=
(
V
,
r
,
p
)
T=(\mathbf{V},r,p)
T=(V,r,p)
其中
V
=
{
v
0
,
v
1
,
v
2
,
v
3
,
v
4
,
v
5
}
\mathbf{V}=\{v_0, v_1, v_2, v_3,v_4,v_5\}
V={v0,v1,v2,v3,v4,v5},
r
=
v
0
r=v_0
r=v0,
p
(
v
0
)
=
ϕ
p(v_0)=\phi
p(v0)=ϕ,
p
(
v
2
)
=
p
(
v
3
)
=
p
(
v
4
)
=
v
1
p(v_2)=p(v_3)=p(v_4)=v_1
p(v2)=p(v3)=p(v4)=v1,
p
(
v
1
)
=
p
(
v
5
)
=
v
0
p(v_1)=p(v_5)=v_0
p(v1)=p(v5)=v0。
问:2. 针对该树, 将代码中的变量值写出来 (特别是 parent 数组)。
答:
public class Tree {
/**
* 节点数. 表示节点 v_0 至 v_{n-1}.
*/
int n=5;
/**
* 根节点. 0 至 n-1.
*/
int root=0;
/**
* 父节点.
*/
int[] parent;
/**
* 构造一棵树, 第一个节点为根节点, 其余节点均为其直接子节点, 也均为叶节点.
*/
public Tree(int paraN) {
n = paraN;
parent = new int[n];
parent[0] = -1; // -1 即 \phi
parent[1] = 0;
parent[2] = 1;
parent[3] = 1;
parent[4] = 1;
parent[5] = 0;
}// Of the constructor
}//Of class Tree
m叉树
问:1. 画一棵三叉树, 并写出它的 child 数组。
答:
给定节点
V
\mathbf{V}
V,和字符表
Σ
\Sigma
Σ如下:
V
=
{
v
1
,
v
2
,
v
3
,
v
4
,
v
5
,
v
6
}
Σ
=
{
1
,
2
,
3
}
\begin{aligned} \mathbf{V}=&\{v_1,v_2,v_3,v_4,v_5,v_6\}\\ \Sigma=&\{1,2,3\} \end{aligned}
V=Σ={v1,v2,v3,v4,v5,v6}{1,2,3}
得child 数组:
c
=
{
(
v
0
,
1
,
v
1
)
,
(
v
0
,
2
,
v
5
)
,
(
v
0
,
3
,
v
6
)
,
(
v
1
,
1
,
v
2
)
,
(
v
1
,
2
,
v
3
)
,
(
v
1
,
3
,
v
4
)
,
(
v
2
,
1
,
−
1
)
,
(
v
2
,
2
,
−
1
)
,
(
v
2
,
3
,
−
1
)
,
(
v
3
,
1
,
−
1
)
,
(
v
3
,
2
,
−
1
)
,
(
v
3
,
3
,
−
1
)
,
(
v
4
,
1
,
−
1
)
,
(
v
4
,
2
,
−
1
)
,
(
v
4
,
3
,
−
1
)
,
(
v
5
,
1
,
−
1
)
,
(
v
5
,
2
,
−
1
)
,
(
v
5
,
3
,
−
1
)
,
(
v
6
,
1
,
−
1
)
,
(
v
6
,
2
,
−
1
)
,
(
v
6
,
3
,
−
1
)
}
c=\{(v_0,1,v_1),(v_0,2,v_5),(v_0,3,v_6),\\ (v_1,1,v_2),(v_1,2,v_3),(v_1,3,v_4),\\ (v_2,1,-1),(v_2,2,-1),(v_2,3,-1),\\ (v_3,1,-1),(v_3,2,-1),(v_3,3,-1),\\ (v_4,1,-1),(v_4,2,-1),(v_4,3,-1),\\ (v_5,1,-1),(v_5,2,-1),(v_5,3,-1),\\ (v_6,1,-1),(v_6,2,-1),(v_6,3,-1) \}
c={(v0,1,v1),(v0,2,v5),(v0,3,v6),(v1,1,v2),(v1,2,v3),(v1,3,v4),(v2,1,−1),(v2,2,−1),(v2,3,−1),(v3,1,−1),(v3,2,−1),(v3,3,−1),(v4,1,−1),(v4,2,−1),(v4,3,−1),(v5,1,−1),(v5,2,−1),(v5,3,−1),(v6,1,−1),(v6,2,−1),(v6,3,−1)}
问:3. 按照贴子风格, 重新定义树. 提示: 还是应该定义 parent 函数, 字母表里面只有一个元素.
答:Let
ϕ
\phi
ϕ be the empty node, a tree is a quadruple
B
T
=
(
V
,
r
,
Σ
,
p
)
BT =(\mathbf{V},r,\Sigma,p )
BT=(V,r,Σ,p), where
- V \mathbf{V} V is the set of nodes;
- r r r is the set of root;
- Σ = { − 1 } \Sigma=\{-1\} Σ={−1} is the alphabet;
-
p
:
(
V
∪
{
ϕ
}
)
×
Σ
∗
→
V
∪
{
ϕ
}
,
∀
v
∈
V
,
∃
!
n
≥
0
p:(\mathbf{V} \cup \{\phi\}) \times \Sigma^* \to \mathbf{V} \cup \{\phi\}, \forall v\in\mathbf{V}, \exist!n \ge 0
p:(V∪{ϕ})×Σ∗→V∪{ϕ},∀v∈V,∃!n≥0
s.t. s ∈ Σ ∗ , p n ( v , s ) = r s \in \Sigma^*, p^n(v,s) =r s∈Σ∗,pn(v,s)=r
问:4. 根据图、树、m-叉树的学习, 谈谈你对元组的理解.
答:元组有点类似面向对象语言中的object,object中的属性乃是元组中的值,这些属性可以是各种数据类型,比如整型、字符型、枚举、object,函数等。元组也是一样,可以容纳各种类型数据,如集合、函数和元组等,我理解为使用将各种相关数据联合在一起用以描述一个对象或者系统。
决策表
问题:定义一个标签分布系统, 即各标签的值不是 0/1, 而是
[
0
,
1
]
[0,1]
[0,1] 区间的实数, 且同一对象的标签和为 1。
答:A Lable Distribution System is
S
=
(
X
,
Y
)
S=(\mathbf{X},\mathbf{Y})
S=(X,Y),where
X
=
[
x
i
j
]
m
×
n
,
0
≤
x
i
j
≤
1
\mathbf{X}=[x_{ij}]_{m\times n}, 0 \le x_{ij} \le 1
X=[xij]m×n,0≤xij≤1,
∑
j
=
1
n
x
k
j
=
1
,
1
≤
k
≤
m
,
Y
=
[
1
,
2
,
3
⋯
,
d
]
n
\sum_{j=1}^n x_{\mathrm{k}j}=1, 1 \le \mathrm{k} \le m, \mathbf{Y}=[1,2,3\cdots,d]^n
∑j=1nxkj=1,1≤k≤m,Y=[1,2,3⋯,d]n.
问题
一个数值型的分类系统可以表示为 S = ( X , Y ) S=(\mathbf{X},\mathbf{Y}) S=(X,Y),而符号型的决策系统则描述成了 S = ( U , C , D , V , I ) S=(\mathbf{U},\mathbf{C},\mathbf{D},\mathbf{V},I) S=(U,C,D,V,I) or S = ( U , C , D ) S=(\mathbf{U},\mathbf{C},\mathbf{D}) S=(U,C,D),对比两类决策系统,后者多了表示实例的 U \mathbf{U} U。
- 为什么后者必须需要
U
\mathbf{U}
U,而数值型的决策系统不需要?
答:考虑到集合不是可重集,要较真的话,数值型决策表也需要 U \mathbf{U} U.否则两行数据相同,元素就相同了。 - 准确地描述一个决策系统(或者其他系统)需要哪些要素,有什么套路吗?
答:按这次培训的套路来就行。要不就多读点书,特别是《形式语言与自动机理论》,然后就觉得很自然了。