读书笔记
第二章
与门,或门,与非门,异或门
import numpy as np
# 与门
def AND(x1, x2) :
w1, w2, theta = 0.5, 0.5, 0.7
x = np.array([x1, x2])
y = np.array([w1, w2])
tmp = np.sum(x * y) - theta
if tmp <= 0 :
return 0
else:
return 1
# 或门
def OR(x1, x2) :
w1, w2, theta = 0.5, 0.5, 0.4
x = np.array([x1, x2])
y = np.array([w1, w2])
tmp = np.sum(x * y) - theta
if tmp <= 0 :
return 0
else:
return 1
# 与非门
def NAND(x1, x2) :
w1, w2, theta = -0.5, -0.5, -0.7
x = np.array([x1, x2])
y = np.array([w1, w2])
tmp = np.sum(x * y) - theta
if tmp <= 0 :
return 0
else:
return 1
# 异或门:
def XOR(x1, x2):
return AND(NAND(x1, x2), OR(x1, x2))
第三章
$\mathrm{sigmoid}$ 函数
$\mathrm{\frac{1}{1 + e^{-x}}}$
$\mathrm{softmax}$ 函数
$\mathrm{y[k]=\frac{exp(a[k])}{\sum exp(a[i])}}$
由公式 $\mathrm{y[k]=\frac{exp(a[k]+C)}{\sum exp(a[i]+C)}}$ 是不随 $\mathrm{C}$ 改变的.
故可以减掉最大值再进行运算.
def softmax(a):
c = np.max(a)
exp_a = np.exp(a - c)
sum_exp_a = np.sum(exp_a)
y = exp_a / sum_exp_a
return y
第四章
均方误差
$\mathrm{E = \frac{1}{2} \sum (y_{k} - t_{k}) ^ 2}$
这里 $\mathrm{y, t}$ 分别是输出和监督数据
交叉熵误差
$\mathrm{E=-\sum t_{k} \log y_{k}}$
$\mathrm{t}$ 表示是,否的 $\mathrm{0,1}$ 序列,$\mathrm{y}$ 表示概率.