深度学习:采用深度神经网络的机器学习
输入层---隐藏层---输出层(隐藏层大于2的神经网络为深度神经网络)
深而窄的网络往往比浅而宽的网络更节约资源
1.感知器:神经元
感知器的组成部分:
输入{x1,x2,x3……}
每个输入有其对应的权{p1,p2,p3……}
偏置值b
激活函数f(x)
输出{f(p1*x1+b),f(p2*x2+b),f(p3*x3+b)……}
感知器可以用来实现布尔运算、线性拟合、线性回归等
例如:用感知器来实现“且(and)”运算
x1 | x2 | y |
false | false | false |
false | true | false |
true | false | false |
true | true | true |
编程中,false=0,true=1
则感知器设置如下:
输入:x1,x2
权:p1=0.5,p2=0.5
偏置值:b=-0.8
激活函数:
输出:y
可以验证一下,带入x1=1,x2=0,求得y=0,正解
训练感知器
输入元素为x_i,每个对应权值为p_i,偏置值为b(一开始的p_i与b均赋值为0)
假设有一组训练值为a_i,对应的真值为aa_i(常用label表示),每次训练值带入激活函数计算值为ya_i
定义一个学习速率rate
则每次权值的更新量为:delta_p = rate * (aa_i - ya_i) * a_i
偏置值的更新量为:delta_b = rate * (aa_i - ya_i)
然后 p_i += delta_p b_i += delta_b 迭代计算,可以设定训练次数即迭代次数
用训练得到的权值与偏置值计算输入元素对应的结果