处理多维特征的输入
逻辑斯蒂回归模型:
y ^ ( i ) = σ ( x ( i ) ∗ ω + b ) \hat{y}^{(i)}=\sigma(x^{(i)}*\omega+b) y^(i)=σ(x(i)∗ω+b)
多维情况下的逻辑斯蒂回归模型
y ^ ( i ) = σ ( ∑ n = 1 8 x n ( i ) ⋅ ω n + b ) \begin{aligned}\hat{y}^{(i)}&=\sigma(\sum_{n=1}^8x_n^{(i)}\cdot\omega_n+b)\end{aligned} y^(i)=σ(n=1∑8xn(i)⋅ωn+b)
每一维都要乘上权重:
∑ n = 1 8 x n ( i ) ⋅ ω n = [ x 1 ( i ) ⋯ x N ( i ) ] [ ω 1 ⋮ ω 8 ] \sum_{n=1}^{8}x_n^{(i)}\cdot\omega_n=\begin{bmatrix}x_1^{(i)}&\cdots&x_N^{(i)}\end{bmatrix}\begin{bmatrix}\omega_1\\\vdots\\\omega_8\end{bmatrix} n=1∑8xn(i)⋅ωn=[x1(i)⋯xN(i)] ω1⋮ω8
最终得到:
y ^ ( i ) = σ ( [ x 1 ( i ) ⋯ χ 8 ( i ) ] [ ω 1 ⋮ ω 8 ] + b ) = σ ( Z ( i ) ) \begin{aligned} \hat{y}^{(i)}& =\sigma(\begin{bmatrix}x_1^{(i)}&\cdots&\chi_8^{(i)}\end{bmatrix}\begin{bmatrix}\omega_1\\\vdots\\\omega_8\end{bmatrix}+b) \\ &=\sigma(Z^{(i)}) \end{aligned} y^(i)=σ([x1(i)⋯χ8(i)] ω1⋮ω8 +b)=σ(Z(i))
维度变换:[N×1]=[N×8]*[8×1]+[N×1]
[
z
(
1
)
⋮
z
(
N
)
]
=
[
χ
1
(
1
)
.
.
.
x
8
(
1
)
⋮
⋱
⋮
x
1
(
N
)
.
.
.
x
8
(
N
)
]
[
ω
1
⋮
ω
8
]
+
[
b
⋮
b
]
\begin{bmatrix}z^{(1)}\\\vdots\\z^{(N)}\end{bmatrix}=\begin{bmatrix}\chi_1^{(1)}&...&x_8^{(1)}\\\vdots&\ddots&\vdots\\x_1^{(N)}&...&x_8^{(N)}\end{bmatrix}\begin{bmatrix}\omega_1\\\vdots\\\omega_8\end{bmatrix}+\begin{bmatrix}b\\\vdots\\b\end{bmatrix}
z(1)⋮z(N)
=
χ1(1)⋮x1(N)...⋱...x8(1)⋮x8(N)
ω1⋮ω8
+
b⋮b
也可以改成多层:8→6 6→4 4→1
- 每一次线性变换降维后,都会用一次激活函数,例如sigmoid()逻辑斯蒂激活函数,这个激活函数是非线性的,这样多层下来就能模拟出我们所需要的非线性方程
- 隐藏层越多,学习能力越强,但并非是学习能力越强越好,学习能力太强了会把训练时的噪声也学了,会导致模型泛化能力差
- 具体多少个隐藏层,要用
超参数搜索
来寻找最优结果
损失函数
l
o
s
s
=
−
1
N
∑
n
=
1
N
y
n
log
y
^
n
+
(
1
−
y
n
)
log
(
1
−
y
^
n
)
loss=-\frac1N\sum_{n=1}^Ny_n\log\hat{y}_n+(1-y_n)\log(1-\hat{y}_n)
loss=−N1n=1∑Nynlogy^n+(1−yn)log(1−y^n)
ω
=
ω
−
α
∂
c
o
s
t
∂
ω
\omega=\omega-\alpha\frac{\partial cost}{\partial\omega}
ω=ω−α∂ω∂cost