读书笔记


 

第二章

与门,或门,与非门,异或门

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}$ 表示概率.